1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017 |
- /*!
- Copyright (C) 2016-2018 Timofey Kachalov <[email protected]>
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
- require("source-map-support").install();
- module.exports =
- /******/ (function(modules) { // webpackBootstrap
- /******/ // The module cache
- /******/ var installedModules = {};
- /******/
- /******/ // The require function
- /******/ function __webpack_require__(moduleId) {
- /******/
- /******/ // Check if module is in cache
- /******/ if(installedModules[moduleId]) {
- /******/ return installedModules[moduleId].exports;
- /******/ }
- /******/ // Create a new module (and put it into the cache)
- /******/ var module = installedModules[moduleId] = {
- /******/ i: moduleId,
- /******/ l: false,
- /******/ exports: {}
- /******/ };
- /******/
- /******/ // Execute the module function
- /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
- /******/
- /******/ // Flag the module as loaded
- /******/ module.l = true;
- /******/
- /******/ // Return the exports of the module
- /******/ return module.exports;
- /******/ }
- /******/
- /******/
- /******/ // expose the modules object (__webpack_modules__)
- /******/ __webpack_require__.m = modules;
- /******/
- /******/ // expose the module cache
- /******/ __webpack_require__.c = installedModules;
- /******/
- /******/ // define getter function for harmony exports
- /******/ __webpack_require__.d = function(exports, name, getter) {
- /******/ if(!__webpack_require__.o(exports, name)) {
- /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
- /******/ }
- /******/ };
- /******/
- /******/ // define __esModule on exports
- /******/ __webpack_require__.r = function(exports) {
- /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
- /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
- /******/ }
- /******/ Object.defineProperty(exports, '__esModule', { value: true });
- /******/ };
- /******/
- /******/ // create a fake namespace object
- /******/ // mode & 1: value is a module id, require it
- /******/ // mode & 2: merge all properties of value into the ns
- /******/ // mode & 4: return value when already ns object
- /******/ // mode & 8|1: behave like require
- /******/ __webpack_require__.t = function(value, mode) {
- /******/ if(mode & 1) value = __webpack_require__(value);
- /******/ if(mode & 8) return value;
- /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
- /******/ var ns = Object.create(null);
- /******/ __webpack_require__.r(ns);
- /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
- /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
- /******/ return ns;
- /******/ };
- /******/
- /******/ // getDefaultExport function for compatibility with non-harmony modules
- /******/ __webpack_require__.n = function(module) {
- /******/ var getter = module && module.__esModule ?
- /******/ function getDefault() { return module['default']; } :
- /******/ function getModuleExports() { return module; };
- /******/ __webpack_require__.d(getter, 'a', getter);
- /******/ return getter;
- /******/ };
- /******/
- /******/ // Object.prototype.hasOwnProperty.call
- /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
- /******/
- /******/ // __webpack_public_path__
- /******/ __webpack_require__.p = "";
- /******/
- /******/
- /******/ // Load entry module and return exports
- /******/ return __webpack_require__(__webpack_require__.s = "./index.ts");
- /******/ })
- /************************************************************************/
- /******/ ({
- /***/ "./index.ts":
- /*!******************!*\
- !*** ./index.ts ***!
- \******************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ./src/JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts");
- module.exports = JavaScriptObfuscatorFacade_1.JavaScriptObfuscator;
- /***/ }),
- /***/ "./src/EspreeFacade.ts":
- /*!*****************************!*\
- !*** ./src/EspreeFacade.ts ***!
- \*****************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var espree = tslib_1.__importStar(__webpack_require__(/*! espree */ "espree"));
- var chalk_1 = tslib_1.__importDefault(__webpack_require__(/*! chalk */ "chalk"));
- var EspreeFacade =
- /*#__PURE__*/
- function () {
- function EspreeFacade() {
- (0, _classCallCheck2["default"])(this, EspreeFacade);
- }
- (0, _createClass2["default"])(EspreeFacade, null, [{
- key: "parse",
- value: function parse(input, config) {
- var sourceTypeLength = EspreeFacade.sourceTypes.length;
- for (var i = 0; i < sourceTypeLength; i++) {
- try {
- return EspreeFacade.parseType(input, config, EspreeFacade.sourceTypes[i]);
- } catch (error) {
- if (i < sourceTypeLength - 1) {
- continue;
- }
- throw new Error(EspreeFacade.processParsingError(input, error.message, {
- line: error.lineNumber,
- column: error.column
- }));
- }
- }
- throw new Error("Espree parsing error");
- }
- }, {
- key: "parseType",
- value: function parseType(input, inputConfig, sourceType) {
- var config = Object.assign(Object.assign({}, inputConfig), {
- sourceType: sourceType
- });
- return espree.parse(input, config);
- }
- }, {
- key: "processParsingError",
- value: function processParsingError(sourceCode, errorMessage, position) {
- if (!position || !position.line || !position.column) {
- throw new Error(errorMessage);
- }
- var sourceCodeLines = sourceCode.split(/\r?\n/);
- var errorLine = sourceCodeLines[position.line - 1];
- if (!errorLine) {
- throw new Error(errorMessage);
- }
- var startErrorIndex = Math.max(0, position.column - EspreeFacade.nearestSymbolsCount);
- var endErrorIndex = Math.min(errorLine.length, position.column + EspreeFacade.nearestSymbolsCount);
- var formattedPointer = EspreeFacade.colorError('>');
- var formattedCodeSlice = "...".concat(errorLine.substring(startErrorIndex, endErrorIndex).replace(/^\s+/, ''), "...");
- throw new Error("Line ".concat(position.line, ": ").concat(errorMessage, "\n").concat(formattedPointer, " ").concat(formattedCodeSlice));
- }
- }]);
- return EspreeFacade;
- }();
- exports.EspreeFacade = EspreeFacade;
- EspreeFacade.colorError = chalk_1["default"].red;
- EspreeFacade.nearestSymbolsCount = 15;
- EspreeFacade.sourceTypes = ['script', 'module'];
- /***/ }),
- /***/ "./src/JavaScriptObfuscator.ts":
- /*!*************************************!*\
- !*** ./src/JavaScriptObfuscator.ts ***!
- \*************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var JavaScriptObfuscator_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ./container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var escodegen = tslib_1.__importStar(__webpack_require__(/*! escodegen-wallaby */ "escodegen-wallaby"));
- var LoggingMessage_1 = __webpack_require__(/*! ./enums/logger/LoggingMessage */ "./src/enums/logger/LoggingMessage.ts");
- var NodeTransformer_1 = __webpack_require__(/*! ./enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
- var TransformationStage_1 = __webpack_require__(/*! ./enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
- var EspreeFacade_1 = __webpack_require__(/*! ./EspreeFacade */ "./src/EspreeFacade.ts");
- var NodeGuards_1 = __webpack_require__(/*! ./node/NodeGuards */ "./src/node/NodeGuards.ts");
- var JavaScriptObfuscator = JavaScriptObfuscator_1 =
- /*#__PURE__*/
- function () {
- function JavaScriptObfuscator(transformersRunner, randomGenerator, obfuscatedCodeFactory, logger, options) {
- (0, _classCallCheck2["default"])(this, JavaScriptObfuscator);
- this.transformersRunner = transformersRunner;
- this.randomGenerator = randomGenerator;
- this.obfuscatedCodeFactory = obfuscatedCodeFactory;
- this.logger = logger;
- this.options = options;
- }
- (0, _createClass2["default"])(JavaScriptObfuscator, [{
- key: "obfuscate",
- value: function obfuscate(sourceCode) {
- var timeStart = Date.now();
- this.logger.info(LoggingMessage_1.LoggingMessage.Version, "0.19.4");
- this.logger.info(LoggingMessage_1.LoggingMessage.ObfuscationStarted);
- this.logger.info(LoggingMessage_1.LoggingMessage.RandomGeneratorSeed, this.randomGenerator.getSeed());
- var astTree = this.parseCode(sourceCode);
- var obfuscatedAstTree = this.transformAstTree(astTree);
- var generatorOutput = this.generateCode(sourceCode, obfuscatedAstTree);
- var obfuscationTime = (Date.now() - timeStart) / 1000;
- this.logger.success(LoggingMessage_1.LoggingMessage.ObfuscationCompleted, obfuscationTime);
- return this.getObfuscatedCode(generatorOutput);
- }
- }, {
- key: "parseCode",
- value: function parseCode(sourceCode) {
- return EspreeFacade_1.EspreeFacade.parse(sourceCode, JavaScriptObfuscator_1.espreeParseOptions);
- }
- }, {
- key: "transformAstTree",
- value: function transformAstTree(astTree) {
- astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.Initializing);
- var isEmptyAstTree = NodeGuards_1.NodeGuards.isProgramNode(astTree) && !astTree.body.length && !astTree.leadingComments && !astTree.trailingComments;
- if (isEmptyAstTree) {
- this.logger.warn(LoggingMessage_1.LoggingMessage.EmptySourceCode);
- return astTree;
- }
- astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.Preparing);
- if (this.options.deadCodeInjection) {
- astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.DeadCodeInjection);
- }
- if (this.options.controlFlowFlattening) {
- astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.ControlFlowFlattening);
- }
- astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.Converting);
- astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.Obfuscating);
- astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.Finalizing);
- return astTree;
- }
- }, {
- key: "generateCode",
- value: function generateCode(sourceCode, astTree) {
- var escodegenParams = Object.assign({}, JavaScriptObfuscator_1.escodegenParams);
- if (this.options.sourceMap) {
- escodegenParams.sourceMap = this.options.inputFileName || 'sourceMap';
- escodegenParams.sourceContent = sourceCode;
- }
- var generatorOutput = escodegen.generate(astTree, Object.assign(Object.assign({}, escodegenParams), {
- format: {
- compact: this.options.compact
- }
- }));
- generatorOutput.map = generatorOutput.map ? generatorOutput.map.toString() : '';
- return generatorOutput;
- }
- }, {
- key: "getObfuscatedCode",
- value: function getObfuscatedCode(generatorOutput) {
- return this.obfuscatedCodeFactory(generatorOutput.code, generatorOutput.map);
- }
- }, {
- key: "runTransformationStage",
- value: function runTransformationStage(astTree, transformationStage) {
- this.logger.info(LoggingMessage_1.LoggingMessage.TransformationStage, transformationStage);
- return this.transformersRunner.transform(astTree, JavaScriptObfuscator_1.transformersList, transformationStage);
- }
- }]);
- return JavaScriptObfuscator;
- }();
- JavaScriptObfuscator.espreeParseOptions = {
- comment: true,
- ecmaVersion: 10,
- loc: true,
- range: true
- };
- JavaScriptObfuscator.escodegenParams = {
- comment: true,
- verbatim: 'x-verbatim-property',
- sourceMapWithCode: true
- };
- 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];
- 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);
- exports.JavaScriptObfuscator = JavaScriptObfuscator;
- /***/ }),
- /***/ "./src/JavaScriptObfuscatorFacade.ts":
- /*!*******************************************!*\
- !*** ./src/JavaScriptObfuscatorFacade.ts ***!
- \*******************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- __webpack_require__(/*! reflect-metadata */ "reflect-metadata");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ./container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var InversifyContainerFacade_1 = __webpack_require__(/*! ./container/InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
- var JavaScriptObfuscatorFacade =
- /*#__PURE__*/
- function () {
- function JavaScriptObfuscatorFacade() {
- (0, _classCallCheck2["default"])(this, JavaScriptObfuscatorFacade);
- }
- (0, _createClass2["default"])(JavaScriptObfuscatorFacade, null, [{
- key: "obfuscate",
- value: function obfuscate(sourceCode) {
- var inputOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
- var inversifyContainerFacade = new InversifyContainerFacade_1.InversifyContainerFacade();
- inversifyContainerFacade.load(sourceCode, '', inputOptions);
- var javaScriptObfuscator = inversifyContainerFacade.get(ServiceIdentifiers_1.ServiceIdentifiers.IJavaScriptObfuscator);
- var obfuscatedCode = javaScriptObfuscator.obfuscate(sourceCode);
- inversifyContainerFacade.unload();
- return obfuscatedCode;
- }
- }]);
- return JavaScriptObfuscatorFacade;
- }();
- exports.JavaScriptObfuscator = JavaScriptObfuscatorFacade;
- JavaScriptObfuscatorFacade.version = "0.19.4" || false;
- /***/ }),
- /***/ "./src/analyzers/stack-trace-analyzer/StackTraceAnalyzer.ts":
- /*!******************************************************************!*\
- !*** ./src/analyzers/stack-trace-analyzer/StackTraceAnalyzer.ts ***!
- \******************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var StackTraceAnalyzer_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- var CalleeDataExtractor_1 = __webpack_require__(/*! ../../enums/analyzers/stack-trace-analyzer/CalleeDataExtractor */ "./src/enums/analyzers/stack-trace-analyzer/CalleeDataExtractor.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeStatementUtils_1 = __webpack_require__(/*! ../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
- var StackTraceAnalyzer = StackTraceAnalyzer_1 =
- /*#__PURE__*/
- function () {
- function StackTraceAnalyzer(calleeDataExtractorFactory) {
- (0, _classCallCheck2["default"])(this, StackTraceAnalyzer);
- this.calleeDataExtractorFactory = calleeDataExtractorFactory;
- }
- (0, _createClass2["default"])(StackTraceAnalyzer, [{
- key: "analyze",
- value: function analyze(astTree) {
- return this.analyzeRecursive(astTree.body);
- }
- }, {
- key: "analyzeRecursive",
- value: function analyzeRecursive(blockScopeBody) {
- var _this = this;
- var limitIndex = StackTraceAnalyzer_1.getLimitIndex(blockScopeBody.length);
- var stackTraceData = [];
- var blockScopeBodyLength = blockScopeBody.length;
- var _loop = function _loop(index) {
- if (index > limitIndex) {
- return "break";
- }
- var blockScopeBodyNode = blockScopeBody[index];
- estraverse.traverse(blockScopeBodyNode, {
- enter: function enter(node) {
- if (!NodeGuards_1.NodeGuards.isCallExpressionNode(node)) {
- return;
- }
- if (blockScopeBodyNode.parentNode !== NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(node)) {
- return estraverse.VisitorOption.Skip;
- }
- _this.analyzeCallExpressionNode(stackTraceData, blockScopeBody, node);
- }
- });
- };
- for (var index = 0; index < blockScopeBodyLength; index++) {
- var _ret = _loop(index);
- if (_ret === "break") break;
- }
- return stackTraceData;
- }
- }, {
- key: "analyzeCallExpressionNode",
- value: function analyzeCallExpressionNode(stackTraceData, blockScopeBody, callExpressionNode) {
- var _this2 = this;
- StackTraceAnalyzer_1.calleeDataExtractorsList.forEach(function (calleeDataExtractorName) {
- var calleeData = _this2.calleeDataExtractorFactory(calleeDataExtractorName).extract(blockScopeBody, callExpressionNode.callee);
- if (!calleeData) {
- return;
- }
- stackTraceData.push(Object.assign(Object.assign({}, calleeData), {
- stackTrace: _this2.analyzeRecursive(calleeData.callee.body)
- }));
- });
- }
- }], [{
- key: "getLimitIndex",
- value: function getLimitIndex(blockScopeBodyLength) {
- var lastIndex = blockScopeBodyLength - 1;
- var limitThresholdActivationIndex = StackTraceAnalyzer_1.limitThresholdActivationLength - 1;
- var limitIndex = lastIndex;
- if (lastIndex > limitThresholdActivationIndex) {
- limitIndex = Math.round(limitThresholdActivationIndex + lastIndex * StackTraceAnalyzer_1.limitThreshold);
- if (limitIndex > lastIndex) {
- limitIndex = lastIndex;
- }
- }
- return limitIndex;
- }
- }]);
- return StackTraceAnalyzer;
- }();
- StackTraceAnalyzer.calleeDataExtractorsList = [CalleeDataExtractor_1.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor, CalleeDataExtractor_1.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor, CalleeDataExtractor_1.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor];
- StackTraceAnalyzer.limitThresholdActivationLength = 25;
- StackTraceAnalyzer.limitThreshold = 0.002;
- 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);
- exports.StackTraceAnalyzer = StackTraceAnalyzer;
- /***/ }),
- /***/ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts":
- /*!**************************************************************************************************!*\
- !*** ./src/analyzers/stack-trace-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts ***!
- \**************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var AbstractCalleeDataExtractor = function AbstractCalleeDataExtractor() {
- (0, _classCallCheck2["default"])(this, AbstractCalleeDataExtractor);
- };
- AbstractCalleeDataExtractor = tslib_1.__decorate([inversify_1.injectable()], AbstractCalleeDataExtractor);
- exports.AbstractCalleeDataExtractor = AbstractCalleeDataExtractor;
- /***/ }),
- /***/ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts":
- /*!*************************************************************************************************************!*\
- !*** ./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts ***!
- \*************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- var AbstractCalleeDataExtractor_1 = __webpack_require__(/*! ./AbstractCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
- var FunctionDeclarationCalleeDataExtractor =
- /*#__PURE__*/
- function (_AbstractCalleeDataEx) {
- (0, _inherits2["default"])(FunctionDeclarationCalleeDataExtractor, _AbstractCalleeDataEx);
- function FunctionDeclarationCalleeDataExtractor() {
- (0, _classCallCheck2["default"])(this, FunctionDeclarationCalleeDataExtractor);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(FunctionDeclarationCalleeDataExtractor).apply(this, arguments));
- }
- (0, _createClass2["default"])(FunctionDeclarationCalleeDataExtractor, [{
- key: "extract",
- value: function extract(blockScopeBody, callee) {
- if (!NodeGuards_1.NodeGuards.isIdentifierNode(callee)) {
- return null;
- }
- var calleeBlockStatement = this.getCalleeBlockStatement(NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]), callee.name);
- if (!calleeBlockStatement) {
- return null;
- }
- return {
- callee: calleeBlockStatement,
- name: callee.name
- };
- }
- }, {
- key: "getCalleeBlockStatement",
- value: function getCalleeBlockStatement(targetNode, name) {
- var calleeBlockStatement = null;
- estraverse.traverse(targetNode, {
- enter: function enter(node) {
- if (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) && node.id.name === name) {
- calleeBlockStatement = node.body;
- return estraverse.VisitorOption.Break;
- }
- }
- });
- return calleeBlockStatement;
- }
- }]);
- return FunctionDeclarationCalleeDataExtractor;
- }(AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor);
- FunctionDeclarationCalleeDataExtractor = tslib_1.__decorate([inversify_1.injectable()], FunctionDeclarationCalleeDataExtractor);
- exports.FunctionDeclarationCalleeDataExtractor = FunctionDeclarationCalleeDataExtractor;
- /***/ }),
- /***/ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts":
- /*!************************************************************************************************************!*\
- !*** ./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts ***!
- \************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- var AbstractCalleeDataExtractor_1 = __webpack_require__(/*! ./AbstractCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
- var FunctionExpressionCalleeDataExtractor =
- /*#__PURE__*/
- function (_AbstractCalleeDataEx) {
- (0, _inherits2["default"])(FunctionExpressionCalleeDataExtractor, _AbstractCalleeDataEx);
- function FunctionExpressionCalleeDataExtractor() {
- (0, _classCallCheck2["default"])(this, FunctionExpressionCalleeDataExtractor);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(FunctionExpressionCalleeDataExtractor).apply(this, arguments));
- }
- (0, _createClass2["default"])(FunctionExpressionCalleeDataExtractor, [{
- key: "extract",
- value: function extract(blockScopeBody, callee) {
- var calleeBlockStatement = null;
- if (NodeGuards_1.NodeGuards.isIdentifierNode(callee)) {
- calleeBlockStatement = this.getCalleeBlockStatement(NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]), callee.name);
- }
- if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(callee)) {
- calleeBlockStatement = callee.body;
- }
- if (!calleeBlockStatement) {
- return null;
- }
- return {
- callee: calleeBlockStatement,
- name: callee.name || null
- };
- }
- }, {
- key: "getCalleeBlockStatement",
- value: function getCalleeBlockStatement(targetNode, name) {
- var calleeBlockStatement = null;
- estraverse.traverse(targetNode, {
- enter: function enter(node, parentNode) {
- if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) && parentNode && NodeGuards_1.NodeGuards.isVariableDeclaratorNode(parentNode) && NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.id) && parentNode.id.name === name) {
- calleeBlockStatement = node.body;
- return estraverse.VisitorOption.Break;
- }
- }
- });
- return calleeBlockStatement;
- }
- }]);
- return FunctionExpressionCalleeDataExtractor;
- }(AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor);
- FunctionExpressionCalleeDataExtractor = tslib_1.__decorate([inversify_1.injectable()], FunctionExpressionCalleeDataExtractor);
- exports.FunctionExpressionCalleeDataExtractor = FunctionExpressionCalleeDataExtractor;
- /***/ }),
- /***/ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts":
- /*!**********************************************************************************************************!*\
- !*** ./src/analyzers/stack-trace-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts ***!
- \**********************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- var ObjectExpressionCalleeDataExtractor_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- var AbstractCalleeDataExtractor_1 = __webpack_require__(/*! ./AbstractCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
- var ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor_1 =
- /*#__PURE__*/
- function (_AbstractCalleeDataEx) {
- (0, _inherits2["default"])(ObjectExpressionCalleeDataExtractor, _AbstractCalleeDataEx);
- function ObjectExpressionCalleeDataExtractor() {
- (0, _classCallCheck2["default"])(this, ObjectExpressionCalleeDataExtractor);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ObjectExpressionCalleeDataExtractor).apply(this, arguments));
- }
- (0, _createClass2["default"])(ObjectExpressionCalleeDataExtractor, [{
- key: "extract",
- value: function extract(blockScopeBody, callee) {
- if (!NodeGuards_1.NodeGuards.isMemberExpressionNode(callee)) {
- return null;
- }
- var objectMembersCallsChain = this.createObjectMembersCallsChain([], callee);
- if (!objectMembersCallsChain.length) {
- return null;
- }
- var functionExpressionName = objectMembersCallsChain[objectMembersCallsChain.length - 1];
- var calleeBlockStatement = this.getCalleeBlockStatement(NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]), objectMembersCallsChain);
- if (!calleeBlockStatement) {
- return null;
- }
- return {
- callee: calleeBlockStatement,
- name: functionExpressionName
- };
- }
- }, {
- key: "createObjectMembersCallsChain",
- value: function createObjectMembersCallsChain(currentChain, memberExpression) {
- if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpression.property) && memberExpression.computed === false) {
- currentChain.unshift(memberExpression.property.name);
- } else if (NodeGuards_1.NodeGuards.isLiteralNode(memberExpression.property) && (typeof memberExpression.property.value === 'string' || typeof memberExpression.property.value === 'number')) {
- currentChain.unshift(memberExpression.property.value);
- } else {
- return currentChain;
- }
- if (NodeGuards_1.NodeGuards.isMemberExpressionNode(memberExpression.object)) {
- return this.createObjectMembersCallsChain(currentChain, memberExpression.object);
- } else if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpression.object)) {
- currentChain.unshift(memberExpression.object.name);
- }
- return currentChain;
- }
- }, {
- key: "getCalleeBlockStatement",
- value: function getCalleeBlockStatement(targetNode, objectMembersCallsChain) {
- var _this = this;
- var objectName = objectMembersCallsChain.shift();
- if (!objectName) {
- return null;
- }
- var calleeBlockStatement = null;
- estraverse.traverse(targetNode, {
- enter: function enter(node) {
- if (NodeGuards_1.NodeGuards.isVariableDeclaratorNode(node) && NodeGuards_1.NodeGuards.isIdentifierNode(node.id) && node.init && NodeGuards_1.NodeGuards.isObjectExpressionNode(node.init) && node.id.name === objectName) {
- calleeBlockStatement = _this.findCalleeBlockStatement(node.init.properties, objectMembersCallsChain);
- return estraverse.VisitorOption.Break;
- }
- }
- });
- return calleeBlockStatement;
- }
- }, {
- key: "findCalleeBlockStatement",
- value: function findCalleeBlockStatement(objectExpressionProperties, objectMembersCallsChain) {
- var nextItemInCallsChain = objectMembersCallsChain.shift();
- if (!nextItemInCallsChain) {
- return null;
- }
- var _iteratorNormalCompletion = true;
- var _didIteratorError = false;
- var _iteratorError = undefined;
- try {
- for (var _iterator = objectExpressionProperties[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
- var propertyNode = _step.value;
- if (!ObjectExpressionCalleeDataExtractor_1.isValidTargetPropertyNode(propertyNode, nextItemInCallsChain)) {
- continue;
- }
- if (NodeGuards_1.NodeGuards.isObjectExpressionNode(propertyNode.value)) {
- return this.findCalleeBlockStatement(propertyNode.value.properties, objectMembersCallsChain);
- }
- if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(propertyNode.value)) {
- return propertyNode.value.body;
- }
- }
- } catch (err) {
- _didIteratorError = true;
- _iteratorError = err;
- } finally {
- try {
- if (!_iteratorNormalCompletion && _iterator["return"] != null) {
- _iterator["return"]();
- }
- } finally {
- if (_didIteratorError) {
- throw _iteratorError;
- }
- }
- }
- return null;
- }
- }], [{
- key: "isValidTargetPropertyNode",
- value: function isValidTargetPropertyNode(propertyNode, nextItemInCallsChain) {
- if (!propertyNode.key) {
- return false;
- }
- var isTargetPropertyNodeWithIdentifierKey = NodeGuards_1.NodeGuards.isIdentifierNode(propertyNode.key) && propertyNode.key.name === nextItemInCallsChain;
- var isTargetPropertyNodeWithLiteralKey = NodeGuards_1.NodeGuards.isLiteralNode(propertyNode.key) && Boolean(propertyNode.key.value) && propertyNode.key.value === nextItemInCallsChain;
- return isTargetPropertyNodeWithIdentifierKey || isTargetPropertyNodeWithLiteralKey;
- }
- }]);
- return ObjectExpressionCalleeDataExtractor;
- }(AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor);
- ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor_1 = tslib_1.__decorate([inversify_1.injectable()], ObjectExpressionCalleeDataExtractor);
- exports.ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor;
- /***/ }),
- /***/ "./src/container/InversifyContainerFacade.ts":
- /*!***************************************************!*\
- !*** ./src/container/InversifyContainerFacade.ts ***!
- \***************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _construct2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/construct */ "@babel/runtime/helpers/construct"));
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ./ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var AnalyzersModule_1 = __webpack_require__(/*! ./modules/analyzers/AnalyzersModule */ "./src/container/modules/analyzers/AnalyzersModule.ts");
- var ControlFlowTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/ControlFlowTransformersModule */ "./src/container/modules/node-transformers/ControlFlowTransformersModule.ts");
- var ConvertingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/ConvertingTransformersModule */ "./src/container/modules/node-transformers/ConvertingTransformersModule.ts");
- var CustomNodesModule_1 = __webpack_require__(/*! ./modules/custom-nodes/CustomNodesModule */ "./src/container/modules/custom-nodes/CustomNodesModule.ts");
- var FinalizingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/FinalizingTransformersModule */ "./src/container/modules/node-transformers/FinalizingTransformersModule.ts");
- var GeneratorsModule_1 = __webpack_require__(/*! ./modules/generators/GeneratorsModule */ "./src/container/modules/generators/GeneratorsModule.ts");
- var NodeTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/NodeTransformersModule */ "./src/container/modules/node-transformers/NodeTransformersModule.ts");
- var ObfuscatingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/ObfuscatingTransformersModule */ "./src/container/modules/node-transformers/ObfuscatingTransformersModule.ts");
- var OptionsModule_1 = __webpack_require__(/*! ./modules/options/OptionsModule */ "./src/container/modules/options/OptionsModule.ts");
- var PreparingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/PreparingTransformersModule */ "./src/container/modules/node-transformers/PreparingTransformersModule.ts");
- var StoragesModule_1 = __webpack_require__(/*! ./modules/storages/StoragesModule */ "./src/container/modules/storages/StoragesModule.ts");
- var UtilsModule_1 = __webpack_require__(/*! ./modules/utils/UtilsModule */ "./src/container/modules/utils/UtilsModule.ts");
- var JavaScriptObfuscator_1 = __webpack_require__(/*! ../JavaScriptObfuscator */ "./src/JavaScriptObfuscator.ts");
- var Logger_1 = __webpack_require__(/*! ../logger/Logger */ "./src/logger/Logger.ts");
- var ObfuscationEventEmitter_1 = __webpack_require__(/*! ../event-emitters/ObfuscationEventEmitter */ "./src/event-emitters/ObfuscationEventEmitter.ts");
- var ObfuscatedCode_1 = __webpack_require__(/*! ../source-code/ObfuscatedCode */ "./src/source-code/ObfuscatedCode.ts");
- var SourceCode_1 = __webpack_require__(/*! ../source-code/SourceCode */ "./src/source-code/SourceCode.ts");
- var TransformersRunner_1 = __webpack_require__(/*! ../node-transformers/TransformersRunner */ "./src/node-transformers/TransformersRunner.ts");
- var InversifyContainerFacade =
- /*#__PURE__*/
- function () {
- function InversifyContainerFacade() {
- (0, _classCallCheck2["default"])(this, InversifyContainerFacade);
- this.container = new inversify_1.Container();
- }
- (0, _createClass2["default"])(InversifyContainerFacade, [{
- key: "get",
- value: function get(serviceIdentifier) {
- return this.container.get(serviceIdentifier);
- }
- }, {
- key: "getNamed",
- value: function getNamed(serviceIdentifier, named) {
- return this.container.getNamed(serviceIdentifier, named);
- }
- }, {
- key: "load",
- value: function load(sourceCode, sourceMap, options) {
- this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.ISourceCode).toDynamicValue(function () {
- return new SourceCode_1.SourceCode(sourceCode, sourceMap);
- }).inSingletonScope();
- this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.TInputOptions).toDynamicValue(function () {
- return options;
- }).inSingletonScope();
- this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.ILogger).to(Logger_1.Logger).inSingletonScope();
- this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.IJavaScriptObfuscator).to(JavaScriptObfuscator_1.JavaScriptObfuscator).inSingletonScope();
- this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.ITransformersRunner).to(TransformersRunner_1.TransformersRunner).inSingletonScope();
- this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatedCode).to(ObfuscatedCode_1.ObfuscatedCode);
- this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatedCode).toFactory(function (context) {
- return function (obfuscatedCodeAsString, sourceMapAsString) {
- var obfuscatedCode = context.container.get(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatedCode);
- obfuscatedCode.initialize(obfuscatedCodeAsString, sourceMapAsString);
- return obfuscatedCode;
- };
- });
- this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationEventEmitter).to(ObfuscationEventEmitter_1.ObfuscationEventEmitter).inSingletonScope();
- this.container.load(AnalyzersModule_1.analyzersModule);
- this.container.load(ControlFlowTransformersModule_1.controlFlowTransformersModule);
- this.container.load(ConvertingTransformersModule_1.convertingTransformersModule);
- this.container.load(CustomNodesModule_1.customNodesModule);
- this.container.load(FinalizingTransformersModule_1.finalizingTransformersModule);
- this.container.load(GeneratorsModule_1.generatorsModule);
- this.container.load(NodeTransformersModule_1.nodeTransformersModule);
- this.container.load(ObfuscatingTransformersModule_1.obfuscatingTransformersModule);
- this.container.load(OptionsModule_1.optionsModule);
- this.container.load(PreparingTransformersModule_1.preparingTransformersModule);
- this.container.load(StoragesModule_1.storagesModule);
- this.container.load(UtilsModule_1.utilsModule);
- }
- }, {
- key: "unload",
- value: function unload() {
- this.container.unbindAll();
- }
- }], [{
- key: "getFactory",
- value: function getFactory(serviceIdentifier) {
- return function (context) {
- return function (bindingName) {
- return context.container.getNamed(serviceIdentifier, bindingName);
- };
- };
- }
- }, {
- key: "getCacheFactory",
- value: function getCacheFactory(serviceIdentifier) {
- return function (context) {
- var cache = new Map();
- return function (bindingName) {
- if (cache.has(bindingName)) {
- return cache.get(bindingName);
- }
- var object = context.container.getNamed(serviceIdentifier, bindingName);
- cache.set(bindingName, object);
- return object;
- };
- };
- }
- }, {
- key: "getConstructorFactory",
- value: function getConstructorFactory(serviceIdentifier) {
- for (var _len = arguments.length, dependencies = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- dependencies[_key - 1] = arguments[_key];
- }
- return function (context) {
- var cache = new Map();
- var cachedDependencies = [];
- return function (bindingName) {
- dependencies.forEach(function (dependency, index) {
- if (!cachedDependencies[index]) {
- cachedDependencies[index] = context.container.get(dependency);
- }
- });
- if (cache.has(bindingName)) {
- return (0, _construct2["default"])(cache.get(bindingName), cachedDependencies);
- }
- var constructor = context.container.getNamed(serviceIdentifier, bindingName);
- cache.set(bindingName, constructor);
- return (0, _construct2["default"])(constructor, cachedDependencies);
- };
- };
- }
- }]);
- return InversifyContainerFacade;
- }();
- exports.InversifyContainerFacade = InversifyContainerFacade;
- /***/ }),
- /***/ "./src/container/ServiceIdentifiers.ts":
- /*!*********************************************!*\
- !*** ./src/container/ServiceIdentifiers.ts ***!
- \*********************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var ServiceIdentifiers;
- (function (ServiceIdentifiers) {
- ServiceIdentifiers["Factory__ICalleeDataExtractor"] = "Factory<ICalleeDataExtractor>";
- ServiceIdentifiers["Factory__IControlFlowCustomNode"] = "Factory<IControlFlowCustomNode>";
- ServiceIdentifiers["Factory__IControlFlowReplacer"] = "Factory<IControlFlowReplacer>";
- ServiceIdentifiers["Factory__ICustomNode"] = "Factory<ICustomNode>";
- ServiceIdentifiers["Factory__ICustomNodeGroup"] = "Factory<ICustomNodeGroup>";
- ServiceIdentifiers["Factory__IDeadCodeInjectionCustomNode"] = "Factory<IDeadCodeInjectionCustomNode>";
- ServiceIdentifiers["Factory__IIdentifierNamesGenerator"] = "Factory<IIdentifierNamesGenerator>";
- ServiceIdentifiers["Factory__IIdentifierObfuscatingReplacer"] = "Factory<IIdentifierObfuscatingReplacer>";
- ServiceIdentifiers["Factory__INodeGuard"] = "Factory<INodeGuard>";
- ServiceIdentifiers["Factory__INodeTransformer"] = "Factory<INodeTransformer[]>";
- ServiceIdentifiers["Factory__IObfuscatedCode"] = "Factory<IObfuscatedCode>";
- ServiceIdentifiers["Factory__IObfuscatingReplacer"] = "Factory<IObfuscatingReplacer>";
- ServiceIdentifiers["Factory__IPropertiesExtractor"] = "Factory<IPropertiesExtractor>";
- ServiceIdentifiers["Factory__TControlFlowStorage"] = "Factory<TControlFlowStorage>";
- ServiceIdentifiers["IArrayUtils"] = "IArrayUtils";
- ServiceIdentifiers["ICalleeDataExtractor"] = "ICalleeDataExtractor";
- ServiceIdentifiers["ICryptUtils"] = "ICryptUtils";
- ServiceIdentifiers["ICustomNode"] = "ICustomNode";
- ServiceIdentifiers["ICustomNodeGroup"] = "ICustomNodeGroup";
- ServiceIdentifiers["IControlFlowReplacer"] = "IControlFlowReplacer";
- ServiceIdentifiers["IEscapeSequenceEncoder"] = "IEscapeSequenceEncoder";
- ServiceIdentifiers["IIdentifierNamesGenerator"] = "IIdentifierNamesGenerator";
- ServiceIdentifiers["IIdentifierObfuscatingReplacer"] = "IIdentifierObfuscatingReplacer";
- ServiceIdentifiers["IJavaScriptObfuscator"] = "IJavaScriptObfuscator";
- ServiceIdentifiers["ILevelledTopologicalSorter"] = "ILevelledTopologicalSorter";
- ServiceIdentifiers["ILogger"] = "ILogger";
- ServiceIdentifiers["INodeGuard"] = "INodeGuard";
- ServiceIdentifiers["INodeTransformer"] = "INodeTransformer";
- ServiceIdentifiers["INodeTransformerNamesGroupsBuilder"] = "INodeTransformerNamesGroupsBuilder";
- ServiceIdentifiers["IObfuscationEventEmitter"] = "IObfuscationEventEmitter";
- ServiceIdentifiers["IObfuscatedCode"] = "IObfuscatedCode";
- ServiceIdentifiers["IOptions"] = "IOptions";
- ServiceIdentifiers["IOptionsNormalizer"] = "IOptionsNormalizer";
- ServiceIdentifiers["IObfuscatingReplacer"] = "IObfuscatingReplacer";
- ServiceIdentifiers["IPropertiesExtractor"] = "IPropertiesExtractor";
- ServiceIdentifiers["IRandomGenerator"] = "IRandomGenerator";
- ServiceIdentifiers["ISourceCode"] = "ISourceCode";
- ServiceIdentifiers["ISourceMapCorrector"] = "ISourceMapCorrector";
- ServiceIdentifiers["IStackTraceAnalyzer"] = "IStackTraceAnalyzer";
- ServiceIdentifiers["ITransformersRunner"] = "ITransformersRunner";
- ServiceIdentifiers["Newable__ICustomNode"] = "Newable<ICustomNode>";
- ServiceIdentifiers["Newable__TControlFlowStorage"] = "Newable<TControlFlowStorage>";
- ServiceIdentifiers["TCustomNodeGroupStorage"] = "TCustomNodeGroupStorage";
- ServiceIdentifiers["TInputOptions"] = "TInputOptions";
- ServiceIdentifiers["TStringArrayStorage"] = "TStringArrayStorage";
- })(ServiceIdentifiers = exports.ServiceIdentifiers || (exports.ServiceIdentifiers = {}));
- /***/ }),
- /***/ "./src/container/modules/analyzers/AnalyzersModule.ts":
- /*!************************************************************!*\
- !*** ./src/container/modules/analyzers/AnalyzersModule.ts ***!
- \************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var CalleeDataExtractor_1 = __webpack_require__(/*! ../../../enums/analyzers/stack-trace-analyzer/CalleeDataExtractor */ "./src/enums/analyzers/stack-trace-analyzer/CalleeDataExtractor.ts");
- var FunctionDeclarationCalleeDataExtractor_1 = __webpack_require__(/*! ../../../analyzers/stack-trace-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts");
- var FunctionExpressionCalleeDataExtractor_1 = __webpack_require__(/*! ../../../analyzers/stack-trace-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts");
- var ObjectExpressionCalleeDataExtractor_1 = __webpack_require__(/*! ../../../analyzers/stack-trace-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts");
- var StackTraceAnalyzer_1 = __webpack_require__(/*! ../../../analyzers/stack-trace-analyzer/StackTraceAnalyzer */ "./src/analyzers/stack-trace-analyzer/StackTraceAnalyzer.ts");
- exports.analyzersModule = new inversify_1.ContainerModule(function (bind) {
- bind(ServiceIdentifiers_1.ServiceIdentifiers.IStackTraceAnalyzer).to(StackTraceAnalyzer_1.StackTraceAnalyzer).inSingletonScope();
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor).to(FunctionDeclarationCalleeDataExtractor_1.FunctionDeclarationCalleeDataExtractor).whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor).to(FunctionExpressionCalleeDataExtractor_1.FunctionExpressionCalleeDataExtractor).whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor).to(ObjectExpressionCalleeDataExtractor_1.ObjectExpressionCalleeDataExtractor).whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICalleeDataExtractor).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor));
- });
- /***/ }),
- /***/ "./src/container/modules/custom-nodes/CustomNodesModule.ts":
- /*!*****************************************************************!*\
- !*** ./src/container/modules/custom-nodes/CustomNodesModule.ts ***!
- \*****************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
- var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts");
- var CustomNodeGroup_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNodeGroup */ "./src/enums/custom-nodes/CustomNodeGroup.ts");
- var DeadCodeInjectionCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/DeadCodeInjectionCustomNode */ "./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts");
- var ConsoleOutputCustomNodeGroup_1 = __webpack_require__(/*! ../../../custom-nodes/console-output-nodes/group/ConsoleOutputCustomNodeGroup */ "./src/custom-nodes/console-output-nodes/group/ConsoleOutputCustomNodeGroup.ts");
- var DebugProtectionCustomNodeGroup_1 = __webpack_require__(/*! ../../../custom-nodes/debug-protection-nodes/group/DebugProtectionCustomNodeGroup */ "./src/custom-nodes/debug-protection-nodes/group/DebugProtectionCustomNodeGroup.ts");
- var DomainLockCustomNodeGroup_1 = __webpack_require__(/*! ../../../custom-nodes/domain-lock-nodes/group/DomainLockCustomNodeGroup */ "./src/custom-nodes/domain-lock-nodes/group/DomainLockCustomNodeGroup.ts");
- var SelfDefendingCustomNodeGroup_1 = __webpack_require__(/*! ../../../custom-nodes/self-defending-nodes/group/SelfDefendingCustomNodeGroup */ "./src/custom-nodes/self-defending-nodes/group/SelfDefendingCustomNodeGroup.ts");
- var StringArrayCustomNodeGroup_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/group/StringArrayCustomNodeGroup */ "./src/custom-nodes/string-array-nodes/group/StringArrayCustomNodeGroup.ts");
- var BinaryExpressionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode */ "./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts");
- var BlockStatementControlFlowFlatteningNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode */ "./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts");
- var BlockStatementDeadCodeInjectionNode_1 = __webpack_require__(/*! ../../../custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode */ "./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts");
- 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");
- var CallExpressionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode */ "./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts");
- 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");
- var ConsoleOutputDisableExpressionNode_1 = __webpack_require__(/*! ../../../custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode */ "./src/custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode.ts");
- var DebugProtectionFunctionCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode */ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode.ts");
- var DebugProtectionFunctionIntervalNode_1 = __webpack_require__(/*! ../../../custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode */ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode.ts");
- var DebugProtectionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode */ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode.ts");
- var DomainLockNode_1 = __webpack_require__(/*! ../../../custom-nodes/domain-lock-nodes/DomainLockNode */ "./src/custom-nodes/domain-lock-nodes/DomainLockNode.ts");
- 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");
- var LogicalExpressionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode */ "./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts");
- var NodeCallsControllerFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/node-calls-controller-nodes/NodeCallsControllerFunctionNode */ "./src/custom-nodes/node-calls-controller-nodes/NodeCallsControllerFunctionNode.ts");
- var SelfDefendingUnicodeNode_1 = __webpack_require__(/*! ../../../custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode */ "./src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.ts");
- var StringArrayCallsWrapper_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/StringArrayCallsWrapper */ "./src/custom-nodes/string-array-nodes/StringArrayCallsWrapper.ts");
- var StringArrayNode_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/StringArrayNode */ "./src/custom-nodes/string-array-nodes/StringArrayNode.ts");
- var StringArrayRotateFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/StringArrayRotateFunctionNode */ "./src/custom-nodes/string-array-nodes/StringArrayRotateFunctionNode.ts");
- 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");
- var StringLiteralNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/StringLiteralNode */ "./src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts");
- exports.customNodesModule = new inversify_1.ContainerModule(function (bind) {
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(ConsoleOutputDisableExpressionNode_1.ConsoleOutputDisableExpressionNode).whenTargetNamed(CustomNode_1.CustomNode.ConsoleOutputDisableExpressionNode);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(DebugProtectionFunctionCallNode_1.DebugProtectionFunctionCallNode).whenTargetNamed(CustomNode_1.CustomNode.DebugProtectionFunctionCallNode);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(DebugProtectionFunctionIntervalNode_1.DebugProtectionFunctionIntervalNode).whenTargetNamed(CustomNode_1.CustomNode.DebugProtectionFunctionIntervalNode);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(DebugProtectionFunctionNode_1.DebugProtectionFunctionNode).whenTargetNamed(CustomNode_1.CustomNode.DebugProtectionFunctionNode);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(DomainLockNode_1.DomainLockNode).whenTargetNamed(CustomNode_1.CustomNode.DomainLockNode);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(NodeCallsControllerFunctionNode_1.NodeCallsControllerFunctionNode).whenTargetNamed(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(SelfDefendingUnicodeNode_1.SelfDefendingUnicodeNode).whenTargetNamed(CustomNode_1.CustomNode.SelfDefendingUnicodeNode);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(StringArrayCallsWrapper_1.StringArrayCallsWrapper).whenTargetNamed(CustomNode_1.CustomNode.StringArrayCallsWrapper);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(StringArrayNode_1.StringArrayNode).whenTargetNamed(CustomNode_1.CustomNode.StringArrayNode);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(StringArrayRotateFunctionNode_1.StringArrayRotateFunctionNode).whenTargetNamed(CustomNode_1.CustomNode.StringArrayRotateFunctionNode);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(BinaryExpressionFunctionNode_1.BinaryExpressionFunctionNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.BinaryExpressionFunctionNode);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(BlockStatementControlFlowFlatteningNode_1.BlockStatementControlFlowFlatteningNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(CallExpressionControlFlowStorageCallNode_1.CallExpressionControlFlowStorageCallNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(CallExpressionFunctionNode_1.CallExpressionFunctionNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionFunctionNode);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(ControlFlowStorageNode_1.ControlFlowStorageNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.ControlFlowStorageNode);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(ExpressionWithOperatorControlFlowStorageCallNode_1.ExpressionWithOperatorControlFlowStorageCallNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(LogicalExpressionFunctionNode_1.LogicalExpressionFunctionNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.LogicalExpressionFunctionNode);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(StringLiteralNode_1.StringLiteralNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralNode);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(StringLiteralControlFlowStorageCallNode_1.StringLiteralControlFlowStorageCallNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(BlockStatementDeadCodeInjectionNode_1.BlockStatementDeadCodeInjectionNode).whenTargetNamed(DeadCodeInjectionCustomNode_1.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(ConsoleOutputCustomNodeGroup_1.ConsoleOutputCustomNodeGroup).whenTargetNamed(CustomNodeGroup_1.CustomNodeGroup.ConsoleOutputCustomNodeGroup);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(DebugProtectionCustomNodeGroup_1.DebugProtectionCustomNodeGroup).whenTargetNamed(CustomNodeGroup_1.CustomNodeGroup.DebugProtectionCustomNodeGroup);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(DomainLockCustomNodeGroup_1.DomainLockCustomNodeGroup).whenTargetNamed(CustomNodeGroup_1.CustomNodeGroup.DomainLockCustomNodeGroup);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(SelfDefendingCustomNodeGroup_1.SelfDefendingCustomNodeGroup).whenTargetNamed(CustomNodeGroup_1.CustomNodeGroup.SelfDefendingCustomNodeGroup);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(StringArrayCustomNodeGroup_1.StringArrayCustomNodeGroup).whenTargetNamed(CustomNodeGroup_1.CustomNodeGroup.StringArrayCustomNodeGroup);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNode).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode));
- 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));
- 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));
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNodeGroup).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup));
- });
- /***/ }),
- /***/ "./src/container/modules/generators/GeneratorsModule.ts":
- /*!**************************************************************!*\
- !*** ./src/container/modules/generators/GeneratorsModule.ts ***!
- \**************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts");
- var DictionaryIdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../generators/identifier-names-generators/DictionaryIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/DictionaryIdentifierNamesGenerator.ts");
- var HexadecimalIdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts");
- var MangledIdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../generators/identifier-names-generators/MangledIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts");
- exports.generatorsModule = new inversify_1.ContainerModule(function (bind) {
- bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator).to(DictionaryIdentifierNamesGenerator_1.DictionaryIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator).to(HexadecimalIdentifierNamesGenerator_1.HexadecimalIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator).to(MangledIdentifierNamesGenerator_1.MangledIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator).toFactory(function (context) {
- var cachedIdentifierNamesGenerator = null;
- return function (options) {
- if (cachedIdentifierNamesGenerator) {
- return cachedIdentifierNamesGenerator;
- }
- var identifierNamesGenerator;
- switch (options.identifierNamesGenerator) {
- case IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator:
- identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator);
- break;
- case IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator:
- identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator);
- break;
- case IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator:
- default:
- identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator);
- }
- cachedIdentifierNamesGenerator = identifierNamesGenerator;
- return identifierNamesGenerator;
- };
- });
- });
- /***/ }),
- /***/ "./src/container/modules/node-transformers/ControlFlowTransformersModule.ts":
- /*!**********************************************************************************!*\
- !*** ./src/container/modules/node-transformers/ControlFlowTransformersModule.ts ***!
- \**********************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var ControlFlowReplacer_1 = __webpack_require__(/*! ../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts");
- var NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
- 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");
- var BlockStatementControlFlowTransformer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer */ "./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts");
- 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");
- var DeadCodeInjectionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer */ "./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts");
- var FunctionControlFlowTransformer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/FunctionControlFlowTransformer */ "./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts");
- 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");
- 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");
- exports.controlFlowTransformersModule = new inversify_1.ContainerModule(function (bind) {
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(BlockStatementControlFlowTransformer_1.BlockStatementControlFlowTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.BlockStatementControlFlowTransformer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(DeadCodeInjectionTransformer_1.DeadCodeInjectionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.DeadCodeInjectionTransformer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(FunctionControlFlowTransformer_1.FunctionControlFlowTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.FunctionControlFlowTransformer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer).to(BinaryExpressionControlFlowReplacer_1.BinaryExpressionControlFlowReplacer).whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.BinaryExpressionControlFlowReplacer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer).to(CallExpressionControlFlowReplacer_1.CallExpressionControlFlowReplacer).whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.CallExpressionControlFlowReplacer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer).to(LogicalExpressionControlFlowReplacer_1.LogicalExpressionControlFlowReplacer).whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.LogicalExpressionControlFlowReplacer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer).to(StringLiteralControlFlowReplacer_1.StringLiteralControlFlowReplacer).whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.StringLiteralControlFlowReplacer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowReplacer).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer));
- });
- /***/ }),
- /***/ "./src/container/modules/node-transformers/ConvertingTransformersModule.ts":
- /*!*********************************************************************************!*\
- !*** ./src/container/modules/node-transformers/ConvertingTransformersModule.ts ***!
- \*********************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
- var PropertiesExtractor_1 = __webpack_require__(/*! ../../../enums/node-transformers/converting-transformers/properties-extractors/PropertiesExtractor */ "./src/enums/node-transformers/converting-transformers/properties-extractors/PropertiesExtractor.ts");
- var AssignmentExpressionPropertiesExtractor_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/properties-extractors/AssignmentExpressionPropertiesExtractor */ "./src/node-transformers/converting-transformers/properties-extractors/AssignmentExpressionPropertiesExtractor.ts");
- var MemberExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/MemberExpressionTransformer */ "./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts");
- var MethodDefinitionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/MethodDefinitionTransformer */ "./src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts");
- var ObjectExpressionKeysTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/ObjectExpressionKeysTransformer */ "./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts");
- var ObjectExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/ObjectExpressionTransformer */ "./src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts");
- var SplitStringTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/SplitStringTransformer */ "./src/node-transformers/converting-transformers/SplitStringTransformer.ts");
- var TemplateLiteralTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/TemplateLiteralTransformer */ "./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts");
- var VariableDeclaratorPropertiesExtractor_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/properties-extractors/VariableDeclaratorPropertiesExtractor */ "./src/node-transformers/converting-transformers/properties-extractors/VariableDeclaratorPropertiesExtractor.ts");
- exports.convertingTransformersModule = new inversify_1.ContainerModule(function (bind) {
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(MemberExpressionTransformer_1.MemberExpressionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.MemberExpressionTransformer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(MethodDefinitionTransformer_1.MethodDefinitionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.MethodDefinitionTransformer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ObjectExpressionKeysTransformer_1.ObjectExpressionKeysTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ObjectExpressionTransformer_1.ObjectExpressionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectExpressionTransformer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(SplitStringTransformer_1.SplitStringTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.SplitStringTransformer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(TemplateLiteralTransformer_1.TemplateLiteralTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.IPropertiesExtractor).to(AssignmentExpressionPropertiesExtractor_1.AssignmentExpressionPropertiesExtractor).whenTargetNamed(PropertiesExtractor_1.PropertiesExtractor.AssignmentExpressionPropertiesExtractor);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.IPropertiesExtractor).to(VariableDeclaratorPropertiesExtractor_1.VariableDeclaratorPropertiesExtractor).whenTargetNamed(PropertiesExtractor_1.PropertiesExtractor.VariableDeclaratorPropertiesExtractor);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IPropertiesExtractor).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IPropertiesExtractor));
- });
- /***/ }),
- /***/ "./src/container/modules/node-transformers/FinalizingTransformersModule.ts":
- /*!*********************************************************************************!*\
- !*** ./src/container/modules/node-transformers/FinalizingTransformersModule.ts ***!
- \*********************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- exports.finalizingTransformersModule = new inversify_1.ContainerModule(function (bind) {});
- /***/ }),
- /***/ "./src/container/modules/node-transformers/NodeTransformersModule.ts":
- /*!***************************************************************************!*\
- !*** ./src/container/modules/node-transformers/NodeTransformersModule.ts ***!
- \***************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- exports.nodeTransformersModule = new inversify_1.ContainerModule(function (bind) {
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeTransformer).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer));
- });
- /***/ }),
- /***/ "./src/container/modules/node-transformers/ObfuscatingTransformersModule.ts":
- /*!**********************************************************************************!*\
- !*** ./src/container/modules/node-transformers/ObfuscatingTransformersModule.ts ***!
- \**********************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
- var LiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts");
- var NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
- 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");
- 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");
- var CatchClauseTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/CatchClauseTransformer */ "./src/node-transformers/obfuscating-transformers/CatchClauseTransformer.ts");
- var ClassDeclarationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/ClassDeclarationTransformer */ "./src/node-transformers/obfuscating-transformers/ClassDeclarationTransformer.ts");
- var FunctionDeclarationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/FunctionDeclarationTransformer */ "./src/node-transformers/obfuscating-transformers/FunctionDeclarationTransformer.ts");
- var FunctionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/FunctionTransformer */ "./src/node-transformers/obfuscating-transformers/FunctionTransformer.ts");
- var ImportDeclarationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/ImportDeclarationTransformer */ "./src/node-transformers/obfuscating-transformers/ImportDeclarationTransformer.ts");
- var LabeledStatementTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/LabeledStatementTransformer */ "./src/node-transformers/obfuscating-transformers/LabeledStatementTransformer.ts");
- var LiteralTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/LiteralTransformer */ "./src/node-transformers/obfuscating-transformers/LiteralTransformer.ts");
- 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");
- 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");
- var VariableDeclarationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/VariableDeclarationTransformer */ "./src/node-transformers/obfuscating-transformers/VariableDeclarationTransformer.ts");
- exports.obfuscatingTransformersModule = new inversify_1.ContainerModule(function (bind) {
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(CatchClauseTransformer_1.CatchClauseTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.CatchClauseTransformer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ClassDeclarationTransformer_1.ClassDeclarationTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ClassDeclarationTransformer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(FunctionDeclarationTransformer_1.FunctionDeclarationTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.FunctionDeclarationTransformer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(FunctionTransformer_1.FunctionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.FunctionTransformer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ImportDeclarationTransformer_1.ImportDeclarationTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ImportDeclarationTransformer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(LabeledStatementTransformer_1.LabeledStatementTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.LabeledStatementTransformer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(LiteralTransformer_1.LiteralTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.LiteralTransformer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(VariableDeclarationTransformer_1.VariableDeclarationTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.VariableDeclarationTransformer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer).to(BooleanLiteralObfuscatingReplacer_1.BooleanLiteralObfuscatingReplacer).whenTargetNamed(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.BooleanLiteralObfuscatingReplacer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer).to(NumberLiteralObfuscatingReplacer_1.NumberLiteralObfuscatingReplacer).whenTargetNamed(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.NumberLiteralObfuscatingReplacer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer).to(StringLiteralObfuscatingReplacer_1.StringLiteralObfuscatingReplacer).whenTargetNamed(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.StringLiteralObfuscatingReplacer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierObfuscatingReplacer).to(BaseIdentifierObfuscatingReplacer_1.BaseIdentifierObfuscatingReplacer).whenTargetNamed(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatingReplacer).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer));
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierObfuscatingReplacer));
- });
- /***/ }),
- /***/ "./src/container/modules/node-transformers/PreparingTransformersModule.ts":
- /*!********************************************************************************!*\
- !*** ./src/container/modules/node-transformers/PreparingTransformersModule.ts ***!
- \********************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
- var ObfuscatingGuard_1 = __webpack_require__(/*! ../../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard */ "./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts");
- var BlackListObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts");
- var CommentsTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/CommentsTransformer */ "./src/node-transformers/preparing-transformers/CommentsTransformer.ts");
- var ConditionalCommentObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts");
- var CustomNodesTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/CustomNodesTransformer */ "./src/node-transformers/preparing-transformers/CustomNodesTransformer.ts");
- var EvaCallExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/EvaCallExpressionTransformer */ "./src/node-transformers/preparing-transformers/EvaCallExpressionTransformer.ts");
- var MetadataTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/MetadataTransformer */ "./src/node-transformers/preparing-transformers/MetadataTransformer.ts");
- var ObfuscatingGuardsTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/ObfuscatingGuardsTransformer */ "./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts");
- var ParentificationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/ParentificationTransformer */ "./src/node-transformers/preparing-transformers/ParentificationTransformer.ts");
- var VariablePreserveTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/VariablePreserveTransformer */ "./src/node-transformers/preparing-transformers/VariablePreserveTransformer.ts");
- exports.preparingTransformersModule = new inversify_1.ContainerModule(function (bind) {
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(CommentsTransformer_1.CommentsTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.CommentsTransformer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(CustomNodesTransformer_1.CustomNodesTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.CustomNodesTransformer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(EvaCallExpressionTransformer_1.EvalCallExpressionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.EvalCallExpressionTransformer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(MetadataTransformer_1.MetadataTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.MetadataTransformer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ObfuscatingGuardsTransformer_1.ObfuscatingGuardsTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ObfuscatingGuardsTransformer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ParentificationTransformer_1.ParentificationTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ParentificationTransformer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard).to(BlackListObfuscatingGuard_1.BlackListObfuscatingGuard).inSingletonScope().whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.BlackListNodeGuard);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard).to(ConditionalCommentObfuscatingGuard_1.ConditionalCommentObfuscatingGuard).inSingletonScope().whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.ConditionalCommentNodeGuard);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeGuard).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard));
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(VariablePreserveTransformer_1.VariablePreserveTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.VariablePreserveTransformer);
- });
- /***/ }),
- /***/ "./src/container/modules/options/OptionsModule.ts":
- /*!********************************************************!*\
- !*** ./src/container/modules/options/OptionsModule.ts ***!
- \********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var Options_1 = __webpack_require__(/*! ../../../options/Options */ "./src/options/Options.ts");
- var OptionsNormalizer_1 = __webpack_require__(/*! ../../../options/OptionsNormalizer */ "./src/options/OptionsNormalizer.ts");
- exports.optionsModule = new inversify_1.ContainerModule(function (bind) {
- bind(ServiceIdentifiers_1.ServiceIdentifiers.IOptions).to(Options_1.Options).inSingletonScope();
- bind(ServiceIdentifiers_1.ServiceIdentifiers.IOptionsNormalizer).to(OptionsNormalizer_1.OptionsNormalizer).inSingletonScope();
- });
- /***/ }),
- /***/ "./src/container/modules/storages/StoragesModule.ts":
- /*!**********************************************************!*\
- !*** ./src/container/modules/storages/StoragesModule.ts ***!
- \**********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var ControlFlowStorage_1 = __webpack_require__(/*! ../../../storages/control-flow/ControlFlowStorage */ "./src/storages/control-flow/ControlFlowStorage.ts");
- var CustomNodeGroupStorage_1 = __webpack_require__(/*! ../../../storages/custom-node-group/CustomNodeGroupStorage */ "./src/storages/custom-node-group/CustomNodeGroupStorage.ts");
- var StringArrayStorage_1 = __webpack_require__(/*! ../../../storages/string-array/StringArrayStorage */ "./src/storages/string-array/StringArrayStorage.ts");
- exports.storagesModule = new inversify_1.ContainerModule(function (bind) {
- bind(ServiceIdentifiers_1.ServiceIdentifiers.TCustomNodeGroupStorage).to(CustomNodeGroupStorage_1.CustomNodeGroupStorage).inSingletonScope();
- bind(ServiceIdentifiers_1.ServiceIdentifiers.TStringArrayStorage).to(StringArrayStorage_1.StringArrayStorage).inSingletonScope();
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__TControlFlowStorage).toConstructor(ControlFlowStorage_1.ControlFlowStorage);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__TControlFlowStorage).toFactory(function (context) {
- return function () {
- var constructor = context.container.get(ServiceIdentifiers_1.ServiceIdentifiers.Newable__TControlFlowStorage);
- var randomGenerator = context.container.get(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator);
- var options = context.container.get(ServiceIdentifiers_1.ServiceIdentifiers.IOptions);
- var storage = new constructor(randomGenerator, options);
- storage.initialize();
- return storage;
- };
- });
- });
- /***/ }),
- /***/ "./src/container/modules/utils/UtilsModule.ts":
- /*!****************************************************!*\
- !*** ./src/container/modules/utils/UtilsModule.ts ***!
- \****************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var ArrayUtils_1 = __webpack_require__(/*! ../../../utils/ArrayUtils */ "./src/utils/ArrayUtils.ts");
- var CryptUtils_1 = __webpack_require__(/*! ../../../utils/CryptUtils */ "./src/utils/CryptUtils.ts");
- var EscapeSequenceEncoder_1 = __webpack_require__(/*! ../../../utils/EscapeSequenceEncoder */ "./src/utils/EscapeSequenceEncoder.ts");
- var LevelledTopologicalSorter_1 = __webpack_require__(/*! ../../../utils/LevelledTopologicalSorter */ "./src/utils/LevelledTopologicalSorter.ts");
- var NodeTransformerNamesGroupsBuilder_1 = __webpack_require__(/*! ../../../utils/NodeTransformerNamesGroupsBuilder */ "./src/utils/NodeTransformerNamesGroupsBuilder.ts");
- var RandomGenerator_1 = __webpack_require__(/*! ../../../utils/RandomGenerator */ "./src/utils/RandomGenerator.ts");
- exports.utilsModule = new inversify_1.ContainerModule(function (bind) {
- bind(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils).to(ArrayUtils_1.ArrayUtils).inSingletonScope();
- bind(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator).to(RandomGenerator_1.RandomGenerator).inSingletonScope();
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils).to(CryptUtils_1.CryptUtils).inSingletonScope();
- bind(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder).to(EscapeSequenceEncoder_1.EscapeSequenceEncoder).inSingletonScope();
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ILevelledTopologicalSorter).to(LevelledTopologicalSorter_1.LevelledTopologicalSorter);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder).to(NodeTransformerNamesGroupsBuilder_1.NodeTransformerNamesGroupsBuilder).inSingletonScope();
- });
- /***/ }),
- /***/ "./src/custom-nodes/AbstractCustomNode.ts":
- /*!************************************************!*\
- !*** ./src/custom-nodes/AbstractCustomNode.ts ***!
- \************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var AbstractCustomNode_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var GlobalVariableTemplate1_1 = __webpack_require__(/*! ../templates/GlobalVariableTemplate1 */ "./src/templates/GlobalVariableTemplate1.ts");
- var GlobalVariableTemplate2_1 = __webpack_require__(/*! ../templates/GlobalVariableTemplate2 */ "./src/templates/GlobalVariableTemplate2.ts");
- var AbstractCustomNode = AbstractCustomNode_1 =
- /*#__PURE__*/
- function () {
- function AbstractCustomNode(identifierNamesGeneratorFactory, randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, AbstractCustomNode);
- this.cachedNode = null;
- this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
- this.randomGenerator = randomGenerator;
- this.options = options;
- }
- (0, _createClass2["default"])(AbstractCustomNode, [{
- key: "getNode",
- value: function getNode() {
- if (!this.cachedNode) {
- this.cachedNode = this.getNodeStructure();
- }
- return this.cachedNode;
- }
- }, {
- key: "getGlobalVariableTemplate",
- value: function getGlobalVariableTemplate() {
- return this.randomGenerator.getRandomGenerator().pickone(AbstractCustomNode_1.globalVariableTemplateFunctions);
- }
- }]);
- return AbstractCustomNode;
- }();
- AbstractCustomNode.globalVariableTemplateFunctions = [GlobalVariableTemplate1_1.GlobalVariableTemplate1(), GlobalVariableTemplate2_1.GlobalVariableTemplate2()];
- 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);
- exports.AbstractCustomNode = AbstractCustomNode;
- /***/ }),
- /***/ "./src/custom-nodes/AbstractCustomNodeGroup.ts":
- /*!*****************************************************!*\
- !*** ./src/custom-nodes/AbstractCustomNodeGroup.ts ***!
- \*****************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var AbstractCustomNodeGroup =
- /*#__PURE__*/
- function () {
- function AbstractCustomNodeGroup(identifierNamesGeneratorFactory, randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, AbstractCustomNodeGroup);
- this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
- this.randomGenerator = randomGenerator;
- this.options = options;
- }
- (0, _createClass2["default"])(AbstractCustomNodeGroup, [{
- key: "getAppendEvent",
- value: function getAppendEvent() {
- return this.appendEvent;
- }
- }, {
- key: "getCustomNodes",
- value: function getCustomNodes() {
- return this.customNodes;
- }
- }, {
- key: "appendCustomNodeIfExist",
- value: function appendCustomNodeIfExist(customNodeName, callback) {
- var customNode = this.customNodes.get(customNodeName);
- if (!customNode) {
- return;
- }
- callback(customNode);
- }
- }, {
- key: "getRandomStackTraceIndex",
- value: function getRandomStackTraceIndex(stackTraceLength) {
- return this.randomGenerator.getRandomInteger(0, Math.max(0, Math.round(stackTraceLength - 1)));
- }
- }]);
- return AbstractCustomNodeGroup;
- }();
- 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);
- exports.AbstractCustomNodeGroup = AbstractCustomNodeGroup;
- /***/ }),
- /***/ "./src/custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode.ts":
- /*!*************************************************************************************!*\
- !*** ./src/custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode.ts ***!
- \*************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
- var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
- 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");
- var GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../../templates/GlobalVariableNoEvalTemplate */ "./src/templates/GlobalVariableNoEvalTemplate.ts");
- var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- var ConsoleOutputDisableExpressionNode =
- /*#__PURE__*/
- function (_AbstractCustomNode_) {
- (0, _inherits2["default"])(ConsoleOutputDisableExpressionNode, _AbstractCustomNode_);
- function ConsoleOutputDisableExpressionNode(identifierNamesGeneratorFactory, randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, ConsoleOutputDisableExpressionNode);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ConsoleOutputDisableExpressionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
- }
- (0, _createClass2["default"])(ConsoleOutputDisableExpressionNode, [{
- key: "initialize",
- value: function initialize(callsControllerFunctionName) {
- this.callsControllerFunctionName = callsControllerFunctionName;
- }
- }, {
- key: "getNodeStructure",
- value: function getNodeStructure() {
- return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
- }
- }, {
- key: "getTemplate",
- value: function getTemplate() {
- var globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval ? this.getGlobalVariableTemplate() : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate();
- return string_template_1["default"](ConsoleOutputDisableExpressionTemplate_1.ConsoleOutputDisableExpressionTemplate(), {
- consoleLogDisableFunctionName: this.identifierNamesGenerator.generate(),
- globalVariableTemplate: globalVariableTemplate,
- singleNodeCallControllerFunctionName: this.callsControllerFunctionName
- });
- }
- }]);
- return ConsoleOutputDisableExpressionNode;
- }(AbstractCustomNode_1.AbstractCustomNode);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ConsoleOutputDisableExpressionNode.prototype, "callsControllerFunctionName", void 0);
- 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);
- exports.ConsoleOutputDisableExpressionNode = ConsoleOutputDisableExpressionNode;
- /***/ }),
- /***/ "./src/custom-nodes/console-output-nodes/group/ConsoleOutputCustomNodeGroup.ts":
- /*!*************************************************************************************!*\
- !*** ./src/custom-nodes/console-output-nodes/group/ConsoleOutputCustomNodeGroup.ts ***!
- \*************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts");
- var ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
- var AbstractCustomNodeGroup_1 = __webpack_require__(/*! ../../AbstractCustomNodeGroup */ "./src/custom-nodes/AbstractCustomNodeGroup.ts");
- var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
- var ConsoleOutputCustomNodeGroup =
- /*#__PURE__*/
- function (_AbstractCustomNodeGr) {
- (0, _inherits2["default"])(ConsoleOutputCustomNodeGroup, _AbstractCustomNodeGr);
- function ConsoleOutputCustomNodeGroup(customNodeFactory, identifierNamesGeneratorFactory, randomGenerator, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, ConsoleOutputCustomNodeGroup);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ConsoleOutputCustomNodeGroup).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
- _this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation;
- _this.customNodeFactory = customNodeFactory;
- return _this;
- }
- (0, _createClass2["default"])(ConsoleOutputCustomNodeGroup, [{
- key: "appendCustomNodes",
- value: function appendCustomNodes(nodeWithStatements, stackTraceData) {
- var randomStackTraceIndex = this.getRandomStackTraceIndex(stackTraceData.length);
- this.appendCustomNodeIfExist(CustomNode_1.CustomNode.ConsoleOutputDisableExpressionNode, function (customNode) {
- NodeAppender_1.NodeAppender.appendToOptimalBlockScope(stackTraceData, nodeWithStatements, customNode.getNode(), randomStackTraceIndex);
- });
- this.appendCustomNodeIfExist(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, function (customNode) {
- var targetNodeWithStatements = stackTraceData.length ? NodeAppender_1.NodeAppender.getOptimalBlockScope(stackTraceData, randomStackTraceIndex, 1) : nodeWithStatements;
- NodeAppender_1.NodeAppender.prepend(targetNodeWithStatements, customNode.getNode());
- });
- }
- }, {
- key: "initialize",
- value: function initialize() {
- this.customNodes = new Map();
- if (!this.options.disableConsoleOutput) {
- return;
- }
- var callsControllerFunctionName = this.identifierNamesGenerator.generate();
- var consoleOutputDisableExpressionNode = this.customNodeFactory(CustomNode_1.CustomNode.ConsoleOutputDisableExpressionNode);
- var nodeCallsControllerFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode);
- consoleOutputDisableExpressionNode.initialize(callsControllerFunctionName);
- nodeCallsControllerFunctionNode.initialize(this.appendEvent, callsControllerFunctionName);
- this.customNodes.set(CustomNode_1.CustomNode.ConsoleOutputDisableExpressionNode, consoleOutputDisableExpressionNode);
- this.customNodes.set(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, nodeCallsControllerFunctionNode);
- }
- }]);
- return ConsoleOutputCustomNodeGroup;
- }(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Map)], ConsoleOutputCustomNodeGroup.prototype, "customNodes", void 0);
- 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);
- exports.ConsoleOutputCustomNodeGroup = ConsoleOutputCustomNodeGroup;
- /***/ }),
- /***/ "./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts":
- /*!****************************************************************************************!*\
- !*** ./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts ***!
- \****************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- var BinaryExpressionFunctionNode =
- /*#__PURE__*/
- function (_AbstractCustomNode_) {
- (0, _inherits2["default"])(BinaryExpressionFunctionNode, _AbstractCustomNode_);
- function BinaryExpressionFunctionNode(identifierNamesGeneratorFactory, randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, BinaryExpressionFunctionNode);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(BinaryExpressionFunctionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
- }
- (0, _createClass2["default"])(BinaryExpressionFunctionNode, [{
- key: "initialize",
- value: function initialize(operator) {
- this.operator = operator;
- }
- }, {
- key: "getNodeStructure",
- value: function getNodeStructure() {
- 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')))])));
- NodeUtils_1.NodeUtils.parentizeAst(structure);
- return [structure];
- }
- }]);
- return BinaryExpressionFunctionNode;
- }(AbstractCustomNode_1.AbstractCustomNode);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], BinaryExpressionFunctionNode.prototype, "operator", void 0);
- 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);
- exports.BinaryExpressionFunctionNode = BinaryExpressionFunctionNode;
- /***/ }),
- /***/ "./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts":
- /*!***************************************************************************************************!*\
- !*** ./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts ***!
- \***************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- var BlockStatementControlFlowFlatteningNode =
- /*#__PURE__*/
- function (_AbstractCustomNode_) {
- (0, _inherits2["default"])(BlockStatementControlFlowFlatteningNode, _AbstractCustomNode_);
- function BlockStatementControlFlowFlatteningNode(identifierNamesGeneratorFactory, randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, BlockStatementControlFlowFlatteningNode);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(BlockStatementControlFlowFlatteningNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
- }
- (0, _createClass2["default"])(BlockStatementControlFlowFlatteningNode, [{
- key: "initialize",
- value: function initialize(blockStatementBody, shuffledKeys, originalKeysIndexesInShuffledArray) {
- this.blockStatementBody = blockStatementBody;
- this.shuffledKeys = shuffledKeys;
- this.originalKeysIndexesInShuffledArray = originalKeysIndexesInShuffledArray;
- }
- }, {
- key: "getNodeStructure",
- value: function getNodeStructure() {
- var _this = this;
- var controllerIdentifierName = this.randomGenerator.getRandomString(6);
- var indexIdentifierName = this.randomGenerator.getRandomString(6);
- 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) {
- var statement = _this.blockStatementBody[key];
- var consequent = [statement];
- if (!NodeGuards_1.NodeGuards.isReturnStatementNode(statement)) {
- consequent.push(NodeFactory_1.NodeFactory.continueStatement());
- }
- return NodeFactory_1.NodeFactory.switchCaseNode(NodeFactory_1.NodeFactory.literalNode(String(index)), consequent);
- })), NodeFactory_1.NodeFactory.breakStatement()]))]);
- NodeUtils_1.NodeUtils.parentizeAst(structure);
- return [structure];
- }
- }]);
- return BlockStatementControlFlowFlatteningNode;
- }(AbstractCustomNode_1.AbstractCustomNode);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], BlockStatementControlFlowFlatteningNode.prototype, "blockStatementBody", void 0);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], BlockStatementControlFlowFlatteningNode.prototype, "originalKeysIndexesInShuffledArray", void 0);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], BlockStatementControlFlowFlatteningNode.prototype, "shuffledKeys", void 0);
- 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);
- exports.BlockStatementControlFlowFlatteningNode = BlockStatementControlFlowFlatteningNode;
- /***/ }),
- /***/ "./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts":
- /*!**************************************************************************************!*\
- !*** ./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts ***!
- \**************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- var CallExpressionFunctionNode =
- /*#__PURE__*/
- function (_AbstractCustomNode_) {
- (0, _inherits2["default"])(CallExpressionFunctionNode, _AbstractCustomNode_);
- function CallExpressionFunctionNode(identifierNamesGeneratorFactory, randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, CallExpressionFunctionNode);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(CallExpressionFunctionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
- }
- (0, _createClass2["default"])(CallExpressionFunctionNode, [{
- key: "initialize",
- value: function initialize(expressionArguments) {
- this.expressionArguments = expressionArguments;
- }
- }, {
- key: "getNodeStructure",
- value: function getNodeStructure() {
- var calleeIdentifier = NodeFactory_1.NodeFactory.identifierNode('callee');
- var params = [];
- var argumentsLength = this.expressionArguments.length;
- for (var i = 0; i < argumentsLength; i++) {
- params.push(NodeFactory_1.NodeFactory.identifierNode("param".concat(i + 1)));
- }
- 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))])));
- NodeUtils_1.NodeUtils.parentizeAst(structure);
- return [structure];
- }
- }]);
- return CallExpressionFunctionNode;
- }(AbstractCustomNode_1.AbstractCustomNode);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], CallExpressionFunctionNode.prototype, "expressionArguments", void 0);
- 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);
- exports.CallExpressionFunctionNode = CallExpressionFunctionNode;
- /***/ }),
- /***/ "./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts":
- /*!*****************************************************************************************!*\
- !*** ./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts ***!
- \*****************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- var LogicalExpressionFunctionNode =
- /*#__PURE__*/
- function (_AbstractCustomNode_) {
- (0, _inherits2["default"])(LogicalExpressionFunctionNode, _AbstractCustomNode_);
- function LogicalExpressionFunctionNode(identifierNamesGeneratorFactory, randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, LogicalExpressionFunctionNode);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(LogicalExpressionFunctionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
- }
- (0, _createClass2["default"])(LogicalExpressionFunctionNode, [{
- key: "initialize",
- value: function initialize(operator) {
- this.operator = operator;
- }
- }, {
- key: "getNodeStructure",
- value: function getNodeStructure() {
- 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')))])));
- NodeUtils_1.NodeUtils.parentizeAst(structure);
- return [structure];
- }
- }]);
- return LogicalExpressionFunctionNode;
- }(AbstractCustomNode_1.AbstractCustomNode);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], LogicalExpressionFunctionNode.prototype, "operator", void 0);
- 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);
- exports.LogicalExpressionFunctionNode = LogicalExpressionFunctionNode;
- /***/ }),
- /***/ "./src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts":
- /*!*****************************************************************************!*\
- !*** ./src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts ***!
- \*****************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- var StringLiteralNode =
- /*#__PURE__*/
- function (_AbstractCustomNode_) {
- (0, _inherits2["default"])(StringLiteralNode, _AbstractCustomNode_);
- function StringLiteralNode(identifierNamesGeneratorFactory, randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, StringLiteralNode);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(StringLiteralNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
- }
- (0, _createClass2["default"])(StringLiteralNode, [{
- key: "initialize",
- value: function initialize(literalValue) {
- this.literalValue = literalValue;
- }
- }, {
- key: "getNodeStructure",
- value: function getNodeStructure() {
- var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.literalNode(this.literalValue));
- return [structure];
- }
- }]);
- return StringLiteralNode;
- }(AbstractCustomNode_1.AbstractCustomNode);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringLiteralNode.prototype, "literalValue", void 0);
- 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);
- exports.StringLiteralNode = StringLiteralNode;
- /***/ }),
- /***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts":
- /*!*******************************************************************************************************************************!*\
- !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts ***!
- \*******************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray"));
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- var AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- var NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- var CallExpressionControlFlowStorageCallNode =
- /*#__PURE__*/
- function (_AbstractCustomNode_) {
- (0, _inherits2["default"])(CallExpressionControlFlowStorageCallNode, _AbstractCustomNode_);
- function CallExpressionControlFlowStorageCallNode(identifierNamesGeneratorFactory, randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, CallExpressionControlFlowStorageCallNode);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(CallExpressionControlFlowStorageCallNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
- }
- (0, _createClass2["default"])(CallExpressionControlFlowStorageCallNode, [{
- key: "initialize",
- value: function initialize(controlFlowStorageName, controlFlowStorageKey, callee, expressionArguments) {
- this.controlFlowStorageName = controlFlowStorageName;
- this.controlFlowStorageKey = controlFlowStorageKey;
- this.callee = callee;
- this.expressionArguments = expressionArguments;
- }
- }, {
- key: "getNodeStructure",
- value: function getNodeStructure() {
- 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))));
- NodeUtils_1.NodeUtils.parentizeAst(structure);
- return [structure];
- }
- }]);
- return CallExpressionControlFlowStorageCallNode;
- }(AbstractCustomNode_1.AbstractCustomNode);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], CallExpressionControlFlowStorageCallNode.prototype, "callee", void 0);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], CallExpressionControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], CallExpressionControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], CallExpressionControlFlowStorageCallNode.prototype, "expressionArguments", void 0);
- 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);
- exports.CallExpressionControlFlowStorageCallNode = CallExpressionControlFlowStorageCallNode;
- /***/ }),
- /***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts":
- /*!*************************************************************************************************************!*\
- !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts ***!
- \*************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray"));
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- var AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- var NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- var ControlFlowStorageNode =
- /*#__PURE__*/
- function (_AbstractCustomNode_) {
- (0, _inherits2["default"])(ControlFlowStorageNode, _AbstractCustomNode_);
- function ControlFlowStorageNode(identifierNamesGeneratorFactory, randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, ControlFlowStorageNode);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ControlFlowStorageNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
- }
- (0, _createClass2["default"])(ControlFlowStorageNode, [{
- key: "initialize",
- value: function initialize(controlFlowStorage) {
- this.controlFlowStorage = controlFlowStorage;
- }
- }, {
- key: "getNodeStructure",
- value: function getNodeStructure() {
- var propertyNodes = Array.from(this.controlFlowStorage.getStorage()).map(function (_ref) {
- var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
- key = _ref2[0],
- value = _ref2[1];
- var node = value.getNode()[0];
- if (!NodeGuards_1.NodeGuards.isExpressionStatementNode(node)) {
- throw new Error('Function node for control flow storage object should be passed inside the `ExpressionStatement` node!');
- }
- return NodeFactory_1.NodeFactory.propertyNode(NodeFactory_1.NodeFactory.identifierNode(key), node.expression);
- });
- var structure = NodeFactory_1.NodeFactory.variableDeclarationNode([NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorage.getStorageId()), NodeFactory_1.NodeFactory.objectExpressionNode(propertyNodes))]);
- structure = NodeUtils_1.NodeUtils.parentizeAst(structure);
- return [structure];
- }
- }]);
- return ControlFlowStorageNode;
- }(AbstractCustomNode_1.AbstractCustomNode);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], ControlFlowStorageNode.prototype, "controlFlowStorage", void 0);
- 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);
- exports.ControlFlowStorageNode = ControlFlowStorageNode;
- /***/ }),
- /***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts":
- /*!***************************************************************************************************************************************!*\
- !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts ***!
- \***************************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- var AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- var NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- var ExpressionWithOperatorControlFlowStorageCallNode =
- /*#__PURE__*/
- function (_AbstractCustomNode_) {
- (0, _inherits2["default"])(ExpressionWithOperatorControlFlowStorageCallNode, _AbstractCustomNode_);
- function ExpressionWithOperatorControlFlowStorageCallNode(identifierNamesGeneratorFactory, randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, ExpressionWithOperatorControlFlowStorageCallNode);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ExpressionWithOperatorControlFlowStorageCallNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
- }
- (0, _createClass2["default"])(ExpressionWithOperatorControlFlowStorageCallNode, [{
- key: "initialize",
- value: function initialize(controlFlowStorageName, controlFlowStorageKey, leftValue, rightValue) {
- this.controlFlowStorageName = controlFlowStorageName;
- this.controlFlowStorageKey = controlFlowStorageKey;
- this.leftValue = leftValue;
- this.rightValue = rightValue;
- }
- }, {
- key: "getNodeStructure",
- value: function getNodeStructure() {
- 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]));
- NodeUtils_1.NodeUtils.parentizeAst(structure);
- return [structure];
- }
- }]);
- return ExpressionWithOperatorControlFlowStorageCallNode;
- }(AbstractCustomNode_1.AbstractCustomNode);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "leftValue", void 0);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "rightValue", void 0);
- 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);
- exports.ExpressionWithOperatorControlFlowStorageCallNode = ExpressionWithOperatorControlFlowStorageCallNode;
- /***/ }),
- /***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts":
- /*!******************************************************************************************************************************!*\
- !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts ***!
- \******************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- var AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- var NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- var StringLiteralControlFlowStorageCallNode =
- /*#__PURE__*/
- function (_AbstractCustomNode_) {
- (0, _inherits2["default"])(StringLiteralControlFlowStorageCallNode, _AbstractCustomNode_);
- function StringLiteralControlFlowStorageCallNode(identifierNamesGeneratorFactory, randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, StringLiteralControlFlowStorageCallNode);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(StringLiteralControlFlowStorageCallNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
- }
- (0, _createClass2["default"])(StringLiteralControlFlowStorageCallNode, [{
- key: "initialize",
- value: function initialize(controlFlowStorageName, controlFlowStorageKey) {
- this.controlFlowStorageName = controlFlowStorageName;
- this.controlFlowStorageKey = controlFlowStorageKey;
- }
- }, {
- key: "getNodeStructure",
- value: function getNodeStructure() {
- var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey)));
- NodeUtils_1.NodeUtils.parentizeAst(structure);
- return [structure];
- }
- }]);
- return StringLiteralControlFlowStorageCallNode;
- }(AbstractCustomNode_1.AbstractCustomNode);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringLiteralControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringLiteralControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0);
- 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);
- exports.StringLiteralControlFlowStorageCallNode = StringLiteralControlFlowStorageCallNode;
- /***/ }),
- /***/ "./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts":
- /*!*******************************************************************************************!*\
- !*** ./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts ***!
- \*******************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray"));
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- var BlockStatementDeadCodeInjectionNode =
- /*#__PURE__*/
- function (_AbstractCustomNode_) {
- (0, _inherits2["default"])(BlockStatementDeadCodeInjectionNode, _AbstractCustomNode_);
- function BlockStatementDeadCodeInjectionNode(identifierNamesGeneratorFactory, randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, BlockStatementDeadCodeInjectionNode);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(BlockStatementDeadCodeInjectionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
- }
- (0, _createClass2["default"])(BlockStatementDeadCodeInjectionNode, [{
- key: "initialize",
- value: function initialize(blockStatementNode, deadCodeInjectionRootAstHostNode) {
- this.blockStatementNode = blockStatementNode;
- this.deadCodeInjectionRootAstHostNode = deadCodeInjectionRootAstHostNode;
- }
- }, {
- key: "getNodeStructure",
- value: function getNodeStructure() {
- var random1 = this.randomGenerator.getMathRandom() > 0.5;
- var random2 = this.randomGenerator.getMathRandom() > 0.5;
- var operator = random1 ? '===' : '!==';
- var leftString = this.randomGenerator.getRandomString(5);
- var rightString = random2 ? leftString : this.randomGenerator.getRandomString(5);
- var _ref = random1 === random2 ? [this.blockStatementNode, this.deadCodeInjectionRootAstHostNode] : [this.deadCodeInjectionRootAstHostNode, this.blockStatementNode],
- _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
- consequent = _ref2[0],
- alternate = _ref2[1];
- 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)]);
- NodeUtils_1.NodeUtils.parentizeAst(structure);
- return [structure];
- }
- }]);
- return BlockStatementDeadCodeInjectionNode;
- }(AbstractCustomNode_1.AbstractCustomNode);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], BlockStatementDeadCodeInjectionNode.prototype, "blockStatementNode", void 0);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], BlockStatementDeadCodeInjectionNode.prototype, "deadCodeInjectionRootAstHostNode", void 0);
- 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);
- exports.BlockStatementDeadCodeInjectionNode = BlockStatementDeadCodeInjectionNode;
- /***/ }),
- /***/ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode.ts":
- /*!************************************************************************************!*\
- !*** ./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode.ts ***!
- \************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
- var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- 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");
- var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- var DebugProtectionFunctionCallNode =
- /*#__PURE__*/
- function (_AbstractCustomNode_) {
- (0, _inherits2["default"])(DebugProtectionFunctionCallNode, _AbstractCustomNode_);
- function DebugProtectionFunctionCallNode(identifierNamesGeneratorFactory, randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, DebugProtectionFunctionCallNode);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(DebugProtectionFunctionCallNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
- }
- (0, _createClass2["default"])(DebugProtectionFunctionCallNode, [{
- key: "initialize",
- value: function initialize(debugProtectionFunctionName, callsControllerFunctionName) {
- this.debugProtectionFunctionName = debugProtectionFunctionName;
- this.callsControllerFunctionName = callsControllerFunctionName;
- }
- }, {
- key: "getNodeStructure",
- value: function getNodeStructure() {
- return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
- }
- }, {
- key: "getTemplate",
- value: function getTemplate() {
- return string_template_1["default"](DebugProtectionFunctionCallTemplate_1.DebugProtectionFunctionCallTemplate(), {
- debugProtectionFunctionName: this.debugProtectionFunctionName,
- singleNodeCallControllerFunctionName: this.callsControllerFunctionName
- });
- }
- }]);
- return DebugProtectionFunctionCallNode;
- }(AbstractCustomNode_1.AbstractCustomNode);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DebugProtectionFunctionCallNode.prototype, "callsControllerFunctionName", void 0);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DebugProtectionFunctionCallNode.prototype, "debugProtectionFunctionName", void 0);
- 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);
- exports.DebugProtectionFunctionCallNode = DebugProtectionFunctionCallNode;
- /***/ }),
- /***/ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode.ts":
- /*!****************************************************************************************!*\
- !*** ./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode.ts ***!
- \****************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
- var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- 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");
- var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- var DebugProtectionFunctionIntervalNode =
- /*#__PURE__*/
- function (_AbstractCustomNode_) {
- (0, _inherits2["default"])(DebugProtectionFunctionIntervalNode, _AbstractCustomNode_);
- function DebugProtectionFunctionIntervalNode(identifierNamesGeneratorFactory, randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, DebugProtectionFunctionIntervalNode);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(DebugProtectionFunctionIntervalNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
- }
- (0, _createClass2["default"])(DebugProtectionFunctionIntervalNode, [{
- key: "initialize",
- value: function initialize(debugProtectionFunctionName) {
- this.debugProtectionFunctionName = debugProtectionFunctionName;
- }
- }, {
- key: "getNodeStructure",
- value: function getNodeStructure() {
- return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
- }
- }, {
- key: "getTemplate",
- value: function getTemplate() {
- return string_template_1["default"](DebugProtectionFunctionIntervalTemplate_1.DebugProtectionFunctionIntervalTemplate(), {
- debugProtectionFunctionName: this.debugProtectionFunctionName
- });
- }
- }]);
- return DebugProtectionFunctionIntervalNode;
- }(AbstractCustomNode_1.AbstractCustomNode);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DebugProtectionFunctionIntervalNode.prototype, "debugProtectionFunctionName", void 0);
- 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);
- exports.DebugProtectionFunctionIntervalNode = DebugProtectionFunctionIntervalNode;
- /***/ }),
- /***/ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode.ts":
- /*!********************************************************************************!*\
- !*** ./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode.ts ***!
- \********************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
- var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
- var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- 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");
- 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");
- 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");
- var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- var DebugProtectionFunctionNode =
- /*#__PURE__*/
- function (_AbstractCustomNode_) {
- (0, _inherits2["default"])(DebugProtectionFunctionNode, _AbstractCustomNode_);
- function DebugProtectionFunctionNode(identifierNamesGeneratorFactory, randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, DebugProtectionFunctionNode);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(DebugProtectionFunctionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
- }
- (0, _createClass2["default"])(DebugProtectionFunctionNode, [{
- key: "initialize",
- value: function initialize(debugProtectionFunctionName) {
- this.debugProtectionFunctionName = debugProtectionFunctionName;
- }
- }, {
- key: "getNodeStructure",
- value: function getNodeStructure() {
- return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
- }
- }, {
- key: "getTemplate",
- value: function getTemplate() {
- var debuggerTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval ? DebuggerTemplate_1.DebuggerTemplate() : DebuggerTemplateNoEval_1.DebuggerTemplateNoEval();
- return string_template_1["default"](DebugProtectionFunctionTemplate_1.DebugProtectionFunctionTemplate(), {
- debuggerTemplate: debuggerTemplate,
- debugProtectionFunctionName: this.debugProtectionFunctionName
- });
- }
- }]);
- return DebugProtectionFunctionNode;
- }(AbstractCustomNode_1.AbstractCustomNode);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DebugProtectionFunctionNode.prototype, "debugProtectionFunctionName", void 0);
- 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);
- exports.DebugProtectionFunctionNode = DebugProtectionFunctionNode;
- /***/ }),
- /***/ "./src/custom-nodes/debug-protection-nodes/group/DebugProtectionCustomNodeGroup.ts":
- /*!*****************************************************************************************!*\
- !*** ./src/custom-nodes/debug-protection-nodes/group/DebugProtectionCustomNodeGroup.ts ***!
- \*****************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts");
- var ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
- var AbstractCustomNodeGroup_1 = __webpack_require__(/*! ../../AbstractCustomNodeGroup */ "./src/custom-nodes/AbstractCustomNodeGroup.ts");
- var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var DebugProtectionCustomNodeGroup =
- /*#__PURE__*/
- function (_AbstractCustomNodeGr) {
- (0, _inherits2["default"])(DebugProtectionCustomNodeGroup, _AbstractCustomNodeGr);
- function DebugProtectionCustomNodeGroup(customNodeFactory, identifierNamesGeneratorFactory, randomGenerator, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, DebugProtectionCustomNodeGroup);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(DebugProtectionCustomNodeGroup).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
- _this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation;
- _this.customNodeFactory = customNodeFactory;
- return _this;
- }
- (0, _createClass2["default"])(DebugProtectionCustomNodeGroup, [{
- key: "appendCustomNodes",
- value: function appendCustomNodes(nodeWithStatements, stackTraceData) {
- var _this2 = this;
- var randomStackTraceIndex = this.getRandomStackTraceIndex(stackTraceData.length);
- this.appendCustomNodeIfExist(CustomNode_1.CustomNode.DebugProtectionFunctionCallNode, function (customNode) {
- NodeAppender_1.NodeAppender.appendToOptimalBlockScope(stackTraceData, nodeWithStatements, customNode.getNode(), randomStackTraceIndex);
- });
- this.appendCustomNodeIfExist(CustomNode_1.CustomNode.DebugProtectionFunctionNode, function (customNode) {
- NodeAppender_1.NodeAppender.append(nodeWithStatements, customNode.getNode());
- });
- this.appendCustomNodeIfExist(CustomNode_1.CustomNode.DebugProtectionFunctionIntervalNode, function (customNode) {
- var programBodyLength = NodeGuards_1.NodeGuards.isSwitchCaseNode(nodeWithStatements) ? nodeWithStatements.consequent.length : nodeWithStatements.body.length;
- var randomIndex = _this2.randomGenerator.getRandomInteger(0, programBodyLength);
- NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customNode.getNode(), randomIndex);
- });
- this.appendCustomNodeIfExist(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, function (customNode) {
- var targetNodeWithStatements = stackTraceData.length ? NodeAppender_1.NodeAppender.getOptimalBlockScope(stackTraceData, randomStackTraceIndex, 1) : nodeWithStatements;
- NodeAppender_1.NodeAppender.prepend(targetNodeWithStatements, customNode.getNode());
- });
- }
- }, {
- key: "initialize",
- value: function initialize() {
- this.customNodes = new Map();
- if (!this.options.debugProtection) {
- return;
- }
- var debugProtectionFunctionName = this.identifierNamesGenerator.generate();
- var callsControllerFunctionName = this.identifierNamesGenerator.generate();
- var debugProtectionFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.DebugProtectionFunctionNode);
- var debugProtectionFunctionCallNode = this.customNodeFactory(CustomNode_1.CustomNode.DebugProtectionFunctionCallNode);
- var debugProtectionFunctionIntervalNode = this.customNodeFactory(CustomNode_1.CustomNode.DebugProtectionFunctionIntervalNode);
- var nodeCallsControllerFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode);
- debugProtectionFunctionNode.initialize(debugProtectionFunctionName);
- debugProtectionFunctionCallNode.initialize(debugProtectionFunctionName, callsControllerFunctionName);
- debugProtectionFunctionIntervalNode.initialize(debugProtectionFunctionName);
- nodeCallsControllerFunctionNode.initialize(this.appendEvent, callsControllerFunctionName);
- this.customNodes.set(CustomNode_1.CustomNode.DebugProtectionFunctionNode, debugProtectionFunctionNode);
- this.customNodes.set(CustomNode_1.CustomNode.DebugProtectionFunctionCallNode, debugProtectionFunctionCallNode);
- if (this.options.debugProtectionInterval) {
- this.customNodes.set(CustomNode_1.CustomNode.DebugProtectionFunctionIntervalNode, debugProtectionFunctionIntervalNode);
- }
- this.customNodes.set(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, nodeCallsControllerFunctionNode);
- }
- }]);
- return DebugProtectionCustomNodeGroup;
- }(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Map)], DebugProtectionCustomNodeGroup.prototype, "customNodes", void 0);
- 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);
- exports.DebugProtectionCustomNodeGroup = DebugProtectionCustomNodeGroup;
- /***/ }),
- /***/ "./src/custom-nodes/domain-lock-nodes/DomainLockNode.ts":
- /*!**************************************************************!*\
- !*** ./src/custom-nodes/domain-lock-nodes/DomainLockNode.ts ***!
- \**************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray"));
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
- var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
- var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- var DomainLockNodeTemplate_1 = __webpack_require__(/*! ../../templates/domain-lock-nodes/domain-lock-node/DomainLockNodeTemplate */ "./src/templates/domain-lock-nodes/domain-lock-node/DomainLockNodeTemplate.ts");
- var GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../../templates/GlobalVariableNoEvalTemplate */ "./src/templates/GlobalVariableNoEvalTemplate.ts");
- var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- var DomainLockNode =
- /*#__PURE__*/
- function (_AbstractCustomNode_) {
- (0, _inherits2["default"])(DomainLockNode, _AbstractCustomNode_);
- function DomainLockNode(identifierNamesGeneratorFactory, randomGenerator, cryptUtils, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, DomainLockNode);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(DomainLockNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
- _this.cryptUtils = cryptUtils;
- return _this;
- }
- (0, _createClass2["default"])(DomainLockNode, [{
- key: "initialize",
- value: function initialize(callsControllerFunctionName) {
- this.callsControllerFunctionName = callsControllerFunctionName;
- }
- }, {
- key: "getNodeStructure",
- value: function getNodeStructure() {
- return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
- }
- }, {
- key: "getTemplate",
- value: function getTemplate() {
- var domainsString = this.options.domainLock.join(';');
- var _this$cryptUtils$hide = this.cryptUtils.hideString(domainsString, domainsString.length * 3),
- _this$cryptUtils$hide2 = (0, _slicedToArray2["default"])(_this$cryptUtils$hide, 2),
- hiddenDomainsString = _this$cryptUtils$hide2[0],
- diff = _this$cryptUtils$hide2[1];
- var globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval ? this.getGlobalVariableTemplate() : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate();
- return string_template_1["default"](DomainLockNodeTemplate_1.DomainLockNodeTemplate(), {
- domainLockFunctionName: this.identifierNamesGenerator.generate(),
- diff: diff,
- domains: hiddenDomainsString,
- globalVariableTemplate: globalVariableTemplate,
- singleNodeCallControllerFunctionName: this.callsControllerFunctionName
- });
- }
- }]);
- return DomainLockNode;
- }(AbstractCustomNode_1.AbstractCustomNode);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DomainLockNode.prototype, "callsControllerFunctionName", void 0);
- 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);
- exports.DomainLockNode = DomainLockNode;
- /***/ }),
- /***/ "./src/custom-nodes/domain-lock-nodes/group/DomainLockCustomNodeGroup.ts":
- /*!*******************************************************************************!*\
- !*** ./src/custom-nodes/domain-lock-nodes/group/DomainLockCustomNodeGroup.ts ***!
- \*******************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts");
- var ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
- var AbstractCustomNodeGroup_1 = __webpack_require__(/*! ../../AbstractCustomNodeGroup */ "./src/custom-nodes/AbstractCustomNodeGroup.ts");
- var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
- var DomainLockCustomNodeGroup =
- /*#__PURE__*/
- function (_AbstractCustomNodeGr) {
- (0, _inherits2["default"])(DomainLockCustomNodeGroup, _AbstractCustomNodeGr);
- function DomainLockCustomNodeGroup(customNodeFactory, identifierNamesGeneratorFactory, randomGenerator, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, DomainLockCustomNodeGroup);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(DomainLockCustomNodeGroup).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
- _this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation;
- _this.customNodeFactory = customNodeFactory;
- return _this;
- }
- (0, _createClass2["default"])(DomainLockCustomNodeGroup, [{
- key: "appendCustomNodes",
- value: function appendCustomNodes(nodeWithStatements, stackTraceData) {
- var randomStackTraceIndex = this.getRandomStackTraceIndex(stackTraceData.length);
- this.appendCustomNodeIfExist(CustomNode_1.CustomNode.DomainLockNode, function (customNode) {
- NodeAppender_1.NodeAppender.appendToOptimalBlockScope(stackTraceData, nodeWithStatements, customNode.getNode(), randomStackTraceIndex);
- });
- this.appendCustomNodeIfExist(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, function (customNode) {
- var targetNodeWithStatements = stackTraceData.length ? NodeAppender_1.NodeAppender.getOptimalBlockScope(stackTraceData, randomStackTraceIndex, 1) : nodeWithStatements;
- NodeAppender_1.NodeAppender.prepend(targetNodeWithStatements, customNode.getNode());
- });
- }
- }, {
- key: "initialize",
- value: function initialize() {
- this.customNodes = new Map();
- if (!this.options.domainLock.length) {
- return;
- }
- var callsControllerFunctionName = this.identifierNamesGenerator.generate();
- var domainLockNode = this.customNodeFactory(CustomNode_1.CustomNode.DomainLockNode);
- var nodeCallsControllerFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode);
- domainLockNode.initialize(callsControllerFunctionName);
- nodeCallsControllerFunctionNode.initialize(this.appendEvent, callsControllerFunctionName);
- this.customNodes.set(CustomNode_1.CustomNode.DomainLockNode, domainLockNode);
- this.customNodes.set(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, nodeCallsControllerFunctionNode);
- }
- }]);
- return DomainLockCustomNodeGroup;
- }(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Map)], DomainLockCustomNodeGroup.prototype, "customNodes", void 0);
- 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);
- exports.DomainLockCustomNodeGroup = DomainLockCustomNodeGroup;
- /***/ }),
- /***/ "./src/custom-nodes/node-calls-controller-nodes/NodeCallsControllerFunctionNode.ts":
- /*!*****************************************************************************************!*\
- !*** ./src/custom-nodes/node-calls-controller-nodes/NodeCallsControllerFunctionNode.ts ***!
- \*****************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
- var ObfuscationEvent_1 = __webpack_require__(/*! ../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
- var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- var SingleNodeCallControllerTemplate_1 = __webpack_require__(/*! ../../templates/SingleNodeCallControllerTemplate */ "./src/templates/SingleNodeCallControllerTemplate.ts");
- var NoCustomNodes_1 = __webpack_require__(/*! ../../options/presets/NoCustomNodes */ "./src/options/presets/NoCustomNodes.ts");
- var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- var JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts");
- var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- var NodeCallsControllerFunctionNode =
- /*#__PURE__*/
- function (_AbstractCustomNode_) {
- (0, _inherits2["default"])(NodeCallsControllerFunctionNode, _AbstractCustomNode_);
- function NodeCallsControllerFunctionNode(identifierNamesGeneratorFactory, randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, NodeCallsControllerFunctionNode);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(NodeCallsControllerFunctionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
- }
- (0, _createClass2["default"])(NodeCallsControllerFunctionNode, [{
- key: "initialize",
- value: function initialize(appendEvent, callsControllerFunctionName) {
- this.appendEvent = appendEvent;
- this.callsControllerFunctionName = callsControllerFunctionName;
- }
- }, {
- key: "getNodeStructure",
- value: function getNodeStructure() {
- return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
- }
- }, {
- key: "getTemplate",
- value: function getTemplate() {
- if (this.appendEvent === ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation) {
- return JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(string_template_1["default"](SingleNodeCallControllerTemplate_1.SingleNodeCallControllerTemplate(), {
- singleNodeCallControllerFunctionName: this.callsControllerFunctionName
- }), Object.assign(Object.assign({}, NoCustomNodes_1.NO_ADDITIONAL_NODES_PRESET), {
- identifierNamesGenerator: this.options.identifierNamesGenerator,
- identifiersDictionary: this.options.identifiersDictionary,
- seed: this.options.seed
- })).getObfuscatedCode();
- }
- return string_template_1["default"](SingleNodeCallControllerTemplate_1.SingleNodeCallControllerTemplate(), {
- singleNodeCallControllerFunctionName: this.callsControllerFunctionName
- });
- }
- }]);
- return NodeCallsControllerFunctionNode;
- }(AbstractCustomNode_1.AbstractCustomNode);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], NodeCallsControllerFunctionNode.prototype, "callsControllerFunctionName", void 0);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], NodeCallsControllerFunctionNode.prototype, "appendEvent", void 0);
- 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);
- exports.NodeCallsControllerFunctionNode = NodeCallsControllerFunctionNode;
- /***/ }),
- /***/ "./src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.ts":
- /*!***************************************************************************!*\
- !*** ./src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.ts ***!
- \***************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
- var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- var NoCustomNodes_1 = __webpack_require__(/*! ../../options/presets/NoCustomNodes */ "./src/options/presets/NoCustomNodes.ts");
- 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");
- var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- var JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts");
- var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- var SelfDefendingUnicodeNode =
- /*#__PURE__*/
- function (_AbstractCustomNode_) {
- (0, _inherits2["default"])(SelfDefendingUnicodeNode, _AbstractCustomNode_);
- function SelfDefendingUnicodeNode(identifierNamesGeneratorFactory, randomGenerator, escapeSequenceEncoder, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, SelfDefendingUnicodeNode);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(SelfDefendingUnicodeNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
- _this.escapeSequenceEncoder = escapeSequenceEncoder;
- return _this;
- }
- (0, _createClass2["default"])(SelfDefendingUnicodeNode, [{
- key: "initialize",
- value: function initialize(callsControllerFunctionName) {
- this.callsControllerFunctionName = callsControllerFunctionName;
- }
- }, {
- key: "getNodeStructure",
- value: function getNodeStructure() {
- return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
- }
- }, {
- key: "getTemplate",
- value: function getTemplate() {
- return JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(string_template_1["default"](SelfDefendingTemplate_1.SelfDefendingTemplate(this.escapeSequenceEncoder), {
- selfDefendingFunctionName: this.identifierNamesGenerator.generate(),
- singleNodeCallControllerFunctionName: this.callsControllerFunctionName
- }), Object.assign(Object.assign({}, NoCustomNodes_1.NO_ADDITIONAL_NODES_PRESET), {
- identifierNamesGenerator: this.options.identifierNamesGenerator,
- identifiersDictionary: this.options.identifiersDictionary,
- seed: this.options.seed,
- unicodeEscapeSequence: true
- })).getObfuscatedCode();
- }
- }]);
- return SelfDefendingUnicodeNode;
- }(AbstractCustomNode_1.AbstractCustomNode);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], SelfDefendingUnicodeNode.prototype, "callsControllerFunctionName", void 0);
- 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);
- exports.SelfDefendingUnicodeNode = SelfDefendingUnicodeNode;
- /***/ }),
- /***/ "./src/custom-nodes/self-defending-nodes/group/SelfDefendingCustomNodeGroup.ts":
- /*!*************************************************************************************!*\
- !*** ./src/custom-nodes/self-defending-nodes/group/SelfDefendingCustomNodeGroup.ts ***!
- \*************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts");
- var ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
- var AbstractCustomNodeGroup_1 = __webpack_require__(/*! ../../AbstractCustomNodeGroup */ "./src/custom-nodes/AbstractCustomNodeGroup.ts");
- var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
- var SelfDefendingCustomNodeGroup =
- /*#__PURE__*/
- function (_AbstractCustomNodeGr) {
- (0, _inherits2["default"])(SelfDefendingCustomNodeGroup, _AbstractCustomNodeGr);
- function SelfDefendingCustomNodeGroup(customNodeFactory, identifierNamesGeneratorFactory, randomGenerator, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, SelfDefendingCustomNodeGroup);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(SelfDefendingCustomNodeGroup).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
- _this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation;
- _this.customNodeFactory = customNodeFactory;
- return _this;
- }
- (0, _createClass2["default"])(SelfDefendingCustomNodeGroup, [{
- key: "appendCustomNodes",
- value: function appendCustomNodes(nodeWithStatements, stackTraceData) {
- var randomStackTraceIndex = this.getRandomStackTraceIndex(stackTraceData.length);
- this.appendCustomNodeIfExist(CustomNode_1.CustomNode.SelfDefendingUnicodeNode, function (customNode) {
- NodeAppender_1.NodeAppender.appendToOptimalBlockScope(stackTraceData, nodeWithStatements, customNode.getNode(), randomStackTraceIndex);
- });
- this.appendCustomNodeIfExist(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, function (customNode) {
- var targetNodeWithStatements = stackTraceData.length ? NodeAppender_1.NodeAppender.getOptimalBlockScope(stackTraceData, randomStackTraceIndex, 1) : nodeWithStatements;
- NodeAppender_1.NodeAppender.prepend(targetNodeWithStatements, customNode.getNode());
- });
- }
- }, {
- key: "initialize",
- value: function initialize() {
- this.customNodes = new Map();
- if (!this.options.selfDefending) {
- return;
- }
- var callsControllerFunctionName = this.identifierNamesGenerator.generate();
- var selfDefendingUnicodeNode = this.customNodeFactory(CustomNode_1.CustomNode.SelfDefendingUnicodeNode);
- var nodeCallsControllerFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode);
- selfDefendingUnicodeNode.initialize(callsControllerFunctionName);
- nodeCallsControllerFunctionNode.initialize(this.appendEvent, callsControllerFunctionName);
- this.customNodes.set(CustomNode_1.CustomNode.SelfDefendingUnicodeNode, selfDefendingUnicodeNode);
- this.customNodes.set(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, nodeCallsControllerFunctionNode);
- }
- }]);
- return SelfDefendingCustomNodeGroup;
- }(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Map)], SelfDefendingCustomNodeGroup.prototype, "customNodes", void 0);
- 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);
- exports.SelfDefendingCustomNodeGroup = SelfDefendingCustomNodeGroup;
- /***/ }),
- /***/ "./src/custom-nodes/string-array-nodes/StringArrayCallsWrapper.ts":
- /*!************************************************************************!*\
- !*** ./src/custom-nodes/string-array-nodes/StringArrayCallsWrapper.ts ***!
- \************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
- var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
- var StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts");
- var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- var NoCustomNodes_1 = __webpack_require__(/*! ../../options/presets/NoCustomNodes */ "./src/options/presets/NoCustomNodes.ts");
- var AtobTemplate_1 = __webpack_require__(/*! ../../templates/AtobTemplate */ "./src/templates/AtobTemplate.ts");
- var GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../../templates/GlobalVariableNoEvalTemplate */ "./src/templates/GlobalVariableNoEvalTemplate.ts");
- var Rc4Template_1 = __webpack_require__(/*! ../../templates/Rc4Template */ "./src/templates/Rc4Template.ts");
- 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");
- 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");
- 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");
- 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");
- var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- var JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts");
- var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- var StringArrayCallsWrapper =
- /*#__PURE__*/
- function (_AbstractCustomNode_) {
- (0, _inherits2["default"])(StringArrayCallsWrapper, _AbstractCustomNode_);
- function StringArrayCallsWrapper(identifierNamesGeneratorFactory, randomGenerator, escapeSequenceEncoder, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, StringArrayCallsWrapper);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(StringArrayCallsWrapper).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
- _this.escapeSequenceEncoder = escapeSequenceEncoder;
- return _this;
- }
- (0, _createClass2["default"])(StringArrayCallsWrapper, [{
- key: "initialize",
- value: function initialize(stringArrayName, stringArrayCallsWrapperName) {
- this.stringArrayName = stringArrayName;
- this.stringArrayCallsWrapperName = stringArrayCallsWrapperName;
- }
- }, {
- key: "getNodeStructure",
- value: function getNodeStructure() {
- return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
- }
- }, {
- key: "getTemplate",
- value: function getTemplate() {
- var decodeNodeTemplate = this.getDecodeStringArrayTemplate();
- return JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(string_template_1["default"](StringArrayCallsWrapperTemplate_1.StringArrayCallsWrapperTemplate(), {
- decodeNodeTemplate: decodeNodeTemplate,
- stringArrayCallsWrapperName: this.stringArrayCallsWrapperName,
- stringArrayName: this.stringArrayName
- }), Object.assign(Object.assign({}, NoCustomNodes_1.NO_ADDITIONAL_NODES_PRESET), {
- identifierNamesGenerator: this.options.identifierNamesGenerator,
- identifiersDictionary: this.options.identifiersDictionary,
- seed: this.options.seed
- })).getObfuscatedCode();
- }
- }, {
- key: "getDecodeStringArrayTemplate",
- value: function getDecodeStringArrayTemplate() {
- var globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval ? this.getGlobalVariableTemplate() : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate();
- var atobPolyfill = string_template_1["default"](AtobTemplate_1.AtobTemplate(), {
- globalVariableTemplate: globalVariableTemplate
- });
- var decodeStringArrayTemplate = '';
- var selfDefendingCode = '';
- if (this.options.selfDefending) {
- selfDefendingCode = string_template_1["default"](SelfDefendingTemplate_1.SelfDefendingTemplate(this.randomGenerator, this.escapeSequenceEncoder), {
- stringArrayCallsWrapperName: this.stringArrayCallsWrapperName,
- stringArrayName: this.stringArrayName
- });
- }
- switch (this.options.stringArrayEncoding) {
- case StringArrayEncoding_1.StringArrayEncoding.Rc4:
- decodeStringArrayTemplate = string_template_1["default"](StringArrayRC4DecodeNodeTemplate_1.StringArrayRc4DecodeNodeTemplate(this.randomGenerator), {
- atobPolyfill: atobPolyfill,
- rc4Polyfill: Rc4Template_1.Rc4Template(),
- selfDefendingCode: selfDefendingCode,
- stringArrayCallsWrapperName: this.stringArrayCallsWrapperName
- });
- break;
- case StringArrayEncoding_1.StringArrayEncoding.Base64:
- decodeStringArrayTemplate = string_template_1["default"](StringArrayBase64DecodeNodeTemplate_1.StringArrayBase64DecodeNodeTemplate(this.randomGenerator), {
- atobPolyfill: atobPolyfill,
- selfDefendingCode: selfDefendingCode,
- stringArrayCallsWrapperName: this.stringArrayCallsWrapperName
- });
- }
- return decodeStringArrayTemplate;
- }
- }]);
- return StringArrayCallsWrapper;
- }(AbstractCustomNode_1.AbstractCustomNode);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringArrayCallsWrapper.prototype, "stringArrayName", void 0);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringArrayCallsWrapper.prototype, "stringArrayCallsWrapperName", void 0);
- 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);
- exports.StringArrayCallsWrapper = StringArrayCallsWrapper;
- /***/ }),
- /***/ "./src/custom-nodes/string-array-nodes/StringArrayNode.ts":
- /*!****************************************************************!*\
- !*** ./src/custom-nodes/string-array-nodes/StringArrayNode.ts ***!
- \****************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "@babel/runtime/helpers/get"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
- var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- var StringArrayTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-node/StringArrayTemplate */ "./src/templates/string-array-nodes/string-array-node/StringArrayTemplate.ts");
- var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- var StringArrayNode =
- /*#__PURE__*/
- function (_AbstractCustomNode_) {
- (0, _inherits2["default"])(StringArrayNode, _AbstractCustomNode_);
- function StringArrayNode(identifierNamesGeneratorFactory, randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, StringArrayNode);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(StringArrayNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
- }
- (0, _createClass2["default"])(StringArrayNode, [{
- key: "initialize",
- value: function initialize(stringArrayStorage, stringArrayName, stringArrayRotateValue) {
- this.stringArrayStorage = stringArrayStorage;
- this.stringArrayName = stringArrayName;
- this.stringArrayRotateValue = stringArrayRotateValue;
- }
- }, {
- key: "getNode",
- value: function getNode() {
- this.stringArrayStorage.rotateArray(this.stringArrayRotateValue);
- return (0, _get2["default"])((0, _getPrototypeOf2["default"])(StringArrayNode.prototype), "getNode", this).call(this);
- }
- }, {
- key: "getNodeStructure",
- value: function getNodeStructure() {
- return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
- }
- }, {
- key: "getTemplate",
- value: function getTemplate() {
- return string_template_1["default"](StringArrayTemplate_1.StringArrayTemplate(), {
- stringArrayName: this.stringArrayName,
- stringArray: this.stringArrayStorage.toString()
- });
- }
- }]);
- return StringArrayNode;
- }(AbstractCustomNode_1.AbstractCustomNode);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], StringArrayNode.prototype, "stringArrayStorage", void 0);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringArrayNode.prototype, "stringArrayName", void 0);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Number)], StringArrayNode.prototype, "stringArrayRotateValue", void 0);
- 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);
- exports.StringArrayNode = StringArrayNode;
- /***/ }),
- /***/ "./src/custom-nodes/string-array-nodes/StringArrayRotateFunctionNode.ts":
- /*!******************************************************************************!*\
- !*** ./src/custom-nodes/string-array-nodes/StringArrayRotateFunctionNode.ts ***!
- \******************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
- var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- var NoCustomNodes_1 = __webpack_require__(/*! ../../options/presets/NoCustomNodes */ "./src/options/presets/NoCustomNodes.ts");
- 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");
- 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");
- var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- var JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts");
- var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- var NumberUtils_1 = __webpack_require__(/*! ../../utils/NumberUtils */ "./src/utils/NumberUtils.ts");
- var StringArrayRotateFunctionNode =
- /*#__PURE__*/
- function (_AbstractCustomNode_) {
- (0, _inherits2["default"])(StringArrayRotateFunctionNode, _AbstractCustomNode_);
- function StringArrayRotateFunctionNode(identifierNamesGeneratorFactory, randomGenerator, escapeSequenceEncoder, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, StringArrayRotateFunctionNode);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(StringArrayRotateFunctionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
- _this.escapeSequenceEncoder = escapeSequenceEncoder;
- return _this;
- }
- (0, _createClass2["default"])(StringArrayRotateFunctionNode, [{
- key: "initialize",
- value: function initialize(stringArrayName, stringArrayRotateValue) {
- this.stringArrayName = stringArrayName;
- this.stringArrayRotateValue = stringArrayRotateValue;
- }
- }, {
- key: "getNodeStructure",
- value: function getNodeStructure() {
- return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
- }
- }, {
- key: "getTemplate",
- value: function getTemplate() {
- var timesName = this.identifierNamesGenerator.generate();
- var whileFunctionName = this.identifierNamesGenerator.generate();
- var code = '';
- if (this.options.selfDefending) {
- code = string_template_1["default"](SelfDefendingTemplate_1.SelfDefendingTemplate(this.escapeSequenceEncoder), {
- timesName: timesName,
- whileFunctionName: whileFunctionName
- });
- } else {
- code = "".concat(whileFunctionName, "(++").concat(timesName, ")");
- }
- return JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(string_template_1["default"](StringArrayRotateFunctionTemplate_1.StringArrayRotateFunctionTemplate(), {
- code: code,
- timesName: timesName,
- stringArrayName: this.stringArrayName,
- stringArrayRotateValue: NumberUtils_1.NumberUtils.toHex(this.stringArrayRotateValue),
- whileFunctionName: whileFunctionName
- }), Object.assign(Object.assign({}, NoCustomNodes_1.NO_ADDITIONAL_NODES_PRESET), {
- identifierNamesGenerator: this.options.identifierNamesGenerator,
- identifiersDictionary: this.options.identifiersDictionary,
- seed: this.options.seed
- })).getObfuscatedCode();
- }
- }]);
- return StringArrayRotateFunctionNode;
- }(AbstractCustomNode_1.AbstractCustomNode);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringArrayRotateFunctionNode.prototype, "stringArrayName", void 0);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Number)], StringArrayRotateFunctionNode.prototype, "stringArrayRotateValue", void 0);
- 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);
- exports.StringArrayRotateFunctionNode = StringArrayRotateFunctionNode;
- /***/ }),
- /***/ "./src/custom-nodes/string-array-nodes/group/StringArrayCustomNodeGroup.ts":
- /*!*********************************************************************************!*\
- !*** ./src/custom-nodes/string-array-nodes/group/StringArrayCustomNodeGroup.ts ***!
- \*********************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray"));
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts");
- var ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
- var AbstractCustomNodeGroup_1 = __webpack_require__(/*! ../../AbstractCustomNodeGroup */ "./src/custom-nodes/AbstractCustomNodeGroup.ts");
- var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
- var StringArrayCustomNodeGroup =
- /*#__PURE__*/
- function (_AbstractCustomNodeGr) {
- (0, _inherits2["default"])(StringArrayCustomNodeGroup, _AbstractCustomNodeGr);
- function StringArrayCustomNodeGroup(customNodeFactory, stringArrayStorage, identifierNamesGeneratorFactory, randomGenerator, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, StringArrayCustomNodeGroup);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(StringArrayCustomNodeGroup).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
- _this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation;
- _this.customNodeFactory = customNodeFactory;
- _this.stringArrayStorage = stringArrayStorage;
- return _this;
- }
- (0, _createClass2["default"])(StringArrayCustomNodeGroup, [{
- key: "appendCustomNodes",
- value: function appendCustomNodes(nodeWithStatements, stackTraceData) {
- if (!this.stringArrayStorage.getLength()) {
- return;
- }
- this.appendCustomNodeIfExist(CustomNode_1.CustomNode.StringArrayNode, function (customNode) {
- NodeAppender_1.NodeAppender.prepend(nodeWithStatements, customNode.getNode());
- });
- this.appendCustomNodeIfExist(CustomNode_1.CustomNode.StringArrayCallsWrapper, function (customNode) {
- NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customNode.getNode(), 1);
- });
- this.appendCustomNodeIfExist(CustomNode_1.CustomNode.StringArrayRotateFunctionNode, function (customNode) {
- NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customNode.getNode(), 1);
- });
- }
- }, {
- key: "initialize",
- value: function initialize() {
- this.customNodes = new Map();
- if (!this.options.stringArray) {
- return;
- }
- var stringArrayNode = this.customNodeFactory(CustomNode_1.CustomNode.StringArrayNode);
- var stringArrayCallsWrapper = this.customNodeFactory(CustomNode_1.CustomNode.StringArrayCallsWrapper);
- var stringArrayRotateFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.StringArrayRotateFunctionNode);
- var stringArrayStorageId = this.stringArrayStorage.getStorageId();
- var _stringArrayStorageId = stringArrayStorageId.split('|'),
- _stringArrayStorageId2 = (0, _slicedToArray2["default"])(_stringArrayStorageId, 2),
- stringArrayName = _stringArrayStorageId2[0],
- stringArrayCallsWrapperName = _stringArrayStorageId2[1];
- var stringArrayRotateValue;
- if (this.options.rotateStringArray) {
- stringArrayRotateValue = this.randomGenerator.getRandomInteger(100, 500);
- } else {
- stringArrayRotateValue = 0;
- }
- stringArrayNode.initialize(this.stringArrayStorage, stringArrayName, stringArrayRotateValue);
- stringArrayCallsWrapper.initialize(stringArrayName, stringArrayCallsWrapperName);
- stringArrayRotateFunctionNode.initialize(stringArrayName, stringArrayRotateValue);
- this.customNodes.set(CustomNode_1.CustomNode.StringArrayNode, stringArrayNode);
- this.customNodes.set(CustomNode_1.CustomNode.StringArrayCallsWrapper, stringArrayCallsWrapper);
- if (this.options.rotateStringArray) {
- this.customNodes.set(CustomNode_1.CustomNode.StringArrayRotateFunctionNode, stringArrayRotateFunctionNode);
- }
- }
- }]);
- return StringArrayCustomNodeGroup;
- }(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Map)], StringArrayCustomNodeGroup.prototype, "customNodes", void 0);
- 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);
- exports.StringArrayCustomNodeGroup = StringArrayCustomNodeGroup;
- /***/ }),
- /***/ "./src/decorators/Initializable.ts":
- /*!*****************************************!*\
- !*** ./src/decorators/Initializable.ts ***!
- \*****************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var defaultDescriptor = {
- configurable: true,
- enumerable: true
- };
- var initializedTargetMetadataKey = '_initialized';
- var initializablePropertiesSetMetadataKey = '_initializablePropertiesSet';
- var wrappedMethodsSetMetadataKey = '_wrappedMethodsSet';
- var constructorMethodName = 'constructor';
- function initializable() {
- var initializeMethodName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'initialize';
- var decoratorName = Object.keys(this)[0];
- return function (target, propertyKey) {
- var initializeMethod = target[initializeMethodName];
- if (!initializeMethod || typeof initializeMethod !== 'function') {
- throw new Error("`".concat(initializeMethodName, "` method with initialization logic not ") + "found. `@".concat(decoratorName, "` decorator requires `").concat(initializeMethodName, "` method"));
- }
- initializeTargetMetadata(initializedTargetMetadataKey, false, target);
- initializeTargetMetadata(initializablePropertiesSetMetadataKey, new Set(), target);
- initializeTargetMetadata(wrappedMethodsSetMetadataKey, new Set(), target);
- wrapTargetMethodsInInitializedCheck(target, initializeMethodName);
- wrapInitializeMethodInInitializeCheck(target, initializeMethodName, propertyKey);
- return wrapInitializableProperty(target, propertyKey);
- };
- }
- exports.initializable = initializable;
- function initializeTargetMetadata(metadataKey, metadataValue, target) {
- var hasInitializedMetadata = Reflect.hasMetadata(metadataKey, target);
- if (!hasInitializedMetadata) {
- Reflect.defineMetadata(metadataKey, metadataValue, target);
- }
- }
- function wrapTargetMethodsInInitializedCheck(target, initializeMethodName) {
- var ownPropertyNames = Object.getOwnPropertyNames(target);
- var prohibitedPropertyNames = [initializeMethodName, constructorMethodName];
- ownPropertyNames.forEach(function (propertyName) {
- var initializablePropertiesSet = Reflect.getMetadata(initializablePropertiesSetMetadataKey, target);
- var wrappedMethodsSet = Reflect.getMetadata(wrappedMethodsSetMetadataKey, target);
- var isProhibitedPropertyName = prohibitedPropertyNames.includes(propertyName) || initializablePropertiesSet.has(propertyName) || wrappedMethodsSet.has(propertyName);
- if (isProhibitedPropertyName) {
- return;
- }
- var targetProperty = target[propertyName];
- if (typeof targetProperty !== 'function') {
- return;
- }
- var methodDescriptor = Object.getOwnPropertyDescriptor(target, propertyName) || defaultDescriptor;
- var originalMethod = methodDescriptor.value;
- Object.defineProperty(target, propertyName, Object.assign(Object.assign({}, methodDescriptor), {
- value: function value() {
- if (!Reflect.getMetadata(initializedTargetMetadataKey, this)) {
- throw new Error("Class should be initialized with `".concat(initializeMethodName, "()` method"));
- }
- return originalMethod.apply(this, arguments);
- }
- }));
- wrappedMethodsSet.add(propertyName);
- });
- }
- function wrapInitializeMethodInInitializeCheck(target, initializeMethodName, propertyKey) {
- var methodDescriptor = Object.getOwnPropertyDescriptor(target, initializeMethodName) || defaultDescriptor;
- var originalMethod = methodDescriptor.value;
- Object.defineProperty(target, initializeMethodName, Object.assign(Object.assign({}, methodDescriptor), {
- value: function value() {
- Reflect.defineMetadata(initializedTargetMetadataKey, true, this);
- var result = originalMethod.apply(this, arguments);
- if (this[propertyKey]) {}
- return result;
- }
- }));
- }
- function wrapInitializableProperty(target, propertyKey) {
- var initializablePropertiesSet = Reflect.getMetadata(initializablePropertiesSetMetadataKey, target);
- initializablePropertiesSet.add(propertyKey);
- var initializablePropertyMetadataKey = "_".concat(propertyKey.toString());
- var propertyDescriptor = Object.getOwnPropertyDescriptor(target, initializablePropertyMetadataKey) || defaultDescriptor;
- Object.defineProperty(target, propertyKey, Object.assign(Object.assign({}, propertyDescriptor), {
- get: function get() {
- if (this[initializablePropertyMetadataKey] === undefined) {
- throw new Error("Property `".concat(propertyKey.toString(), "` is not initialized! Initialize it first!"));
- }
- return this[initializablePropertyMetadataKey];
- },
- set: function set(newVal) {
- this[initializablePropertyMetadataKey] = newVal;
- }
- }));
- return propertyDescriptor;
- }
- /***/ }),
- /***/ "./src/enums/ObfuscationTarget.ts":
- /*!****************************************!*\
- !*** ./src/enums/ObfuscationTarget.ts ***!
- \****************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var ObfuscationTarget;
- (function (ObfuscationTarget) {
- ObfuscationTarget["Browser"] = "browser";
- ObfuscationTarget["BrowserNoEval"] = "browser-no-eval";
- ObfuscationTarget["Node"] = "node";
- })(ObfuscationTarget = exports.ObfuscationTarget || (exports.ObfuscationTarget = {}));
- /***/ }),
- /***/ "./src/enums/StringArrayEncoding.ts":
- /*!******************************************!*\
- !*** ./src/enums/StringArrayEncoding.ts ***!
- \******************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var StringArrayEncoding;
- (function (StringArrayEncoding) {
- StringArrayEncoding["Base64"] = "base64";
- StringArrayEncoding["Rc4"] = "rc4";
- })(StringArrayEncoding = exports.StringArrayEncoding || (exports.StringArrayEncoding = {}));
- /***/ }),
- /***/ "./src/enums/analyzers/stack-trace-analyzer/CalleeDataExtractor.ts":
- /*!*************************************************************************!*\
- !*** ./src/enums/analyzers/stack-trace-analyzer/CalleeDataExtractor.ts ***!
- \*************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var CalleeDataExtractor;
- (function (CalleeDataExtractor) {
- CalleeDataExtractor["FunctionDeclarationCalleeDataExtractor"] = "FunctionDeclarationCalleeDataExtractor";
- CalleeDataExtractor["FunctionExpressionCalleeDataExtractor"] = "FunctionExpressionCalleeDataExtractor";
- CalleeDataExtractor["ObjectExpressionCalleeDataExtractor"] = "ObjectExpressionCalleeDataExtractor";
- })(CalleeDataExtractor = exports.CalleeDataExtractor || (exports.CalleeDataExtractor = {}));
- /***/ }),
- /***/ "./src/enums/custom-nodes/ControlFlowCustomNode.ts":
- /*!*********************************************************!*\
- !*** ./src/enums/custom-nodes/ControlFlowCustomNode.ts ***!
- \*********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var ControlFlowCustomNode;
- (function (ControlFlowCustomNode) {
- ControlFlowCustomNode["BinaryExpressionFunctionNode"] = "BinaryExpressionFunctionNode";
- ControlFlowCustomNode["BlockStatementControlFlowFlatteningNode"] = "BlockStatementControlFlowFlatteningNode";
- ControlFlowCustomNode["CallExpressionControlFlowStorageCallNode"] = "CallExpressionControlFlowStorageCallNode";
- ControlFlowCustomNode["CallExpressionFunctionNode"] = "CallExpressionFunctionNode";
- ControlFlowCustomNode["ControlFlowStorageNode"] = "ControlFlowStorageNode";
- ControlFlowCustomNode["ExpressionWithOperatorControlFlowStorageCallNode"] = "ExpressionWithOperatorControlFlowStorageCallNode";
- ControlFlowCustomNode["LogicalExpressionFunctionNode"] = "LogicalExpressionFunctionNode";
- ControlFlowCustomNode["StringLiteralControlFlowStorageCallNode"] = "StringLiteralControlFlowStorageCallNode";
- ControlFlowCustomNode["StringLiteralNode"] = "StringLiteralNode";
- })(ControlFlowCustomNode = exports.ControlFlowCustomNode || (exports.ControlFlowCustomNode = {}));
- /***/ }),
- /***/ "./src/enums/custom-nodes/CustomNode.ts":
- /*!**********************************************!*\
- !*** ./src/enums/custom-nodes/CustomNode.ts ***!
- \**********************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var CustomNode;
- (function (CustomNode) {
- CustomNode["ConsoleOutputDisableExpressionNode"] = "ConsoleOutputDisableExpressionNode";
- CustomNode["DebugProtectionFunctionCallNode"] = "DebugProtectionFunctionCallNode";
- CustomNode["DebugProtectionFunctionIntervalNode"] = "DebugProtectionFunctionIntervalNode";
- CustomNode["DebugProtectionFunctionNode"] = "DebugProtectionFunctionNode";
- CustomNode["DomainLockNode"] = "DomainLockNode";
- CustomNode["NodeCallsControllerFunctionNode"] = "NodeCallsControllerFunctionNode";
- CustomNode["SelfDefendingUnicodeNode"] = "SelfDefendingUnicodeNode";
- CustomNode["StringArrayCallsWrapper"] = "StringArrayCallsWrapper";
- CustomNode["StringArrayNode"] = "StringArrayNode";
- CustomNode["StringArrayRotateFunctionNode"] = "StringArrayRotateFunctionNode";
- })(CustomNode = exports.CustomNode || (exports.CustomNode = {}));
- /***/ }),
- /***/ "./src/enums/custom-nodes/CustomNodeGroup.ts":
- /*!***************************************************!*\
- !*** ./src/enums/custom-nodes/CustomNodeGroup.ts ***!
- \***************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var CustomNodeGroup;
- (function (CustomNodeGroup) {
- CustomNodeGroup["ConsoleOutputCustomNodeGroup"] = "ConsoleOutputCustomNodeGroup";
- CustomNodeGroup["DebugProtectionCustomNodeGroup"] = "DebugProtectionCustomNodeGroup";
- CustomNodeGroup["DomainLockCustomNodeGroup"] = "DomainLockCustomNodeGroup";
- CustomNodeGroup["SelfDefendingCustomNodeGroup"] = "SelfDefendingCustomNodeGroup";
- CustomNodeGroup["StringArrayCustomNodeGroup"] = "StringArrayCustomNodeGroup";
- })(CustomNodeGroup = exports.CustomNodeGroup || (exports.CustomNodeGroup = {}));
- /***/ }),
- /***/ "./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts":
- /*!***************************************************************!*\
- !*** ./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts ***!
- \***************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var DeadCodeInjectionCustomNode;
- (function (DeadCodeInjectionCustomNode) {
- DeadCodeInjectionCustomNode["BlockStatementDeadCodeInjectionNode"] = "BlockStatementDeadCodeInjectionNode";
- })(DeadCodeInjectionCustomNode = exports.DeadCodeInjectionCustomNode || (exports.DeadCodeInjectionCustomNode = {}));
- /***/ }),
- /***/ "./src/enums/event-emitters/ObfuscationEvent.ts":
- /*!******************************************************!*\
- !*** ./src/enums/event-emitters/ObfuscationEvent.ts ***!
- \******************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var ObfuscationEvent;
- (function (ObfuscationEvent) {
- ObfuscationEvent["AfterObfuscation"] = "afterObfuscation";
- ObfuscationEvent["BeforeObfuscation"] = "beforeObfuscation";
- })(ObfuscationEvent = exports.ObfuscationEvent || (exports.ObfuscationEvent = {}));
- /***/ }),
- /***/ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts":
- /*!**************************************************************************************!*\
- !*** ./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts ***!
- \**************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var IdentifierNamesGenerator;
- (function (IdentifierNamesGenerator) {
- IdentifierNamesGenerator["DictionaryIdentifierNamesGenerator"] = "dictionary";
- IdentifierNamesGenerator["HexadecimalIdentifierNamesGenerator"] = "hexadecimal";
- IdentifierNamesGenerator["MangledIdentifierNamesGenerator"] = "mangled";
- })(IdentifierNamesGenerator = exports.IdentifierNamesGenerator || (exports.IdentifierNamesGenerator = {}));
- /***/ }),
- /***/ "./src/enums/logger/LoggingMessage.ts":
- /*!********************************************!*\
- !*** ./src/enums/logger/LoggingMessage.ts ***!
- \********************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var LoggingMessage;
- (function (LoggingMessage) {
- LoggingMessage["EmptySourceCode"] = "Empty source code. Obfuscation canceled...";
- LoggingMessage["ObfuscationCompleted"] = "Obfuscation completed. Total time: %s sec.";
- LoggingMessage["ObfuscationStarted"] = "Obfuscation started...";
- LoggingMessage["RandomGeneratorSeed"] = "Random generator seed: %s...";
- LoggingMessage["TransformationStage"] = "Transformation stage: %s...";
- LoggingMessage["Version"] = "Version: %s";
- })(LoggingMessage = exports.LoggingMessage || (exports.LoggingMessage = {}));
- /***/ }),
- /***/ "./src/enums/logger/LoggingPrefix.ts":
- /*!*******************************************!*\
- !*** ./src/enums/logger/LoggingPrefix.ts ***!
- \*******************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var LoggingPrefix;
- (function (LoggingPrefix) {
- LoggingPrefix["Base"] = "[javascript-obfuscator]";
- LoggingPrefix["CLI"] = "[javascript-obfuscator-cli]";
- })(LoggingPrefix = exports.LoggingPrefix || (exports.LoggingPrefix = {}));
- /***/ }),
- /***/ "./src/enums/node-transformers/NodeTransformer.ts":
- /*!********************************************************!*\
- !*** ./src/enums/node-transformers/NodeTransformer.ts ***!
- \********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var NodeTransformer;
- (function (NodeTransformer) {
- NodeTransformer["BlockStatementControlFlowTransformer"] = "BlockStatementControlFlowTransformer";
- NodeTransformer["ClassDeclarationTransformer"] = "ClassDeclarationTransformer";
- NodeTransformer["CommentsTransformer"] = "CommentsTransformer";
- NodeTransformer["CustomNodesTransformer"] = "CustomNodesTransformer";
- NodeTransformer["DeadCodeInjectionTransformer"] = "DeadCodeInjectionTransformer";
- NodeTransformer["EvalCallExpressionTransformer"] = "EvalCallExpressionTransformer";
- NodeTransformer["FunctionControlFlowTransformer"] = "FunctionControlFlowTransformer";
- NodeTransformer["CatchClauseTransformer"] = "CatchClauseTransformer";
- NodeTransformer["FunctionDeclarationTransformer"] = "FunctionDeclarationTransformer";
- NodeTransformer["FunctionTransformer"] = "FunctionTransformer";
- NodeTransformer["ImportDeclarationTransformer"] = "ImportDeclarationTransformer";
- NodeTransformer["LabeledStatementTransformer"] = "LabeledStatementTransformer";
- NodeTransformer["LiteralTransformer"] = "LiteralTransformer";
- NodeTransformer["MemberExpressionTransformer"] = "MemberExpressionTransformer";
- NodeTransformer["MetadataTransformer"] = "MetadataTransformer";
- NodeTransformer["MethodDefinitionTransformer"] = "MethodDefinitionTransformer";
- NodeTransformer["ObfuscatingGuardsTransformer"] = "ObfuscatingGuardsTransformer";
- NodeTransformer["ObjectExpressionKeysTransformer"] = "ObjectExpressionKeysTransformer";
- NodeTransformer["ObjectExpressionTransformer"] = "ObjectExpressionTransformer";
- NodeTransformer["ParentificationTransformer"] = "ParentificationTransformer";
- NodeTransformer["SplitStringTransformer"] = "SplitStringTransformer";
- NodeTransformer["TemplateLiteralTransformer"] = "TemplateLiteralTransformer";
- NodeTransformer["VariableDeclarationTransformer"] = "VariableDeclarationTransformer";
- NodeTransformer["VariablePreserveTransformer"] = "VariablePreserveTransformer";
- })(NodeTransformer = exports.NodeTransformer || (exports.NodeTransformer = {}));
- /***/ }),
- /***/ "./src/enums/node-transformers/TransformationStage.ts":
- /*!************************************************************!*\
- !*** ./src/enums/node-transformers/TransformationStage.ts ***!
- \************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var TransformationStage;
- (function (TransformationStage) {
- TransformationStage["Initializing"] = "Initializing";
- TransformationStage["Preparing"] = "Preparing";
- TransformationStage["DeadCodeInjection"] = "DeadCodeInjection";
- TransformationStage["ControlFlowFlattening"] = "ControlFlowFlattening";
- TransformationStage["Converting"] = "Converting";
- TransformationStage["Obfuscating"] = "Obfuscating";
- TransformationStage["Finalizing"] = "Finalizing";
- })(TransformationStage = exports.TransformationStage || (exports.TransformationStage = {}));
- /***/ }),
- /***/ "./src/enums/node-transformers/VisitorDirection.ts":
- /*!*********************************************************!*\
- !*** ./src/enums/node-transformers/VisitorDirection.ts ***!
- \*********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var VisitorDirection;
- (function (VisitorDirection) {
- VisitorDirection["Enter"] = "enter";
- VisitorDirection["Leave"] = "leave";
- })(VisitorDirection = exports.VisitorDirection || (exports.VisitorDirection = {}));
- /***/ }),
- /***/ "./src/enums/node-transformers/converting-transformers/properties-extractors/PropertiesExtractor.ts":
- /*!**********************************************************************************************************!*\
- !*** ./src/enums/node-transformers/converting-transformers/properties-extractors/PropertiesExtractor.ts ***!
- \**********************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var PropertiesExtractor;
- (function (PropertiesExtractor) {
- PropertiesExtractor["AssignmentExpressionPropertiesExtractor"] = "AssignmentExpressionPropertiesExtractor";
- PropertiesExtractor["VariableDeclaratorPropertiesExtractor"] = "VariableDeclaratorPropertiesExtractor";
- })(PropertiesExtractor = exports.PropertiesExtractor || (exports.PropertiesExtractor = {}));
- /***/ }),
- /***/ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts":
- /*!***********************************************************************************************************!*\
- !*** ./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts ***!
- \***********************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var ControlFlowReplacer;
- (function (ControlFlowReplacer) {
- ControlFlowReplacer["BinaryExpressionControlFlowReplacer"] = "BinaryExpressionControlFlowReplacer";
- ControlFlowReplacer["CallExpressionControlFlowReplacer"] = "CallExpressionControlFlowReplacer";
- ControlFlowReplacer["LogicalExpressionControlFlowReplacer"] = "LogicalExpressionControlFlowReplacer";
- ControlFlowReplacer["StringLiteralControlFlowReplacer"] = "StringLiteralControlFlowReplacer";
- })(ControlFlowReplacer = exports.ControlFlowReplacer || (exports.ControlFlowReplacer = {}));
- /***/ }),
- /***/ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts":
- /*!*********************************************************************************************************************!*\
- !*** ./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts ***!
- \*********************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var IdentifierObfuscatingReplacer;
- (function (IdentifierObfuscatingReplacer) {
- IdentifierObfuscatingReplacer["BaseIdentifierObfuscatingReplacer"] = "BaseIdentifierObfuscatingReplacer";
- })(IdentifierObfuscatingReplacer = exports.IdentifierObfuscatingReplacer || (exports.IdentifierObfuscatingReplacer = {}));
- /***/ }),
- /***/ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts":
- /*!******************************************************************************************************************!*\
- !*** ./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts ***!
- \******************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var LiteralObfuscatingReplacer;
- (function (LiteralObfuscatingReplacer) {
- LiteralObfuscatingReplacer["BooleanLiteralObfuscatingReplacer"] = "BooleanLiteralObfuscatingReplacer";
- LiteralObfuscatingReplacer["NumberLiteralObfuscatingReplacer"] = "NumberLiteralObfuscatingReplacer";
- LiteralObfuscatingReplacer["StringLiteralObfuscatingReplacer"] = "StringLiteralObfuscatingReplacer";
- })(LiteralObfuscatingReplacer = exports.LiteralObfuscatingReplacer || (exports.LiteralObfuscatingReplacer = {}));
- /***/ }),
- /***/ "./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts":
- /*!***************************************************************************************************!*\
- !*** ./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts ***!
- \***************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var ObfuscatingGuard;
- (function (ObfuscatingGuard) {
- ObfuscatingGuard["BlackListNodeGuard"] = "BlackListNodeGuard";
- ObfuscatingGuard["ConditionalCommentNodeGuard"] = "ConditionalCommentNodeGuard";
- })(ObfuscatingGuard = exports.ObfuscatingGuard || (exports.ObfuscatingGuard = {}));
- /***/ }),
- /***/ "./src/enums/node/NodeType.ts":
- /*!************************************!*\
- !*** ./src/enums/node/NodeType.ts ***!
- \************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var NodeType;
- (function (NodeType) {
- NodeType["ArrayExpression"] = "ArrayExpression";
- NodeType["ArrayPattern"] = "ArrayPattern";
- NodeType["ArrowFunctionExpression"] = "ArrowFunctionExpression";
- NodeType["AssignmentExpression"] = "AssignmentExpression";
- NodeType["AssignmentPattern"] = "AssignmentPattern";
- NodeType["AwaitExpression"] = "AwaitExpression";
- NodeType["BinaryExpression"] = "BinaryExpression";
- NodeType["BlockStatement"] = "BlockStatement";
- NodeType["BreakStatement"] = "BreakStatement";
- NodeType["CallExpression"] = "CallExpression";
- NodeType["CatchClause"] = "CatchClause";
- NodeType["ClassDeclaration"] = "ClassDeclaration";
- NodeType["ContinueStatement"] = "ContinueStatement";
- NodeType["ExportNamedDeclaration"] = "ExportNamedDeclaration";
- NodeType["ExpressionStatement"] = "ExpressionStatement";
- NodeType["FunctionDeclaration"] = "FunctionDeclaration";
- NodeType["FunctionExpression"] = "FunctionExpression";
- NodeType["Identifier"] = "Identifier";
- NodeType["IfStatement"] = "IfStatement";
- NodeType["ImportDeclaration"] = "ImportDeclaration";
- NodeType["ImportDefaultSpecifier"] = "ImportDefaultSpecifier";
- NodeType["ImportNamespaceSpecifier"] = "ImportNamespaceSpecifier";
- NodeType["ImportSpecifier"] = "ImportSpecifier";
- NodeType["LabeledStatement"] = "LabeledStatement";
- NodeType["Literal"] = "Literal";
- NodeType["LogicalExpression"] = "LogicalExpression";
- NodeType["MemberExpression"] = "MemberExpression";
- NodeType["MethodDefinition"] = "MethodDefinition";
- NodeType["ObjectExpression"] = "ObjectExpression";
- NodeType["ObjectPattern"] = "ObjectPattern";
- NodeType["Program"] = "Program";
- NodeType["Property"] = "Property";
- NodeType["RestElement"] = "RestElement";
- NodeType["ReturnStatement"] = "ReturnStatement";
- NodeType["Super"] = "Super";
- NodeType["SwitchCase"] = "SwitchCase";
- NodeType["SwitchStatement"] = "SwitchStatement";
- NodeType["TaggedTemplateExpression"] = "TaggedTemplateExpression";
- NodeType["TemplateLiteral"] = "TemplateLiteral";
- NodeType["TryStatement"] = "TryStatement";
- NodeType["UnaryExpression"] = "UnaryExpression";
- NodeType["UpdateExpression"] = "UpdateExpression";
- NodeType["VariableDeclaration"] = "VariableDeclaration";
- NodeType["VariableDeclarator"] = "VariableDeclarator";
- NodeType["WhileStatement"] = "WhileStatement";
- })(NodeType = exports.NodeType || (exports.NodeType = {}));
- /***/ }),
- /***/ "./src/enums/source-map/SourceMapMode.ts":
- /*!***********************************************!*\
- !*** ./src/enums/source-map/SourceMapMode.ts ***!
- \***********************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var SourceMapMode;
- (function (SourceMapMode) {
- SourceMapMode["Inline"] = "inline";
- SourceMapMode["Separate"] = "separate";
- })(SourceMapMode = exports.SourceMapMode || (exports.SourceMapMode = {}));
- /***/ }),
- /***/ "./src/event-emitters/ObfuscationEventEmitter.ts":
- /*!*******************************************************!*\
- !*** ./src/event-emitters/ObfuscationEventEmitter.ts ***!
- \*******************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var eventemitter3_1 = tslib_1.__importDefault(__webpack_require__(/*! eventemitter3 */ "eventemitter3"));
- inversify_1.decorate(inversify_1.injectable(), eventemitter3_1["default"]);
- var ObfuscationEventEmitter =
- /*#__PURE__*/
- function (_eventemitter3_1$defa) {
- (0, _inherits2["default"])(ObfuscationEventEmitter, _eventemitter3_1$defa);
- function ObfuscationEventEmitter() {
- (0, _classCallCheck2["default"])(this, ObfuscationEventEmitter);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ObfuscationEventEmitter).apply(this, arguments));
- }
- return ObfuscationEventEmitter;
- }(eventemitter3_1["default"]);
- ObfuscationEventEmitter = tslib_1.__decorate([inversify_1.injectable()], ObfuscationEventEmitter);
- exports.ObfuscationEventEmitter = ObfuscationEventEmitter;
- /***/ }),
- /***/ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts":
- /*!****************************************************************************************!*\
- !*** ./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts ***!
- \****************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var AbstractIdentifierNamesGenerator =
- /*#__PURE__*/
- function () {
- function AbstractIdentifierNamesGenerator(randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, AbstractIdentifierNamesGenerator);
- this.preservedNames = [];
- this.randomGenerator = randomGenerator;
- this.options = options;
- }
- (0, _createClass2["default"])(AbstractIdentifierNamesGenerator, [{
- key: "preserveName",
- value: function preserveName(name) {
- this.preservedNames.push(name);
- }
- }, {
- key: "isValidIdentifierName",
- value: function isValidIdentifierName(name) {
- return this.notReservedName(name) && !this.preservedNames.includes(name);
- }
- }, {
- key: "notReservedName",
- value: function notReservedName(name) {
- return this.options.reservedNames.length ? !this.options.reservedNames.some(function (reservedName) {
- return new RegExp(reservedName, 'g').exec(name) !== null;
- }) : true;
- }
- }]);
- return AbstractIdentifierNamesGenerator;
- }();
- 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);
- exports.AbstractIdentifierNamesGenerator = AbstractIdentifierNamesGenerator;
- /***/ }),
- /***/ "./src/generators/identifier-names-generators/DictionaryIdentifierNamesGenerator.ts":
- /*!******************************************************************************************!*\
- !*** ./src/generators/identifier-names-generators/DictionaryIdentifierNamesGenerator.ts ***!
- \******************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- var DictionaryIdentifierNamesGenerator_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var AbstractIdentifierNamesGenerator_1 = __webpack_require__(/*! ./AbstractIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts");
- var DictionaryIdentifierNamesGenerator = DictionaryIdentifierNamesGenerator_1 =
- /*#__PURE__*/
- function (_AbstractIdentifierNa) {
- (0, _inherits2["default"])(DictionaryIdentifierNamesGenerator, _AbstractIdentifierNa);
- function DictionaryIdentifierNamesGenerator(randomGenerator, options, arrayUtils) {
- var _this;
- (0, _classCallCheck2["default"])(this, DictionaryIdentifierNamesGenerator);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(DictionaryIdentifierNamesGenerator).call(this, randomGenerator, options));
- _this.identifierNames = [];
- _this.arrayUtils = arrayUtils;
- _this.identifierNames = _this.getInitialIdentifierNames(_this.options.identifiersDictionary);
- _this.identifiersIterator = _this.identifierNames.values();
- return _this;
- }
- (0, _createClass2["default"])(DictionaryIdentifierNamesGenerator, [{
- key: "generate",
- value: function generate() {
- if (!this.identifierNames.length) {
- throw new Error('Too many identifiers in the code, add more words to identifiers dictionary');
- }
- var iteratorResult = this.identifiersIterator.next();
- if (!iteratorResult.done) {
- return iteratorResult.value;
- }
- this.identifierNames = this.getIncrementedIdentifierNames(this.identifierNames);
- this.identifiersIterator = this.identifierNames.values();
- return this.generate();
- }
- }, {
- key: "generateWithPrefix",
- value: function generateWithPrefix() {
- var prefix = this.options.identifiersPrefix ? "".concat(this.options.identifiersPrefix, "_") : '';
- var identifierName = this.generate();
- return "".concat(prefix).concat(identifierName).replace('__', '_');
- }
- }, {
- key: "getInitialIdentifierNames",
- value: function getInitialIdentifierNames(identifierNames) {
- var formattedIdentifierNames = identifierNames.map(function (identifierName) {
- return identifierName.toLowerCase();
- });
- return this.arrayUtils.shuffle(formattedIdentifierNames);
- }
- }, {
- key: "getIncrementedIdentifierNames",
- value: function getIncrementedIdentifierNames(identifierNames) {
- var formattedIdentifierNames = [];
- var _iteratorNormalCompletion = true;
- var _didIteratorError = false;
- var _iteratorError = undefined;
- try {
- for (var _iterator = identifierNames[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
- var identifierName = _step.value;
- var newIdentifierName = DictionaryIdentifierNamesGenerator_1.incrementIdentifierName(identifierName);
- if (newIdentifierName) {
- formattedIdentifierNames.push(newIdentifierName);
- }
- }
- } catch (err) {
- _didIteratorError = true;
- _iteratorError = err;
- } finally {
- try {
- if (!_iteratorNormalCompletion && _iterator["return"] != null) {
- _iterator["return"]();
- }
- } finally {
- if (_didIteratorError) {
- throw _iteratorError;
- }
- }
- }
- return this.arrayUtils.shuffle(formattedIdentifierNames);
- }
- }], [{
- key: "incrementIdentifierName",
- value: function incrementIdentifierName(identifierName) {
- var newIdentifierName = '';
- var isSuccess = false;
- var _iteratorNormalCompletion2 = true;
- var _didIteratorError2 = false;
- var _iteratorError2 = undefined;
- try {
- for (var _iterator2 = identifierName[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
- var character = _step2.value;
- if (!isSuccess && character === character.toUpperCase()) {
- newIdentifierName += character.toLowerCase();
- } else if (!isSuccess && character === character.toLowerCase()) {
- newIdentifierName += character.toUpperCase();
- isSuccess = true;
- } else {
- newIdentifierName += character;
- }
- }
- } catch (err) {
- _didIteratorError2 = true;
- _iteratorError2 = err;
- } finally {
- try {
- if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
- _iterator2["return"]();
- }
- } finally {
- if (_didIteratorError2) {
- throw _iteratorError2;
- }
- }
- }
- if (isSuccess) {
- return newIdentifierName;
- }
- return null;
- }
- }]);
- return DictionaryIdentifierNamesGenerator;
- }(AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator);
- 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);
- exports.DictionaryIdentifierNamesGenerator = DictionaryIdentifierNamesGenerator;
- /***/ }),
- /***/ "./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts":
- /*!*******************************************************************************************!*\
- !*** ./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts ***!
- \*******************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- var HexadecimalIdentifierNamesGenerator_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var AbstractIdentifierNamesGenerator_1 = __webpack_require__(/*! ./AbstractIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts");
- var NumberUtils_1 = __webpack_require__(/*! ../../utils/NumberUtils */ "./src/utils/NumberUtils.ts");
- var Utils_1 = __webpack_require__(/*! ../../utils/Utils */ "./src/utils/Utils.ts");
- var HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator_1 =
- /*#__PURE__*/
- function (_AbstractIdentifierNa) {
- (0, _inherits2["default"])(HexadecimalIdentifierNamesGenerator, _AbstractIdentifierNa);
- function HexadecimalIdentifierNamesGenerator(randomGenerator, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, HexadecimalIdentifierNamesGenerator);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(HexadecimalIdentifierNamesGenerator).call(this, randomGenerator, options));
- _this.randomVariableNameSet = new Set();
- return _this;
- }
- (0, _createClass2["default"])(HexadecimalIdentifierNamesGenerator, [{
- key: "generate",
- value: function generate(nameLength) {
- var rangeMinInteger = 10000;
- var rangeMaxInteger = 99999999;
- var randomInteger = this.randomGenerator.getRandomInteger(rangeMinInteger, rangeMaxInteger);
- var hexadecimalNumber = NumberUtils_1.NumberUtils.toHex(randomInteger);
- var prefixLength = Utils_1.Utils.hexadecimalPrefix.length + 1;
- var baseNameLength = nameLength ? nameLength - prefixLength : HexadecimalIdentifierNamesGenerator_1.baseIdentifierNameLength;
- var baseIdentifierName = hexadecimalNumber.substr(0, baseNameLength);
- var identifierName = "_".concat(Utils_1.Utils.hexadecimalPrefix).concat(baseIdentifierName);
- if (this.randomVariableNameSet.has(identifierName)) {
- return this.generate(nameLength);
- }
- this.randomVariableNameSet.add(identifierName);
- return identifierName;
- }
- }, {
- key: "generateWithPrefix",
- value: function generateWithPrefix(nameLength) {
- var identifierName = this.generate(nameLength);
- return "".concat(this.options.identifiersPrefix).concat(identifierName).replace('__', '_');
- }
- }]);
- return HexadecimalIdentifierNamesGenerator;
- }(AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator);
- HexadecimalIdentifierNamesGenerator.baseIdentifierNameLength = 6;
- 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);
- exports.HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator;
- /***/ }),
- /***/ "./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts":
- /*!***************************************************************************************!*\
- !*** ./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts ***!
- \***************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "@babel/runtime/helpers/get"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- var MangledIdentifierNamesGenerator_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var AbstractIdentifierNamesGenerator_1 = __webpack_require__(/*! ./AbstractIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts");
- var MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator_1 =
- /*#__PURE__*/
- function (_AbstractIdentifierNa) {
- (0, _inherits2["default"])(MangledIdentifierNamesGenerator, _AbstractIdentifierNa);
- function MangledIdentifierNamesGenerator(randomGenerator, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, MangledIdentifierNamesGenerator);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(MangledIdentifierNamesGenerator).call(this, randomGenerator, options));
- _this.previousMangledName = MangledIdentifierNamesGenerator_1.initMangledNameCharacter;
- return _this;
- }
- (0, _createClass2["default"])(MangledIdentifierNamesGenerator, [{
- key: "generate",
- value: function generate(nameLength) {
- var identifierName = this.generateNewMangledName(this.previousMangledName);
- this.previousMangledName = identifierName;
- return identifierName;
- }
- }, {
- key: "generateWithPrefix",
- value: function generateWithPrefix(nameLength) {
- var prefix = this.options.identifiersPrefix ? "".concat(this.options.identifiersPrefix, "_") : '';
- var identifierName = this.generate(nameLength);
- return "".concat(prefix).concat(identifierName);
- }
- }, {
- key: "isValidIdentifierName",
- value: function isValidIdentifierName(mangledName) {
- return (0, _get2["default"])((0, _getPrototypeOf2["default"])(MangledIdentifierNamesGenerator.prototype), "isValidIdentifierName", this).call(this, mangledName) && !MangledIdentifierNamesGenerator_1.reservedNames.includes(mangledName);
- }
- }, {
- key: "generateNewMangledName",
- value: function generateNewMangledName(previousMangledName) {
- var generateNewMangledName = function generateNewMangledName(name) {
- var nameSequence = MangledIdentifierNamesGenerator_1.nameSequence;
- var nameLength = name.length;
- var zeroSequence = function zeroSequence(num) {
- return '0'.repeat(num);
- };
- var index = nameLength - 1;
- do {
- var character = name.charAt(index);
- var indexInSequence = nameSequence.indexOf(character);
- var lastNameSequenceIndex = nameSequence.length - 1;
- if (indexInSequence !== lastNameSequenceIndex) {
- var previousNamePart = name.substring(0, index);
- var nextCharacter = nameSequence[indexInSequence + 1];
- var zeroSequenceLength = nameLength - (index + 1);
- var zeroSequenceCharacters = zeroSequence(zeroSequenceLength);
- return previousNamePart + nextCharacter + zeroSequenceCharacters;
- }
- --index;
- } while (index >= 0);
- return "a".concat(zeroSequence(nameLength));
- };
- var newMangledName = generateNewMangledName(previousMangledName);
- if (!this.isValidIdentifierName(newMangledName)) {
- newMangledName = this.generateNewMangledName(newMangledName);
- }
- return newMangledName;
- }
- }]);
- return MangledIdentifierNamesGenerator;
- }(AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator);
- MangledIdentifierNamesGenerator.initMangledNameCharacter = '9';
- MangledIdentifierNamesGenerator.nameSequence = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
- MangledIdentifierNamesGenerator.reservedNames = ['byte', 'case', 'char', 'do', 'else', 'enum', 'eval', 'for', 'goto', 'if', 'in', 'int', 'let', 'long', 'new', 'null', 'this', 'true', 'try', 'var', 'void', 'with'];
- 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);
- exports.MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator;
- /***/ }),
- /***/ "./src/logger/Logger.ts":
- /*!******************************!*\
- !*** ./src/logger/Logger.ts ***!
- \******************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var Logger_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var chalk_1 = tslib_1.__importDefault(__webpack_require__(/*! chalk */ "chalk"));
- var LoggingPrefix_1 = __webpack_require__(/*! ../enums/logger/LoggingPrefix */ "./src/enums/logger/LoggingPrefix.ts");
- var Logger = Logger_1 =
- /*#__PURE__*/
- function () {
- function Logger(options) {
- (0, _classCallCheck2["default"])(this, Logger);
- this.options = options;
- }
- (0, _createClass2["default"])(Logger, [{
- key: "info",
- value: function info(loggingMessage, value) {
- if (!this.options.log) {
- return;
- }
- Logger_1.log(Logger_1.colorInfo, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value);
- }
- }, {
- key: "success",
- value: function success(loggingMessage, value) {
- if (!this.options.log) {
- return;
- }
- Logger_1.log(Logger_1.colorSuccess, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value);
- }
- }, {
- key: "warn",
- value: function warn(loggingMessage, value) {
- if (!this.options.log) {
- return;
- }
- Logger_1.log(Logger_1.colorWarn, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value);
- }
- }], [{
- key: "log",
- value: function log(loggingLevelColor, loggingPrefix, loggingMessage, value) {
- var processedMessage = loggingLevelColor("\n".concat(loggingPrefix, " ").concat(loggingMessage));
- console.log(processedMessage, value || '');
- }
- }]);
- return Logger;
- }();
- Logger.colorInfo = chalk_1["default"].cyan;
- Logger.colorSuccess = chalk_1["default"].green;
- Logger.colorWarn = chalk_1["default"].yellow;
- 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);
- exports.Logger = Logger;
- /***/ }),
- /***/ "./src/node-transformers/AbstractNodeTransformer.ts":
- /*!**********************************************************!*\
- !*** ./src/node-transformers/AbstractNodeTransformer.ts ***!
- \**********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var AbstractNodeTransformer = function AbstractNodeTransformer(randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, AbstractNodeTransformer);
- this.randomGenerator = randomGenerator;
- this.options = options;
- };
- 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);
- exports.AbstractNodeTransformer = AbstractNodeTransformer;
- /***/ }),
- /***/ "./src/node-transformers/TransformersRunner.ts":
- /*!*****************************************************!*\
- !*** ./src/node-transformers/TransformersRunner.ts ***!
- \*****************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "@babel/runtime/helpers/defineProperty"));
- var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray"));
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- var VisitorDirection_1 = __webpack_require__(/*! ../enums/node-transformers/VisitorDirection */ "./src/enums/node-transformers/VisitorDirection.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeMetadata_1 = __webpack_require__(/*! ../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
- var TransformersRunner =
- /*#__PURE__*/
- function () {
- function TransformersRunner(nodeTransformerFactory, nodeTransformerNamesGroupsBuilder) {
- (0, _classCallCheck2["default"])(this, TransformersRunner);
- this.cachedNodeTransformersData = new Map();
- this.nodeTransformerFactory = nodeTransformerFactory;
- this.nodeTransformerNamesGroupsBuilder = nodeTransformerNamesGroupsBuilder;
- }
- (0, _createClass2["default"])(TransformersRunner, [{
- key: "transform",
- value: function transform(astTree, nodeTransformerNames, transformationStage) {
- if (!nodeTransformerNames.length) {
- return astTree;
- }
- var normalizedNodeTransformers;
- var nodeTransformerNamesGroups;
- if (!this.cachedNodeTransformersData.has(nodeTransformerNames)) {
- normalizedNodeTransformers = this.buildNormalizedNodeTransformers(nodeTransformerNames);
- nodeTransformerNamesGroups = this.nodeTransformerNamesGroupsBuilder.build(normalizedNodeTransformers);
- this.cachedNodeTransformersData.set(nodeTransformerNames, [normalizedNodeTransformers, nodeTransformerNamesGroups]);
- } else {
- var _this$cachedNodeTrans = this.cachedNodeTransformersData.get(nodeTransformerNames);
- var _this$cachedNodeTrans2 = (0, _slicedToArray2["default"])(_this$cachedNodeTrans, 2);
- normalizedNodeTransformers = _this$cachedNodeTrans2[0];
- nodeTransformerNamesGroups = _this$cachedNodeTrans2[1];
- }
- var _iteratorNormalCompletion = true;
- var _didIteratorError = false;
- var _iteratorError = undefined;
- try {
- for (var _iterator = nodeTransformerNamesGroups[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
- var nodeTransformerNamesGroup = _step.value;
- var enterVisitors = [];
- var leaveVisitors = [];
- var _iteratorNormalCompletion2 = true;
- var _didIteratorError2 = false;
- var _iteratorError2 = undefined;
- try {
- for (var _iterator2 = nodeTransformerNamesGroup[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
- var nodeTransformerName = _step2.value;
- var nodeTransformer = normalizedNodeTransformers[nodeTransformerName];
- var visitor = nodeTransformer.getVisitor(transformationStage);
- if (!visitor) {
- continue;
- }
- if (visitor.enter) {
- enterVisitors.push({
- enter: visitor.enter
- });
- }
- if (visitor.leave) {
- leaveVisitors.push({
- leave: visitor.leave
- });
- }
- }
- } catch (err) {
- _didIteratorError2 = true;
- _iteratorError2 = err;
- } finally {
- try {
- if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
- _iterator2["return"]();
- }
- } finally {
- if (_didIteratorError2) {
- throw _iteratorError2;
- }
- }
- }
- if (!enterVisitors.length && !leaveVisitors.length) {
- continue;
- }
- estraverse.replace(astTree, {
- enter: this.mergeVisitorsForDirection(enterVisitors, VisitorDirection_1.VisitorDirection.Enter),
- leave: this.mergeVisitorsForDirection(leaveVisitors, VisitorDirection_1.VisitorDirection.Leave)
- });
- }
- } catch (err) {
- _didIteratorError = true;
- _iteratorError = err;
- } finally {
- try {
- if (!_iteratorNormalCompletion && _iterator["return"] != null) {
- _iterator["return"]();
- }
- } finally {
- if (_didIteratorError) {
- throw _iteratorError;
- }
- }
- }
- return astTree;
- }
- }, {
- key: "buildNormalizedNodeTransformers",
- value: function buildNormalizedNodeTransformers(nodeTransformerNames) {
- var _this = this;
- return nodeTransformerNames.reduce(function (acc, nodeTransformerName) {
- return Object.assign(Object.assign({}, acc), (0, _defineProperty2["default"])({}, nodeTransformerName, _this.nodeTransformerFactory(nodeTransformerName)));
- }, {});
- }
- }, {
- key: "mergeVisitorsForDirection",
- value: function mergeVisitorsForDirection(visitors, direction) {
- var visitorsLength = visitors.length;
- if (!visitorsLength) {
- return function (node, parentNode) {
- return node;
- };
- }
- return function (node, parentNode) {
- if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) {
- return estraverse.VisitorOption.Skip;
- }
- for (var i = 0; i < visitorsLength; i++) {
- var visitorFunction = visitors[i][direction];
- if (!visitorFunction) {
- continue;
- }
- var visitorResult = visitorFunction(node, parentNode);
- if (!visitorResult || !NodeGuards_1.NodeGuards.isNode(visitorResult)) {
- continue;
- }
- node = visitorResult;
- }
- return node;
- };
- }
- }]);
- return TransformersRunner;
- }();
- 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);
- exports.TransformersRunner = TransformersRunner;
- /***/ }),
- /***/ "./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts":
- /*!*************************************************************************************************!*\
- !*** ./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts ***!
- \*************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- var BlockStatementControlFlowTransformer_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
- var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
- var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- var BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer_1 =
- /*#__PURE__*/
- function (_AbstractNodeTransfor) {
- (0, _inherits2["default"])(BlockStatementControlFlowTransformer, _AbstractNodeTransfor);
- function BlockStatementControlFlowTransformer(controlFlowCustomNodeFactory, arrayUtils, randomGenerator, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, BlockStatementControlFlowTransformer);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(BlockStatementControlFlowTransformer).call(this, randomGenerator, options));
- _this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory;
- _this.arrayUtils = arrayUtils;
- return _this;
- }
- (0, _createClass2["default"])(BlockStatementControlFlowTransformer, [{
- key: "getVisitor",
- value: function getVisitor(transformationStage) {
- var _this2 = this;
- switch (transformationStage) {
- case TransformationStage_1.TransformationStage.ControlFlowFlattening:
- return {
- leave: function leave(node, parentNode) {
- if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {
- return _this2.transformNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- }, {
- key: "transformNode",
- value: function transformNode(blockStatementNode, parentNode) {
- if (this.randomGenerator.getMathRandom() > this.options.controlFlowFlatteningThreshold || !BlockStatementControlFlowTransformer_1.canTransformBlockStatementNode(blockStatementNode)) {
- return blockStatementNode;
- }
- var blockStatementBody = blockStatementNode.body;
- var originalKeys = this.arrayUtils.createWithRange(blockStatementBody.length);
- var shuffledKeys = this.arrayUtils.shuffle(originalKeys);
- var originalKeysIndexesInShuffledArray = originalKeys.map(function (key) {
- return shuffledKeys.indexOf(key);
- });
- var blockStatementControlFlowFlatteningCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode);
- blockStatementControlFlowFlatteningCustomNode.initialize(blockStatementBody, shuffledKeys, originalKeysIndexesInShuffledArray);
- var newBlockStatementNode = blockStatementControlFlowFlatteningCustomNode.getNode()[0];
- NodeUtils_1.NodeUtils.parentizeNode(newBlockStatementNode, parentNode);
- return newBlockStatementNode;
- }
- }], [{
- key: "isProhibitedStatementNode",
- value: function isProhibitedStatementNode(node) {
- var isBreakOrContinueStatement = NodeGuards_1.NodeGuards.isBreakStatementNode(node) || NodeGuards_1.NodeGuards.isContinueStatementNode(node);
- var isVariableDeclarationWithLetOrConstKind = NodeGuards_1.NodeGuards.isVariableDeclarationNode(node) && (node.kind === 'const' || node.kind === 'let');
- var isClassDeclaration = NodeGuards_1.NodeGuards.isClassDeclarationNode(node);
- return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) || isBreakOrContinueStatement || isVariableDeclarationWithLetOrConstKind || isClassDeclaration;
- }
- }, {
- key: "canTransformBlockStatementNode",
- value: function canTransformBlockStatementNode(blockStatementNode) {
- var canTransform = true;
- estraverse.traverse(blockStatementNode, {
- enter: function enter(node) {
- if (NodeGuards_1.NodeGuards.isWhileStatementNode(node)) {
- return estraverse.VisitorOption.Skip;
- }
- if (BlockStatementControlFlowTransformer_1.isProhibitedStatementNode(node)) {
- canTransform = false;
- }
- }
- });
- if (blockStatementNode.body.length <= 4) {
- canTransform = false;
- }
- return canTransform;
- }
- }]);
- return BlockStatementControlFlowTransformer;
- }(AbstractNodeTransformer_1.AbstractNodeTransformer);
- 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);
- exports.BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer;
- /***/ }),
- /***/ "./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts":
- /*!*******************************************************************************************!*\
- !*** ./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts ***!
- \*******************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- var FunctionControlFlowTransformer_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
- var ControlFlowReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts");
- var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
- var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
- var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- var NodeAppender_1 = __webpack_require__(/*! ../../node/NodeAppender */ "./src/node/NodeAppender.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
- var NodeStatementUtils_1 = __webpack_require__(/*! ../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
- var FunctionControlFlowTransformer = FunctionControlFlowTransformer_1 =
- /*#__PURE__*/
- function (_AbstractNodeTransfor) {
- (0, _inherits2["default"])(FunctionControlFlowTransformer, _AbstractNodeTransfor);
- function FunctionControlFlowTransformer(controlFlowStorageFactory, controlFlowReplacerFactory, controlFlowCustomNodeFactory, randomGenerator, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, FunctionControlFlowTransformer);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(FunctionControlFlowTransformer).call(this, randomGenerator, options));
- _this.controlFlowData = new Map();
- _this.visitedFunctionNodes = new Set();
- _this.hostNodesWithControlFlowNode = new Set();
- _this.controlFlowStorageFactory = controlFlowStorageFactory;
- _this.controlFlowReplacerFactory = controlFlowReplacerFactory;
- _this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory;
- return _this;
- }
- (0, _createClass2["default"])(FunctionControlFlowTransformer, [{
- key: "getVisitor",
- value: function getVisitor(transformationStage) {
- var _this2 = this;
- switch (transformationStage) {
- case TransformationStage_1.TransformationStage.ControlFlowFlattening:
- return {
- leave: function leave(node, parentNode) {
- if (parentNode && (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) || NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) || NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(node))) {
- return _this2.transformNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- }, {
- key: "transformNode",
- value: function transformNode(functionNode, parentNode) {
- this.visitedFunctionNodes.add(functionNode);
- if (!NodeGuards_1.NodeGuards.isBlockStatementNode(functionNode.body)) {
- return functionNode;
- }
- var hostNode = this.getHostNode(functionNode.body);
- var controlFlowStorage = this.getControlFlowStorage(hostNode);
- this.controlFlowData.set(hostNode, controlFlowStorage);
- this.transformFunctionBody(functionNode.body, controlFlowStorage);
- if (!controlFlowStorage.getLength()) {
- return functionNode;
- }
- var controlFlowStorageCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.ControlFlowStorageNode);
- controlFlowStorageCustomNode.initialize(controlFlowStorage);
- NodeAppender_1.NodeAppender.prepend(hostNode, controlFlowStorageCustomNode.getNode());
- this.hostNodesWithControlFlowNode.add(hostNode);
- return functionNode;
- }
- }, {
- key: "getControlFlowStorage",
- value: function getControlFlowStorage(hostNode) {
- var controlFlowStorage = this.controlFlowStorageFactory();
- if (this.controlFlowData.has(hostNode)) {
- if (this.hostNodesWithControlFlowNode.has(hostNode)) {
- if (NodeGuards_1.NodeGuards.isSwitchCaseNode(hostNode)) {
- hostNode.consequent.shift();
- } else {
- hostNode.body.shift();
- }
- }
- var hostControlFlowStorage = this.controlFlowData.get(hostNode);
- controlFlowStorage.mergeWith(hostControlFlowStorage, true);
- }
- return controlFlowStorage;
- }
- }, {
- key: "getHostNode",
- value: function getHostNode(functionNodeBody) {
- var blockScopesOfNode = NodeStatementUtils_1.NodeStatementUtils.getParentNodesWithStatements(functionNodeBody);
- if (blockScopesOfNode.length === 1) {
- return functionNodeBody;
- } else {
- blockScopesOfNode.pop();
- }
- if (blockScopesOfNode.length > FunctionControlFlowTransformer_1.hostNodeSearchMinDepth) {
- blockScopesOfNode.splice(0, FunctionControlFlowTransformer_1.hostNodeSearchMinDepth);
- }
- if (blockScopesOfNode.length > FunctionControlFlowTransformer_1.hostNodeSearchMaxDepth) {
- blockScopesOfNode.length = FunctionControlFlowTransformer_1.hostNodeSearchMaxDepth;
- }
- return this.randomGenerator.getRandomGenerator().pickone(blockScopesOfNode);
- }
- }, {
- key: "isVisitedFunctionNode",
- value: function isVisitedFunctionNode(node) {
- return (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) || NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) || NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(node)) && this.visitedFunctionNodes.has(node);
- }
- }, {
- key: "transformFunctionBody",
- value: function transformFunctionBody(functionNodeBody, controlFlowStorage) {
- var _this3 = this;
- estraverse.replace(functionNodeBody, {
- enter: function enter(node, parentNode) {
- if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) {
- return estraverse.VisitorOption.Skip;
- }
- if (_this3.isVisitedFunctionNode(node) || !parentNode) {
- return estraverse.VisitorOption.Skip;
- }
- if (!FunctionControlFlowTransformer_1.controlFlowReplacersMap.has(node.type)) {
- return node;
- }
- if (_this3.randomGenerator.getMathRandom() > _this3.options.controlFlowFlatteningThreshold) {
- return node;
- }
- var controlFlowReplacerName = FunctionControlFlowTransformer_1.controlFlowReplacersMap.get(node.type);
- if (controlFlowReplacerName === undefined) {
- return node;
- }
- return Object.assign(Object.assign({}, _this3.controlFlowReplacerFactory(controlFlowReplacerName).replace(node, parentNode, controlFlowStorage)), {
- parentNode: parentNode
- });
- }
- });
- }
- }]);
- return FunctionControlFlowTransformer;
- }(AbstractNodeTransformer_1.AbstractNodeTransformer);
- 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]]);
- FunctionControlFlowTransformer.hostNodeSearchMinDepth = 0;
- FunctionControlFlowTransformer.hostNodeSearchMaxDepth = 2;
- 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);
- exports.FunctionControlFlowTransformer = FunctionControlFlowTransformer;
- /***/ }),
- /***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts":
- /*!***************************************************************************************************************!*\
- !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts ***!
- \***************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var AbstractControlFlowReplacer_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var AbstractControlFlowReplacer = AbstractControlFlowReplacer_1 =
- /*#__PURE__*/
- function () {
- function AbstractControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, AbstractControlFlowReplacer);
- this.replacerDataByControlFlowStorageId = new Map();
- this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory;
- this.randomGenerator = randomGenerator;
- this.options = options;
- }
- (0, _createClass2["default"])(AbstractControlFlowReplacer, [{
- key: "insertCustomNodeToControlFlowStorage",
- value: function insertCustomNodeToControlFlowStorage(customNode, controlFlowStorage, replacerId, usingExistingIdentifierChance) {
- var _this = this;
- var controlFlowStorageId = controlFlowStorage.getStorageId();
- var storageKeysById = AbstractControlFlowReplacer_1.getStorageKeysByIdForCurrentStorage(this.replacerDataByControlFlowStorageId, controlFlowStorageId);
- var storageKeysForCurrentId = storageKeysById.get(replacerId);
- if (this.randomGenerator.getMathRandom() < usingExistingIdentifierChance && storageKeysForCurrentId && storageKeysForCurrentId.length) {
- return this.randomGenerator.getRandomGenerator().pickone(storageKeysForCurrentId);
- }
- var generateStorageKey = function generateStorageKey(length) {
- var key = _this.randomGenerator.getRandomString(length);
- if (controlFlowStorage.getStorage().has(key)) {
- return generateStorageKey(length);
- }
- return key;
- };
- var storageKey = generateStorageKey(5);
- storageKeysById.set(replacerId, [storageKey]);
- this.replacerDataByControlFlowStorageId.set(controlFlowStorageId, storageKeysById);
- controlFlowStorage.set(storageKey, customNode);
- return storageKey;
- }
- }], [{
- key: "getStorageKeysByIdForCurrentStorage",
- value: function getStorageKeysByIdForCurrentStorage(identifierDataByControlFlowStorageId, controlFlowStorageId) {
- var storageKeysById;
- if (identifierDataByControlFlowStorageId.has(controlFlowStorageId)) {
- storageKeysById = identifierDataByControlFlowStorageId.get(controlFlowStorageId);
- } else {
- storageKeysById = new Map();
- }
- return storageKeysById;
- }
- }]);
- return AbstractControlFlowReplacer;
- }();
- 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);
- exports.AbstractControlFlowReplacer = AbstractControlFlowReplacer;
- /***/ }),
- /***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts":
- /*!***********************************************************************************************************************!*\
- !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts ***!
- \***********************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- var BinaryExpressionControlFlowReplacer_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
- var ExpressionWithOperatorControlFlowReplacer_1 = __webpack_require__(/*! ./ExpressionWithOperatorControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts");
- var BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer_1 =
- /*#__PURE__*/
- function (_ExpressionWithOperat) {
- (0, _inherits2["default"])(BinaryExpressionControlFlowReplacer, _ExpressionWithOperat);
- function BinaryExpressionControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, BinaryExpressionControlFlowReplacer);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(BinaryExpressionControlFlowReplacer).call(this, controlFlowCustomNodeFactory, randomGenerator, options));
- }
- (0, _createClass2["default"])(BinaryExpressionControlFlowReplacer, [{
- key: "replace",
- value: function replace(binaryExpressionNode, parentNode, controlFlowStorage) {
- var replacerId = binaryExpressionNode.operator;
- var binaryExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.BinaryExpressionFunctionNode);
- binaryExpressionFunctionCustomNode.initialize(replacerId);
- var storageKey = this.insertCustomNodeToControlFlowStorage(binaryExpressionFunctionCustomNode, controlFlowStorage, replacerId, BinaryExpressionControlFlowReplacer_1.usingExistingIdentifierChance);
- return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, binaryExpressionNode.left, binaryExpressionNode.right);
- }
- }]);
- return BinaryExpressionControlFlowReplacer;
- }(ExpressionWithOperatorControlFlowReplacer_1.ExpressionWithOperatorControlFlowReplacer);
- BinaryExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5;
- 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);
- exports.BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer;
- /***/ }),
- /***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts":
- /*!*********************************************************************************************************************!*\
- !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts ***!
- \*********************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- var CallExpressionControlFlowReplacer_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
- var AbstractControlFlowReplacer_1 = __webpack_require__(/*! ./AbstractControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer_1 =
- /*#__PURE__*/
- function (_AbstractControlFlowR) {
- (0, _inherits2["default"])(CallExpressionControlFlowReplacer, _AbstractControlFlowR);
- function CallExpressionControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, CallExpressionControlFlowReplacer);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(CallExpressionControlFlowReplacer).call(this, controlFlowCustomNodeFactory, randomGenerator, options));
- }
- (0, _createClass2["default"])(CallExpressionControlFlowReplacer, [{
- key: "replace",
- value: function replace(callExpressionNode, parentNode, controlFlowStorage) {
- var callee = callExpressionNode.callee;
- if (!NodeGuards_1.NodeGuards.isIdentifierNode(callee)) {
- return callExpressionNode;
- }
- var replacerId = String(callExpressionNode.arguments.length);
- var callExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionFunctionNode);
- var expressionArguments = callExpressionNode.arguments;
- callExpressionFunctionCustomNode.initialize(expressionArguments);
- var storageKey = this.insertCustomNodeToControlFlowStorage(callExpressionFunctionCustomNode, controlFlowStorage, replacerId, CallExpressionControlFlowReplacer_1.usingExistingIdentifierChance);
- return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, callee, expressionArguments);
- }
- }, {
- key: "getControlFlowStorageCallNode",
- value: function getControlFlowStorageCallNode(controlFlowStorageId, storageKey, callee, expressionArguments) {
- var controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode);
- controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey, callee, expressionArguments);
- var statementNode = controlFlowStorageCallCustomNode.getNode()[0];
- if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) {
- throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");
- }
- return statementNode.expression;
- }
- }]);
- return CallExpressionControlFlowReplacer;
- }(AbstractControlFlowReplacer_1.AbstractControlFlowReplacer);
- CallExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5;
- 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);
- exports.CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer;
- /***/ }),
- /***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts":
- /*!*****************************************************************************************************************************!*\
- !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts ***!
- \*****************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
- var AbstractControlFlowReplacer_1 = __webpack_require__(/*! ./AbstractControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var ExpressionWithOperatorControlFlowReplacer =
- /*#__PURE__*/
- function (_AbstractControlFlowR) {
- (0, _inherits2["default"])(ExpressionWithOperatorControlFlowReplacer, _AbstractControlFlowR);
- function ExpressionWithOperatorControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, ExpressionWithOperatorControlFlowReplacer);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ExpressionWithOperatorControlFlowReplacer).call(this, controlFlowCustomNodeFactory, randomGenerator, options));
- }
- (0, _createClass2["default"])(ExpressionWithOperatorControlFlowReplacer, [{
- key: "getControlFlowStorageCallNode",
- value: function getControlFlowStorageCallNode(controlFlowStorageId, storageKey, leftExpression, rightExpression) {
- var controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode);
- controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey, leftExpression, rightExpression);
- var statementNode = controlFlowStorageCallCustomNode.getNode()[0];
- if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) {
- throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");
- }
- return statementNode.expression;
- }
- }]);
- return ExpressionWithOperatorControlFlowReplacer;
- }(AbstractControlFlowReplacer_1.AbstractControlFlowReplacer);
- 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);
- exports.ExpressionWithOperatorControlFlowReplacer = ExpressionWithOperatorControlFlowReplacer;
- /***/ }),
- /***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts":
- /*!************************************************************************************************************************!*\
- !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts ***!
- \************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- var LogicalExpressionControlFlowReplacer_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
- var ExpressionWithOperatorControlFlowReplacer_1 = __webpack_require__(/*! ./ExpressionWithOperatorControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- var LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer_1 =
- /*#__PURE__*/
- function (_ExpressionWithOperat) {
- (0, _inherits2["default"])(LogicalExpressionControlFlowReplacer, _ExpressionWithOperat);
- function LogicalExpressionControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, LogicalExpressionControlFlowReplacer);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(LogicalExpressionControlFlowReplacer).call(this, controlFlowCustomNodeFactory, randomGenerator, options));
- }
- (0, _createClass2["default"])(LogicalExpressionControlFlowReplacer, [{
- key: "replace",
- value: function replace(logicalExpressionNode, parentNode, controlFlowStorage) {
- if (this.checkForProhibitedExpressions(logicalExpressionNode.left, logicalExpressionNode.right)) {
- return logicalExpressionNode;
- }
- var replacerId = logicalExpressionNode.operator;
- var logicalExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.LogicalExpressionFunctionNode);
- logicalExpressionFunctionCustomNode.initialize(replacerId);
- var storageKey = this.insertCustomNodeToControlFlowStorage(logicalExpressionFunctionCustomNode, controlFlowStorage, replacerId, LogicalExpressionControlFlowReplacer_1.usingExistingIdentifierChance);
- return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, logicalExpressionNode.left, logicalExpressionNode.right);
- }
- }, {
- key: "checkForProhibitedExpressions",
- value: function checkForProhibitedExpressions(leftExpression, rightExpression) {
- return [leftExpression, rightExpression].some(function (expressionNode) {
- var nodeForCheck;
- if (!NodeGuards_1.NodeGuards.isUnaryExpressionNode(expressionNode)) {
- nodeForCheck = expressionNode;
- } else {
- nodeForCheck = NodeUtils_1.NodeUtils.getUnaryExpressionArgumentNode(expressionNode);
- }
- return !NodeGuards_1.NodeGuards.isLiteralNode(nodeForCheck) && !NodeGuards_1.NodeGuards.isIdentifierNode(nodeForCheck) && !NodeGuards_1.NodeGuards.isObjectExpressionNode(nodeForCheck) && !NodeGuards_1.NodeGuards.isExpressionStatementNode(nodeForCheck);
- });
- }
- }]);
- return LogicalExpressionControlFlowReplacer;
- }(ExpressionWithOperatorControlFlowReplacer_1.ExpressionWithOperatorControlFlowReplacer);
- LogicalExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5;
- 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);
- exports.LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer;
- /***/ }),
- /***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts":
- /*!********************************************************************************************************************!*\
- !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts ***!
- \********************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- var StringLiteralControlFlowReplacer_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
- var AbstractControlFlowReplacer_1 = __webpack_require__(/*! ./AbstractControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer_1 =
- /*#__PURE__*/
- function (_AbstractControlFlowR) {
- (0, _inherits2["default"])(StringLiteralControlFlowReplacer, _AbstractControlFlowR);
- function StringLiteralControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, StringLiteralControlFlowReplacer);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(StringLiteralControlFlowReplacer).call(this, controlFlowCustomNodeFactory, randomGenerator, options));
- }
- (0, _createClass2["default"])(StringLiteralControlFlowReplacer, [{
- key: "replace",
- value: function replace(literalNode, parentNode, controlFlowStorage) {
- if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && parentNode.key === literalNode) {
- return literalNode;
- }
- if (typeof literalNode.value !== 'string' || literalNode.value.length < 3) {
- return literalNode;
- }
- var replacerId = String(literalNode.value);
- var literalFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralNode);
- literalFunctionCustomNode.initialize(literalNode.value);
- var storageKey = this.insertCustomNodeToControlFlowStorage(literalFunctionCustomNode, controlFlowStorage, replacerId, StringLiteralControlFlowReplacer_1.usingExistingIdentifierChance);
- return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey);
- }
- }, {
- key: "getControlFlowStorageCallNode",
- value: function getControlFlowStorageCallNode(controlFlowStorageId, storageKey) {
- var controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode);
- controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey);
- var statementNode = controlFlowStorageCallCustomNode.getNode()[0];
- if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) {
- throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");
- }
- return statementNode.expression;
- }
- }]);
- return StringLiteralControlFlowReplacer;
- }(AbstractControlFlowReplacer_1.AbstractControlFlowReplacer);
- StringLiteralControlFlowReplacer.usingExistingIdentifierChance = 1;
- 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);
- exports.StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer;
- /***/ }),
- /***/ "./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts":
- /*!**************************************************************************************!*\
- !*** ./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts ***!
- \**************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
- var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var MemberExpressionTransformer =
- /*#__PURE__*/
- function (_AbstractNodeTransfor) {
- (0, _inherits2["default"])(MemberExpressionTransformer, _AbstractNodeTransfor);
- function MemberExpressionTransformer(randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, MemberExpressionTransformer);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(MemberExpressionTransformer).call(this, randomGenerator, options));
- }
- (0, _createClass2["default"])(MemberExpressionTransformer, [{
- key: "getVisitor",
- value: function getVisitor(transformationStage) {
- var _this = this;
- switch (transformationStage) {
- case TransformationStage_1.TransformationStage.Converting:
- return {
- enter: function enter(node, parentNode) {
- if (parentNode && NodeGuards_1.NodeGuards.isMemberExpressionNode(node)) {
- return _this.transformNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- }, {
- key: "transformNode",
- value: function transformNode(memberExpressionNode, parentNode) {
- if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpressionNode.property)) {
- if (memberExpressionNode.computed) {
- return memberExpressionNode;
- }
- memberExpressionNode.computed = true;
- memberExpressionNode.property = NodeFactory_1.NodeFactory.literalNode(memberExpressionNode.property.name);
- }
- return memberExpressionNode;
- }
- }]);
- return MemberExpressionTransformer;
- }(AbstractNodeTransformer_1.AbstractNodeTransformer);
- 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);
- exports.MemberExpressionTransformer = MemberExpressionTransformer;
- /***/ }),
- /***/ "./src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts":
- /*!**************************************************************************************!*\
- !*** ./src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts ***!
- \**************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- var MethodDefinitionTransformer_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
- var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var MethodDefinitionTransformer = MethodDefinitionTransformer_1 =
- /*#__PURE__*/
- function (_AbstractNodeTransfor) {
- (0, _inherits2["default"])(MethodDefinitionTransformer, _AbstractNodeTransfor);
- function MethodDefinitionTransformer(randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, MethodDefinitionTransformer);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(MethodDefinitionTransformer).call(this, randomGenerator, options));
- }
- (0, _createClass2["default"])(MethodDefinitionTransformer, [{
- key: "getVisitor",
- value: function getVisitor(transformationStage) {
- var _this = this;
- switch (transformationStage) {
- case TransformationStage_1.TransformationStage.Converting:
- return {
- enter: function enter(node, parentNode) {
- if (parentNode && NodeGuards_1.NodeGuards.isMethodDefinitionNode(node)) {
- return _this.transformNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- }, {
- key: "transformNode",
- value: function transformNode(methodDefinitionNode, parentNode) {
- if (NodeGuards_1.NodeGuards.isIdentifierNode(methodDefinitionNode.key) && !MethodDefinitionTransformer_1.ignoredNames.includes(methodDefinitionNode.key.name) && methodDefinitionNode.computed === false) {
- methodDefinitionNode.computed = true;
- methodDefinitionNode.key = NodeFactory_1.NodeFactory.literalNode(methodDefinitionNode.key.name);
- }
- return methodDefinitionNode;
- }
- }]);
- return MethodDefinitionTransformer;
- }(AbstractNodeTransformer_1.AbstractNodeTransformer);
- MethodDefinitionTransformer.ignoredNames = ['constructor'];
- 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);
- exports.MethodDefinitionTransformer = MethodDefinitionTransformer;
- /***/ }),
- /***/ "./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts":
- /*!******************************************************************************************!*\
- !*** ./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts ***!
- \******************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- var ObjectExpressionKeysTransformer_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
- var PropertiesExtractor_1 = __webpack_require__(/*! ../../enums/node-transformers/converting-transformers/properties-extractors/PropertiesExtractor */ "./src/enums/node-transformers/converting-transformers/properties-extractors/PropertiesExtractor.ts");
- var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
- var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer_1 =
- /*#__PURE__*/
- function (_AbstractNodeTransfor) {
- (0, _inherits2["default"])(ObjectExpressionKeysTransformer, _AbstractNodeTransfor);
- function ObjectExpressionKeysTransformer(propertiesExtractorFactory, randomGenerator, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, ObjectExpressionKeysTransformer);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ObjectExpressionKeysTransformer).call(this, randomGenerator, options));
- _this.propertiesExtractorFactory = propertiesExtractorFactory;
- return _this;
- }
- (0, _createClass2["default"])(ObjectExpressionKeysTransformer, [{
- key: "getVisitor",
- value: function getVisitor(transformationStage) {
- var _this2 = this;
- if (transformationStage !== TransformationStage_1.TransformationStage.Converting) {
- return null;
- }
- return {
- enter: function enter(node, parentNode) {
- if (_this2.options.transformObjectKeys && parentNode && NodeGuards_1.NodeGuards.isObjectExpressionNode(node)) {
- return _this2.transformNode(node, parentNode);
- }
- }
- };
- }
- }, {
- key: "transformNode",
- value: function transformNode(objectExpressionNode, parentNode) {
- if (!objectExpressionNode.properties.length) {
- return objectExpressionNode;
- }
- var propertiesExtractorName = ObjectExpressionKeysTransformer_1.propertiesExtractorsMap.get(parentNode.type);
- if (!propertiesExtractorName) {
- return objectExpressionNode;
- }
- var propertiesExtractor = this.propertiesExtractorFactory(propertiesExtractorName);
- return propertiesExtractor.extract(objectExpressionNode, parentNode);
- }
- }]);
- return ObjectExpressionKeysTransformer;
- }(AbstractNodeTransformer_1.AbstractNodeTransformer);
- ObjectExpressionKeysTransformer.propertiesExtractorsMap = new Map([[NodeType_1.NodeType.AssignmentExpression, PropertiesExtractor_1.PropertiesExtractor.AssignmentExpressionPropertiesExtractor], [NodeType_1.NodeType.VariableDeclarator, PropertiesExtractor_1.PropertiesExtractor.VariableDeclaratorPropertiesExtractor]]);
- 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);
- exports.ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer;
- /***/ }),
- /***/ "./src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts":
- /*!**************************************************************************************!*\
- !*** ./src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts ***!
- \**************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
- var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var ObjectExpressionTransformer =
- /*#__PURE__*/
- function (_AbstractNodeTransfor) {
- (0, _inherits2["default"])(ObjectExpressionTransformer, _AbstractNodeTransfor);
- function ObjectExpressionTransformer(escapeSequenceEncoder, randomGenerator, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, ObjectExpressionTransformer);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ObjectExpressionTransformer).call(this, randomGenerator, options));
- _this.escapeSequenceEncoder = escapeSequenceEncoder;
- return _this;
- }
- (0, _createClass2["default"])(ObjectExpressionTransformer, [{
- key: "getVisitor",
- value: function getVisitor(transformationStage) {
- var _this2 = this;
- switch (transformationStage) {
- case TransformationStage_1.TransformationStage.Converting:
- return {
- enter: function enter(node, parentNode) {
- if (parentNode && NodeGuards_1.NodeGuards.isObjectExpressionNode(node)) {
- return _this2.transformNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- }, {
- key: "transformNode",
- value: function transformNode(objectExpressionNode, parentNode) {
- var _this3 = this;
- objectExpressionNode.properties.forEach(function (property) {
- if (!property.key) {
- return;
- }
- if (property.computed) {
- _this3.transformComputedProperty(property);
- } else {
- _this3.transformBaseProperty(property);
- }
- });
- return objectExpressionNode;
- }
- }, {
- key: "transformComputedProperty",
- value: function transformComputedProperty(property) {
- if (!NodeGuards_1.NodeGuards.isLiteralNode(property.key) || !(typeof property.key.value === 'string')) {
- return;
- }
- property.key = NodeFactory_1.NodeFactory.literalNode(this.getPropertyKeyValue(property.key.value));
- }
- }, {
- key: "transformBaseProperty",
- value: function transformBaseProperty(property) {
- if (property.shorthand) {
- property.shorthand = false;
- }
- if (!NodeGuards_1.NodeGuards.isIdentifierNode(property.key)) {
- return;
- }
- property.key = NodeFactory_1.NodeFactory.literalNode(this.getPropertyKeyValue(property.key.name));
- }
- }, {
- key: "getPropertyKeyValue",
- value: function getPropertyKeyValue(inputValue) {
- return this.options.unicodeEscapeSequence ? this.escapeSequenceEncoder.encode(inputValue, true) : inputValue;
- }
- }]);
- return ObjectExpressionTransformer;
- }(AbstractNodeTransformer_1.AbstractNodeTransformer);
- 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);
- exports.ObjectExpressionTransformer = ObjectExpressionTransformer;
- /***/ }),
- /***/ "./src/node-transformers/converting-transformers/SplitStringTransformer.ts":
- /*!*********************************************************************************!*\
- !*** ./src/node-transformers/converting-transformers/SplitStringTransformer.ts ***!
- \*********************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- var SplitStringTransformer_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
- var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
- var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var SplitStringTransformer = SplitStringTransformer_1 =
- /*#__PURE__*/
- function (_AbstractNodeTransfor) {
- (0, _inherits2["default"])(SplitStringTransformer, _AbstractNodeTransfor);
- function SplitStringTransformer(randomGenerator, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, SplitStringTransformer);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(SplitStringTransformer).call(this, randomGenerator, options));
- _this.runAfter = [NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer, NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer];
- return _this;
- }
- (0, _createClass2["default"])(SplitStringTransformer, [{
- key: "getVisitor",
- value: function getVisitor(transformationStage) {
- var _this2 = this;
- switch (transformationStage) {
- case TransformationStage_1.TransformationStage.Converting:
- return {
- enter: function enter(node, parentNode) {
- if (!_this2.options.splitStrings) {
- return;
- }
- if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) {
- return _this2.transformNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- }, {
- key: "transformNode",
- value: function transformNode(literalNode, parentNode) {
- if (typeof literalNode.value !== 'string') {
- return literalNode;
- }
- if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && !parentNode.computed && parentNode.key === literalNode) {
- return literalNode;
- }
- if (this.options.splitStringsChunkLength >= literalNode.value.length) {
- return literalNode;
- }
- var stringChunks = SplitStringTransformer_1.chunkString(literalNode.value, this.options.splitStringsChunkLength);
- return this.transformStringChunksToBinaryExpressionNode(stringChunks);
- }
- }, {
- key: "transformStringChunksToBinaryExpressionNode",
- value: function transformStringChunksToBinaryExpressionNode(chunks) {
- var lastChunk = chunks.pop();
- if (lastChunk === undefined) {
- throw new Error('Last chunk value should not be empty');
- }
- var lastChunkLiteralNode = NodeFactory_1.NodeFactory.literalNode(lastChunk);
- if (chunks.length === 0) {
- return lastChunkLiteralNode;
- }
- return NodeFactory_1.NodeFactory.binaryExpressionNode('+', this.transformStringChunksToBinaryExpressionNode(chunks), lastChunkLiteralNode);
- }
- }], [{
- key: "chunkString",
- value: function chunkString(string, chunkSize) {
- var chunksCount = Math.ceil(string.length / chunkSize);
- var chunks = [];
- var nextChunkStartIndex = 0;
- for (var chunkIndex = 0; chunkIndex < chunksCount; ++chunkIndex, nextChunkStartIndex += chunkSize) {
- chunks[chunkIndex] = string.substr(nextChunkStartIndex, chunkSize);
- }
- return chunks;
- }
- }]);
- return SplitStringTransformer;
- }(AbstractNodeTransformer_1.AbstractNodeTransformer);
- 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);
- exports.SplitStringTransformer = SplitStringTransformer;
- /***/ }),
- /***/ "./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts":
- /*!*************************************************************************************!*\
- !*** ./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts ***!
- \*************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- var TemplateLiteralTransformer_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
- var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- var TemplateLiteralTransformer = TemplateLiteralTransformer_1 =
- /*#__PURE__*/
- function (_AbstractNodeTransfor) {
- (0, _inherits2["default"])(TemplateLiteralTransformer, _AbstractNodeTransfor);
- function TemplateLiteralTransformer(randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, TemplateLiteralTransformer);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(TemplateLiteralTransformer).call(this, randomGenerator, options));
- }
- (0, _createClass2["default"])(TemplateLiteralTransformer, [{
- key: "getVisitor",
- value: function getVisitor(transformationStage) {
- var _this = this;
- switch (transformationStage) {
- case TransformationStage_1.TransformationStage.Converting:
- return {
- enter: function enter(node, parentNode) {
- if (parentNode && TemplateLiteralTransformer_1.isValidTemplateLiteralNode(node, parentNode)) {
- return _this.transformNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- }, {
- key: "transformNode",
- value: function transformNode(templateLiteralNode, parentNode) {
- var templateLiteralExpressions = templateLiteralNode.expressions;
- var nodes = [];
- templateLiteralNode.quasis.forEach(function (templateElement) {
- nodes.push(NodeFactory_1.NodeFactory.literalNode(templateElement.value.cooked));
- var expression = templateLiteralExpressions.shift();
- if (!expression) {
- return;
- }
- nodes.push(expression);
- });
- nodes = nodes.filter(function (node) {
- return !(NodeGuards_1.NodeGuards.isLiteralNode(node) && node.value === '');
- });
- if (!TemplateLiteralTransformer_1.isLiteralNodeWithStringValue(nodes[0]) && !TemplateLiteralTransformer_1.isLiteralNodeWithStringValue(nodes[1])) {
- nodes.unshift(NodeFactory_1.NodeFactory.literalNode(''));
- }
- var transformedNode;
- if (nodes.length > 1) {
- var root = NodeFactory_1.NodeFactory.binaryExpressionNode('+', nodes.shift(), nodes.shift());
- nodes.forEach(function (node) {
- root = NodeFactory_1.NodeFactory.binaryExpressionNode('+', root, node);
- });
- transformedNode = root;
- } else {
- transformedNode = nodes[0];
- }
- NodeUtils_1.NodeUtils.parentizeAst(transformedNode);
- return transformedNode;
- }
- }], [{
- key: "isLiteralNodeWithStringValue",
- value: function isLiteralNodeWithStringValue(node) {
- return node && NodeGuards_1.NodeGuards.isLiteralNode(node) && typeof node.value === 'string';
- }
- }, {
- key: "isValidTemplateLiteralNode",
- value: function isValidTemplateLiteralNode(node, parentNode) {
- return NodeGuards_1.NodeGuards.isTemplateLiteralNode(node) && !NodeGuards_1.NodeGuards.isTaggedTemplateExpressionNode(parentNode);
- }
- }]);
- return TemplateLiteralTransformer;
- }(AbstractNodeTransformer_1.AbstractNodeTransformer);
- 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);
- exports.TemplateLiteralTransformer = TemplateLiteralTransformer;
- /***/ }),
- /***/ "./src/node-transformers/converting-transformers/properties-extractors/AbstractPropertiesExtractor.ts":
- /*!************************************************************************************************************!*\
- !*** ./src/node-transformers/converting-transformers/properties-extractors/AbstractPropertiesExtractor.ts ***!
- \************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray"));
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var AbstractPropertiesExtractor_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
- var NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
- var AbstractPropertiesExtractor = AbstractPropertiesExtractor_1 =
- /*#__PURE__*/
- function () {
- function AbstractPropertiesExtractor(randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, AbstractPropertiesExtractor);
- this.cachedHostNodesWithStatementsMap = new Map();
- this.cachedHostStatementsMap = new Map();
- this.randomGenerator = randomGenerator;
- this.options = options;
- }
- (0, _createClass2["default"])(AbstractPropertiesExtractor, [{
- key: "extractPropertiesToExpressionStatements",
- value: function extractPropertiesToExpressionStatements(properties, memberExpressionHostNode) {
- var propertiesLength = properties.length;
- var expressionStatements = [];
- var removablePropertyIds = [];
- for (var i = 0; i < propertiesLength; i++) {
- var property = properties[i];
- var propertyValue = property.value;
- if (AbstractPropertiesExtractor_1.isProhibitedPattern(propertyValue)) {
- continue;
- }
- var propertyKeyName = AbstractPropertiesExtractor_1.getPropertyNodeKeyName(property);
- if (!propertyKeyName) {
- continue;
- }
- var shouldCreateLiteralNode = !property.computed || property.computed && !!property.key && NodeGuards_1.NodeGuards.isLiteralNode(property.key);
- var memberExpressionProperty = shouldCreateLiteralNode ? NodeFactory_1.NodeFactory.literalNode(propertyKeyName) : NodeFactory_1.NodeFactory.identifierNode(propertyKeyName);
- var memberExpressionNode = NodeFactory_1.NodeFactory.memberExpressionNode(memberExpressionHostNode, memberExpressionProperty, true);
- var expressionStatementNode = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.assignmentExpressionNode('=', memberExpressionNode, propertyValue));
- if (NodeGuards_1.NodeGuards.isObjectExpressionNode(property.value)) {
- this.transformObjectExpressionNode(property.value, memberExpressionNode);
- }
- expressionStatements.push(expressionStatementNode);
- removablePropertyIds.push(i);
- }
- return [expressionStatements, removablePropertyIds];
- }
- }, {
- key: "filterExtractedObjectExpressionProperties",
- value: function filterExtractedObjectExpressionProperties(objectExpressionNode, removablePropertyIds) {
- objectExpressionNode.properties = objectExpressionNode.properties.filter(function (property, index) {
- return !removablePropertyIds.includes(index);
- });
- }
- }, {
- key: "transformObjectExpressionNode",
- value: function transformObjectExpressionNode(objectExpressionNode, memberExpressionHostNode) {
- var properties = objectExpressionNode.properties;
- var _this$extractProperti = this.extractPropertiesToExpressionStatements(properties, memberExpressionHostNode),
- _this$extractProperti2 = (0, _slicedToArray2["default"])(_this$extractProperti, 2),
- expressionStatements = _this$extractProperti2[0],
- removablePropertyIds = _this$extractProperti2[1];
- var hostStatement = this.getHostStatement(objectExpressionNode);
- var hostNodeWithStatements = this.getHostNodeWithStatements(objectExpressionNode, hostStatement);
- this.filterExtractedObjectExpressionProperties(objectExpressionNode, removablePropertyIds);
- NodeAppender_1.NodeAppender.insertAfter(hostNodeWithStatements, expressionStatements, hostStatement);
- return objectExpressionNode;
- }
- }, {
- key: "getHostNodeWithStatements",
- value: function getHostNodeWithStatements(objectExpressionNode, hostStatement) {
- if (this.cachedHostNodesWithStatementsMap.has(objectExpressionNode)) {
- return this.cachedHostNodesWithStatementsMap.get(objectExpressionNode);
- }
- var nodeWithStatements = NodeStatementUtils_1.NodeStatementUtils.getScopeOfNode(hostStatement);
- this.cachedHostNodesWithStatementsMap.set(objectExpressionNode, nodeWithStatements);
- return nodeWithStatements;
- }
- }, {
- key: "getHostStatement",
- value: function getHostStatement(objectExpressionNode) {
- if (this.cachedHostStatementsMap.has(objectExpressionNode)) {
- return this.cachedHostStatementsMap.get(objectExpressionNode);
- }
- var hostStatement = NodeStatementUtils_1.NodeStatementUtils.getRootStatementOfNode(objectExpressionNode);
- this.cachedHostStatementsMap.set(objectExpressionNode, hostStatement);
- return hostStatement;
- }
- }], [{
- key: "getPropertyNodeKeyName",
- value: function getPropertyNodeKeyName(propertyNode) {
- if (!propertyNode.key) {
- return null;
- }
- var propertyKeyNode = propertyNode.key;
- if (NodeGuards_1.NodeGuards.isLiteralNode(propertyKeyNode) && typeof propertyKeyNode.value === 'string') {
- return propertyKeyNode.value;
- }
- if (NodeGuards_1.NodeGuards.isIdentifierNode(propertyKeyNode)) {
- return propertyKeyNode.name;
- }
- return null;
- }
- }, {
- key: "isProhibitedHostParent",
- value: function isProhibitedHostParent(node) {
- return NodeGuards_1.NodeGuards.isMemberExpressionNode(node);
- }
- }, {
- key: "isProhibitedPattern",
- value: function isProhibitedPattern(node) {
- return !node || NodeGuards_1.NodeGuards.isObjectPatternNode(node) || NodeGuards_1.NodeGuards.isArrayPatternNode(node) || NodeGuards_1.NodeGuards.isAssignmentPatternNode(node) || NodeGuards_1.NodeGuards.isRestElementNode(node);
- }
- }]);
- return AbstractPropertiesExtractor;
- }();
- 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);
- exports.AbstractPropertiesExtractor = AbstractPropertiesExtractor;
- /***/ }),
- /***/ "./src/node-transformers/converting-transformers/properties-extractors/AssignmentExpressionPropertiesExtractor.ts":
- /*!************************************************************************************************************************!*\
- !*** ./src/node-transformers/converting-transformers/properties-extractors/AssignmentExpressionPropertiesExtractor.ts ***!
- \************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var AbstractPropertiesExtractor_1 = __webpack_require__(/*! ./AbstractPropertiesExtractor */ "./src/node-transformers/converting-transformers/properties-extractors/AbstractPropertiesExtractor.ts");
- var AssignmentExpressionPropertiesExtractor =
- /*#__PURE__*/
- function (_AbstractPropertiesEx) {
- (0, _inherits2["default"])(AssignmentExpressionPropertiesExtractor, _AbstractPropertiesEx);
- function AssignmentExpressionPropertiesExtractor(randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, AssignmentExpressionPropertiesExtractor);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(AssignmentExpressionPropertiesExtractor).call(this, randomGenerator, options));
- }
- (0, _createClass2["default"])(AssignmentExpressionPropertiesExtractor, [{
- key: "extract",
- value: function extract(objectExpressionNode, hostNode) {
- var hostParentNode = hostNode.parentNode;
- var leftNode = hostNode.left;
- if (AbstractPropertiesExtractor_1.AbstractPropertiesExtractor.isProhibitedPattern(leftNode)) {
- return objectExpressionNode;
- }
- if (hostParentNode && AbstractPropertiesExtractor_1.AbstractPropertiesExtractor.isProhibitedHostParent(hostParentNode)) {
- return objectExpressionNode;
- }
- return this.transformObjectExpressionNode(objectExpressionNode, leftNode);
- }
- }]);
- return AssignmentExpressionPropertiesExtractor;
- }(AbstractPropertiesExtractor_1.AbstractPropertiesExtractor);
- 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);
- exports.AssignmentExpressionPropertiesExtractor = AssignmentExpressionPropertiesExtractor;
- /***/ }),
- /***/ "./src/node-transformers/converting-transformers/properties-extractors/VariableDeclaratorPropertiesExtractor.ts":
- /*!**********************************************************************************************************************!*\
- !*** ./src/node-transformers/converting-transformers/properties-extractors/VariableDeclaratorPropertiesExtractor.ts ***!
- \**********************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- var AbstractPropertiesExtractor_1 = __webpack_require__(/*! ./AbstractPropertiesExtractor */ "./src/node-transformers/converting-transformers/properties-extractors/AbstractPropertiesExtractor.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var VariableDeclaratorPropertiesExtractor =
- /*#__PURE__*/
- function (_AbstractPropertiesEx) {
- (0, _inherits2["default"])(VariableDeclaratorPropertiesExtractor, _AbstractPropertiesEx);
- function VariableDeclaratorPropertiesExtractor(randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, VariableDeclaratorPropertiesExtractor);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(VariableDeclaratorPropertiesExtractor).call(this, randomGenerator, options));
- }
- (0, _createClass2["default"])(VariableDeclaratorPropertiesExtractor, [{
- key: "extract",
- value: function extract(objectExpressionNode, hostNode) {
- if (!NodeGuards_1.NodeGuards.isIdentifierNode(hostNode.id) || this.isProhibitedObjectExpressionNode(objectExpressionNode, hostNode.id)) {
- return objectExpressionNode;
- }
- return this.transformObjectExpressionNode(objectExpressionNode, hostNode.id);
- }
- }, {
- key: "getHostVariableDeclaratorNode",
- value: function getHostVariableDeclaratorNode(objectExpressionNode) {
- var parentNode = objectExpressionNode.parentNode;
- if (!parentNode || !NodeGuards_1.NodeGuards.isVariableDeclaratorNode(parentNode)) {
- throw new Error('Cannot get `VariableDeclarator` node for `ObjectExpression` node');
- }
- return parentNode;
- }
- }, {
- key: "getHostVariableDeclarationNode",
- value: function getHostVariableDeclarationNode(variableDeclaratorNode) {
- var parentNode = variableDeclaratorNode.parentNode;
- if (!parentNode || !NodeGuards_1.NodeGuards.isVariableDeclarationNode(parentNode)) {
- throw new Error('Cannot get `VariableDeclaration` node for `VariableDeclarator` node');
- }
- return parentNode;
- }
- }, {
- key: "isProhibitedObjectExpressionNode",
- value: function isProhibitedObjectExpressionNode(objectExpressionNode, memberExpressionHostNode) {
- var hostVariableDeclarator = this.getHostVariableDeclaratorNode(objectExpressionNode);
- var hostVariableDeclaration = this.getHostVariableDeclarationNode(hostVariableDeclarator);
- var declarations = hostVariableDeclaration.declarations;
- var indexOfDeclarator = declarations.indexOf(hostVariableDeclarator);
- var isLastDeclarator = indexOfDeclarator === declarations.length - 1;
- if (isLastDeclarator) {
- return false;
- }
- var declaratorsAfterCurrentDeclarator = declarations.slice(indexOfDeclarator);
- var isProhibitedObjectExpressionNode = false;
- declaratorsAfterCurrentDeclarator.forEach(function (variableDeclarator) {
- estraverse.traverse(variableDeclarator, {
- enter: function enter(node) {
- if (NodeGuards_1.NodeGuards.isMemberExpressionNode(node) && NodeGuards_1.NodeGuards.isIdentifierNode(node.object) && node.object.name === memberExpressionHostNode.name) {
- isProhibitedObjectExpressionNode = true;
- return estraverse.VisitorOption.Break;
- }
- return node;
- }
- });
- });
- return isProhibitedObjectExpressionNode;
- }
- }]);
- return VariableDeclaratorPropertiesExtractor;
- }(AbstractPropertiesExtractor_1.AbstractPropertiesExtractor);
- 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);
- exports.VariableDeclaratorPropertiesExtractor = VariableDeclaratorPropertiesExtractor;
- /***/ }),
- /***/ "./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts":
- /*!************************************************************************************************!*\
- !*** ./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts ***!
- \************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- var DeadCodeInjectionTransformer_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- var DeadCodeInjectionCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/DeadCodeInjectionCustomNode */ "./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts");
- var NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
- var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
- var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
- var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeStatementUtils_1 = __webpack_require__(/*! ../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
- var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- var DeadCodeInjectionTransformer = DeadCodeInjectionTransformer_1 =
- /*#__PURE__*/
- function (_AbstractNodeTransfor) {
- (0, _inherits2["default"])(DeadCodeInjectionTransformer, _AbstractNodeTransfor);
- function DeadCodeInjectionTransformer(deadCodeInjectionCustomNodeFactory, transformersRunner, randomGenerator, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, DeadCodeInjectionTransformer);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(DeadCodeInjectionTransformer).call(this, randomGenerator, options));
- _this.deadCodeInjectionRootAstHostNodeSet = new Set();
- _this.collectedBlockStatements = [];
- _this.collectedBlockStatementsTotalLength = 0;
- _this.deadCodeInjectionCustomNodeFactory = deadCodeInjectionCustomNodeFactory;
- _this.transformersRunner = transformersRunner;
- return _this;
- }
- (0, _createClass2["default"])(DeadCodeInjectionTransformer, [{
- key: "getVisitor",
- value: function getVisitor(transformationStage) {
- var _this2 = this;
- switch (transformationStage) {
- case TransformationStage_1.TransformationStage.DeadCodeInjection:
- return {
- enter: function enter(node, parentNode) {
- if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) {
- _this2.analyzeNode(node, parentNode);
- return node;
- }
- },
- leave: function leave(node, parentNode) {
- if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {
- return _this2.transformNode(node, parentNode);
- }
- }
- };
- case TransformationStage_1.TransformationStage.Finalizing:
- if (!this.deadCodeInjectionRootAstHostNodeSet.size) {
- return null;
- }
- return {
- enter: function enter(node, parentNode) {
- if (parentNode && _this2.isDeadCodeInjectionRootAstHostNode(node)) {
- return _this2.restoreNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- }, {
- key: "analyzeNode",
- value: function analyzeNode(programNode, parentNode) {
- var _this3 = this;
- estraverse.traverse(programNode, {
- enter: function enter(node) {
- if (!NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {
- return;
- }
- var clonedBlockStatementNode = NodeUtils_1.NodeUtils.clone(node);
- if (!DeadCodeInjectionTransformer_1.isValidCollectedBlockStatementNode(clonedBlockStatementNode)) {
- return;
- }
- var transformedBlockStatementNode = _this3.makeClonedBlockStatementNodeUnique(clonedBlockStatementNode);
- _this3.collectedBlockStatements.push(transformedBlockStatementNode);
- }
- });
- this.collectedBlockStatementsTotalLength = this.collectedBlockStatements.length;
- }
- }, {
- key: "transformNode",
- value: function transformNode(blockStatementNode, parentNode) {
- var canBreakTraverse = !this.collectedBlockStatements.length || this.collectedBlockStatementsTotalLength < DeadCodeInjectionTransformer_1.minCollectedBlockStatementsCount;
- if (canBreakTraverse) {
- return estraverse.VisitorOption.Break;
- }
- if (this.randomGenerator.getMathRandom() > this.options.deadCodeInjectionThreshold || !DeadCodeInjectionTransformer_1.isValidWrappedBlockStatementNode(blockStatementNode)) {
- return blockStatementNode;
- }
- var minInteger = 0;
- var maxInteger = this.collectedBlockStatements.length - 1;
- var randomIndex = this.randomGenerator.getRandomInteger(minInteger, maxInteger);
- var randomBlockStatementNode = this.collectedBlockStatements.splice(randomIndex, 1)[0];
- var isDuplicateBlockStatementNodes = randomBlockStatementNode === blockStatementNode;
- if (isDuplicateBlockStatementNodes) {
- return blockStatementNode;
- }
- return this.replaceBlockStatementNode(blockStatementNode, randomBlockStatementNode, parentNode);
- }
- }, {
- key: "restoreNode",
- value: function restoreNode(deadCodeInjectionRootAstHostNode, parentNode) {
- var hostNodeFirstStatement = deadCodeInjectionRootAstHostNode.body[0];
- if (!NodeGuards_1.NodeGuards.isFunctionDeclarationNode(hostNodeFirstStatement)) {
- throw new Error('Wrong dead code injection root AST host node. Host node should contain `FunctionDeclaration` node');
- }
- return hostNodeFirstStatement.body;
- }
- }, {
- key: "isDeadCodeInjectionRootAstHostNode",
- value: function isDeadCodeInjectionRootAstHostNode(node) {
- return NodeGuards_1.NodeGuards.isBlockStatementNode(node) && this.deadCodeInjectionRootAstHostNodeSet.has(node);
- }
- }, {
- key: "makeClonedBlockStatementNodeUnique",
- value: function makeClonedBlockStatementNodeUnique(clonedBlockStatementNode) {
- var hostNode = NodeFactory_1.NodeFactory.functionExpressionNode([], clonedBlockStatementNode);
- NodeUtils_1.NodeUtils.parentizeNode(hostNode, hostNode);
- NodeUtils_1.NodeUtils.parentizeNode(clonedBlockStatementNode, hostNode);
- return this.transformersRunner.transform(hostNode, DeadCodeInjectionTransformer_1.transformersToRenameBlockScopeIdentifiers, TransformationStage_1.TransformationStage.Obfuscating).body;
- }
- }, {
- key: "replaceBlockStatementNode",
- value: function replaceBlockStatementNode(blockStatementNode, randomBlockStatementNode, parentNode) {
- var deadCodeInjectionRootAstHostNode = NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.functionDeclarationNode(DeadCodeInjectionTransformer_1.deadCodeInjectionRootAstHostNodeName, [], randomBlockStatementNode)]);
- this.deadCodeInjectionRootAstHostNodeSet.add(deadCodeInjectionRootAstHostNode);
- var blockStatementDeadCodeInjectionCustomNode = this.deadCodeInjectionCustomNodeFactory(DeadCodeInjectionCustomNode_1.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode);
- blockStatementDeadCodeInjectionCustomNode.initialize(blockStatementNode, deadCodeInjectionRootAstHostNode);
- var newBlockStatementNode = blockStatementDeadCodeInjectionCustomNode.getNode()[0];
- NodeUtils_1.NodeUtils.parentizeNode(newBlockStatementNode, parentNode);
- return newBlockStatementNode;
- }
- }], [{
- key: "isProhibitedNodeInsideCollectedBlockStatement",
- value: function isProhibitedNodeInsideCollectedBlockStatement(targetNode) {
- return NodeGuards_1.NodeGuards.isBreakStatementNode(targetNode) || NodeGuards_1.NodeGuards.isContinueStatementNode(targetNode) || NodeGuards_1.NodeGuards.isAwaitExpressionNode(targetNode) || NodeGuards_1.NodeGuards.isSuperNode(targetNode);
- }
- }, {
- key: "isScopeHoistingFunctionDeclaration",
- value: function isScopeHoistingFunctionDeclaration(targetNode) {
- if (!NodeGuards_1.NodeGuards.isFunctionDeclarationNode(targetNode)) {
- return false;
- }
- var scopeNode = NodeStatementUtils_1.NodeStatementUtils.getScopeOfNode(targetNode);
- var scopeBody = !NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode) ? scopeNode.body : scopeNode.consequent;
- var indexInScope = scopeBody.indexOf(targetNode);
- if (indexInScope === 0) {
- return false;
- }
- var slicedBody = scopeBody.slice(0, indexInScope);
- var hostBlockStatementNode = NodeFactory_1.NodeFactory.blockStatementNode(slicedBody);
- var functionDeclarationName = targetNode.id.name;
- var isScopeHoistedFunctionDeclaration = false;
- estraverse.traverse(hostBlockStatementNode, {
- enter: function enter(node) {
- if (NodeGuards_1.NodeGuards.isIdentifierNode(node) && node.name === functionDeclarationName) {
- isScopeHoistedFunctionDeclaration = true;
- return estraverse.VisitorOption.Break;
- }
- }
- });
- return isScopeHoistedFunctionDeclaration;
- }
- }, {
- key: "isValidCollectedBlockStatementNode",
- value: function isValidCollectedBlockStatementNode(blockStatementNode) {
- if (!blockStatementNode.body.length) {
- return false;
- }
- var nestedBlockStatementsCount = 0;
- var isValidBlockStatementNode = true;
- estraverse.traverse(blockStatementNode, {
- enter: function enter(node) {
- if (NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {
- nestedBlockStatementsCount++;
- }
- if (nestedBlockStatementsCount > DeadCodeInjectionTransformer_1.maxNestedBlockStatementsCount || DeadCodeInjectionTransformer_1.isProhibitedNodeInsideCollectedBlockStatement(node) || DeadCodeInjectionTransformer_1.isScopeHoistingFunctionDeclaration(node)) {
- isValidBlockStatementNode = false;
- return estraverse.VisitorOption.Break;
- }
- }
- });
- return isValidBlockStatementNode;
- }
- }, {
- key: "isValidWrappedBlockStatementNode",
- value: function isValidWrappedBlockStatementNode(blockStatementNode) {
- if (!blockStatementNode.body.length) {
- return false;
- }
- var isValidBlockStatementNode = true;
- estraverse.traverse(blockStatementNode, {
- enter: function enter(node) {
- if (DeadCodeInjectionTransformer_1.isScopeHoistingFunctionDeclaration(node)) {
- isValidBlockStatementNode = false;
- return estraverse.VisitorOption.Break;
- }
- }
- });
- if (!isValidBlockStatementNode) {
- return false;
- }
- var parentNodeWithStatements = NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockStatementNode);
- return parentNodeWithStatements.type !== NodeType_1.NodeType.Program;
- }
- }]);
- return DeadCodeInjectionTransformer;
- }(AbstractNodeTransformer_1.AbstractNodeTransformer);
- DeadCodeInjectionTransformer.deadCodeInjectionRootAstHostNodeName = 'deadCodeInjectionRootAstHostNode';
- DeadCodeInjectionTransformer.maxNestedBlockStatementsCount = 4;
- DeadCodeInjectionTransformer.minCollectedBlockStatementsCount = 5;
- 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];
- 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);
- exports.DeadCodeInjectionTransformer = DeadCodeInjectionTransformer;
- /***/ }),
- /***/ "./src/node-transformers/obfuscating-transformers/CatchClauseTransformer.ts":
- /*!**********************************************************************************!*\
- !*** ./src/node-transformers/obfuscating-transformers/CatchClauseTransformer.ts ***!
- \**********************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
- var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
- var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
- var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
- var CatchClauseTransformer =
- /*#__PURE__*/
- function (_AbstractNodeTransfor) {
- (0, _inherits2["default"])(CatchClauseTransformer, _AbstractNodeTransfor);
- function CatchClauseTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, CatchClauseTransformer);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(CatchClauseTransformer).call(this, randomGenerator, options));
- _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
- return _this;
- }
- (0, _createClass2["default"])(CatchClauseTransformer, [{
- key: "getVisitor",
- value: function getVisitor(transformationStage) {
- var _this2 = this;
- switch (transformationStage) {
- case TransformationStage_1.TransformationStage.Obfuscating:
- return {
- enter: function enter(node, parentNode) {
- if (parentNode && NodeGuards_1.NodeGuards.isCatchClauseNode(node)) {
- return _this2.transformNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- }, {
- key: "transformNode",
- value: function transformNode(catchClauseNode, parentNode) {
- var lexicalScopeNode = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(catchClauseNode);
- if (!lexicalScopeNode) {
- return catchClauseNode;
- }
- this.storeCatchClauseParam(catchClauseNode, lexicalScopeNode);
- this.replaceCatchClauseParam(catchClauseNode, lexicalScopeNode);
- return catchClauseNode;
- }
- }, {
- key: "storeCatchClauseParam",
- value: function storeCatchClauseParam(catchClauseNode, lexicalScopeNode) {
- if (NodeGuards_1.NodeGuards.isIdentifierNode(catchClauseNode.param)) {
- this.identifierObfuscatingReplacer.storeLocalName(catchClauseNode.param.name, lexicalScopeNode);
- }
- }
- }, {
- key: "replaceCatchClauseParam",
- value: function replaceCatchClauseParam(catchClauseNode, lexicalScopeNode) {
- var _this3 = this;
- estraverse.replace(catchClauseNode, {
- enter: function enter(node, parentNode) {
- if (parentNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode)) {
- var newIdentifier = _this3.identifierObfuscatingReplacer.replace(node.name, lexicalScopeNode);
- var newIdentifierName = newIdentifier.name;
- if (node.name !== newIdentifierName) {
- node.name = newIdentifierName;
- NodeMetadata_1.NodeMetadata.set(node, {
- renamedIdentifier: true
- });
- }
- }
- }
- });
- }
- }]);
- return CatchClauseTransformer;
- }(AbstractNodeTransformer_1.AbstractNodeTransformer);
- 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);
- exports.CatchClauseTransformer = CatchClauseTransformer;
- /***/ }),
- /***/ "./src/node-transformers/obfuscating-transformers/ClassDeclarationTransformer.ts":
- /*!***************************************************************************************!*\
- !*** ./src/node-transformers/obfuscating-transformers/ClassDeclarationTransformer.ts ***!
- \***************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
- var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
- var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
- var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
- var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
- var ClassDeclarationTransformer =
- /*#__PURE__*/
- function (_AbstractNodeTransfor) {
- (0, _inherits2["default"])(ClassDeclarationTransformer, _AbstractNodeTransfor);
- function ClassDeclarationTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, ClassDeclarationTransformer);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ClassDeclarationTransformer).call(this, randomGenerator, options));
- _this.replaceableIdentifiers = new Map();
- _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
- return _this;
- }
- (0, _createClass2["default"])(ClassDeclarationTransformer, [{
- key: "getVisitor",
- value: function getVisitor(transformationStage) {
- var _this2 = this;
- switch (transformationStage) {
- case TransformationStage_1.TransformationStage.Obfuscating:
- return {
- enter: function enter(node, parentNode) {
- if (parentNode && NodeGuards_1.NodeGuards.isClassDeclarationNode(node) && !NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode)) {
- return _this2.transformNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- }, {
- key: "transformNode",
- value: function transformNode(classDeclarationNode, parentNode) {
- var lexicalScopeNode = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(classDeclarationNode);
- if (!lexicalScopeNode) {
- return classDeclarationNode;
- }
- var isGlobalDeclaration = lexicalScopeNode.type === NodeType_1.NodeType.Program;
- if (!this.options.renameGlobals && isGlobalDeclaration) {
- return classDeclarationNode;
- }
- this.storeClassName(classDeclarationNode, lexicalScopeNode, isGlobalDeclaration);
- if (this.replaceableIdentifiers.has(lexicalScopeNode)) {
- this.replaceScopeCachedIdentifiers(classDeclarationNode, lexicalScopeNode);
- } else {
- this.replaceScopeIdentifiers(lexicalScopeNode);
- }
- return classDeclarationNode;
- }
- }, {
- key: "storeClassName",
- value: function storeClassName(classDeclarationNode, lexicalScopeNode, isGlobalDeclaration) {
- if (isGlobalDeclaration) {
- this.identifierObfuscatingReplacer.storeGlobalName(classDeclarationNode.id.name, lexicalScopeNode);
- } else {
- this.identifierObfuscatingReplacer.storeLocalName(classDeclarationNode.id.name, lexicalScopeNode);
- }
- }
- }, {
- key: "replaceScopeCachedIdentifiers",
- value: function replaceScopeCachedIdentifiers(classDeclarationNode, lexicalScopeNode) {
- var cachedReplaceableIdentifiersNamesMap = this.replaceableIdentifiers.get(lexicalScopeNode);
- var cachedReplaceableIdentifiers = cachedReplaceableIdentifiersNamesMap.get(classDeclarationNode.id.name);
- if (!cachedReplaceableIdentifiers) {
- return;
- }
- var cachedReplaceableIdentifierLength = cachedReplaceableIdentifiers.length;
- for (var i = 0; i < cachedReplaceableIdentifierLength; i++) {
- var replaceableIdentifier = cachedReplaceableIdentifiers[i];
- var newReplaceableIdentifier = this.identifierObfuscatingReplacer.replace(replaceableIdentifier.name, lexicalScopeNode);
- replaceableIdentifier.name = newReplaceableIdentifier.name;
- NodeMetadata_1.NodeMetadata.set(replaceableIdentifier, {
- renamedIdentifier: true
- });
- }
- }
- }, {
- key: "replaceScopeIdentifiers",
- value: function replaceScopeIdentifiers(lexicalScopeNode) {
- var _this3 = this;
- var storedReplaceableIdentifiersNamesMap = new Map();
- estraverse.replace(lexicalScopeNode, {
- enter: function enter(node, parentNode) {
- if (parentNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode) && !NodeMetadata_1.NodeMetadata.isRenamedIdentifier(node)) {
- var newIdentifier = _this3.identifierObfuscatingReplacer.replace(node.name, lexicalScopeNode);
- var newIdentifierName = newIdentifier.name;
- if (node.name !== newIdentifierName) {
- node.name = newIdentifierName;
- NodeMetadata_1.NodeMetadata.set(node, {
- renamedIdentifier: true
- });
- } else {
- var storedReplaceableIdentifiers = storedReplaceableIdentifiersNamesMap.get(node.name) || [];
- storedReplaceableIdentifiers.push(node);
- storedReplaceableIdentifiersNamesMap.set(node.name, storedReplaceableIdentifiers);
- }
- }
- }
- });
- this.replaceableIdentifiers.set(lexicalScopeNode, storedReplaceableIdentifiersNamesMap);
- }
- }]);
- return ClassDeclarationTransformer;
- }(AbstractNodeTransformer_1.AbstractNodeTransformer);
- 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);
- exports.ClassDeclarationTransformer = ClassDeclarationTransformer;
- /***/ }),
- /***/ "./src/node-transformers/obfuscating-transformers/FunctionDeclarationTransformer.ts":
- /*!******************************************************************************************!*\
- !*** ./src/node-transformers/obfuscating-transformers/FunctionDeclarationTransformer.ts ***!
- \******************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
- var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
- var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
- var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
- var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
- var FunctionDeclarationTransformer =
- /*#__PURE__*/
- function (_AbstractNodeTransfor) {
- (0, _inherits2["default"])(FunctionDeclarationTransformer, _AbstractNodeTransfor);
- function FunctionDeclarationTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, FunctionDeclarationTransformer);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(FunctionDeclarationTransformer).call(this, randomGenerator, options));
- _this.replaceableIdentifiers = new Map();
- _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
- return _this;
- }
- (0, _createClass2["default"])(FunctionDeclarationTransformer, [{
- key: "getVisitor",
- value: function getVisitor(transformationStage) {
- var _this2 = this;
- switch (transformationStage) {
- case TransformationStage_1.TransformationStage.Obfuscating:
- return {
- enter: function enter(node, parentNode) {
- if (parentNode && NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) && !NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode)) {
- return _this2.transformNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- }, {
- key: "transformNode",
- value: function transformNode(functionDeclarationNode, parentNode) {
- var lexicalScopeNode = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(parentNode);
- if (!lexicalScopeNode) {
- return functionDeclarationNode;
- }
- var isGlobalDeclaration = lexicalScopeNode.type === NodeType_1.NodeType.Program;
- if (!this.options.renameGlobals && isGlobalDeclaration) {
- return functionDeclarationNode;
- }
- this.storeFunctionName(functionDeclarationNode, lexicalScopeNode, isGlobalDeclaration);
- if (this.replaceableIdentifiers.has(lexicalScopeNode)) {
- this.replaceScopeCachedIdentifiers(functionDeclarationNode, lexicalScopeNode);
- } else {
- this.replaceScopeIdentifiers(lexicalScopeNode);
- }
- return functionDeclarationNode;
- }
- }, {
- key: "storeFunctionName",
- value: function storeFunctionName(functionDeclarationNode, lexicalScopeNode, isGlobalDeclaration) {
- if (isGlobalDeclaration) {
- this.identifierObfuscatingReplacer.storeGlobalName(functionDeclarationNode.id.name, lexicalScopeNode);
- } else {
- this.identifierObfuscatingReplacer.storeLocalName(functionDeclarationNode.id.name, lexicalScopeNode);
- }
- }
- }, {
- key: "replaceScopeCachedIdentifiers",
- value: function replaceScopeCachedIdentifiers(functionDeclarationNode, lexicalScopeNode) {
- var cachedReplaceableIdentifiersNamesMap = this.replaceableIdentifiers.get(lexicalScopeNode);
- var cachedReplaceableIdentifiers = cachedReplaceableIdentifiersNamesMap.get(functionDeclarationNode.id.name);
- if (!cachedReplaceableIdentifiers) {
- return;
- }
- var cachedReplaceableIdentifierLength = cachedReplaceableIdentifiers.length;
- for (var i = 0; i < cachedReplaceableIdentifierLength; i++) {
- var replaceableIdentifier = cachedReplaceableIdentifiers[i];
- var newReplaceableIdentifier = this.identifierObfuscatingReplacer.replace(replaceableIdentifier.name, lexicalScopeNode);
- replaceableIdentifier.name = newReplaceableIdentifier.name;
- NodeMetadata_1.NodeMetadata.set(replaceableIdentifier, {
- renamedIdentifier: true
- });
- }
- }
- }, {
- key: "replaceScopeIdentifiers",
- value: function replaceScopeIdentifiers(lexicalScopeNode) {
- var _this3 = this;
- var storedReplaceableIdentifiersNamesMap = new Map();
- estraverse.replace(lexicalScopeNode, {
- enter: function enter(node, parentNode) {
- if (parentNode && parentNode !== lexicalScopeNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode) && !NodeMetadata_1.NodeMetadata.isRenamedIdentifier(node)) {
- var newIdentifier = _this3.identifierObfuscatingReplacer.replace(node.name, lexicalScopeNode);
- var newIdentifierName = newIdentifier.name;
- if (node.name !== newIdentifierName) {
- node.name = newIdentifierName;
- NodeMetadata_1.NodeMetadata.set(node, {
- renamedIdentifier: true
- });
- } else {
- var storedReplaceableIdentifiers = storedReplaceableIdentifiersNamesMap.get(node.name) || [];
- storedReplaceableIdentifiers.push(node);
- storedReplaceableIdentifiersNamesMap.set(node.name, storedReplaceableIdentifiers);
- }
- }
- }
- });
- this.replaceableIdentifiers.set(lexicalScopeNode, storedReplaceableIdentifiersNamesMap);
- }
- }]);
- return FunctionDeclarationTransformer;
- }(AbstractNodeTransformer_1.AbstractNodeTransformer);
- 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);
- exports.FunctionDeclarationTransformer = FunctionDeclarationTransformer;
- /***/ }),
- /***/ "./src/node-transformers/obfuscating-transformers/FunctionTransformer.ts":
- /*!*******************************************************************************!*\
- !*** ./src/node-transformers/obfuscating-transformers/FunctionTransformer.ts ***!
- \*******************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- var FunctionTransformer_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
- var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
- var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
- var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
- var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
- var FunctionTransformer = FunctionTransformer_1 =
- /*#__PURE__*/
- function (_AbstractNodeTransfor) {
- (0, _inherits2["default"])(FunctionTransformer, _AbstractNodeTransfor);
- function FunctionTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, FunctionTransformer);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(FunctionTransformer).call(this, randomGenerator, options));
- _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
- return _this;
- }
- (0, _createClass2["default"])(FunctionTransformer, [{
- key: "getVisitor",
- value: function getVisitor(transformationStage) {
- var _this2 = this;
- switch (transformationStage) {
- case TransformationStage_1.TransformationStage.Obfuscating:
- return {
- enter: function enter(node, parentNode) {
- if (parentNode && NodeGuards_1.NodeGuards.isFunctionNode(node)) {
- return _this2.transformNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- }, {
- key: "transformNode",
- value: function transformNode(functionNode, parentNode) {
- var lexicalScopeNode = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(functionNode);
- if (!lexicalScopeNode) {
- return functionNode;
- }
- this.storeFunctionParams(functionNode, lexicalScopeNode);
- this.replaceFunctionParams(functionNode, lexicalScopeNode);
- return functionNode;
- }
- }, {
- key: "isGlobalFunctionDeclarationIdentifier",
- value: function isGlobalFunctionDeclarationIdentifier(node, parentNode) {
- if (!NodeGuards_1.NodeGuards.isFunctionDeclarationNode(parentNode) || parentNode.id !== node) {
- return false;
- }
- var lexicalScopeNode = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScopes(parentNode)[1];
- if (!lexicalScopeNode) {
- return false;
- }
- var isGlobalDeclaration = lexicalScopeNode.type === NodeType_1.NodeType.Program;
- return !this.options.renameGlobals && isGlobalDeclaration;
- }
- }, {
- key: "storeFunctionParams",
- value: function storeFunctionParams(functionNode, lexicalScopeNode) {
- var _this3 = this;
- var visitor = {
- enter: function enter(node, parentNode) {
- if (FunctionTransformer_1.isProhibitedIdentifierOfPropertyNode(node, parentNode)) {
- return;
- }
- if (NodeGuards_1.NodeGuards.isAssignmentPatternNode(node) && NodeGuards_1.NodeGuards.isIdentifierNode(node.left)) {
- _this3.identifierObfuscatingReplacer.storeLocalName(node.left.name, lexicalScopeNode);
- return estraverse.VisitorOption.Skip;
- }
- if (NodeGuards_1.NodeGuards.isIdentifierNode(node)) {
- _this3.identifierObfuscatingReplacer.storeLocalName(node.name, lexicalScopeNode);
- }
- }
- };
- functionNode.params.forEach(function (paramsNode) {
- estraverse.traverse(paramsNode, visitor);
- });
- }
- }, {
- key: "replaceFunctionParams",
- value: function replaceFunctionParams(functionNode, lexicalScopeNode) {
- var _this4 = this;
- var ignoredIdentifierNamesSet = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new Set();
- var visitor = {
- enter: function enter(node, parentNode) {
- if (NodeGuards_1.NodeGuards.isFunctionNode(node) && node !== functionNode) {
- _this4.replaceFunctionParams(node, lexicalScopeNode, new Set(ignoredIdentifierNamesSet));
- return estraverse.VisitorOption.Skip;
- }
- if (FunctionTransformer_1.isProhibitedIdentifierOfShorthandPropertyNode(node)) {
- ignoredIdentifierNamesSet.add(node.key.name);
- return;
- }
- if (parentNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode) && !NodeMetadata_1.NodeMetadata.isRenamedIdentifier(node) && !ignoredIdentifierNamesSet.has(node.name)) {
- if (_this4.isGlobalFunctionDeclarationIdentifier(node, parentNode)) {
- return;
- }
- var newIdentifier = _this4.identifierObfuscatingReplacer.replace(node.name, lexicalScopeNode);
- var newIdentifierName = newIdentifier.name;
- if (node.name !== newIdentifierName) {
- node.name = newIdentifierName;
- NodeMetadata_1.NodeMetadata.set(node, {
- renamedIdentifier: true
- });
- }
- }
- }
- };
- estraverse.replace(functionNode, visitor);
- }
- }], [{
- key: "isProhibitedIdentifierOfPropertyNode",
- value: function isProhibitedIdentifierOfPropertyNode(node, parentNode) {
- return NodeGuards_1.NodeGuards.isIdentifierNode(node) && !!parentNode && NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && parentNode.key === node;
- }
- }, {
- key: "isProhibitedIdentifierOfShorthandPropertyNode",
- value: function isProhibitedIdentifierOfShorthandPropertyNode(node) {
- return NodeGuards_1.NodeGuards.isPropertyNode(node) && node.shorthand && NodeGuards_1.NodeGuards.isIdentifierNode(node.key);
- }
- }]);
- return FunctionTransformer;
- }(AbstractNodeTransformer_1.AbstractNodeTransformer);
- 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);
- exports.FunctionTransformer = FunctionTransformer;
- /***/ }),
- /***/ "./src/node-transformers/obfuscating-transformers/ImportDeclarationTransformer.ts":
- /*!****************************************************************************************!*\
- !*** ./src/node-transformers/obfuscating-transformers/ImportDeclarationTransformer.ts ***!
- \****************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- var ImportDeclarationTransformer_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
- var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
- var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
- var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
- var ImportDeclarationTransformer = ImportDeclarationTransformer_1 =
- /*#__PURE__*/
- function (_AbstractNodeTransfor) {
- (0, _inherits2["default"])(ImportDeclarationTransformer, _AbstractNodeTransfor);
- function ImportDeclarationTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, ImportDeclarationTransformer);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ImportDeclarationTransformer).call(this, randomGenerator, options));
- _this.replaceableIdentifiers = new Map();
- _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
- return _this;
- }
- (0, _createClass2["default"])(ImportDeclarationTransformer, [{
- key: "getVisitor",
- value: function getVisitor(transformationStage) {
- var _this2 = this;
- switch (transformationStage) {
- case TransformationStage_1.TransformationStage.Obfuscating:
- return {
- enter: function enter(node, parentNode) {
- if (parentNode && NodeGuards_1.NodeGuards.isImportDeclarationNode(node)) {
- return _this2.transformNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- }, {
- key: "transformNode",
- value: function transformNode(importDeclarationNode, parentNode) {
- var lexicalScopeNode = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(importDeclarationNode);
- if (!lexicalScopeNode) {
- return importDeclarationNode;
- }
- this.storeImportSpecifierNames(importDeclarationNode, lexicalScopeNode);
- if (this.replaceableIdentifiers.has(lexicalScopeNode)) {
- this.replaceScopeCachedIdentifiers(lexicalScopeNode);
- } else {
- this.replaceScopeIdentifiers(lexicalScopeNode);
- }
- return importDeclarationNode;
- }
- }, {
- key: "storeImportSpecifierNames",
- value: function storeImportSpecifierNames(importDeclarationNode, lexicalScopeNode) {
- var _this3 = this;
- importDeclarationNode.specifiers.forEach(function (importSpecifierNode) {
- if (ImportDeclarationTransformer_1.isProhibitedImportSpecifierNode(importSpecifierNode)) {
- return;
- }
- _this3.identifierObfuscatingReplacer.storeGlobalName(importSpecifierNode.local.name, lexicalScopeNode);
- });
- }
- }, {
- key: "replaceScopeCachedIdentifiers",
- value: function replaceScopeCachedIdentifiers(lexicalScopeNode) {
- var _this4 = this;
- var cachedReplaceableIdentifiers = this.replaceableIdentifiers.get(lexicalScopeNode);
- cachedReplaceableIdentifiers.forEach(function (replaceableIdentifier) {
- var newReplaceableIdentifier = _this4.identifierObfuscatingReplacer.replace(replaceableIdentifier.name, lexicalScopeNode);
- replaceableIdentifier.name = newReplaceableIdentifier.name;
- NodeMetadata_1.NodeMetadata.set(replaceableIdentifier, {
- renamedIdentifier: true
- });
- });
- }
- }, {
- key: "replaceScopeIdentifiers",
- value: function replaceScopeIdentifiers(lexicalScopeNode) {
- var _this5 = this;
- var storedReplaceableIdentifiers = [];
- estraverse.replace(lexicalScopeNode, {
- enter: function enter(node, parentNode) {
- if (parentNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode) && !NodeMetadata_1.NodeMetadata.isRenamedIdentifier(node)) {
- var newIdentifier = _this5.identifierObfuscatingReplacer.replace(node.name, lexicalScopeNode);
- var newIdentifierName = newIdentifier.name;
- if (node.name !== newIdentifierName) {
- node.name = newIdentifierName;
- NodeMetadata_1.NodeMetadata.set(node, {
- renamedIdentifier: true
- });
- } else {
- storedReplaceableIdentifiers.push(node);
- }
- }
- }
- });
- this.replaceableIdentifiers.set(lexicalScopeNode, storedReplaceableIdentifiers);
- }
- }], [{
- key: "isProhibitedImportSpecifierNode",
- value: function isProhibitedImportSpecifierNode(importSpecifierNode) {
- return NodeGuards_1.NodeGuards.isImportSpecifierNode(importSpecifierNode) && importSpecifierNode.imported.name === importSpecifierNode.local.name;
- }
- }]);
- return ImportDeclarationTransformer;
- }(AbstractNodeTransformer_1.AbstractNodeTransformer);
- 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);
- exports.ImportDeclarationTransformer = ImportDeclarationTransformer;
- /***/ }),
- /***/ "./src/node-transformers/obfuscating-transformers/LabeledStatementTransformer.ts":
- /*!***************************************************************************************!*\
- !*** ./src/node-transformers/obfuscating-transformers/LabeledStatementTransformer.ts ***!
- \***************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
- var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
- var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
- var LabeledStatementTransformer =
- /*#__PURE__*/
- function (_AbstractNodeTransfor) {
- (0, _inherits2["default"])(LabeledStatementTransformer, _AbstractNodeTransfor);
- function LabeledStatementTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, LabeledStatementTransformer);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(LabeledStatementTransformer).call(this, randomGenerator, options));
- _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
- return _this;
- }
- (0, _createClass2["default"])(LabeledStatementTransformer, [{
- key: "getVisitor",
- value: function getVisitor(transformationStage) {
- var _this2 = this;
- switch (transformationStage) {
- case TransformationStage_1.TransformationStage.Obfuscating:
- return {
- enter: function enter(node, parentNode) {
- if (parentNode && NodeGuards_1.NodeGuards.isLabeledStatementNode(node)) {
- return _this2.transformNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- }, {
- key: "transformNode",
- value: function transformNode(labeledStatementNode, parentNode) {
- var lexicalScopeNode = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(labeledStatementNode);
- if (!lexicalScopeNode) {
- return labeledStatementNode;
- }
- this.storeLabeledStatementName(labeledStatementNode, lexicalScopeNode);
- this.replaceLabeledStatementName(labeledStatementNode, lexicalScopeNode);
- return labeledStatementNode;
- }
- }, {
- key: "storeLabeledStatementName",
- value: function storeLabeledStatementName(labeledStatementNode, lexicalScopeNode) {
- this.identifierObfuscatingReplacer.storeLocalName(labeledStatementNode.label.name, lexicalScopeNode);
- }
- }, {
- key: "replaceLabeledStatementName",
- value: function replaceLabeledStatementName(labeledStatementNode, lexicalScopeNode) {
- var _this3 = this;
- estraverse.replace(labeledStatementNode, {
- enter: function enter(node, parentNode) {
- if (parentNode && NodeGuards_1.NodeGuards.isLabelIdentifierNode(node, parentNode)) {
- var newIdentifier = _this3.identifierObfuscatingReplacer.replace(node.name, lexicalScopeNode);
- node.name = newIdentifier.name;
- }
- }
- });
- }
- }]);
- return LabeledStatementTransformer;
- }(AbstractNodeTransformer_1.AbstractNodeTransformer);
- 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);
- exports.LabeledStatementTransformer = LabeledStatementTransformer;
- /***/ }),
- /***/ "./src/node-transformers/obfuscating-transformers/LiteralTransformer.ts":
- /*!******************************************************************************!*\
- !*** ./src/node-transformers/obfuscating-transformers/LiteralTransformer.ts ***!
- \******************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "@babel/runtime/helpers/typeof"));
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var LiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts");
- var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
- var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
- var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- var LiteralTransformer =
- /*#__PURE__*/
- function (_AbstractNodeTransfor) {
- (0, _inherits2["default"])(LiteralTransformer, _AbstractNodeTransfor);
- function LiteralTransformer(literalObfuscatingReplacerFactory, randomGenerator, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, LiteralTransformer);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(LiteralTransformer).call(this, randomGenerator, options));
- _this.literalObfuscatingReplacerFactory = literalObfuscatingReplacerFactory;
- return _this;
- }
- (0, _createClass2["default"])(LiteralTransformer, [{
- key: "getVisitor",
- value: function getVisitor(transformationStage) {
- var _this2 = this;
- switch (transformationStage) {
- case TransformationStage_1.TransformationStage.Obfuscating:
- return {
- enter: function enter(node, parentNode) {
- if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node) && !NodeMetadata_1.NodeMetadata.isReplacedLiteral(node)) {
- return _this2.transformNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- }, {
- key: "transformNode",
- value: function transformNode(literalNode, parentNode) {
- if (this.isProhibitedNode(literalNode, parentNode)) {
- return literalNode;
- }
- var newLiteralNode;
- switch ((0, _typeof2["default"])(literalNode.value)) {
- case 'boolean':
- newLiteralNode = this.literalObfuscatingReplacerFactory(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.BooleanLiteralObfuscatingReplacer).replace(literalNode.value);
- break;
- case 'number':
- newLiteralNode = this.literalObfuscatingReplacerFactory(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.NumberLiteralObfuscatingReplacer).replace(literalNode.value);
- break;
- case 'string':
- newLiteralNode = this.literalObfuscatingReplacerFactory(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.StringLiteralObfuscatingReplacer).replace(literalNode.value);
- break;
- default:
- newLiteralNode = literalNode;
- }
- NodeUtils_1.NodeUtils.parentizeNode(newLiteralNode, parentNode);
- return newLiteralNode;
- }
- }, {
- key: "isProhibitedNode",
- value: function isProhibitedNode(literalNode, parentNode) {
- if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && parentNode.key === literalNode) {
- return true;
- }
- if (NodeGuards_1.NodeGuards.isImportDeclarationNode(parentNode)) {
- return true;
- }
- return false;
- }
- }]);
- return LiteralTransformer;
- }(AbstractNodeTransformer_1.AbstractNodeTransformer);
- 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);
- exports.LiteralTransformer = LiteralTransformer;
- /***/ }),
- /***/ "./src/node-transformers/obfuscating-transformers/VariableDeclarationTransformer.ts":
- /*!******************************************************************************************!*\
- !*** ./src/node-transformers/obfuscating-transformers/VariableDeclarationTransformer.ts ***!
- \******************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
- var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
- var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
- var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
- var NodeBlockLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeBlockLexicalScopeUtils */ "./src/node/NodeBlockLexicalScopeUtils.ts");
- var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
- var VariableDeclarationTransformer =
- /*#__PURE__*/
- function (_AbstractNodeTransfor) {
- (0, _inherits2["default"])(VariableDeclarationTransformer, _AbstractNodeTransfor);
- function VariableDeclarationTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, VariableDeclarationTransformer);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(VariableDeclarationTransformer).call(this, randomGenerator, options));
- _this.replaceableIdentifiers = new Map();
- _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
- return _this;
- }
- (0, _createClass2["default"])(VariableDeclarationTransformer, [{
- key: "getVisitor",
- value: function getVisitor(transformationStage) {
- var _this2 = this;
- switch (transformationStage) {
- case TransformationStage_1.TransformationStage.Obfuscating:
- return {
- enter: function enter(node, parentNode) {
- if (parentNode && NodeGuards_1.NodeGuards.isVariableDeclarationNode(node) && !NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode)) {
- return _this2.transformNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- }, {
- key: "transformNode",
- value: function transformNode(variableDeclarationNode, parentNode) {
- var lexicalScopeNode = variableDeclarationNode.kind === 'var' ? NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(variableDeclarationNode) : NodeBlockLexicalScopeUtils_1.NodeBlockLexicalScopeUtils.getLexicalScope(variableDeclarationNode);
- if (!lexicalScopeNode) {
- return variableDeclarationNode;
- }
- var isGlobalDeclaration = lexicalScopeNode.type === NodeType_1.NodeType.Program;
- if (!this.options.renameGlobals && isGlobalDeclaration) {
- return variableDeclarationNode;
- }
- var scopeNode = variableDeclarationNode.kind === 'var' ? lexicalScopeNode : parentNode;
- this.storeVariableNames(variableDeclarationNode, lexicalScopeNode, isGlobalDeclaration);
- if (this.replaceableIdentifiers.has(scopeNode)) {
- this.replaceScopeCachedIdentifiers(variableDeclarationNode, lexicalScopeNode, scopeNode);
- } else {
- this.replaceScopeIdentifiers(scopeNode, lexicalScopeNode);
- }
- return variableDeclarationNode;
- }
- }, {
- key: "storeVariableNames",
- value: function storeVariableNames(variableDeclarationNode, lexicalScopeNode, isGlobalDeclaration) {
- var _this3 = this;
- this.traverseDeclarationIdentifiers(variableDeclarationNode, function (identifierNode) {
- if (isGlobalDeclaration) {
- _this3.identifierObfuscatingReplacer.storeGlobalName(identifierNode.name, lexicalScopeNode);
- } else {
- _this3.identifierObfuscatingReplacer.storeLocalName(identifierNode.name, lexicalScopeNode);
- }
- });
- }
- }, {
- key: "replaceScopeCachedIdentifiers",
- value: function replaceScopeCachedIdentifiers(variableDeclarationNode, lexicalScopeNode, scopeNode) {
- var _this4 = this;
- var cachedReplaceableIdentifiersNamesMap = this.replaceableIdentifiers.get(scopeNode);
- var identifierNames = [];
- this.traverseDeclarationIdentifiers(variableDeclarationNode, function (identifierNode) {
- identifierNames.push(identifierNode.name);
- });
- identifierNames.forEach(function (identifierName) {
- var cachedReplaceableIdentifiers = cachedReplaceableIdentifiersNamesMap.get(identifierName);
- if (!cachedReplaceableIdentifiers) {
- return;
- }
- var cachedReplaceableIdentifierLength = cachedReplaceableIdentifiers.length;
- for (var i = 0; i < cachedReplaceableIdentifierLength; i++) {
- var replaceableIdentifier = cachedReplaceableIdentifiers[i];
- if (identifierName !== replaceableIdentifier.name) {
- continue;
- }
- var newReplaceableIdentifier = _this4.identifierObfuscatingReplacer.replace(replaceableIdentifier.name, lexicalScopeNode);
- replaceableIdentifier.name = newReplaceableIdentifier.name;
- NodeMetadata_1.NodeMetadata.set(replaceableIdentifier, {
- renamedIdentifier: true
- });
- }
- });
- }
- }, {
- key: "replaceScopeIdentifiers",
- value: function replaceScopeIdentifiers(scopeNode, lexicalScopeNode) {
- var _this5 = this;
- var storedReplaceableIdentifiersNamesMap = new Map();
- estraverse.replace(scopeNode, {
- enter: function enter(node, parentNode) {
- if (parentNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode) && !NodeMetadata_1.NodeMetadata.isRenamedIdentifier(node)) {
- var newIdentifier = _this5.identifierObfuscatingReplacer.replace(node.name, lexicalScopeNode);
- var newIdentifierName = newIdentifier.name;
- if (node.name !== newIdentifierName) {
- node.name = newIdentifierName;
- NodeMetadata_1.NodeMetadata.set(node, {
- renamedIdentifier: true
- });
- } else {
- var storedReplaceableIdentifiers = storedReplaceableIdentifiersNamesMap.get(node.name) || [];
- storedReplaceableIdentifiers.push(node);
- storedReplaceableIdentifiersNamesMap.set(node.name, storedReplaceableIdentifiers);
- }
- }
- }
- });
- this.replaceableIdentifiers.set(scopeNode, storedReplaceableIdentifiersNamesMap);
- }
- }, {
- key: "traverseDeclarationIdentifiers",
- value: function traverseDeclarationIdentifiers(variableDeclarationNode, callback) {
- variableDeclarationNode.declarations.forEach(function (declarationNode) {
- estraverse.traverse(declarationNode.id, {
- enter: function enter(node) {
- if (NodeGuards_1.NodeGuards.isPropertyNode(node)) {
- return estraverse.VisitorOption.Skip;
- }
- if (NodeGuards_1.NodeGuards.isIdentifierNode(node)) {
- callback(node);
- }
- }
- });
- });
- }
- }]);
- return VariableDeclarationTransformer;
- }(AbstractNodeTransformer_1.AbstractNodeTransformer);
- 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);
- exports.VariableDeclarationTransformer = VariableDeclarationTransformer;
- /***/ }),
- /***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts":
- /*!*************************************************************************************************************!*\
- !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts ***!
- \*************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var AbstractObfuscatingReplacer = function AbstractObfuscatingReplacer(options) {
- (0, _classCallCheck2["default"])(this, AbstractObfuscatingReplacer);
- this.options = options;
- };
- 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);
- exports.AbstractObfuscatingReplacer = AbstractObfuscatingReplacer;
- /***/ }),
- /***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer.ts":
- /*!****************************************************************************************************************************************************!*\
- !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer.ts ***!
- \****************************************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts");
- var NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- var BaseIdentifierObfuscatingReplacer =
- /*#__PURE__*/
- function (_AbstractObfuscatingR) {
- (0, _inherits2["default"])(BaseIdentifierObfuscatingReplacer, _AbstractObfuscatingR);
- function BaseIdentifierObfuscatingReplacer(identifierNamesGeneratorFactory, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, BaseIdentifierObfuscatingReplacer);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(BaseIdentifierObfuscatingReplacer).call(this, options));
- _this.blockScopesMap = new Map();
- _this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
- return _this;
- }
- (0, _createClass2["default"])(BaseIdentifierObfuscatingReplacer, [{
- key: "replace",
- value: function replace(nodeValue, lexicalScopeNode) {
- if (this.blockScopesMap.has(lexicalScopeNode)) {
- var namesMap = this.blockScopesMap.get(lexicalScopeNode);
- if (namesMap.has(nodeValue)) {
- nodeValue = namesMap.get(nodeValue);
- }
- }
- return NodeFactory_1.NodeFactory.identifierNode(nodeValue);
- }
- }, {
- key: "storeGlobalName",
- value: function storeGlobalName(nodeName, lexicalScopeNode) {
- if (this.isReservedName(nodeName)) {
- return;
- }
- var identifierName = this.identifierNamesGenerator.generateWithPrefix();
- if (!this.blockScopesMap.has(lexicalScopeNode)) {
- this.blockScopesMap.set(lexicalScopeNode, new Map());
- }
- var namesMap = this.blockScopesMap.get(lexicalScopeNode);
- namesMap.set(nodeName, identifierName);
- }
- }, {
- key: "storeLocalName",
- value: function storeLocalName(nodeName, lexicalScopeNode) {
- if (this.isReservedName(nodeName)) {
- return;
- }
- var identifierName = this.identifierNamesGenerator.generate();
- if (!this.blockScopesMap.has(lexicalScopeNode)) {
- this.blockScopesMap.set(lexicalScopeNode, new Map());
- }
- var namesMap = this.blockScopesMap.get(lexicalScopeNode);
- namesMap.set(nodeName, identifierName);
- }
- }, {
- key: "preserveName",
- value: function preserveName(name) {
- this.identifierNamesGenerator.preserveName(name);
- }
- }, {
- key: "isReservedName",
- value: function isReservedName(name) {
- if (!this.options.reservedNames.length) {
- return false;
- }
- return this.options.reservedNames.some(function (reservedName) {
- return new RegExp(reservedName, 'g').exec(name) !== null;
- });
- }
- }]);
- return BaseIdentifierObfuscatingReplacer;
- }(AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer);
- 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);
- exports.BaseIdentifierObfuscatingReplacer = BaseIdentifierObfuscatingReplacer;
- /***/ }),
- /***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer.ts":
- /*!*************************************************************************************************************************************************!*\
- !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer.ts ***!
- \*************************************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- var BooleanLiteralObfuscatingReplacer_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts");
- var NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- var BooleanLiteralObfuscatingReplacer = BooleanLiteralObfuscatingReplacer_1 =
- /*#__PURE__*/
- function (_AbstractObfuscatingR) {
- (0, _inherits2["default"])(BooleanLiteralObfuscatingReplacer, _AbstractObfuscatingR);
- function BooleanLiteralObfuscatingReplacer(options) {
- (0, _classCallCheck2["default"])(this, BooleanLiteralObfuscatingReplacer);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(BooleanLiteralObfuscatingReplacer).call(this, options));
- }
- (0, _createClass2["default"])(BooleanLiteralObfuscatingReplacer, [{
- key: "replace",
- value: function replace(nodeValue) {
- return nodeValue ? BooleanLiteralObfuscatingReplacer_1.getTrueUnaryExpressionNode() : BooleanLiteralObfuscatingReplacer_1.getFalseUnaryExpressionNode();
- }
- }], [{
- key: "getTrueUnaryExpressionNode",
- value: function getTrueUnaryExpressionNode() {
- return NodeFactory_1.NodeFactory.unaryExpressionNode('!', BooleanLiteralObfuscatingReplacer_1.getFalseUnaryExpressionNode());
- }
- }, {
- key: "getFalseUnaryExpressionNode",
- value: function getFalseUnaryExpressionNode() {
- return NodeFactory_1.NodeFactory.unaryExpressionNode('!', NodeFactory_1.NodeFactory.arrayExpressionNode());
- }
- }]);
- return BooleanLiteralObfuscatingReplacer;
- }(AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer);
- 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);
- exports.BooleanLiteralObfuscatingReplacer = BooleanLiteralObfuscatingReplacer;
- /***/ }),
- /***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer.ts":
- /*!************************************************************************************************************************************************!*\
- !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer.ts ***!
- \************************************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts");
- var NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- var NumberUtils_1 = __webpack_require__(/*! ../../../../utils/NumberUtils */ "./src/utils/NumberUtils.ts");
- var Utils_1 = __webpack_require__(/*! ../../../../utils/Utils */ "./src/utils/Utils.ts");
- var NumberLiteralObfuscatingReplacer =
- /*#__PURE__*/
- function (_AbstractObfuscatingR) {
- (0, _inherits2["default"])(NumberLiteralObfuscatingReplacer, _AbstractObfuscatingR);
- function NumberLiteralObfuscatingReplacer(options) {
- var _this;
- (0, _classCallCheck2["default"])(this, NumberLiteralObfuscatingReplacer);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(NumberLiteralObfuscatingReplacer).call(this, options));
- _this.numberLiteralCache = new Map();
- return _this;
- }
- (0, _createClass2["default"])(NumberLiteralObfuscatingReplacer, [{
- key: "replace",
- value: function replace(nodeValue) {
- var rawValue;
- if (this.numberLiteralCache.has(nodeValue)) {
- rawValue = this.numberLiteralCache.get(nodeValue);
- } else {
- if (!NumberUtils_1.NumberUtils.isCeil(nodeValue)) {
- rawValue = String(nodeValue);
- } else {
- rawValue = "".concat(Utils_1.Utils.hexadecimalPrefix).concat(NumberUtils_1.NumberUtils.toHex(nodeValue));
- }
- this.numberLiteralCache.set(nodeValue, rawValue);
- }
- return NodeFactory_1.NodeFactory.literalNode(nodeValue, rawValue);
- }
- }]);
- return NumberLiteralObfuscatingReplacer;
- }(AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer);
- 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);
- exports.NumberLiteralObfuscatingReplacer = NumberLiteralObfuscatingReplacer;
- /***/ }),
- /***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer.ts":
- /*!************************************************************************************************************************************************!*\
- !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer.ts ***!
- \************************************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- var StringLiteralObfuscatingReplacer_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var StringArrayEncoding_1 = __webpack_require__(/*! ../../../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts");
- var AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts");
- var NodeMetadata_1 = __webpack_require__(/*! ../../../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
- var NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- var NumberUtils_1 = __webpack_require__(/*! ../../../../utils/NumberUtils */ "./src/utils/NumberUtils.ts");
- var Utils_1 = __webpack_require__(/*! ../../../../utils/Utils */ "./src/utils/Utils.ts");
- var StringLiteralObfuscatingReplacer = StringLiteralObfuscatingReplacer_1 =
- /*#__PURE__*/
- function (_AbstractObfuscatingR) {
- (0, _inherits2["default"])(StringLiteralObfuscatingReplacer, _AbstractObfuscatingR);
- function StringLiteralObfuscatingReplacer(stringArrayStorage, escapeSequenceEncoder, randomGenerator, cryptUtils, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, StringLiteralObfuscatingReplacer);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(StringLiteralObfuscatingReplacer).call(this, options));
- _this.nodesCache = new Map();
- _this.stringLiteralHexadecimalIndexCache = new Map();
- _this.stringArrayStorage = stringArrayStorage;
- _this.escapeSequenceEncoder = escapeSequenceEncoder;
- _this.randomGenerator = randomGenerator;
- _this.cryptUtils = cryptUtils;
- _this.rc4Keys = _this.randomGenerator.getRandomGenerator().n(function () {
- return _this.randomGenerator.getRandomGenerator().string({
- length: StringLiteralObfuscatingReplacer_1.rc4KeyLength
- });
- }, StringLiteralObfuscatingReplacer_1.rc4KeysCount);
- return _this;
- }
- (0, _createClass2["default"])(StringLiteralObfuscatingReplacer, [{
- key: "replace",
- value: function replace(nodeValue) {
- if (this.isReservedString(nodeValue)) {
- return this.replaceWithReservedLiteralNode(nodeValue);
- }
- var useStringArray = this.canUseStringArray(nodeValue);
- var cacheKey = "".concat(nodeValue, "-").concat(String(useStringArray));
- var useCacheValue = this.nodesCache.has(cacheKey) && this.options.stringArrayEncoding !== StringArrayEncoding_1.StringArrayEncoding.Rc4;
- if (useCacheValue) {
- return this.nodesCache.get(cacheKey);
- }
- var resultNode = useStringArray ? this.replaceWithStringArrayCallNode(nodeValue) : this.replaceWithLiteralNode(nodeValue);
- this.nodesCache.set(cacheKey, resultNode);
- return resultNode;
- }
- }, {
- key: "canUseStringArray",
- value: function canUseStringArray(nodeValue) {
- return this.options.stringArray && nodeValue.length >= StringLiteralObfuscatingReplacer_1.minimumLengthForStringArray && this.randomGenerator.getMathRandom() <= this.options.stringArrayThreshold;
- }
- }, {
- key: "getStringArrayHexadecimalIndex",
- value: function getStringArrayHexadecimalIndex(value, stringArrayStorageLength) {
- if (this.stringLiteralHexadecimalIndexCache.has(value)) {
- return {
- fromCache: true,
- index: this.stringLiteralHexadecimalIndexCache.get(value)
- };
- }
- var hexadecimalRawIndex = NumberUtils_1.NumberUtils.toHex(stringArrayStorageLength);
- var hexadecimalIndex = "".concat(Utils_1.Utils.hexadecimalPrefix).concat(hexadecimalRawIndex);
- this.stringLiteralHexadecimalIndexCache.set(value, hexadecimalIndex);
- return {
- fromCache: false,
- index: hexadecimalIndex
- };
- }
- }, {
- key: "getEncodedValue",
- value: function getEncodedValue(value) {
- var encodedValue;
- var key = null;
- switch (this.options.stringArrayEncoding) {
- case StringArrayEncoding_1.StringArrayEncoding.Rc4:
- key = this.randomGenerator.getRandomGenerator().pickone(this.rc4Keys);
- encodedValue = this.cryptUtils.btoa(this.cryptUtils.rc4(value, key));
- break;
- case StringArrayEncoding_1.StringArrayEncoding.Base64:
- encodedValue = this.cryptUtils.btoa(value);
- break;
- default:
- encodedValue = value;
- }
- return {
- encodedValue: encodedValue,
- key: key
- };
- }
- }, {
- key: "replaceWithLiteralNode",
- value: function replaceWithLiteralNode(value) {
- return NodeFactory_1.NodeFactory.literalNode(this.escapeSequenceEncoder.encode(value, this.options.unicodeEscapeSequence));
- }
- }, {
- key: "replaceWithReservedLiteralNode",
- value: function replaceWithReservedLiteralNode(value) {
- return NodeFactory_1.NodeFactory.literalNode(this.escapeSequenceEncoder.encode(value, false));
- }
- }, {
- key: "replaceWithStringArrayCallNode",
- value: function replaceWithStringArrayCallNode(value) {
- var _this$getEncodedValue = this.getEncodedValue(value),
- encodedValue = _this$getEncodedValue.encodedValue,
- key = _this$getEncodedValue.key;
- var escapedValue = this.escapeSequenceEncoder.encode(encodedValue, this.options.unicodeEscapeSequence);
- var stringArrayStorageLength = this.stringArrayStorage.getLength();
- var stringArrayStorageCallsWrapperName = this.stringArrayStorage.getStorageId().split('|')[1];
- var _this$getStringArrayH = this.getStringArrayHexadecimalIndex(escapedValue, stringArrayStorageLength),
- fromCache = _this$getStringArrayH.fromCache,
- index = _this$getStringArrayH.index;
- if (!fromCache) {
- this.stringArrayStorage.set(stringArrayStorageLength, escapedValue);
- }
- var callExpressionArgs = [StringLiteralObfuscatingReplacer_1.getHexadecimalLiteralNode(index)];
- if (key) {
- callExpressionArgs.push(StringLiteralObfuscatingReplacer_1.getRc4KeyLiteralNode(this.escapeSequenceEncoder.encode(key, this.options.unicodeEscapeSequence)));
- }
- var stringArrayIdentifierNode = NodeFactory_1.NodeFactory.identifierNode(stringArrayStorageCallsWrapperName);
- NodeMetadata_1.NodeMetadata.set(stringArrayIdentifierNode, {
- renamedIdentifier: true
- });
- return NodeFactory_1.NodeFactory.callExpressionNode(stringArrayIdentifierNode, callExpressionArgs);
- }
- }, {
- key: "isReservedString",
- value: function isReservedString(value) {
- if (!this.options.reservedStrings.length) {
- return false;
- }
- return this.options.reservedStrings.some(function (reservedString) {
- return new RegExp(reservedString, 'g').exec(value) !== null;
- });
- }
- }], [{
- key: "getHexadecimalLiteralNode",
- value: function getHexadecimalLiteralNode(hexadecimalIndex) {
- var hexadecimalLiteralNode = NodeFactory_1.NodeFactory.literalNode(hexadecimalIndex);
- NodeMetadata_1.NodeMetadata.set(hexadecimalLiteralNode, {
- replacedLiteral: true
- });
- return hexadecimalLiteralNode;
- }
- }, {
- key: "getRc4KeyLiteralNode",
- value: function getRc4KeyLiteralNode(literalValue) {
- var rc4KeyLiteralNode = NodeFactory_1.NodeFactory.literalNode(literalValue);
- NodeMetadata_1.NodeMetadata.set(rc4KeyLiteralNode, {
- replacedLiteral: true
- });
- return rc4KeyLiteralNode;
- }
- }]);
- return StringLiteralObfuscatingReplacer;
- }(AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer);
- StringLiteralObfuscatingReplacer.minimumLengthForStringArray = 3;
- StringLiteralObfuscatingReplacer.rc4KeyLength = 4;
- StringLiteralObfuscatingReplacer.rc4KeysCount = 50;
- 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);
- exports.StringLiteralObfuscatingReplacer = StringLiteralObfuscatingReplacer;
- /***/ }),
- /***/ "./src/node-transformers/preparing-transformers/CommentsTransformer.ts":
- /*!*****************************************************************************!*\
- !*** ./src/node-transformers/preparing-transformers/CommentsTransformer.ts ***!
- \*****************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- var CommentsTransformer_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
- var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var ConditionalCommentObfuscatingGuard_1 = __webpack_require__(/*! ./obfuscating-guards/ConditionalCommentObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts");
- var CommentsTransformer = CommentsTransformer_1 =
- /*#__PURE__*/
- function (_AbstractNodeTransfor) {
- (0, _inherits2["default"])(CommentsTransformer, _AbstractNodeTransfor);
- function CommentsTransformer(randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, CommentsTransformer);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(CommentsTransformer).call(this, randomGenerator, options));
- }
- (0, _createClass2["default"])(CommentsTransformer, [{
- key: "getVisitor",
- value: function getVisitor(transformationStage) {
- var _this = this;
- switch (transformationStage) {
- case TransformationStage_1.TransformationStage.Initializing:
- return {
- leave: function leave(node) {
- if (NodeGuards_1.NodeGuards.isProgramNode(node)) {
- return _this.transformNode(node);
- }
- }
- };
- default:
- return null;
- }
- }
- }, {
- key: "transformNode",
- value: function transformNode(programNode) {
- if (programNode.comments) {
- var comments = this.transformComments(programNode.comments);
- estraverse.traverse(programNode, {
- enter: function enter(node) {
- if (comments.length === 0) {
- return;
- }
- var commentIdx = comments.findIndex(function (comment) {
- return comment.range && node.range && comment.range[0] < node.range[0];
- });
- if (commentIdx === -1) {
- return;
- }
- node.leadingComments = comments.splice(commentIdx, comments.length - commentIdx).reverse();
- }
- });
- if (comments.length > 0) {
- programNode.trailingComments = comments.reverse();
- }
- }
- return programNode;
- }
- }, {
- key: "transformComments",
- value: function transformComments(comments) {
- return comments.filter(function (comment) {
- return CommentsTransformer_1.preservedWords.some(function (preservedWord) {
- return comment.value.includes(preservedWord);
- }) || ConditionalCommentObfuscatingGuard_1.ConditionalCommentObfuscatingGuard.isConditionalComment(comment);
- }).reverse();
- }
- }]);
- return CommentsTransformer;
- }(AbstractNodeTransformer_1.AbstractNodeTransformer);
- CommentsTransformer.preservedWords = ['@license', '@preserve'];
- 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);
- exports.CommentsTransformer = CommentsTransformer;
- /***/ }),
- /***/ "./src/node-transformers/preparing-transformers/CustomNodesTransformer.ts":
- /*!********************************************************************************!*\
- !*** ./src/node-transformers/preparing-transformers/CustomNodesTransformer.ts ***!
- \********************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var ObfuscationEvent_1 = __webpack_require__(/*! ../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
- var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
- var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var CustomNodesTransformer =
- /*#__PURE__*/
- function (_AbstractNodeTransfor) {
- (0, _inherits2["default"])(CustomNodesTransformer, _AbstractNodeTransfor);
- function CustomNodesTransformer(stackTraceAnalyzer, obfuscationEventEmitter, customNodeGroupStorage, randomGenerator, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, CustomNodesTransformer);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(CustomNodesTransformer).call(this, randomGenerator, options));
- _this.stackTraceData = [];
- _this.stackTraceAnalyzer = stackTraceAnalyzer;
- _this.obfuscationEventEmitter = obfuscationEventEmitter;
- _this.customNodeGroupStorage = customNodeGroupStorage;
- return _this;
- }
- (0, _createClass2["default"])(CustomNodesTransformer, [{
- key: "getVisitor",
- value: function getVisitor(transformationStage) {
- var _this2 = this;
- switch (transformationStage) {
- case TransformationStage_1.TransformationStage.Preparing:
- return {
- leave: function leave(node, parentNode) {
- if (NodeGuards_1.NodeGuards.isProgramNode(node)) {
- _this2.analyzeNode(node, parentNode);
- _this2.appendCustomNodesBeforeObfuscation(node, parentNode);
- return _this2.transformNode(node, parentNode);
- }
- }
- };
- case TransformationStage_1.TransformationStage.Finalizing:
- return {
- leave: function leave(node, parentNode) {
- if (NodeGuards_1.NodeGuards.isProgramNode(node)) {
- _this2.appendCustomNodesAfterObfuscation(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- }, {
- key: "analyzeNode",
- value: function analyzeNode(node, parentNode) {
- this.stackTraceData = this.stackTraceAnalyzer.analyze(node);
- }
- }, {
- key: "transformNode",
- value: function transformNode(node, parentNode) {
- return node;
- }
- }, {
- key: "appendCustomNodesBeforeObfuscation",
- value: function appendCustomNodesBeforeObfuscation(node, parentNode) {
- var _this3 = this;
- this.customNodeGroupStorage.getStorage().forEach(function (customNodeGroup) {
- customNodeGroup.initialize();
- _this3.obfuscationEventEmitter.once(customNodeGroup.getAppendEvent(), customNodeGroup.appendCustomNodes.bind(customNodeGroup));
- });
- this.obfuscationEventEmitter.emit(ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation, node, this.stackTraceData);
- }
- }, {
- key: "appendCustomNodesAfterObfuscation",
- value: function appendCustomNodesAfterObfuscation(node, parentNode) {
- this.obfuscationEventEmitter.emit(ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation, node, this.stackTraceData);
- }
- }]);
- return CustomNodesTransformer;
- }(AbstractNodeTransformer_1.AbstractNodeTransformer);
- 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);
- exports.CustomNodesTransformer = CustomNodesTransformer;
- /***/ }),
- /***/ "./src/node-transformers/preparing-transformers/EvaCallExpressionTransformer.ts":
- /*!**************************************************************************************!*\
- !*** ./src/node-transformers/preparing-transformers/EvaCallExpressionTransformer.ts ***!
- \**************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- var EvalCallExpressionTransformer_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var js_string_escape_1 = tslib_1.__importDefault(__webpack_require__(/*! js-string-escape */ "js-string-escape"));
- var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
- var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- var EvalCallExpressionTransformer = EvalCallExpressionTransformer_1 =
- /*#__PURE__*/
- function (_AbstractNodeTransfor) {
- (0, _inherits2["default"])(EvalCallExpressionTransformer, _AbstractNodeTransfor);
- function EvalCallExpressionTransformer(randomGenerator, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, EvalCallExpressionTransformer);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(EvalCallExpressionTransformer).call(this, randomGenerator, options));
- _this.evalRootAstHostNodeSet = new Set();
- return _this;
- }
- (0, _createClass2["default"])(EvalCallExpressionTransformer, [{
- key: "getVisitor",
- value: function getVisitor(transformationStage) {
- var _this2 = this;
- switch (transformationStage) {
- case TransformationStage_1.TransformationStage.Preparing:
- return {
- enter: function enter(node, parentNode) {
- if (parentNode && NodeGuards_1.NodeGuards.isCallExpressionNode(node) && NodeGuards_1.NodeGuards.isIdentifierNode(node.callee) && node.callee.name === 'eval') {
- return _this2.transformNode(node, parentNode);
- }
- }
- };
- case TransformationStage_1.TransformationStage.Finalizing:
- if (!this.evalRootAstHostNodeSet.size) {
- return null;
- }
- return {
- leave: function leave(node, parentNode) {
- if (parentNode && _this2.isEvalRootAstHostNode(node)) {
- return _this2.restoreNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- }, {
- key: "transformNode",
- value: function transformNode(callExpressionNode, parentNode) {
- var callExpressionFirstArgument = callExpressionNode.arguments[0];
- if (!callExpressionFirstArgument) {
- return callExpressionNode;
- }
- var evalString = EvalCallExpressionTransformer_1.extractEvalStringFromCallExpressionArgument(callExpressionFirstArgument);
- if (!evalString) {
- return callExpressionNode;
- }
- var ast;
- try {
- ast = NodeUtils_1.NodeUtils.convertCodeToStructure(evalString);
- } catch (_a) {
- return callExpressionNode;
- }
- var evalRootAstHostNode = NodeFactory_1.NodeFactory.functionExpressionNode([], NodeFactory_1.NodeFactory.blockStatementNode(ast));
- this.evalRootAstHostNodeSet.add(evalRootAstHostNode);
- return evalRootAstHostNode;
- }
- }, {
- key: "restoreNode",
- value: function restoreNode(evalRootAstHostNode, parentNode) {
- var targetAst = evalRootAstHostNode.body.body;
- var obfuscatedCode = NodeUtils_1.NodeUtils.convertStructureToCode(targetAst);
- return NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.identifierNode('eval'), [NodeFactory_1.NodeFactory.literalNode(js_string_escape_1["default"](obfuscatedCode))]);
- }
- }, {
- key: "isEvalRootAstHostNode",
- value: function isEvalRootAstHostNode(node) {
- return NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) && this.evalRootAstHostNodeSet.has(node);
- }
- }], [{
- key: "extractEvalStringFromCallExpressionArgument",
- value: function extractEvalStringFromCallExpressionArgument(node) {
- if (NodeGuards_1.NodeGuards.isLiteralNode(node)) {
- return EvalCallExpressionTransformer_1.extractEvalStringFromLiteralNode(node);
- }
- if (NodeGuards_1.NodeGuards.isTemplateLiteralNode(node)) {
- return EvalCallExpressionTransformer_1.extractEvalStringFromTemplateLiteralNode(node);
- }
- return null;
- }
- }, {
- key: "extractEvalStringFromLiteralNode",
- value: function extractEvalStringFromLiteralNode(node) {
- return typeof node.value === 'string' ? node.value : null;
- }
- }, {
- key: "extractEvalStringFromTemplateLiteralNode",
- value: function extractEvalStringFromTemplateLiteralNode(node) {
- var quasis = node.quasis;
- var allowedQuasisLength = 1;
- if (quasis.length !== allowedQuasisLength || node.expressions.length) {
- return null;
- }
- return quasis[0].value.cooked;
- }
- }]);
- return EvalCallExpressionTransformer;
- }(AbstractNodeTransformer_1.AbstractNodeTransformer);
- 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);
- exports.EvalCallExpressionTransformer = EvalCallExpressionTransformer;
- /***/ }),
- /***/ "./src/node-transformers/preparing-transformers/MetadataTransformer.ts":
- /*!*****************************************************************************!*\
- !*** ./src/node-transformers/preparing-transformers/MetadataTransformer.ts ***!
- \*****************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
- var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
- var MetadataTransformer =
- /*#__PURE__*/
- function (_AbstractNodeTransfor) {
- (0, _inherits2["default"])(MetadataTransformer, _AbstractNodeTransfor);
- function MetadataTransformer(randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, MetadataTransformer);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(MetadataTransformer).call(this, randomGenerator, options));
- }
- (0, _createClass2["default"])(MetadataTransformer, [{
- key: "getVisitor",
- value: function getVisitor(transformationStage) {
- var _this = this;
- switch (transformationStage) {
- case TransformationStage_1.TransformationStage.Preparing:
- return {
- enter: function enter(node, parentNode) {
- return _this.transformNode(node, parentNode);
- }
- };
- default:
- return null;
- }
- }
- }, {
- key: "transformNode",
- value: function transformNode(node, parentNode) {
- NodeMetadata_1.NodeMetadata.set(node, {
- ignoredNode: false
- });
- if (NodeGuards_1.NodeGuards.isIdentifierNode(node)) {
- NodeMetadata_1.NodeMetadata.set(node, {
- renamedIdentifier: false
- });
- }
- if (NodeGuards_1.NodeGuards.isLiteralNode(node)) {
- NodeMetadata_1.NodeMetadata.set(node, {
- replacedLiteral: false
- });
- }
- return node;
- }
- }]);
- return MetadataTransformer;
- }(AbstractNodeTransformer_1.AbstractNodeTransformer);
- 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);
- exports.MetadataTransformer = MetadataTransformer;
- /***/ }),
- /***/ "./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts":
- /*!**************************************************************************************!*\
- !*** ./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts ***!
- \**************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- var ObfuscatingGuardsTransformer_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var ObfuscatingGuard_1 = __webpack_require__(/*! ../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard */ "./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts");
- var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
- var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
- var ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer_1 =
- /*#__PURE__*/
- function (_AbstractNodeTransfor) {
- (0, _inherits2["default"])(ObfuscatingGuardsTransformer, _AbstractNodeTransfor);
- function ObfuscatingGuardsTransformer(obfuscatingGuardFactory, randomGenerator, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, ObfuscatingGuardsTransformer);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ObfuscatingGuardsTransformer).call(this, randomGenerator, options));
- _this.obfuscatingGuards = ObfuscatingGuardsTransformer_1.obfuscatingGuardsList.map(obfuscatingGuardFactory);
- return _this;
- }
- (0, _createClass2["default"])(ObfuscatingGuardsTransformer, [{
- key: "getVisitor",
- value: function getVisitor(transformationStage) {
- var _this2 = this;
- switch (transformationStage) {
- case TransformationStage_1.TransformationStage.Preparing:
- return {
- enter: function enter(node, parentNode) {
- return _this2.transformNode(node, parentNode);
- }
- };
- default:
- return null;
- }
- }
- }, {
- key: "transformNode",
- value: function transformNode(node, parentNode) {
- var obfuscationAllowed = this.obfuscatingGuards.every(function (nodeGuard) {
- return nodeGuard.check(node);
- });
- NodeMetadata_1.NodeMetadata.set(node, {
- ignoredNode: !obfuscationAllowed
- });
- return node;
- }
- }]);
- return ObfuscatingGuardsTransformer;
- }(AbstractNodeTransformer_1.AbstractNodeTransformer);
- ObfuscatingGuardsTransformer.obfuscatingGuardsList = [ObfuscatingGuard_1.ObfuscatingGuard.BlackListNodeGuard, ObfuscatingGuard_1.ObfuscatingGuard.ConditionalCommentNodeGuard];
- 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);
- exports.ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer;
- /***/ }),
- /***/ "./src/node-transformers/preparing-transformers/ParentificationTransformer.ts":
- /*!************************************************************************************!*\
- !*** ./src/node-transformers/preparing-transformers/ParentificationTransformer.ts ***!
- \************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
- var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- var ParentificationTransformer =
- /*#__PURE__*/
- function (_AbstractNodeTransfor) {
- (0, _inherits2["default"])(ParentificationTransformer, _AbstractNodeTransfor);
- function ParentificationTransformer(randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, ParentificationTransformer);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ParentificationTransformer).call(this, randomGenerator, options));
- }
- (0, _createClass2["default"])(ParentificationTransformer, [{
- key: "getVisitor",
- value: function getVisitor(transformationStage) {
- var _this = this;
- switch (transformationStage) {
- case TransformationStage_1.TransformationStage.Preparing:
- return {
- enter: function enter(node, parentNode) {
- return _this.transformNode(node, parentNode);
- }
- };
- default:
- return null;
- }
- }
- }, {
- key: "transformNode",
- value: function transformNode(node, parentNode) {
- return NodeUtils_1.NodeUtils.parentizeNode(node, parentNode);
- }
- }]);
- return ParentificationTransformer;
- }(AbstractNodeTransformer_1.AbstractNodeTransformer);
- 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);
- exports.ParentificationTransformer = ParentificationTransformer;
- /***/ }),
- /***/ "./src/node-transformers/preparing-transformers/VariablePreserveTransformer.ts":
- /*!*************************************************************************************!*\
- !*** ./src/node-transformers/preparing-transformers/VariablePreserveTransformer.ts ***!
- \*************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
- var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var VariablePreserveTransformer =
- /*#__PURE__*/
- function (_AbstractNodeTransfor) {
- (0, _inherits2["default"])(VariablePreserveTransformer, _AbstractNodeTransfor);
- function VariablePreserveTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, VariablePreserveTransformer);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(VariablePreserveTransformer).call(this, randomGenerator, options));
- _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
- return _this;
- }
- (0, _createClass2["default"])(VariablePreserveTransformer, [{
- key: "getVisitor",
- value: function getVisitor(transformationStage) {
- var _this2 = this;
- switch (transformationStage) {
- case TransformationStage_1.TransformationStage.Preparing:
- return {
- enter: function enter(node, parentNode) {
- 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))) {
- return _this2.transformNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- }, {
- key: "transformNode",
- value: function transformNode(node, parentNode) {
- this.identifierObfuscatingReplacer.preserveName(node.name);
- return node;
- }
- }]);
- return VariablePreserveTransformer;
- }(AbstractNodeTransformer_1.AbstractNodeTransformer);
- 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);
- exports.VariablePreserveTransformer = VariablePreserveTransformer;
- /***/ }),
- /***/ "./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts":
- /*!******************************************************************************************************!*\
- !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts ***!
- \******************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var BlackListObfuscatingGuard_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var BlackListObfuscatingGuard = BlackListObfuscatingGuard_1 =
- /*#__PURE__*/
- function () {
- function BlackListObfuscatingGuard() {
- (0, _classCallCheck2["default"])(this, BlackListObfuscatingGuard);
- this.blackListGuardsLength = BlackListObfuscatingGuard_1.blackListGuards.length;
- }
- (0, _createClass2["default"])(BlackListObfuscatingGuard, [{
- key: "check",
- value: function check(node) {
- for (var i = 0; i < this.blackListGuardsLength; i++) {
- if (BlackListObfuscatingGuard_1.blackListGuards[i](node)) {
- return false;
- }
- }
- return true;
- }
- }]);
- return BlackListObfuscatingGuard;
- }();
- BlackListObfuscatingGuard.blackListGuards = [NodeGuards_1.NodeGuards.isUseStrictOperator];
- BlackListObfuscatingGuard = BlackListObfuscatingGuard_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__metadata("design:paramtypes", [])], BlackListObfuscatingGuard);
- exports.BlackListObfuscatingGuard = BlackListObfuscatingGuard;
- /***/ }),
- /***/ "./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts":
- /*!***************************************************************************************************************!*\
- !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts ***!
- \***************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var ConditionalCommentObfuscatingGuard_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- var ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard_1 =
- /*#__PURE__*/
- function () {
- function ConditionalCommentObfuscatingGuard() {
- (0, _classCallCheck2["default"])(this, ConditionalCommentObfuscatingGuard);
- this.obfuscationAllowedForCurrentNode = true;
- this.obfuscationAllowedForNextNode = null;
- }
- (0, _createClass2["default"])(ConditionalCommentObfuscatingGuard, [{
- key: "check",
- value: function check(node) {
- if (this.obfuscationAllowedForNextNode) {
- this.obfuscationAllowedForCurrentNode = this.obfuscationAllowedForNextNode;
- this.obfuscationAllowedForNextNode = null;
- }
- if (!NodeGuards_1.NodeGuards.isNodeWithComments(node)) {
- return this.obfuscationAllowedForCurrentNode;
- }
- var leadingComments = node.leadingComments;
- var trailingComments = node.trailingComments;
- if (leadingComments) {
- this.obfuscationAllowedForCurrentNode = this.checkComments(leadingComments);
- }
- if (trailingComments) {
- this.obfuscationAllowedForNextNode = this.checkComments(trailingComments);
- }
- return this.obfuscationAllowedForCurrentNode;
- }
- }, {
- key: "checkComments",
- value: function checkComments(comments) {
- var commentsLength = comments.length;
- var obfuscationAllowed = this.obfuscationAllowedForCurrentNode;
- for (var i = 0; i < commentsLength; i++) {
- var comment = comments[i];
- if (ConditionalCommentObfuscatingGuard_1.obfuscationEnableCommentRegExp.test(comment.value)) {
- obfuscationAllowed = true;
- continue;
- }
- if (ConditionalCommentObfuscatingGuard_1.obfuscationDisableCommentRegExp.test(comment.value)) {
- obfuscationAllowed = false;
- }
- }
- return obfuscationAllowed;
- }
- }], [{
- key: "isConditionalComment",
- value: function isConditionalComment(comment) {
- return ConditionalCommentObfuscatingGuard_1.obfuscationEnableCommentRegExp.test(comment.value) || ConditionalCommentObfuscatingGuard_1.obfuscationDisableCommentRegExp.test(comment.value);
- }
- }]);
- return ConditionalCommentObfuscatingGuard;
- }();
- ConditionalCommentObfuscatingGuard.obfuscationEnableCommentRegExp = new RegExp('javascript-obfuscator *: *enable');
- ConditionalCommentObfuscatingGuard.obfuscationDisableCommentRegExp = new RegExp('javascript-obfuscator *: *disable');
- ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard_1 = tslib_1.__decorate([inversify_1.injectable()], ConditionalCommentObfuscatingGuard);
- exports.ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard;
- /***/ }),
- /***/ "./src/node/NodeAppender.ts":
- /*!**********************************!*\
- !*** ./src/node/NodeAppender.ts ***!
- \**********************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray"));
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeAppender =
- /*#__PURE__*/
- function () {
- function NodeAppender() {
- (0, _classCallCheck2["default"])(this, NodeAppender);
- }
- (0, _createClass2["default"])(NodeAppender, null, [{
- key: "append",
- value: function append(nodeWithStatements, statements) {
- statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements);
- NodeAppender.setScopeStatements(nodeWithStatements, [].concat((0, _toConsumableArray2["default"])(NodeAppender.getScopeStatements(nodeWithStatements)), (0, _toConsumableArray2["default"])(statements)));
- }
- }, {
- key: "appendToOptimalBlockScope",
- value: function appendToOptimalBlockScope(stackTraceData, nodeWithStatements, bodyStatements) {
- var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
- var targetBlockScope = stackTraceData.length ? NodeAppender.getOptimalBlockScope(stackTraceData, index) : nodeWithStatements;
- NodeAppender.prepend(targetBlockScope, bodyStatements);
- }
- }, {
- key: "getOptimalBlockScope",
- value: function getOptimalBlockScope(stackTraceData, index) {
- var deep = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Infinity;
- var firstCall = stackTraceData[index];
- if (deep <= 0) {
- throw new Error('Invalid `deep` argument value. Value should be bigger then 0.');
- }
- if (deep > 1 && firstCall.stackTrace.length) {
- return NodeAppender.getOptimalBlockScope(firstCall.stackTrace, 0, --deep);
- } else {
- return firstCall.callee;
- }
- }
- }, {
- key: "insertAfter",
- value: function insertAfter(nodeWithStatements, statements, target) {
- var indexInScopeStatement = NodeAppender.getScopeStatements(nodeWithStatements).indexOf(target);
- NodeAppender.insertAtIndex(nodeWithStatements, statements, indexInScopeStatement + 1);
- }
- }, {
- key: "insertAtIndex",
- value: function insertAtIndex(nodeWithStatements, statements, index) {
- statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements);
- 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))));
- }
- }, {
- key: "prepend",
- value: function prepend(nodeWithStatements, statements) {
- statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements);
- NodeAppender.setScopeStatements(nodeWithStatements, [].concat((0, _toConsumableArray2["default"])(statements), (0, _toConsumableArray2["default"])(NodeAppender.getScopeStatements(nodeWithStatements))));
- }
- }, {
- key: "getScopeStatements",
- value: function getScopeStatements(nodeWithStatements) {
- if (NodeGuards_1.NodeGuards.isSwitchCaseNode(nodeWithStatements)) {
- return nodeWithStatements.consequent;
- }
- return nodeWithStatements.body;
- }
- }, {
- key: "parentizeScopeStatementsBeforeAppend",
- value: function parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements) {
- statements.forEach(function (statement) {
- statement.parentNode = nodeWithStatements;
- });
- return statements;
- }
- }, {
- key: "setScopeStatements",
- value: function setScopeStatements(nodeWithStatements, statements) {
- if (NodeGuards_1.NodeGuards.isSwitchCaseNode(nodeWithStatements)) {
- nodeWithStatements.consequent = statements;
- return;
- }
- nodeWithStatements.body = statements;
- }
- }]);
- return NodeAppender;
- }();
- exports.NodeAppender = NodeAppender;
- /***/ }),
- /***/ "./src/node/NodeBlockLexicalScopeUtils.ts":
- /*!************************************************!*\
- !*** ./src/node/NodeBlockLexicalScopeUtils.ts ***!
- \************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeBlockLexicalScopeUtils =
- /*#__PURE__*/
- function () {
- function NodeBlockLexicalScopeUtils() {
- (0, _classCallCheck2["default"])(this, NodeBlockLexicalScopeUtils);
- }
- (0, _createClass2["default"])(NodeBlockLexicalScopeUtils, null, [{
- key: "getLexicalScope",
- value: function getLexicalScope(node) {
- return NodeBlockLexicalScopeUtils.getLexicalScopesRecursive(node, 1)[0];
- }
- }, {
- key: "getLexicalScopes",
- value: function getLexicalScopes(node) {
- return NodeBlockLexicalScopeUtils.getLexicalScopesRecursive(node);
- }
- }, {
- key: "getLexicalScopesRecursive",
- value: function getLexicalScopesRecursive(node) {
- var maxSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Infinity;
- var nodesWithLexicalScope = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
- var depth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
- if (nodesWithLexicalScope.length >= maxSize) {
- return nodesWithLexicalScope;
- }
- var parentNode = node.parentNode;
- if (!parentNode) {
- throw new ReferenceError('`parentNode` property of given node is `undefined`');
- }
- if (NodeGuards_1.NodeGuards.isNodeWithBlockLexicalScope(node)) {
- nodesWithLexicalScope.push(node);
- }
- if (node !== parentNode) {
- return NodeBlockLexicalScopeUtils.getLexicalScopesRecursive(parentNode, maxSize, nodesWithLexicalScope, ++depth);
- }
- return nodesWithLexicalScope;
- }
- }]);
- return NodeBlockLexicalScopeUtils;
- }();
- exports.NodeBlockLexicalScopeUtils = NodeBlockLexicalScopeUtils;
- /***/ }),
- /***/ "./src/node/NodeFactory.ts":
- /*!*********************************!*\
- !*** ./src/node/NodeFactory.ts ***!
- \*********************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var escodegen = tslib_1.__importStar(__webpack_require__(/*! escodegen-wallaby */ "escodegen-wallaby"));
- var NodeType_1 = __webpack_require__(/*! ../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
- var NodeFactory =
- /*#__PURE__*/
- function () {
- function NodeFactory() {
- (0, _classCallCheck2["default"])(this, NodeFactory);
- }
- (0, _createClass2["default"])(NodeFactory, null, [{
- key: "programNode",
- value: function programNode() {
- var body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
- return {
- type: NodeType_1.NodeType.Program,
- body: body,
- sourceType: 'script',
- metadata: {
- ignoredNode: false
- }
- };
- }
- }, {
- key: "arrayExpressionNode",
- value: function arrayExpressionNode() {
- var elements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
- return {
- type: NodeType_1.NodeType.ArrayExpression,
- elements: elements,
- metadata: {
- ignoredNode: false
- }
- };
- }
- }, {
- key: "assignmentExpressionNode",
- value: function assignmentExpressionNode(operator, left, right) {
- return {
- type: NodeType_1.NodeType.AssignmentExpression,
- operator: operator,
- left: left,
- right: right,
- metadata: {
- ignoredNode: false
- }
- };
- }
- }, {
- key: "binaryExpressionNode",
- value: function binaryExpressionNode(operator, left, right) {
- return {
- type: NodeType_1.NodeType.BinaryExpression,
- operator: operator,
- left: left,
- right: right,
- metadata: {
- ignoredNode: false
- }
- };
- }
- }, {
- key: "blockStatementNode",
- value: function blockStatementNode() {
- var body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
- return {
- type: NodeType_1.NodeType.BlockStatement,
- body: body,
- metadata: {
- ignoredNode: false
- }
- };
- }
- }, {
- key: "breakStatement",
- value: function breakStatement(label) {
- return {
- type: NodeType_1.NodeType.BreakStatement,
- label: label,
- metadata: {
- ignoredNode: false
- }
- };
- }
- }, {
- key: "callExpressionNode",
- value: function callExpressionNode(callee) {
- var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
- return {
- type: NodeType_1.NodeType.CallExpression,
- callee: callee,
- arguments: args,
- metadata: {
- ignoredNode: false
- }
- };
- }
- }, {
- key: "continueStatement",
- value: function continueStatement(label) {
- return {
- type: NodeType_1.NodeType.ContinueStatement,
- label: label,
- metadata: {
- ignoredNode: false
- }
- };
- }
- }, {
- key: "expressionStatementNode",
- value: function expressionStatementNode(expression) {
- return {
- type: NodeType_1.NodeType.ExpressionStatement,
- expression: expression,
- metadata: {
- ignoredNode: false
- }
- };
- }
- }, {
- key: "functionDeclarationNode",
- value: function functionDeclarationNode(functionName, params, body) {
- return {
- type: NodeType_1.NodeType.FunctionDeclaration,
- id: NodeFactory.identifierNode(functionName),
- params: params,
- body: body,
- generator: false,
- metadata: {
- ignoredNode: false
- }
- };
- }
- }, {
- key: "functionExpressionNode",
- value: function functionExpressionNode(params, body) {
- return {
- type: NodeType_1.NodeType.FunctionExpression,
- params: params,
- body: body,
- generator: false,
- metadata: {
- ignoredNode: false
- }
- };
- }
- }, {
- key: "ifStatementNode",
- value: function ifStatementNode(test, consequent, alternate) {
- return Object.assign(Object.assign({
- type: NodeType_1.NodeType.IfStatement,
- test: test,
- consequent: consequent
- }, alternate && {
- alternate: alternate
- }), {
- metadata: {
- ignoredNode: false
- }
- });
- }
- }, {
- key: "identifierNode",
- value: function identifierNode(name) {
- return {
- type: NodeType_1.NodeType.Identifier,
- name: name,
- metadata: {
- ignoredNode: false
- }
- };
- }
- }, {
- key: "literalNode",
- value: function literalNode(value, raw) {
- raw = raw !== undefined ? raw : "'".concat(value, "'");
- return {
- type: NodeType_1.NodeType.Literal,
- value: value,
- raw: raw,
- 'x-verbatim-property': {
- content: raw,
- precedence: escodegen.Precedence.Primary
- },
- metadata: {
- ignoredNode: false
- }
- };
- }
- }, {
- key: "logicalExpressionNode",
- value: function logicalExpressionNode(operator, left, right) {
- return {
- type: NodeType_1.NodeType.LogicalExpression,
- operator: operator,
- left: left,
- right: right,
- metadata: {
- ignoredNode: false
- }
- };
- }
- }, {
- key: "memberExpressionNode",
- value: function memberExpressionNode(object, property) {
- var computed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
- return {
- type: NodeType_1.NodeType.MemberExpression,
- computed: computed,
- object: object,
- property: property,
- metadata: {
- ignoredNode: false
- }
- };
- }
- }, {
- key: "methodDefinitionNode",
- value: function methodDefinitionNode(key, value, kind, computed) {
- return {
- type: NodeType_1.NodeType.MethodDefinition,
- key: key,
- value: value,
- kind: kind,
- computed: computed,
- "static": false,
- metadata: {
- ignoredNode: false
- }
- };
- }
- }, {
- key: "objectExpressionNode",
- value: function objectExpressionNode(properties) {
- return {
- type: NodeType_1.NodeType.ObjectExpression,
- properties: properties,
- metadata: {
- ignoredNode: false
- }
- };
- }
- }, {
- key: "propertyNode",
- value: function propertyNode(key, value) {
- var computed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
- return {
- type: NodeType_1.NodeType.Property,
- key: key,
- value: value,
- kind: 'init',
- method: false,
- shorthand: false,
- computed: computed,
- metadata: {
- ignoredNode: false
- }
- };
- }
- }, {
- key: "returnStatementNode",
- value: function returnStatementNode(argument) {
- return {
- type: NodeType_1.NodeType.ReturnStatement,
- argument: argument,
- metadata: {
- ignoredNode: false
- }
- };
- }
- }, {
- key: "switchStatementNode",
- value: function switchStatementNode(discriminant, cases) {
- return {
- type: NodeType_1.NodeType.SwitchStatement,
- discriminant: discriminant,
- cases: cases,
- metadata: {
- ignoredNode: false
- }
- };
- }
- }, {
- key: "switchCaseNode",
- value: function switchCaseNode(test, consequent) {
- return {
- type: NodeType_1.NodeType.SwitchCase,
- test: test,
- consequent: consequent,
- metadata: {
- ignoredNode: false
- }
- };
- }
- }, {
- key: "unaryExpressionNode",
- value: function unaryExpressionNode(operator, argument) {
- var prefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
- return {
- type: NodeType_1.NodeType.UnaryExpression,
- operator: operator,
- argument: argument,
- prefix: prefix,
- metadata: {
- ignoredNode: false
- }
- };
- }
- }, {
- key: "updateExpressionNode",
- value: function updateExpressionNode(operator, argumentExpr) {
- return {
- type: NodeType_1.NodeType.UpdateExpression,
- operator: operator,
- argument: argumentExpr,
- prefix: false,
- metadata: {
- ignoredNode: false
- }
- };
- }
- }, {
- key: "variableDeclarationNode",
- value: function variableDeclarationNode() {
- var declarations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
- var kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'var';
- return {
- type: NodeType_1.NodeType.VariableDeclaration,
- declarations: declarations,
- kind: kind,
- metadata: {
- ignoredNode: false
- }
- };
- }
- }, {
- key: "variableDeclaratorNode",
- value: function variableDeclaratorNode(id, init) {
- return {
- type: NodeType_1.NodeType.VariableDeclarator,
- id: id,
- init: init,
- metadata: {
- ignoredNode: false
- }
- };
- }
- }, {
- key: "whileStatementNode",
- value: function whileStatementNode(test, body) {
- return {
- type: NodeType_1.NodeType.WhileStatement,
- test: test,
- body: body,
- metadata: {
- ignoredNode: false
- }
- };
- }
- }]);
- return NodeFactory;
- }();
- exports.NodeFactory = NodeFactory;
- /***/ }),
- /***/ "./src/node/NodeGuards.ts":
- /*!********************************!*\
- !*** ./src/node/NodeGuards.ts ***!
- \********************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var NodeType_1 = __webpack_require__(/*! ../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
- var NodeGuards =
- /*#__PURE__*/
- function () {
- function NodeGuards() {
- (0, _classCallCheck2["default"])(this, NodeGuards);
- }
- (0, _createClass2["default"])(NodeGuards, null, [{
- key: "isArrayPatternNode",
- value: function isArrayPatternNode(node) {
- return node.type === NodeType_1.NodeType.ArrayPattern;
- }
- }, {
- key: "isArrowFunctionExpressionNode",
- value: function isArrowFunctionExpressionNode(node) {
- return node.type === NodeType_1.NodeType.ArrowFunctionExpression;
- }
- }, {
- key: "isAssignmentPatternNode",
- value: function isAssignmentPatternNode(node) {
- return node.type === NodeType_1.NodeType.AssignmentPattern;
- }
- }, {
- key: "isAwaitExpressionNode",
- value: function isAwaitExpressionNode(node) {
- return node.type === NodeType_1.NodeType.AwaitExpression;
- }
- }, {
- key: "isBlockStatementNode",
- value: function isBlockStatementNode(node) {
- return node.type === NodeType_1.NodeType.BlockStatement;
- }
- }, {
- key: "isBreakStatementNode",
- value: function isBreakStatementNode(node) {
- return node.type === NodeType_1.NodeType.BreakStatement;
- }
- }, {
- key: "isCallExpressionNode",
- value: function isCallExpressionNode(node) {
- return node.type === NodeType_1.NodeType.CallExpression;
- }
- }, {
- key: "isCatchClauseNode",
- value: function isCatchClauseNode(node) {
- return node.type === NodeType_1.NodeType.CatchClause;
- }
- }, {
- key: "isClassDeclarationNode",
- value: function isClassDeclarationNode(node) {
- return node.type === NodeType_1.NodeType.ClassDeclaration;
- }
- }, {
- key: "isContinueStatementNode",
- value: function isContinueStatementNode(node) {
- return node.type === NodeType_1.NodeType.ContinueStatement;
- }
- }, {
- key: "isExportNamedDeclarationNode",
- value: function isExportNamedDeclarationNode(node) {
- return node.type === NodeType_1.NodeType.ExportNamedDeclaration;
- }
- }, {
- key: "isExpressionStatementNode",
- value: function isExpressionStatementNode(node) {
- return node.type === NodeType_1.NodeType.ExpressionStatement;
- }
- }, {
- key: "isFunctionNode",
- value: function isFunctionNode(node) {
- return NodeGuards.isFunctionDeclarationNode(node) || NodeGuards.isFunctionExpressionNode(node) || NodeGuards.isArrowFunctionExpressionNode(node);
- }
- }, {
- key: "isFunctionDeclarationNode",
- value: function isFunctionDeclarationNode(node) {
- return node.type === NodeType_1.NodeType.FunctionDeclaration;
- }
- }, {
- key: "isFunctionExpressionNode",
- value: function isFunctionExpressionNode(node) {
- return node.type === NodeType_1.NodeType.FunctionExpression;
- }
- }, {
- key: "isIdentifierNode",
- value: function isIdentifierNode(node) {
- return node.type === NodeType_1.NodeType.Identifier;
- }
- }, {
- key: "isImportDeclarationNode",
- value: function isImportDeclarationNode(node) {
- return node.type === NodeType_1.NodeType.ImportDeclaration;
- }
- }, {
- key: "isImportSpecifierNode",
- value: function isImportSpecifierNode(node) {
- return node.type === NodeType_1.NodeType.ImportSpecifier;
- }
- }, {
- key: "isLabelIdentifierNode",
- value: function isLabelIdentifierNode(node, parentNode) {
- var parentNodeIsLabeledStatementNode = NodeGuards.isLabeledStatementNode(parentNode) && parentNode.label === node;
- var parentNodeIsContinueStatementNode = NodeGuards.isContinueStatementNode(parentNode) && parentNode.label === node;
- var parentNodeIsBreakStatementNode = NodeGuards.isBreakStatementNode(parentNode) && parentNode.label === node;
- return parentNodeIsLabeledStatementNode || parentNodeIsContinueStatementNode || parentNodeIsBreakStatementNode;
- }
- }, {
- key: "isLabeledStatementNode",
- value: function isLabeledStatementNode(node) {
- return node.type === NodeType_1.NodeType.LabeledStatement;
- }
- }, {
- key: "isLiteralNode",
- value: function isLiteralNode(node) {
- return node.type === NodeType_1.NodeType.Literal;
- }
- }, {
- key: "isMemberExpressionNode",
- value: function isMemberExpressionNode(node) {
- return node.type === NodeType_1.NodeType.MemberExpression;
- }
- }, {
- key: "isMethodDefinitionNode",
- value: function isMethodDefinitionNode(node) {
- return node.type === NodeType_1.NodeType.MethodDefinition;
- }
- }, {
- key: "isNode",
- value: function isNode(object) {
- return object && !object.type !== undefined;
- }
- }, {
- key: "isNodeWithLexicalScope",
- value: function isNodeWithLexicalScope(node) {
- return NodeGuards.isProgramNode(node) || NodeGuards.isFunctionNode(node);
- }
- }, {
- key: "isNodeWithBlockLexicalScope",
- value: function isNodeWithBlockLexicalScope(node) {
- return NodeGuards.isNodeWithLexicalScope(node) || NodeGuards.isBlockStatementNode(node);
- }
- }, {
- key: "isNodeWithLexicalScopeStatements",
- value: function isNodeWithLexicalScopeStatements(node, parentNode) {
- return NodeGuards.isProgramNode(node) || NodeGuards.isBlockStatementNode(node) && NodeGuards.nodesWithLexicalStatements.includes(parentNode.type);
- }
- }, {
- key: "isNodeWithStatements",
- value: function isNodeWithStatements(node) {
- return NodeGuards.isProgramNode(node) || NodeGuards.isBlockStatementNode(node) || NodeGuards.isSwitchCaseNode(node);
- }
- }, {
- key: "isNodeWithComments",
- value: function isNodeWithComments(node) {
- return Boolean(node.leadingComments) || Boolean(node.trailingComments);
- }
- }, {
- key: "isObjectPatternNode",
- value: function isObjectPatternNode(node) {
- return node.type === NodeType_1.NodeType.ObjectPattern;
- }
- }, {
- key: "isObjectExpressionNode",
- value: function isObjectExpressionNode(node) {
- return node.type === NodeType_1.NodeType.ObjectExpression;
- }
- }, {
- key: "isProgramNode",
- value: function isProgramNode(node) {
- return node.type === NodeType_1.NodeType.Program;
- }
- }, {
- key: "isPropertyNode",
- value: function isPropertyNode(node) {
- return node.type === NodeType_1.NodeType.Property;
- }
- }, {
- key: "parentNodeIsPropertyNode",
- value: function parentNodeIsPropertyNode(node, parentNode) {
- return NodeGuards.isPropertyNode(parentNode) && !parentNode.computed && parentNode.key === node;
- }
- }, {
- key: "parentNodeIsMemberExpressionNode",
- value: function parentNodeIsMemberExpressionNode(node, parentNode) {
- return NodeGuards.isMemberExpressionNode(parentNode) && !parentNode.computed && parentNode.property === node;
- }
- }, {
- key: "parentNodeIsMethodDefinitionNode",
- value: function parentNodeIsMethodDefinitionNode(node, parentNode) {
- return NodeGuards.isMethodDefinitionNode(parentNode) && !parentNode.computed;
- }
- }, {
- key: "isReplaceableIdentifierNode",
- value: function isReplaceableIdentifierNode(node, parentNode) {
- return NodeGuards.isIdentifierNode(node) && !NodeGuards.parentNodeIsPropertyNode(node, parentNode) && !NodeGuards.parentNodeIsMemberExpressionNode(node, parentNode) && !NodeGuards.parentNodeIsMethodDefinitionNode(node, parentNode) && !NodeGuards.isLabelIdentifierNode(node, parentNode);
- }
- }, {
- key: "isRestElementNode",
- value: function isRestElementNode(node) {
- return node.type === NodeType_1.NodeType.RestElement;
- }
- }, {
- key: "isReturnStatementNode",
- value: function isReturnStatementNode(node) {
- return node.type === NodeType_1.NodeType.ReturnStatement;
- }
- }, {
- key: "isSuperNode",
- value: function isSuperNode(node) {
- return node.type === NodeType_1.NodeType.Super;
- }
- }, {
- key: "isSwitchCaseNode",
- value: function isSwitchCaseNode(node) {
- return node.type === NodeType_1.NodeType.SwitchCase;
- }
- }, {
- key: "isTaggedTemplateExpressionNode",
- value: function isTaggedTemplateExpressionNode(node) {
- return node.type === NodeType_1.NodeType.TaggedTemplateExpression;
- }
- }, {
- key: "isTemplateLiteralNode",
- value: function isTemplateLiteralNode(node) {
- return node.type === NodeType_1.NodeType.TemplateLiteral;
- }
- }, {
- key: "isUnaryExpressionNode",
- value: function isUnaryExpressionNode(node) {
- return node.type === NodeType_1.NodeType.UnaryExpression;
- }
- }, {
- key: "isUseStrictOperator",
- value: function isUseStrictOperator(node) {
- return node.type === NodeType_1.NodeType.ExpressionStatement && node.directive === 'use strict';
- }
- }, {
- key: "isVariableDeclarationNode",
- value: function isVariableDeclarationNode(node) {
- return node.type === NodeType_1.NodeType.VariableDeclaration;
- }
- }, {
- key: "isVariableDeclaratorNode",
- value: function isVariableDeclaratorNode(node) {
- return node.type === NodeType_1.NodeType.VariableDeclarator;
- }
- }, {
- key: "isWhileStatementNode",
- value: function isWhileStatementNode(node) {
- return node.type === NodeType_1.NodeType.WhileStatement;
- }
- }]);
- return NodeGuards;
- }();
- exports.NodeGuards = NodeGuards;
- NodeGuards.nodesWithLexicalStatements = [NodeType_1.NodeType.ArrowFunctionExpression, NodeType_1.NodeType.FunctionDeclaration, NodeType_1.NodeType.FunctionExpression, NodeType_1.NodeType.MethodDefinition];
- /***/ }),
- /***/ "./src/node/NodeLexicalScopeUtils.ts":
- /*!*******************************************!*\
- !*** ./src/node/NodeLexicalScopeUtils.ts ***!
- \*******************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeLexicalScopeUtils =
- /*#__PURE__*/
- function () {
- function NodeLexicalScopeUtils() {
- (0, _classCallCheck2["default"])(this, NodeLexicalScopeUtils);
- }
- (0, _createClass2["default"])(NodeLexicalScopeUtils, null, [{
- key: "getLexicalScope",
- value: function getLexicalScope(node) {
- return NodeLexicalScopeUtils.getLexicalScopesRecursive(node, 1)[0];
- }
- }, {
- key: "getLexicalScopes",
- value: function getLexicalScopes(node) {
- return NodeLexicalScopeUtils.getLexicalScopesRecursive(node);
- }
- }, {
- key: "getLexicalScopesRecursive",
- value: function getLexicalScopesRecursive(node) {
- var maxSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Infinity;
- var nodesWithLexicalScope = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
- var depth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
- if (nodesWithLexicalScope.length >= maxSize) {
- return nodesWithLexicalScope;
- }
- var parentNode = node.parentNode;
- if (!parentNode) {
- throw new ReferenceError('`parentNode` property of given node is `undefined`');
- }
- if (NodeGuards_1.NodeGuards.isNodeWithLexicalScope(node)) {
- nodesWithLexicalScope.push(node);
- }
- if (node !== parentNode) {
- return NodeLexicalScopeUtils.getLexicalScopesRecursive(parentNode, maxSize, nodesWithLexicalScope, ++depth);
- }
- return nodesWithLexicalScope;
- }
- }]);
- return NodeLexicalScopeUtils;
- }();
- exports.NodeLexicalScopeUtils = NodeLexicalScopeUtils;
- /***/ }),
- /***/ "./src/node/NodeMetadata.ts":
- /*!**********************************!*\
- !*** ./src/node/NodeMetadata.ts ***!
- \**********************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var NodeMetadata =
- /*#__PURE__*/
- function () {
- function NodeMetadata() {
- (0, _classCallCheck2["default"])(this, NodeMetadata);
- }
- (0, _createClass2["default"])(NodeMetadata, null, [{
- key: "set",
- value: function set(node, metadata) {
- node.metadata = Object.assign(node.metadata || {}, metadata);
- }
- }, {
- key: "get",
- value: function get(node, metadataKey) {
- return node.metadata !== undefined ? node.metadata[metadataKey] : undefined;
- }
- }, {
- key: "isIgnoredNode",
- value: function isIgnoredNode(node) {
- return NodeMetadata.get(node, 'ignoredNode') === true;
- }
- }, {
- key: "isRenamedIdentifier",
- value: function isRenamedIdentifier(identifierNode) {
- return NodeMetadata.get(identifierNode, 'renamedIdentifier') === true;
- }
- }, {
- key: "isReplacedLiteral",
- value: function isReplacedLiteral(literalNode) {
- return NodeMetadata.get(literalNode, 'replacedLiteral') === true;
- }
- }]);
- return NodeMetadata;
- }();
- exports.NodeMetadata = NodeMetadata;
- /***/ }),
- /***/ "./src/node/NodeStatementUtils.ts":
- /*!****************************************!*\
- !*** ./src/node/NodeStatementUtils.ts ***!
- \****************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeStatementUtils =
- /*#__PURE__*/
- function () {
- function NodeStatementUtils() {
- (0, _classCallCheck2["default"])(this, NodeStatementUtils);
- }
- (0, _createClass2["default"])(NodeStatementUtils, null, [{
- key: "getParentNodeWithStatements",
- value: function getParentNodeWithStatements(node) {
- return NodeStatementUtils.getParentNodesWithStatementsRecursive(node, 1)[0];
- }
- }, {
- key: "getParentNodesWithStatements",
- value: function getParentNodesWithStatements(node) {
- return NodeStatementUtils.getParentNodesWithStatementsRecursive(node);
- }
- }, {
- key: "getNextSiblingStatement",
- value: function getNextSiblingStatement(statement) {
- return NodeStatementUtils.getSiblingStatementByOffset(statement, 1);
- }
- }, {
- key: "getPreviousSiblingStatement",
- value: function getPreviousSiblingStatement(statement) {
- return NodeStatementUtils.getSiblingStatementByOffset(statement, -1);
- }
- }, {
- key: "getRootStatementOfNode",
- value: function getRootStatementOfNode(node) {
- if (NodeGuards_1.NodeGuards.isProgramNode(node)) {
- throw new Error('Unable to find root statement for `Program` node');
- }
- var parentNode = node.parentNode;
- if (!parentNode) {
- throw new ReferenceError('`parentNode` property of given node is `undefined`');
- }
- if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) {
- return NodeStatementUtils.getRootStatementOfNode(parentNode);
- }
- return node;
- }
- }, {
- key: "getScopeOfNode",
- value: function getScopeOfNode(node) {
- var parentNode = node.parentNode;
- if (!parentNode) {
- throw new ReferenceError('`parentNode` property of given node is `undefined`');
- }
- if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) {
- return NodeStatementUtils.getScopeOfNode(parentNode);
- }
- return parentNode;
- }
- }, {
- key: "getParentNodesWithStatementsRecursive",
- value: function getParentNodesWithStatementsRecursive(node) {
- var maxSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Infinity;
- var nodesWithStatements = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
- var depth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
- if (nodesWithStatements.length >= maxSize) {
- return nodesWithStatements;
- }
- var parentNode = node.parentNode;
- if (!parentNode) {
- throw new ReferenceError('`parentNode` property of given node is `undefined`');
- }
- if (NodeGuards_1.NodeGuards.isProgramNode(node) || NodeGuards_1.NodeGuards.isNodeWithLexicalScopeStatements(node, parentNode) && depth > 0) {
- nodesWithStatements.push(node);
- }
- if (node !== parentNode) {
- return NodeStatementUtils.getParentNodesWithStatementsRecursive(parentNode, maxSize, nodesWithStatements, ++depth);
- }
- return nodesWithStatements;
- }
- }, {
- key: "getSiblingStatementByOffset",
- value: function getSiblingStatementByOffset(statement, offset) {
- var scopeNode = NodeStatementUtils.getScopeOfNode(statement);
- var scopeBody = !NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode) ? scopeNode.body : scopeNode.consequent;
- var indexInScope = scopeBody.indexOf(statement);
- return scopeBody[indexInScope + offset] || null;
- }
- }]);
- return NodeStatementUtils;
- }();
- exports.NodeStatementUtils = NodeStatementUtils;
- /***/ }),
- /***/ "./src/node/NodeUtils.ts":
- /*!*******************************!*\
- !*** ./src/node/NodeUtils.ts ***!
- \*******************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "@babel/runtime/helpers/typeof"));
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var escodegen = tslib_1.__importStar(__webpack_require__(/*! escodegen-wallaby */ "escodegen-wallaby"));
- var espree = tslib_1.__importStar(__webpack_require__(/*! espree */ "espree"));
- var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- var NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts");
- var NodeMetadata_1 = __webpack_require__(/*! ./NodeMetadata */ "./src/node/NodeMetadata.ts");
- var NodeUtils =
- /*#__PURE__*/
- function () {
- function NodeUtils() {
- (0, _classCallCheck2["default"])(this, NodeUtils);
- }
- (0, _createClass2["default"])(NodeUtils, null, [{
- key: "addXVerbatimPropertyTo",
- value: function addXVerbatimPropertyTo(literalNode) {
- literalNode['x-verbatim-property'] = {
- content: literalNode.raw,
- precedence: escodegen.Precedence.Primary
- };
- return literalNode;
- }
- }, {
- key: "clone",
- value: function clone(astTree) {
- return NodeUtils.parentizeAst(NodeUtils.cloneRecursive(astTree));
- }
- }, {
- key: "convertCodeToStructure",
- value: function convertCodeToStructure(code) {
- var structure = espree.parse(code, {
- sourceType: 'script'
- });
- estraverse.replace(structure, {
- enter: function enter(node, parentNode) {
- NodeUtils.parentizeNode(node, parentNode);
- if (NodeGuards_1.NodeGuards.isLiteralNode(node)) {
- NodeUtils.addXVerbatimPropertyTo(node);
- }
- NodeMetadata_1.NodeMetadata.set(node, {
- ignoredNode: false
- });
- return node;
- }
- });
- return structure.body;
- }
- }, {
- key: "convertStructureToCode",
- value: function convertStructureToCode(structure) {
- return structure.reduce(function (code, node) {
- return code + escodegen.generate(node, {
- sourceMapWithCode: true
- }).code;
- }, '');
- }
- }, {
- key: "getUnaryExpressionArgumentNode",
- value: function getUnaryExpressionArgumentNode(unaryExpressionNode) {
- if (NodeGuards_1.NodeGuards.isUnaryExpressionNode(unaryExpressionNode.argument)) {
- return NodeUtils.getUnaryExpressionArgumentNode(unaryExpressionNode.argument);
- }
- return unaryExpressionNode.argument;
- }
- }, {
- key: "parentizeAst",
- value: function parentizeAst(astTree) {
- estraverse.replace(astTree, {
- enter: NodeUtils.parentizeNode
- });
- return astTree;
- }
- }, {
- key: "parentizeNode",
- value: function parentizeNode(node, parentNode) {
- node.parentNode = parentNode || node;
- return node;
- }
- }, {
- key: "cloneRecursive",
- value: function cloneRecursive(node) {
- if (node === null) {
- return node;
- }
- var copy = {};
- var nodeKeys = Object.keys(node);
- nodeKeys.forEach(function (property) {
- if (property === 'parentNode') {
- return;
- }
- var value = node[property];
- var clonedValue;
- if (value === null || value instanceof RegExp) {
- clonedValue = value;
- } else if (Array.isArray(value)) {
- clonedValue = value.map(NodeUtils.cloneRecursive);
- } else if ((0, _typeof2["default"])(value) === 'object') {
- clonedValue = NodeUtils.cloneRecursive(value);
- } else {
- clonedValue = value;
- }
- copy[property] = clonedValue;
- });
- return copy;
- }
- }]);
- return NodeUtils;
- }();
- exports.NodeUtils = NodeUtils;
- /***/ }),
- /***/ "./src/options/Options.ts":
- /*!********************************!*\
- !*** ./src/options/Options.ts ***!
- \********************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var Options_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var class_validator_1 = __webpack_require__(/*! class-validator */ "class-validator");
- var IdentifierNamesGenerator_1 = __webpack_require__(/*! ../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts");
- var ObfuscationTarget_1 = __webpack_require__(/*! ../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
- var SourceMapMode_1 = __webpack_require__(/*! ../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts");
- var StringArrayEncoding_1 = __webpack_require__(/*! ../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts");
- var Default_1 = __webpack_require__(/*! ./presets/Default */ "./src/options/presets/Default.ts");
- var ValidationErrorsFormatter_1 = __webpack_require__(/*! ./ValidationErrorsFormatter */ "./src/options/ValidationErrorsFormatter.ts");
- var Options = Options_1 = function Options(inputOptions, optionsNormalizer) {
- (0, _classCallCheck2["default"])(this, Options);
- Object.assign(this, Default_1.DEFAULT_PRESET, inputOptions);
- var errors = class_validator_1.validateSync(this, Options_1.validatorOptions);
- if (errors.length) {
- throw new ReferenceError("Validation failed. errors:\n".concat(ValidationErrorsFormatter_1.ValidationErrorsFormatter.format(errors)));
- }
- Object.assign(this, optionsNormalizer.normalize(this));
- };
- Options.validatorOptions = {
- validationError: {
- target: false
- }
- };
- tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "compact", void 0);
- tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "controlFlowFlattening", void 0);
- 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);
- tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "deadCodeInjection", void 0);
- tslib_1.__decorate([class_validator_1.IsNumber(), tslib_1.__metadata("design:type", Number)], Options.prototype, "deadCodeInjectionThreshold", void 0);
- tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "debugProtection", void 0);
- tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "debugProtectionInterval", void 0);
- tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "disableConsoleOutput", void 0);
- tslib_1.__decorate([class_validator_1.IsArray(), class_validator_1.ArrayUnique(), class_validator_1.IsString({
- each: true
- }), tslib_1.__metadata("design:type", Array)], Options.prototype, "domainLock", void 0);
- 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);
- tslib_1.__decorate([class_validator_1.IsString(), tslib_1.__metadata("design:type", String)], Options.prototype, "identifiersPrefix", void 0);
- tslib_1.__decorate([class_validator_1.IsArray(), class_validator_1.ArrayUnique(), class_validator_1.IsString({
- each: true
- }), class_validator_1.ValidateIf(function (options) {
- return options.identifierNamesGenerator === IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator;
- }), class_validator_1.ArrayNotEmpty(), tslib_1.__metadata("design:type", Array)], Options.prototype, "identifiersDictionary", void 0);
- tslib_1.__decorate([class_validator_1.IsString(), tslib_1.__metadata("design:type", String)], Options.prototype, "inputFileName", void 0);
- tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "log", void 0);
- tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "renameGlobals", void 0);
- tslib_1.__decorate([class_validator_1.IsArray(), class_validator_1.ArrayUnique(), class_validator_1.IsString({
- each: true
- }), tslib_1.__metadata("design:type", Array)], Options.prototype, "reservedNames", void 0);
- tslib_1.__decorate([class_validator_1.IsArray(), class_validator_1.ArrayUnique(), class_validator_1.IsString({
- each: true
- }), tslib_1.__metadata("design:type", Array)], Options.prototype, "reservedStrings", void 0);
- tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "rotateStringArray", void 0);
- tslib_1.__decorate([class_validator_1.IsNumber(), tslib_1.__metadata("design:type", Number)], Options.prototype, "seed", void 0);
- tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "selfDefending", void 0);
- tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "sourceMap", void 0);
- tslib_1.__decorate([class_validator_1.IsString(), class_validator_1.ValidateIf(function (options) {
- return Boolean(options.sourceMapBaseUrl);
- }), class_validator_1.IsUrl({
- require_protocol: true,
- require_tld: false,
- require_valid_protocol: true
- }), tslib_1.__metadata("design:type", String)], Options.prototype, "sourceMapBaseUrl", void 0);
- tslib_1.__decorate([class_validator_1.IsString(), tslib_1.__metadata("design:type", String)], Options.prototype, "sourceMapFileName", void 0);
- 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);
- tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "splitStrings", void 0);
- tslib_1.__decorate([class_validator_1.IsNumber(), class_validator_1.ValidateIf(function (options) {
- return Boolean(options.splitStrings);
- }), class_validator_1.Min(1), tslib_1.__metadata("design:type", Number)], Options.prototype, "splitStringsChunkLength", void 0);
- tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "stringArray", void 0);
- 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);
- 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);
- 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);
- tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "transformObjectKeys", void 0);
- tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "unicodeEscapeSequence", void 0);
- 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);
- exports.Options = Options;
- /***/ }),
- /***/ "./src/options/OptionsNormalizer.ts":
- /*!******************************************!*\
- !*** ./src/options/OptionsNormalizer.ts ***!
- \******************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var OptionsNormalizer_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ControlFlowFlatteningThresholdRule_1 = __webpack_require__(/*! ./normalizer-rules/ControlFlowFlatteningThresholdRule */ "./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts");
- var DeadCodeInjectionRule_1 = __webpack_require__(/*! ./normalizer-rules/DeadCodeInjectionRule */ "./src/options/normalizer-rules/DeadCodeInjectionRule.ts");
- var DeadCodeInjectionThresholdRule_1 = __webpack_require__(/*! ./normalizer-rules/DeadCodeInjectionThresholdRule */ "./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts");
- var DomainLockRule_1 = __webpack_require__(/*! ./normalizer-rules/DomainLockRule */ "./src/options/normalizer-rules/DomainLockRule.ts");
- var InputFileNameRule_1 = __webpack_require__(/*! ./normalizer-rules/InputFileNameRule */ "./src/options/normalizer-rules/InputFileNameRule.ts");
- var SelfDefendingRule_1 = __webpack_require__(/*! ./normalizer-rules/SelfDefendingRule */ "./src/options/normalizer-rules/SelfDefendingRule.ts");
- var SourceMapBaseUrlRule_1 = __webpack_require__(/*! ./normalizer-rules/SourceMapBaseUrlRule */ "./src/options/normalizer-rules/SourceMapBaseUrlRule.ts");
- var SourceMapFileNameRule_1 = __webpack_require__(/*! ./normalizer-rules/SourceMapFileNameRule */ "./src/options/normalizer-rules/SourceMapFileNameRule.ts");
- var SplitStringsChunkLengthRule_1 = __webpack_require__(/*! ./normalizer-rules/SplitStringsChunkLengthRule */ "./src/options/normalizer-rules/SplitStringsChunkLengthRule.ts");
- var StringArrayRule_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayRule */ "./src/options/normalizer-rules/StringArrayRule.ts");
- var StringArrayEncodingRule_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayEncodingRule */ "./src/options/normalizer-rules/StringArrayEncodingRule.ts");
- var StringArrayThresholdRule_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayThresholdRule */ "./src/options/normalizer-rules/StringArrayThresholdRule.ts");
- var OptionsNormalizer = OptionsNormalizer_1 =
- /*#__PURE__*/
- function () {
- function OptionsNormalizer() {
- (0, _classCallCheck2["default"])(this, OptionsNormalizer);
- }
- (0, _createClass2["default"])(OptionsNormalizer, [{
- key: "normalize",
- value: function normalize(options) {
- var normalizedOptions = Object.assign({}, options);
- var _iteratorNormalCompletion = true;
- var _didIteratorError = false;
- var _iteratorError = undefined;
- try {
- for (var _iterator = OptionsNormalizer_1.normalizerRules[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
- var normalizerRule = _step.value;
- normalizedOptions = normalizerRule(normalizedOptions);
- }
- } catch (err) {
- _didIteratorError = true;
- _iteratorError = err;
- } finally {
- try {
- if (!_iteratorNormalCompletion && _iterator["return"] != null) {
- _iterator["return"]();
- }
- } finally {
- if (_didIteratorError) {
- throw _iteratorError;
- }
- }
- }
- return normalizedOptions;
- }
- }]);
- return OptionsNormalizer;
- }();
- 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];
- OptionsNormalizer = OptionsNormalizer_1 = tslib_1.__decorate([inversify_1.injectable()], OptionsNormalizer);
- exports.OptionsNormalizer = OptionsNormalizer;
- /***/ }),
- /***/ "./src/options/ValidationErrorsFormatter.ts":
- /*!**************************************************!*\
- !*** ./src/options/ValidationErrorsFormatter.ts ***!
- \**************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray"));
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var ValidationErrorsFormatter =
- /*#__PURE__*/
- function () {
- function ValidationErrorsFormatter() {
- (0, _classCallCheck2["default"])(this, ValidationErrorsFormatter);
- }
- (0, _createClass2["default"])(ValidationErrorsFormatter, null, [{
- key: "format",
- value: function format(errors) {
- return errors.reduce(function (errorMessages, error) {
- return [].concat((0, _toConsumableArray2["default"])(errorMessages), [ValidationErrorsFormatter.formatWithNestedConstraints(error)]);
- }, []).join('\n');
- }
- }, {
- key: "formatWithNestedConstraints",
- value: function formatWithNestedConstraints(error) {
- var constraints = error.constraints;
- var rootError = "`".concat(error.property, "` errors:\n");
- var nestedErrors = Object.keys(constraints).map(function (constraint) {
- return " - ".concat(constraints[constraint], "\n");
- }).join();
- return "".concat(rootError).concat(nestedErrors);
- }
- }]);
- return ValidationErrorsFormatter;
- }();
- exports.ValidationErrorsFormatter = ValidationErrorsFormatter;
- /***/ }),
- /***/ "./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts":
- /*!****************************************************************************!*\
- !*** ./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts ***!
- \****************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.ControlFlowFlatteningThresholdRule = function (options) {
- if (options.controlFlowFlatteningThreshold === 0) {
- options = Object.assign(Object.assign({}, options), {
- controlFlowFlattening: false,
- controlFlowFlatteningThreshold: 0
- });
- }
- return options;
- };
- /***/ }),
- /***/ "./src/options/normalizer-rules/DeadCodeInjectionRule.ts":
- /*!***************************************************************!*\
- !*** ./src/options/normalizer-rules/DeadCodeInjectionRule.ts ***!
- \***************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var Default_1 = __webpack_require__(/*! ../presets/Default */ "./src/options/presets/Default.ts");
- exports.DeadCodeInjectionRule = function (options) {
- if (options.deadCodeInjection) {
- options = Object.assign(Object.assign({}, options), {
- deadCodeInjection: true,
- stringArray: true
- });
- if (!options.stringArrayThreshold) {
- options = Object.assign(Object.assign({}, options), {
- stringArray: true,
- stringArrayThreshold: Default_1.DEFAULT_PRESET.stringArrayThreshold
- });
- }
- }
- return options;
- };
- /***/ }),
- /***/ "./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts":
- /*!************************************************************************!*\
- !*** ./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts ***!
- \************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.DeadCodeInjectionThresholdRule = function (options) {
- if (options.deadCodeInjectionThreshold === 0) {
- options = Object.assign(Object.assign({}, options), {
- deadCodeInjection: false,
- deadCodeInjectionThreshold: 0
- });
- }
- return options;
- };
- /***/ }),
- /***/ "./src/options/normalizer-rules/DomainLockRule.ts":
- /*!********************************************************!*\
- !*** ./src/options/normalizer-rules/DomainLockRule.ts ***!
- \********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var Utils_1 = __webpack_require__(/*! ../../utils/Utils */ "./src/utils/Utils.ts");
- exports.DomainLockRule = function (options) {
- if (options.domainLock.length) {
- var normalizedDomains = [];
- var _iteratorNormalCompletion = true;
- var _didIteratorError = false;
- var _iteratorError = undefined;
- try {
- for (var _iterator = options.domainLock[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
- var domain = _step.value;
- normalizedDomains.push(Utils_1.Utils.extractDomainFrom(domain));
- }
- } catch (err) {
- _didIteratorError = true;
- _iteratorError = err;
- } finally {
- try {
- if (!_iteratorNormalCompletion && _iterator["return"] != null) {
- _iterator["return"]();
- }
- } finally {
- if (_didIteratorError) {
- throw _iteratorError;
- }
- }
- }
- options = Object.assign(Object.assign({}, options), {
- domainLock: normalizedDomains
- });
- }
- return options;
- };
- /***/ }),
- /***/ "./src/options/normalizer-rules/InputFileNameRule.ts":
- /*!***********************************************************!*\
- !*** ./src/options/normalizer-rules/InputFileNameRule.ts ***!
- \***********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.InputFileNameRule = function (options) {
- var _options = options,
- inputFileName = _options.inputFileName;
- if (inputFileName) {
- inputFileName = inputFileName.replace(/^\/+/, '').split('.').slice(0, -1).join('.') || inputFileName;
- options = Object.assign(Object.assign({}, options), {
- inputFileName: "".concat(inputFileName, ".js")
- });
- }
- return options;
- };
- /***/ }),
- /***/ "./src/options/normalizer-rules/SelfDefendingRule.ts":
- /*!***********************************************************!*\
- !*** ./src/options/normalizer-rules/SelfDefendingRule.ts ***!
- \***********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.SelfDefendingRule = function (options) {
- if (options.selfDefending) {
- options = Object.assign(Object.assign({}, options), {
- compact: true,
- selfDefending: true
- });
- }
- return options;
- };
- /***/ }),
- /***/ "./src/options/normalizer-rules/SourceMapBaseUrlRule.ts":
- /*!**************************************************************!*\
- !*** ./src/options/normalizer-rules/SourceMapBaseUrlRule.ts ***!
- \**************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.SourceMapBaseUrlRule = function (options) {
- var _options = options,
- sourceMapBaseUrl = _options.sourceMapBaseUrl;
- if (!options.sourceMapFileName) {
- options = Object.assign(Object.assign({}, options), {
- sourceMapBaseUrl: ''
- });
- return options;
- }
- if (sourceMapBaseUrl && !sourceMapBaseUrl.endsWith('/')) {
- options = Object.assign(Object.assign({}, options), {
- sourceMapBaseUrl: "".concat(sourceMapBaseUrl, "/")
- });
- }
- return options;
- };
- /***/ }),
- /***/ "./src/options/normalizer-rules/SourceMapFileNameRule.ts":
- /*!***************************************************************!*\
- !*** ./src/options/normalizer-rules/SourceMapFileNameRule.ts ***!
- \***************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.SourceMapFileNameRule = function (options) {
- var _options = options,
- sourceMapFileName = _options.sourceMapFileName;
- if (sourceMapFileName) {
- sourceMapFileName = sourceMapFileName.replace(/^\/+/, '').split('.')[0];
- options = Object.assign(Object.assign({}, options), {
- sourceMapFileName: "".concat(sourceMapFileName, ".js.map")
- });
- }
- return options;
- };
- /***/ }),
- /***/ "./src/options/normalizer-rules/SplitStringsChunkLengthRule.ts":
- /*!*********************************************************************!*\
- !*** ./src/options/normalizer-rules/SplitStringsChunkLengthRule.ts ***!
- \*********************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.SplitStringsChunkLengthRule = function (options) {
- if (options.splitStringsChunkLength === 0) {
- options = Object.assign(Object.assign({}, options), {
- splitStrings: false,
- splitStringsChunkLength: 0
- });
- } else {
- options = Object.assign(Object.assign({}, options), {
- splitStringsChunkLength: Math.floor(options.splitStringsChunkLength)
- });
- }
- return options;
- };
- /***/ }),
- /***/ "./src/options/normalizer-rules/StringArrayEncodingRule.ts":
- /*!*****************************************************************!*\
- !*** ./src/options/normalizer-rules/StringArrayEncodingRule.ts ***!
- \*****************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts");
- exports.StringArrayEncodingRule = function (options) {
- if (options.stringArrayEncoding === true) {
- options = Object.assign(Object.assign({}, options), {
- stringArrayEncoding: StringArrayEncoding_1.StringArrayEncoding.Base64
- });
- }
- return options;
- };
- /***/ }),
- /***/ "./src/options/normalizer-rules/StringArrayRule.ts":
- /*!*********************************************************!*\
- !*** ./src/options/normalizer-rules/StringArrayRule.ts ***!
- \*********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.StringArrayRule = function (options) {
- if (!options.stringArray) {
- options = Object.assign(Object.assign({}, options), {
- rotateStringArray: false,
- stringArray: false,
- stringArrayEncoding: false,
- stringArrayThreshold: 0
- });
- }
- return options;
- };
- /***/ }),
- /***/ "./src/options/normalizer-rules/StringArrayThresholdRule.ts":
- /*!******************************************************************!*\
- !*** ./src/options/normalizer-rules/StringArrayThresholdRule.ts ***!
- \******************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.StringArrayThresholdRule = function (options) {
- if (options.stringArrayThreshold === 0) {
- options = Object.assign(Object.assign({}, options), {
- rotateStringArray: false,
- stringArray: false,
- stringArrayEncoding: false,
- stringArrayThreshold: 0
- });
- }
- return options;
- };
- /***/ }),
- /***/ "./src/options/presets/Default.ts":
- /*!****************************************!*\
- !*** ./src/options/presets/Default.ts ***!
- \****************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts");
- var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
- var SourceMapMode_1 = __webpack_require__(/*! ../../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts");
- exports.DEFAULT_PRESET = Object.freeze({
- compact: true,
- config: '',
- controlFlowFlattening: false,
- controlFlowFlatteningThreshold: 0.75,
- deadCodeInjection: false,
- deadCodeInjectionThreshold: 0.4,
- debugProtection: false,
- debugProtectionInterval: false,
- disableConsoleOutput: false,
- domainLock: [],
- exclude: [],
- identifierNamesGenerator: IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,
- identifiersPrefix: '',
- identifiersDictionary: [],
- inputFileName: '',
- log: false,
- renameGlobals: false,
- reservedNames: [],
- reservedStrings: [],
- rotateStringArray: true,
- seed: 0,
- selfDefending: false,
- sourceMap: false,
- sourceMapBaseUrl: '',
- sourceMapFileName: '',
- sourceMapMode: SourceMapMode_1.SourceMapMode.Separate,
- splitStrings: false,
- splitStringsChunkLength: 10,
- stringArray: true,
- stringArrayEncoding: false,
- stringArrayThreshold: 0.75,
- target: ObfuscationTarget_1.ObfuscationTarget.Browser,
- transformObjectKeys: false,
- unicodeEscapeSequence: false
- });
- /***/ }),
- /***/ "./src/options/presets/NoCustomNodes.ts":
- /*!**********************************************!*\
- !*** ./src/options/presets/NoCustomNodes.ts ***!
- \**********************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts");
- var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
- var SourceMapMode_1 = __webpack_require__(/*! ../../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts");
- exports.NO_ADDITIONAL_NODES_PRESET = Object.freeze({
- compact: true,
- controlFlowFlattening: false,
- controlFlowFlatteningThreshold: 0,
- deadCodeInjection: false,
- deadCodeInjectionThreshold: 0,
- debugProtection: false,
- debugProtectionInterval: false,
- disableConsoleOutput: false,
- domainLock: [],
- exclude: [],
- identifierNamesGenerator: IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,
- identifiersPrefix: '',
- identifiersDictionary: [],
- inputFileName: '',
- log: false,
- renameGlobals: false,
- reservedNames: [],
- reservedStrings: [],
- rotateStringArray: false,
- seed: 0,
- selfDefending: false,
- sourceMap: false,
- sourceMapBaseUrl: '',
- sourceMapFileName: '',
- sourceMapMode: SourceMapMode_1.SourceMapMode.Separate,
- splitStrings: false,
- splitStringsChunkLength: 0,
- stringArray: false,
- stringArrayEncoding: false,
- stringArrayThreshold: 0,
- target: ObfuscationTarget_1.ObfuscationTarget.Browser,
- transformObjectKeys: false,
- unicodeEscapeSequence: false
- });
- /***/ }),
- /***/ "./src/source-code/ObfuscatedCode.ts":
- /*!*******************************************!*\
- !*** ./src/source-code/ObfuscatedCode.ts ***!
- \*******************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts");
- var SourceMapMode_1 = __webpack_require__(/*! ../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts");
- var ObfuscatedCode =
- /*#__PURE__*/
- function () {
- function ObfuscatedCode(cryptUtils, options) {
- (0, _classCallCheck2["default"])(this, ObfuscatedCode);
- this.cryptUtils = cryptUtils;
- this.options = options;
- }
- (0, _createClass2["default"])(ObfuscatedCode, [{
- key: "initialize",
- value: function initialize(obfuscatedCode, sourceMap) {
- this.obfuscatedCode = obfuscatedCode;
- this.sourceMap = sourceMap;
- }
- }, {
- key: "getObfuscatedCode",
- value: function getObfuscatedCode() {
- return this.correctObfuscatedCode();
- }
- }, {
- key: "getSourceMap",
- value: function getSourceMap() {
- return this.sourceMap;
- }
- }, {
- key: "toString",
- value: function toString() {
- return this.obfuscatedCode;
- }
- }, {
- key: "correctObfuscatedCode",
- value: function correctObfuscatedCode() {
- if (!this.sourceMap) {
- return this.obfuscatedCode;
- }
- var sourceMapUrl = this.options.sourceMapBaseUrl + this.options.sourceMapFileName;
- var sourceMappingUrl = '//# sourceMappingURL=';
- switch (this.options.sourceMapMode) {
- case SourceMapMode_1.SourceMapMode.Inline:
- sourceMappingUrl += "data:application/json;base64,".concat(this.cryptUtils.btoa(this.sourceMap));
- break;
- case SourceMapMode_1.SourceMapMode.Separate:
- default:
- if (!sourceMapUrl) {
- return this.obfuscatedCode;
- }
- sourceMappingUrl += sourceMapUrl;
- }
- return "".concat(this.obfuscatedCode, "\n").concat(sourceMappingUrl);
- }
- }]);
- return ObfuscatedCode;
- }();
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ObfuscatedCode.prototype, "obfuscatedCode", void 0);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ObfuscatedCode.prototype, "sourceMap", void 0);
- 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);
- exports.ObfuscatedCode = ObfuscatedCode;
- /***/ }),
- /***/ "./src/source-code/SourceCode.ts":
- /*!***************************************!*\
- !*** ./src/source-code/SourceCode.ts ***!
- \***************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var SourceCode =
- /*#__PURE__*/
- function () {
- function SourceCode(sourceCode, sourceMap) {
- (0, _classCallCheck2["default"])(this, SourceCode);
- this.sourceCode = sourceCode;
- this.sourceMap = sourceMap;
- }
- (0, _createClass2["default"])(SourceCode, [{
- key: "getSourceCode",
- value: function getSourceCode() {
- return this.sourceCode;
- }
- }, {
- key: "getSourceMap",
- value: function getSourceMap() {
- return this.sourceMap;
- }
- }, {
- key: "toString",
- value: function toString() {
- return this.sourceCode;
- }
- }]);
- return SourceCode;
- }();
- exports.SourceCode = SourceCode;
- /***/ }),
- /***/ "./src/storages/ArrayStorage.ts":
- /*!**************************************!*\
- !*** ./src/storages/ArrayStorage.ts ***!
- \**************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray"));
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts");
- var ArrayStorage =
- /*#__PURE__*/
- function () {
- function ArrayStorage(randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, ArrayStorage);
- this.storageLength = 0;
- this.randomGenerator = randomGenerator;
- this.options = options;
- }
- (0, _createClass2["default"])(ArrayStorage, [{
- key: "initialize",
- value: function initialize() {
- this.storage = [];
- this.storageId = this.randomGenerator.getRandomString(6);
- }
- }, {
- key: "get",
- value: function get(key) {
- var value = this.storage[key];
- if (!value) {
- throw new Error("No value found in array storage with key `".concat(key, "`"));
- }
- return value;
- }
- }, {
- key: "getKeyOf",
- value: function getKeyOf(value) {
- var key = this.storage.indexOf(value);
- return key >= 0 ? key : null;
- }
- }, {
- key: "getLength",
- value: function getLength() {
- return this.storageLength;
- }
- }, {
- key: "getStorage",
- value: function getStorage() {
- return this.storage;
- }
- }, {
- key: "getStorageId",
- value: function getStorageId() {
- return this.storageId;
- }
- }, {
- key: "mergeWith",
- value: function mergeWith(storage) {
- var mergeId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
- this.storage = [].concat((0, _toConsumableArray2["default"])(this.storage), (0, _toConsumableArray2["default"])(storage.getStorage()));
- if (mergeId) {
- this.storageId = storage.getStorageId();
- }
- }
- }, {
- key: "set",
- value: function set(key, value) {
- if (key === this.storageLength) {
- this.storage.push(value);
- } else {
- this.storage.splice(key, 0, value);
- }
- this.storageLength++;
- }
- }]);
- return ArrayStorage;
- }();
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], ArrayStorage.prototype, "storage", void 0);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ArrayStorage.prototype, "storageId", void 0);
- 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);
- 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);
- exports.ArrayStorage = ArrayStorage;
- /***/ }),
- /***/ "./src/storages/MapStorage.ts":
- /*!************************************!*\
- !*** ./src/storages/MapStorage.ts ***!
- \************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray"));
- var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray"));
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts");
- var MapStorage =
- /*#__PURE__*/
- function () {
- function MapStorage(randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, MapStorage);
- this.randomGenerator = randomGenerator;
- this.options = options;
- }
- (0, _createClass2["default"])(MapStorage, [{
- key: "initialize",
- value: function initialize() {
- this.storage = new Map();
- this.storageId = this.randomGenerator.getRandomString(6);
- }
- }, {
- key: "get",
- value: function get(key) {
- var value = this.storage.get(key);
- if (!value) {
- throw new Error("No value found in map storage with key `".concat(key, "`"));
- }
- return value;
- }
- }, {
- key: "getKeyOf",
- value: function getKeyOf(value) {
- var _iteratorNormalCompletion = true;
- var _didIteratorError = false;
- var _iteratorError = undefined;
- try {
- for (var _iterator = this.storage[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
- var _step$value = (0, _slicedToArray2["default"])(_step.value, 2),
- key = _step$value[0],
- storageValue = _step$value[1];
- if (value === storageValue) {
- return key;
- }
- }
- } catch (err) {
- _didIteratorError = true;
- _iteratorError = err;
- } finally {
- try {
- if (!_iteratorNormalCompletion && _iterator["return"] != null) {
- _iterator["return"]();
- }
- } finally {
- if (_didIteratorError) {
- throw _iteratorError;
- }
- }
- }
- return null;
- }
- }, {
- key: "getLength",
- value: function getLength() {
- return this.storage.size;
- }
- }, {
- key: "getStorage",
- value: function getStorage() {
- return this.storage;
- }
- }, {
- key: "getStorageId",
- value: function getStorageId() {
- return this.storageId;
- }
- }, {
- key: "has",
- value: function has(key) {
- return this.storage.has(key);
- }
- }, {
- key: "mergeWith",
- value: function mergeWith(storage) {
- var mergeId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
- this.storage = new Map([].concat((0, _toConsumableArray2["default"])(this.storage), (0, _toConsumableArray2["default"])(storage.getStorage())));
- if (mergeId) {
- this.storageId = storage.getStorageId();
- }
- }
- }, {
- key: "set",
- value: function set(key, value) {
- this.storage.set(key, value);
- }
- }]);
- return MapStorage;
- }();
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], MapStorage.prototype, "storageId", void 0);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Map)], MapStorage.prototype, "storage", void 0);
- 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);
- 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);
- exports.MapStorage = MapStorage;
- /***/ }),
- /***/ "./src/storages/control-flow/ControlFlowStorage.ts":
- /*!*********************************************************!*\
- !*** ./src/storages/control-flow/ControlFlowStorage.ts ***!
- \*********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts");
- var ControlFlowStorage =
- /*#__PURE__*/
- function (_MapStorage_1$MapStor) {
- (0, _inherits2["default"])(ControlFlowStorage, _MapStorage_1$MapStor);
- function ControlFlowStorage(randomGenerator, options) {
- (0, _classCallCheck2["default"])(this, ControlFlowStorage);
- return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ControlFlowStorage).call(this, randomGenerator, options));
- }
- return ControlFlowStorage;
- }(MapStorage_1.MapStorage);
- 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);
- exports.ControlFlowStorage = ControlFlowStorage;
- /***/ }),
- /***/ "./src/storages/custom-node-group/CustomNodeGroupStorage.ts":
- /*!******************************************************************!*\
- !*** ./src/storages/custom-node-group/CustomNodeGroupStorage.ts ***!
- \******************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "@babel/runtime/helpers/get"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- var CustomNodeGroupStorage_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var CustomNodeGroup_1 = __webpack_require__(/*! ../../enums/custom-nodes/CustomNodeGroup */ "./src/enums/custom-nodes/CustomNodeGroup.ts");
- var MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts");
- var CustomNodeGroupStorage = CustomNodeGroupStorage_1 =
- /*#__PURE__*/
- function (_MapStorage_1$MapStor) {
- (0, _inherits2["default"])(CustomNodeGroupStorage, _MapStorage_1$MapStor);
- function CustomNodeGroupStorage(customNodeGroupFactory, randomGenerator, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, CustomNodeGroupStorage);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(CustomNodeGroupStorage).call(this, randomGenerator, options));
- _this.customNodeGroupFactory = customNodeGroupFactory;
- return _this;
- }
- (0, _createClass2["default"])(CustomNodeGroupStorage, [{
- key: "initialize",
- value: function initialize() {
- var _this2 = this;
- (0, _get2["default"])((0, _getPrototypeOf2["default"])(CustomNodeGroupStorage.prototype), "initialize", this).call(this);
- CustomNodeGroupStorage_1.customNodeGroupsList.forEach(function (customNodeGroupName) {
- var customNodeGroup = _this2.customNodeGroupFactory(customNodeGroupName);
- if (!customNodeGroup) {
- return;
- }
- _this2.storage.set(customNodeGroupName, customNodeGroup);
- });
- }
- }]);
- return CustomNodeGroupStorage;
- }(MapStorage_1.MapStorage);
- CustomNodeGroupStorage.customNodeGroupsList = [CustomNodeGroup_1.CustomNodeGroup.ConsoleOutputCustomNodeGroup, CustomNodeGroup_1.CustomNodeGroup.DebugProtectionCustomNodeGroup, CustomNodeGroup_1.CustomNodeGroup.DomainLockCustomNodeGroup, CustomNodeGroup_1.CustomNodeGroup.SelfDefendingCustomNodeGroup, CustomNodeGroup_1.CustomNodeGroup.StringArrayCustomNodeGroup];
- 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);
- 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);
- exports.CustomNodeGroupStorage = CustomNodeGroupStorage;
- /***/ }),
- /***/ "./src/storages/string-array/StringArrayStorage.ts":
- /*!*********************************************************!*\
- !*** ./src/storages/string-array/StringArrayStorage.ts ***!
- \*********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
- var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
- var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "@babel/runtime/helpers/get"));
- var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
- var StringArrayStorage_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var ArrayStorage_1 = __webpack_require__(/*! ../ArrayStorage */ "./src/storages/ArrayStorage.ts");
- var StringArrayStorage = StringArrayStorage_1 =
- /*#__PURE__*/
- function (_ArrayStorage_1$Array) {
- (0, _inherits2["default"])(StringArrayStorage, _ArrayStorage_1$Array);
- function StringArrayStorage(identifierNamesGeneratorFactory, arrayUtils, randomGenerator, options) {
- var _this;
- (0, _classCallCheck2["default"])(this, StringArrayStorage);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(StringArrayStorage).call(this, randomGenerator, options));
- _this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
- _this.arrayUtils = arrayUtils;
- return _this;
- }
- (0, _createClass2["default"])(StringArrayStorage, [{
- key: "initialize",
- value: function initialize() {
- (0, _get2["default"])((0, _getPrototypeOf2["default"])(StringArrayStorage.prototype), "initialize", this).call(this);
- if (!this.options.stringArray) {
- return;
- }
- var baseStringArrayName = this.identifierNamesGenerator.generate(StringArrayStorage_1.stringArrayNameLength);
- var baseStringArrayCallsWrapperName = this.identifierNamesGenerator.generate(StringArrayStorage_1.stringArrayNameLength);
- var stringArrayName = "".concat(this.options.identifiersPrefix).concat(baseStringArrayName);
- var stringArrayCallsWrapperName = "".concat(this.options.identifiersPrefix).concat(baseStringArrayCallsWrapperName);
- this.storageId = "".concat(stringArrayName, "|").concat(stringArrayCallsWrapperName);
- }
- }, {
- key: "rotateArray",
- value: function rotateArray(rotationValue) {
- this.storage = this.arrayUtils.rotate(this.storage, rotationValue);
- }
- }, {
- key: "toString",
- value: function toString() {
- return this.storage.map(function (value) {
- return "'".concat(value, "'");
- }).toString();
- }
- }]);
- return StringArrayStorage;
- }(ArrayStorage_1.ArrayStorage);
- StringArrayStorage.stringArrayNameLength = 7;
- 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);
- 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);
- exports.StringArrayStorage = StringArrayStorage;
- /***/ }),
- /***/ "./src/templates/AtobTemplate.ts":
- /*!***************************************!*\
- !*** ./src/templates/AtobTemplate.ts ***!
- \***************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- function AtobTemplate() {
- 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 ";
- }
- exports.AtobTemplate = AtobTemplate;
- /***/ }),
- /***/ "./src/templates/GlobalVariableNoEvalTemplate.ts":
- /*!*******************************************************!*\
- !*** ./src/templates/GlobalVariableNoEvalTemplate.ts ***!
- \*******************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- function GlobalVariableNoEvalTemplate() {
- 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 ";
- }
- exports.GlobalVariableNoEvalTemplate = GlobalVariableNoEvalTemplate;
- /***/ }),
- /***/ "./src/templates/GlobalVariableTemplate1.ts":
- /*!**************************************************!*\
- !*** ./src/templates/GlobalVariableTemplate1.ts ***!
- \**************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- function GlobalVariableTemplate1() {
- 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 ";
- }
- exports.GlobalVariableTemplate1 = GlobalVariableTemplate1;
- /***/ }),
- /***/ "./src/templates/GlobalVariableTemplate2.ts":
- /*!**************************************************!*\
- !*** ./src/templates/GlobalVariableTemplate2.ts ***!
- \**************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- function GlobalVariableTemplate2() {
- 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 ";
- }
- exports.GlobalVariableTemplate2 = GlobalVariableTemplate2;
- /***/ }),
- /***/ "./src/templates/Rc4Template.ts":
- /*!**************************************!*\
- !*** ./src/templates/Rc4Template.ts ***!
- \**************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- function Rc4Template() {
- 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 ";
- }
- exports.Rc4Template = Rc4Template;
- /***/ }),
- /***/ "./src/templates/SingleNodeCallControllerTemplate.ts":
- /*!***********************************************************!*\
- !*** ./src/templates/SingleNodeCallControllerTemplate.ts ***!
- \***********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- function SingleNodeCallControllerTemplate() {
- 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 ";
- }
- exports.SingleNodeCallControllerTemplate = SingleNodeCallControllerTemplate;
- /***/ }),
- /***/ "./src/templates/console-output-nodes/console-output-disable-expression-node/ConsoleOutputDisableExpressionTemplate.ts":
- /*!*****************************************************************************************************************************!*\
- !*** ./src/templates/console-output-nodes/console-output-disable-expression-node/ConsoleOutputDisableExpressionTemplate.ts ***!
- \*****************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- function ConsoleOutputDisableExpressionTemplate() {
- 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 ";
- }
- exports.ConsoleOutputDisableExpressionTemplate = ConsoleOutputDisableExpressionTemplate;
- /***/ }),
- /***/ "./src/templates/debug-protection-nodes/debug-protection-function-call-node/DebugProtectionFunctionCallTemplate.ts":
- /*!*************************************************************************************************************************!*\
- !*** ./src/templates/debug-protection-nodes/debug-protection-function-call-node/DebugProtectionFunctionCallTemplate.ts ***!
- \*************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- function DebugProtectionFunctionCallTemplate() {
- 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 ";
- }
- exports.DebugProtectionFunctionCallTemplate = DebugProtectionFunctionCallTemplate;
- /***/ }),
- /***/ "./src/templates/debug-protection-nodes/debug-protection-function-interval-node/DebugProtectionFunctionIntervalTemplate.ts":
- /*!*********************************************************************************************************************************!*\
- !*** ./src/templates/debug-protection-nodes/debug-protection-function-interval-node/DebugProtectionFunctionIntervalTemplate.ts ***!
- \*********************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- function DebugProtectionFunctionIntervalTemplate() {
- return "\n setInterval(function () {\n {debugProtectionFunctionName}();\n }, 4000);\n ";
- }
- exports.DebugProtectionFunctionIntervalTemplate = DebugProtectionFunctionIntervalTemplate;
- /***/ }),
- /***/ "./src/templates/debug-protection-nodes/debug-protection-function-node/DebugProtectionFunctionTemplate.ts":
- /*!****************************************************************************************************************!*\
- !*** ./src/templates/debug-protection-nodes/debug-protection-function-node/DebugProtectionFunctionTemplate.ts ***!
- \****************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- function DebugProtectionFunctionTemplate() {
- 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 ";
- }
- exports.DebugProtectionFunctionTemplate = DebugProtectionFunctionTemplate;
- /***/ }),
- /***/ "./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplate.ts":
- /*!*************************************************************************************************!*\
- !*** ./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplate.ts ***!
- \*************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- function DebuggerTemplate() {
- 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 ";
- }
- exports.DebuggerTemplate = DebuggerTemplate;
- /***/ }),
- /***/ "./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplateNoEval.ts":
- /*!*******************************************************************************************************!*\
- !*** ./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplateNoEval.ts ***!
- \*******************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- function DebuggerTemplateNoEval() {
- 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 ";
- }
- exports.DebuggerTemplateNoEval = DebuggerTemplateNoEval;
- /***/ }),
- /***/ "./src/templates/domain-lock-nodes/domain-lock-node/DomainLockNodeTemplate.ts":
- /*!************************************************************************************!*\
- !*** ./src/templates/domain-lock-nodes/domain-lock-node/DomainLockNodeTemplate.ts ***!
- \************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- function DomainLockNodeTemplate() {
- 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 ";
- }
- exports.DomainLockNodeTemplate = DomainLockNodeTemplate;
- /***/ }),
- /***/ "./src/templates/self-defending-nodes/self-defending-unicode-node/SelfDefendingTemplate.ts":
- /*!*************************************************************************************************!*\
- !*** ./src/templates/self-defending-nodes/self-defending-unicode-node/SelfDefendingTemplate.ts ***!
- \*************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- function SelfDefendingTemplate(escapeSequenceEncoder) {
- 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 ");
- }
- exports.SelfDefendingTemplate = SelfDefendingTemplate;
- /***/ }),
- /***/ "./src/templates/string-array-nodes/string-array-calls-wrapper/SelfDefendingTemplate.ts":
- /*!**********************************************************************************************!*\
- !*** ./src/templates/string-array-nodes/string-array-calls-wrapper/SelfDefendingTemplate.ts ***!
- \**********************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- function SelfDefendingTemplate(randomGenerator, escapeSequenceEncoder) {
- var identifierLength = 6;
- var rc4BytesIdentifier = randomGenerator.getRandomString(identifierLength);
- var statesIdentifier = randomGenerator.getRandomString(identifierLength);
- var newStateIdentifier = randomGenerator.getRandomString(identifierLength);
- var firstStateIdentifier = randomGenerator.getRandomString(identifierLength);
- var secondStateIdentifier = randomGenerator.getRandomString(identifierLength);
- var checkStateIdentifier = randomGenerator.getRandomString(identifierLength);
- var runStateIdentifier = randomGenerator.getRandomString(identifierLength);
- var getStateIdentifier = randomGenerator.getRandomString(identifierLength);
- var stateResultIdentifier = randomGenerator.getRandomString(identifierLength);
- 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 ");
- }
- exports.SelfDefendingTemplate = SelfDefendingTemplate;
- /***/ }),
- /***/ "./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayBase64DecodeNodeTemplate.ts":
- /*!************************************************************************************************************!*\
- !*** ./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayBase64DecodeNodeTemplate.ts ***!
- \************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- function StringArrayBase64DecodeNodeTemplate(randomGenerator) {
- var identifierLength = 6;
- var initializedIdentifier = randomGenerator.getRandomString(identifierLength);
- var base64DecodeFunctionIdentifier = randomGenerator.getRandomString(identifierLength);
- var dataIdentifier = randomGenerator.getRandomString(identifierLength);
- 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 ");
- }
- exports.StringArrayBase64DecodeNodeTemplate = StringArrayBase64DecodeNodeTemplate;
- /***/ }),
- /***/ "./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts":
- /*!********************************************************************************************************!*\
- !*** ./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts ***!
- \********************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- function StringArrayCallsWrapperTemplate() {
- 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 ";
- }
- exports.StringArrayCallsWrapperTemplate = StringArrayCallsWrapperTemplate;
- /***/ }),
- /***/ "./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayRC4DecodeNodeTemplate.ts":
- /*!*********************************************************************************************************!*\
- !*** ./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayRC4DecodeNodeTemplate.ts ***!
- \*********************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- function StringArrayRc4DecodeNodeTemplate(randomGenerator) {
- var identifierLength = 6;
- var initializedIdentifier = randomGenerator.getRandomString(identifierLength);
- var rc4Identifier = randomGenerator.getRandomString(identifierLength);
- var dataIdentifier = randomGenerator.getRandomString(identifierLength);
- var onceIdentifier = randomGenerator.getRandomString(identifierLength);
- 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 ");
- }
- exports.StringArrayRc4DecodeNodeTemplate = StringArrayRc4DecodeNodeTemplate;
- /***/ }),
- /***/ "./src/templates/string-array-nodes/string-array-node/StringArrayTemplate.ts":
- /*!***********************************************************************************!*\
- !*** ./src/templates/string-array-nodes/string-array-node/StringArrayTemplate.ts ***!
- \***********************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- function StringArrayTemplate() {
- return "\n var {stringArrayName} = [{stringArray}];\n ";
- }
- exports.StringArrayTemplate = StringArrayTemplate;
- /***/ }),
- /***/ "./src/templates/string-array-nodes/string-array-rotate-function-node/SelfDefendingTemplate.ts":
- /*!*****************************************************************************************************!*\
- !*** ./src/templates/string-array-nodes/string-array-rotate-function-node/SelfDefendingTemplate.ts ***!
- \*****************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- function SelfDefendingTemplate(escapeSequenceEncoder) {
- 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 ");
- }
- exports.SelfDefendingTemplate = SelfDefendingTemplate;
- /***/ }),
- /***/ "./src/templates/string-array-nodes/string-array-rotate-function-node/StringArrayRotateFunctionTemplate.ts":
- /*!*****************************************************************************************************************!*\
- !*** ./src/templates/string-array-nodes/string-array-rotate-function-node/StringArrayRotateFunctionTemplate.ts ***!
- \*****************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- function StringArrayRotateFunctionTemplate() {
- 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 ";
- }
- exports.StringArrayRotateFunctionTemplate = StringArrayRotateFunctionTemplate;
- /***/ }),
- /***/ "./src/utils/ArrayUtils.ts":
- /*!*********************************!*\
- !*** ./src/utils/ArrayUtils.ts ***!
- \*********************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray"));
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var ArrayUtils =
- /*#__PURE__*/
- function () {
- function ArrayUtils(randomGenerator) {
- (0, _classCallCheck2["default"])(this, ArrayUtils);
- this.randomGenerator = randomGenerator;
- }
- (0, _createClass2["default"])(ArrayUtils, [{
- key: "createWithRange",
- value: function createWithRange(length) {
- var range = [];
- for (var i = 0; i < length; i++) {
- range.push(i);
- }
- return range;
- }
- }, {
- key: "rotate",
- value: function rotate(array, times) {
- if (!array.length) {
- throw new ReferenceError("Cannot rotate empty array.");
- }
- if (times <= 0) {
- return array;
- }
- var newArray = array;
- var temp;
- while (times--) {
- temp = newArray.pop();
- if (temp) {
- newArray.unshift(temp);
- }
- }
- return newArray;
- }
- }, {
- key: "shuffle",
- value: function shuffle(array) {
- var shuffledArray = (0, _toConsumableArray2["default"])(array);
- for (var i = shuffledArray.length; i; i--) {
- var j = Math.floor(this.randomGenerator.getMathRandom() * i);
- var _ref = [shuffledArray[j], shuffledArray[i - 1]];
- shuffledArray[i - 1] = _ref[0];
- shuffledArray[j] = _ref[1];
- }
- return shuffledArray;
- }
- }]);
- return ArrayUtils;
- }();
- 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);
- exports.ArrayUtils = ArrayUtils;
- /***/ }),
- /***/ "./src/utils/CryptUtils.ts":
- /*!*********************************!*\
- !*** ./src/utils/CryptUtils.ts ***!
- \*********************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var RandomGenerator_1 = __webpack_require__(/*! ./RandomGenerator */ "./src/utils/RandomGenerator.ts");
- var Utils_1 = __webpack_require__(/*! ./Utils */ "./src/utils/Utils.ts");
- var CryptUtils =
- /*#__PURE__*/
- function () {
- function CryptUtils(randomGenerator) {
- (0, _classCallCheck2["default"])(this, CryptUtils);
- this.randomGenerator = randomGenerator;
- }
- (0, _createClass2["default"])(CryptUtils, [{
- key: "btoa",
- value: function btoa(string) {
- var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
- var output = '';
- string = encodeURIComponent(string).replace(/%([0-9A-F]{2})/g, function (match, p1) {
- return String.fromCharCode(parseInt("".concat(Utils_1.Utils.hexadecimalPrefix).concat(p1)));
- });
- for (var block, charCode, idx = 0, map = chars; string.charAt(idx | 0) || (map = '=', idx % 1); output += map.charAt(63 & block >> 8 - idx % 1 * 8)) {
- charCode = string.charCodeAt(idx += 3 / 4);
- if (charCode > 0xFF) {
- throw new Error("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");
- }
- block = block << 8 | charCode;
- }
- return output;
- }
- }, {
- key: "hideString",
- value: function hideString(str, length) {
- var _this = this;
- var escapeRegExp = function escapeRegExp(s) {
- return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
- };
- var randomMerge = function randomMerge(s1, s2) {
- var i1 = -1;
- var i2 = -1;
- var result = '';
- while (i1 < s1.length || i2 < s2.length) {
- if (_this.randomGenerator.getMathRandom() < 0.5 && i2 < s2.length) {
- result += s2.charAt(++i2);
- } else {
- result += s1.charAt(++i1);
- }
- }
- return result;
- };
- var randomString = this.randomGenerator.getRandomGenerator().string({
- length: length,
- pool: RandomGenerator_1.RandomGenerator.randomGeneratorPool
- });
- var randomStringDiff = randomString.replace(new RegExp("[".concat(escapeRegExp(str), "]"), 'g'), '');
- var randomStringDiffArray = randomStringDiff.split('');
- this.randomGenerator.getRandomGenerator().shuffle(randomStringDiffArray);
- randomStringDiff = randomStringDiffArray.join('');
- return [randomMerge(str, randomStringDiff), randomStringDiff];
- }
- }, {
- key: "rc4",
- value: function rc4(string, key) {
- var s = [],
- j = 0,
- x,
- result = '';
- for (var i = 0; i < 256; i++) {
- s[i] = i;
- }
- for (i = 0; i < 256; i++) {
- j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;
- x = s[i];
- s[i] = s[j];
- s[j] = x;
- }
- i = 0;
- j = 0;
- for (var y = 0; y < string.length; y++) {
- i = (i + 1) % 256;
- j = (j + s[i]) % 256;
- x = s[i];
- s[i] = s[j];
- s[j] = x;
- result += String.fromCharCode(string.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);
- }
- return result;
- }
- }]);
- return CryptUtils;
- }();
- 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);
- exports.CryptUtils = CryptUtils;
- /***/ }),
- /***/ "./src/utils/EscapeSequenceEncoder.ts":
- /*!********************************************!*\
- !*** ./src/utils/EscapeSequenceEncoder.ts ***!
- \********************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var EscapeSequenceEncoder =
- /*#__PURE__*/
- function () {
- function EscapeSequenceEncoder() {
- (0, _classCallCheck2["default"])(this, EscapeSequenceEncoder);
- this.stringsCache = new Map();
- }
- (0, _createClass2["default"])(EscapeSequenceEncoder, [{
- key: "encode",
- value: function encode(string, encodeAllSymbols) {
- var cacheKey = "".concat(string, "-").concat(String(encodeAllSymbols));
- if (this.stringsCache.has(cacheKey)) {
- return this.stringsCache.get(cacheKey);
- }
- var radix = 16;
- var replaceRegExp = new RegExp('[\\s\\S]', 'g');
- var escapeSequenceRegExp = new RegExp('[\'\"\\\\\\s]');
- var regExp = new RegExp('[\\x00-\\x7F]');
- var prefix;
- var template;
- var result = string.replace(replaceRegExp, function (character) {
- if (!encodeAllSymbols && !escapeSequenceRegExp.exec(character)) {
- return character;
- }
- if (regExp.exec(character)) {
- prefix = '\\x';
- template = '00';
- } else {
- prefix = "\\u";
- template = '0000';
- }
- return "".concat(prefix).concat((template + character.charCodeAt(0).toString(radix)).slice(-template.length));
- });
- this.stringsCache.set(cacheKey, result);
- return result;
- }
- }]);
- return EscapeSequenceEncoder;
- }();
- EscapeSequenceEncoder = tslib_1.__decorate([inversify_1.injectable()], EscapeSequenceEncoder);
- exports.EscapeSequenceEncoder = EscapeSequenceEncoder;
- /***/ }),
- /***/ "./src/utils/LevelledTopologicalSorter.ts":
- /*!************************************************!*\
- !*** ./src/utils/LevelledTopologicalSorter.ts ***!
- \************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var LevelledTopologicalSorter =
- /*#__PURE__*/
- function () {
- function LevelledTopologicalSorter() {
- (0, _classCallCheck2["default"])(this, LevelledTopologicalSorter);
- this.graph = new Map();
- }
- (0, _createClass2["default"])(LevelledTopologicalSorter, [{
- key: "add",
- value: function add(precedent) {
- var consequent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
- if (consequent !== null) {
- return this.link(precedent, consequent);
- }
- return this.register(precedent);
- }
- }, {
- key: "sort",
- value: function sort() {
- var consequents = Array.from(this.graph.keys());
- var results = [];
- var marks = {};
- for (var _i = 0, _consequents = consequents; _i < _consequents.length; _i++) {
- var consequent = _consequents[_i];
- if (marks[consequent] !== undefined) {
- continue;
- }
- this.visit(results, marks, consequent);
- }
- return results;
- }
- }, {
- key: "sortByGroups",
- value: function sortByGroups() {
- this.sort();
- var resultItemsGroups = [];
- while (this.hasNodes()) {
- var rootNodes = this.findRootNodes();
- resultItemsGroups.push(rootNodes);
- var _iteratorNormalCompletion = true;
- var _didIteratorError = false;
- var _iteratorError = undefined;
- try {
- for (var _iterator = rootNodes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
- var rootNode = _step.value;
- this["delete"](rootNode);
- }
- } catch (err) {
- _didIteratorError = true;
- _iteratorError = err;
- } finally {
- try {
- if (!_iteratorNormalCompletion && _iterator["return"] != null) {
- _iterator["return"]();
- }
- } finally {
- if (_didIteratorError) {
- throw _iteratorError;
- }
- }
- }
- }
- return resultItemsGroups;
- }
- }, {
- key: "delete",
- value: function _delete(consequent) {
- var precedents = this.getPrecedents(consequent);
- if (precedents.length) {
- throw new Error("Unable to remove non-root node: ".concat(consequent));
- }
- this.graph["delete"](consequent);
- var precedentsGroups = Array.from(this.graph.values());
- for (var _i2 = 0, _precedentsGroups = precedentsGroups; _i2 < _precedentsGroups.length; _i2++) {
- var precedentsGroup = _precedentsGroups[_i2];
- var precedentsCount = precedentsGroup.length - 1;
- for (var index = precedentsCount; index >= 0; index = index - 1) {
- if (precedentsGroup[index] !== consequent) {
- continue;
- }
- precedentsGroup.splice(index, 1);
- }
- }
- }
- }, {
- key: "findRootNodes",
- value: function findRootNodes() {
- var consequents = Array.from(this.graph.keys());
- var rootNodes = [];
- for (var _i3 = 0, _consequents2 = consequents; _i3 < _consequents2.length; _i3++) {
- var consequent = _consequents2[_i3];
- if (!this.hasPrecedents(consequent)) {
- rootNodes.push(consequent);
- }
- }
- return rootNodes;
- }
- }, {
- key: "getPrecedents",
- value: function getPrecedents(consequent) {
- var precedents = this.graph.get(consequent);
- if (!precedents) {
- throw new Error("Unknown node: ".concat(consequent));
- }
- return precedents;
- }
- }, {
- key: "hasNodes",
- value: function hasNodes() {
- return this.graph.size > 0;
- }
- }, {
- key: "hasPrecedents",
- value: function hasPrecedents(consequent) {
- return this.getPrecedents(consequent).length > 0;
- }
- }, {
- key: "link",
- value: function link(precedent, consequent) {
- this.register(precedent);
- this.register(consequent);
- var target = this.graph.get(consequent);
- if (target && !target.includes(precedent)) {
- target.push(precedent);
- }
- return this;
- }
- }, {
- key: "register",
- value: function register(name) {
- if (!this.graph.has(name)) {
- this.graph.set(name, []);
- }
- return this;
- }
- }, {
- key: "visit",
- value: function visit(results, marks, name) {
- var mark = marks[name];
- if (mark === 'visiting') {
- throw new Error("Detected cycle involving node: ".concat(name));
- }
- if (mark) {
- return;
- }
- marks[name] = 'visiting';
- var precedents = this.getPrecedents(name);
- var _iteratorNormalCompletion2 = true;
- var _didIteratorError2 = false;
- var _iteratorError2 = undefined;
- try {
- for (var _iterator2 = precedents[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
- var precedent = _step2.value;
- this.visit(results, marks, precedent);
- }
- } catch (err) {
- _didIteratorError2 = true;
- _iteratorError2 = err;
- } finally {
- try {
- if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
- _iterator2["return"]();
- }
- } finally {
- if (_didIteratorError2) {
- throw _iteratorError2;
- }
- }
- }
- marks[name] = 'ok';
- results.push(name);
- return;
- }
- }]);
- return LevelledTopologicalSorter;
- }();
- LevelledTopologicalSorter = tslib_1.__decorate([inversify_1.injectable()], LevelledTopologicalSorter);
- exports.LevelledTopologicalSorter = LevelledTopologicalSorter;
- /***/ }),
- /***/ "./src/utils/NodeTransformerNamesGroupsBuilder.ts":
- /*!********************************************************!*\
- !*** ./src/utils/NodeTransformerNamesGroupsBuilder.ts ***!
- \********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray"));
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var NodeTransformerNamesGroupsBuilder =
- /*#__PURE__*/
- function () {
- function NodeTransformerNamesGroupsBuilder(levelledTopologicalSorter) {
- (0, _classCallCheck2["default"])(this, NodeTransformerNamesGroupsBuilder);
- this.levelledTopologicalSorter = levelledTopologicalSorter;
- }
- (0, _createClass2["default"])(NodeTransformerNamesGroupsBuilder, [{
- key: "build",
- value: function build(normalizedNodeTransformers) {
- var nodeTransformerNames = Object.keys(normalizedNodeTransformers);
- var relationEdges = this.buildNodeTransformersRelationEdges(nodeTransformerNames, normalizedNodeTransformers);
- var _iteratorNormalCompletion = true;
- var _didIteratorError = false;
- var _iteratorError = undefined;
- try {
- for (var _iterator = relationEdges[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
- var _step$value = (0, _slicedToArray2["default"])(_step.value, 2),
- precedent = _step$value[0],
- consequent = _step$value[1];
- this.levelledTopologicalSorter.add(precedent, consequent);
- }
- } catch (err) {
- _didIteratorError = true;
- _iteratorError = err;
- } finally {
- try {
- if (!_iteratorNormalCompletion && _iterator["return"] != null) {
- _iterator["return"]();
- }
- } finally {
- if (_didIteratorError) {
- throw _iteratorError;
- }
- }
- }
- return this.levelledTopologicalSorter.sortByGroups();
- }
- }, {
- key: "buildNodeTransformersRelationEdges",
- value: function buildNodeTransformersRelationEdges(nodeTransformerNames, normalizedNodeTransformers) {
- var relationEdges = [];
- var _iteratorNormalCompletion2 = true;
- var _didIteratorError2 = false;
- var _iteratorError2 = undefined;
- try {
- for (var _iterator2 = nodeTransformerNames[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
- var nodeTransformerName = _step2.value;
- var nodeTransformer = normalizedNodeTransformers[nodeTransformerName];
- var runAfterRelations = nodeTransformer.runAfter;
- if (!runAfterRelations || !runAfterRelations.length) {
- relationEdges.push([nodeTransformerName, null]);
- continue;
- }
- var _iteratorNormalCompletion3 = true;
- var _didIteratorError3 = false;
- var _iteratorError3 = undefined;
- try {
- for (var _iterator3 = runAfterRelations[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
- var runAfterRelation = _step3.value;
- var isUnknownRelation = !normalizedNodeTransformers[runAfterRelation];
- if (isUnknownRelation) {
- relationEdges.push([nodeTransformerName, null]);
- continue;
- }
- relationEdges.push([runAfterRelation, nodeTransformerName]);
- }
- } catch (err) {
- _didIteratorError3 = true;
- _iteratorError3 = err;
- } finally {
- try {
- if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
- _iterator3["return"]();
- }
- } finally {
- if (_didIteratorError3) {
- throw _iteratorError3;
- }
- }
- }
- }
- } catch (err) {
- _didIteratorError2 = true;
- _iteratorError2 = err;
- } finally {
- try {
- if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
- _iterator2["return"]();
- }
- } finally {
- if (_didIteratorError2) {
- throw _iteratorError2;
- }
- }
- }
- return relationEdges;
- }
- }]);
- return NodeTransformerNamesGroupsBuilder;
- }();
- 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);
- exports.NodeTransformerNamesGroupsBuilder = NodeTransformerNamesGroupsBuilder;
- /***/ }),
- /***/ "./src/utils/NumberUtils.ts":
- /*!**********************************!*\
- !*** ./src/utils/NumberUtils.ts ***!
- \**********************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var NumberUtils =
- /*#__PURE__*/
- function () {
- function NumberUtils() {
- (0, _classCallCheck2["default"])(this, NumberUtils);
- }
- (0, _createClass2["default"])(NumberUtils, null, [{
- key: "toHex",
- value: function toHex(dec) {
- var radix = 16;
- return dec.toString(radix);
- }
- }, {
- key: "isCeil",
- value: function isCeil(number) {
- return number % 1 === 0;
- }
- }]);
- return NumberUtils;
- }();
- exports.NumberUtils = NumberUtils;
- /***/ }),
- /***/ "./src/utils/RandomGenerator.ts":
- /*!**************************************!*\
- !*** ./src/utils/RandomGenerator.ts ***!
- \**************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- var RandomGenerator_1;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
- var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- var md5_1 = tslib_1.__importDefault(__webpack_require__(/*! md5 */ "md5"));
- var chance_1 = __webpack_require__(/*! chance */ "chance");
- var Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts");
- var RandomGenerator = RandomGenerator_1 =
- /*#__PURE__*/
- function () {
- function RandomGenerator(sourceCode, options) {
- (0, _classCallCheck2["default"])(this, RandomGenerator);
- this.sourceCode = sourceCode;
- this.options = options;
- }
- (0, _createClass2["default"])(RandomGenerator, [{
- key: "initialize",
- value: function initialize() {
- var _this = this;
- var getRandomInteger = function getRandomInteger(min, max) {
- return Math.floor(Math.random() * (max - min + 1) + min);
- };
- var getSeed = function getSeed() {
- var md5Hash = md5_1["default"](_this.sourceCode.getSourceCode());
- return _this.seed + Number(md5Hash.replace(/\D/g, ''));
- };
- this.seed = this.options.seed !== 0 ? this.options.seed : getRandomInteger(0, 999999999);
- this.randomGenerator = new chance_1.Chance(getSeed());
- }
- }, {
- key: "getMathRandom",
- value: function getMathRandom() {
- return this.getRandomInteger(0, 99999) / 100000;
- }
- }, {
- key: "getRandomGenerator",
- value: function getRandomGenerator() {
- return this.randomGenerator;
- }
- }, {
- key: "getRandomInteger",
- value: function getRandomInteger(min, max) {
- return this.getRandomGenerator().integer({
- min: min,
- max: max
- });
- }
- }, {
- key: "getRandomString",
- value: function getRandomString(length) {
- var pool = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : RandomGenerator_1.randomGeneratorPool;
- return this.getRandomGenerator().string({
- length: length,
- pool: pool
- });
- }
- }, {
- key: "getSeed",
- value: function getSeed() {
- return this.seed;
- }
- }]);
- return RandomGenerator;
- }();
- RandomGenerator.randomGeneratorPool = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], RandomGenerator.prototype, "randomGenerator", void 0);
- tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Number)], RandomGenerator.prototype, "seed", void 0);
- 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);
- 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);
- exports.RandomGenerator = RandomGenerator;
- /***/ }),
- /***/ "./src/utils/Utils.ts":
- /*!****************************!*\
- !*** ./src/utils/Utils.ts ***!
- \****************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
- var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var Utils =
- /*#__PURE__*/
- function () {
- function Utils() {
- (0, _classCallCheck2["default"])(this, Utils);
- }
- (0, _createClass2["default"])(Utils, null, [{
- key: "extractDomainFrom",
- value: function extractDomainFrom(url) {
- var domain;
- if (url.indexOf('://') > -1 || url.indexOf('//') === 0) {
- domain = url.split('/')[2];
- } else {
- domain = url.split('/')[0];
- }
- domain = domain.split(':')[0];
- return domain;
- }
- }]);
- return Utils;
- }();
- exports.Utils = Utils;
- Utils.hexadecimalPrefix = '0x';
- /***/ }),
- /***/ "@babel/runtime/helpers/classCallCheck":
- /*!********************************************************!*\
- !*** external "@babel/runtime/helpers/classCallCheck" ***!
- \********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("@babel/runtime/helpers/classCallCheck");
- /***/ }),
- /***/ "@babel/runtime/helpers/construct":
- /*!***************************************************!*\
- !*** external "@babel/runtime/helpers/construct" ***!
- \***************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("@babel/runtime/helpers/construct");
- /***/ }),
- /***/ "@babel/runtime/helpers/createClass":
- /*!*****************************************************!*\
- !*** external "@babel/runtime/helpers/createClass" ***!
- \*****************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("@babel/runtime/helpers/createClass");
- /***/ }),
- /***/ "@babel/runtime/helpers/defineProperty":
- /*!********************************************************!*\
- !*** external "@babel/runtime/helpers/defineProperty" ***!
- \********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("@babel/runtime/helpers/defineProperty");
- /***/ }),
- /***/ "@babel/runtime/helpers/get":
- /*!*********************************************!*\
- !*** external "@babel/runtime/helpers/get" ***!
- \*********************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("@babel/runtime/helpers/get");
- /***/ }),
- /***/ "@babel/runtime/helpers/getPrototypeOf":
- /*!********************************************************!*\
- !*** external "@babel/runtime/helpers/getPrototypeOf" ***!
- \********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("@babel/runtime/helpers/getPrototypeOf");
- /***/ }),
- /***/ "@babel/runtime/helpers/inherits":
- /*!**************************************************!*\
- !*** external "@babel/runtime/helpers/inherits" ***!
- \**************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("@babel/runtime/helpers/inherits");
- /***/ }),
- /***/ "@babel/runtime/helpers/interopRequireDefault":
- /*!***************************************************************!*\
- !*** external "@babel/runtime/helpers/interopRequireDefault" ***!
- \***************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("@babel/runtime/helpers/interopRequireDefault");
- /***/ }),
- /***/ "@babel/runtime/helpers/possibleConstructorReturn":
- /*!*******************************************************************!*\
- !*** external "@babel/runtime/helpers/possibleConstructorReturn" ***!
- \*******************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("@babel/runtime/helpers/possibleConstructorReturn");
- /***/ }),
- /***/ "@babel/runtime/helpers/slicedToArray":
- /*!*******************************************************!*\
- !*** external "@babel/runtime/helpers/slicedToArray" ***!
- \*******************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("@babel/runtime/helpers/slicedToArray");
- /***/ }),
- /***/ "@babel/runtime/helpers/toConsumableArray":
- /*!***********************************************************!*\
- !*** external "@babel/runtime/helpers/toConsumableArray" ***!
- \***********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("@babel/runtime/helpers/toConsumableArray");
- /***/ }),
- /***/ "@babel/runtime/helpers/typeof":
- /*!************************************************!*\
- !*** external "@babel/runtime/helpers/typeof" ***!
- \************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("@babel/runtime/helpers/typeof");
- /***/ }),
- /***/ "chalk":
- /*!************************!*\
- !*** external "chalk" ***!
- \************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("chalk");
- /***/ }),
- /***/ "chance":
- /*!*************************!*\
- !*** external "chance" ***!
- \*************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("chance");
- /***/ }),
- /***/ "class-validator":
- /*!**********************************!*\
- !*** external "class-validator" ***!
- \**********************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("class-validator");
- /***/ }),
- /***/ "escodegen-wallaby":
- /*!************************************!*\
- !*** external "escodegen-wallaby" ***!
- \************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("escodegen-wallaby");
- /***/ }),
- /***/ "espree":
- /*!*************************!*\
- !*** external "espree" ***!
- \*************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("espree");
- /***/ }),
- /***/ "estraverse":
- /*!*****************************!*\
- !*** external "estraverse" ***!
- \*****************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("estraverse");
- /***/ }),
- /***/ "eventemitter3":
- /*!********************************!*\
- !*** external "eventemitter3" ***!
- \********************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("eventemitter3");
- /***/ }),
- /***/ "inversify":
- /*!****************************!*\
- !*** external "inversify" ***!
- \****************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("inversify");
- /***/ }),
- /***/ "js-string-escape":
- /*!***********************************!*\
- !*** external "js-string-escape" ***!
- \***********************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("js-string-escape");
- /***/ }),
- /***/ "md5":
- /*!**********************!*\
- !*** external "md5" ***!
- \**********************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("md5");
- /***/ }),
- /***/ "reflect-metadata":
- /*!***********************************!*\
- !*** external "reflect-metadata" ***!
- \***********************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("reflect-metadata");
- /***/ }),
- /***/ "string-template":
- /*!**********************************!*\
- !*** external "string-template" ***!
- \**********************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("string-template");
- /***/ }),
- /***/ "tslib":
- /*!************************!*\
- !*** external "tslib" ***!
- \************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("tslib");
- /***/ })
- /******/ });
- //# sourceMappingURL=index.js.map
|