1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168171691717017171171721717317174171751717617177171781717917180171811718217183171841718517186171871718817189171901719117192171931719417195171961719717198171991720017201172021720317204172051720617207172081720917210172111721217213172141721517216172171721817219172201722117222172231722417225172261722717228172291723017231172321723317234172351723617237172381723917240172411724217243172441724517246172471724817249172501725117252172531725417255172561725717258172591726017261172621726317264172651726617267172681726917270172711727217273172741727517276172771727817279172801728117282172831728417285172861728717288172891729017291172921729317294172951729617297172981729917300173011730217303173041730517306173071730817309173101731117312173131731417315173161731717318173191732017321173221732317324173251732617327173281732917330173311733217333173341733517336173371733817339173401734117342173431734417345173461734717348173491735017351173521735317354173551735617357173581735917360173611736217363173641736517366173671736817369173701737117372173731737417375173761737717378173791738017381173821738317384173851738617387173881738917390173911739217393173941739517396173971739817399174001740117402174031740417405174061740717408174091741017411174121741317414174151741617417174181741917420174211742217423174241742517426174271742817429174301743117432174331743417435174361743717438174391744017441174421744317444174451744617447174481744917450174511745217453174541745517456174571745817459174601746117462174631746417465174661746717468174691747017471174721747317474174751747617477174781747917480174811748217483174841748517486174871748817489174901749117492174931749417495174961749717498174991750017501175021750317504175051750617507175081750917510175111751217513175141751517516175171751817519175201752117522175231752417525175261752717528175291753017531175321753317534175351753617537175381753917540175411754217543175441754517546175471754817549175501755117552175531755417555175561755717558175591756017561175621756317564175651756617567175681756917570175711757217573175741757517576175771757817579175801758117582175831758417585175861758717588175891759017591175921759317594175951759617597175981759917600176011760217603176041760517606176071760817609176101761117612176131761417615176161761717618176191762017621176221762317624176251762617627176281762917630176311763217633176341763517636176371763817639176401764117642176431764417645176461764717648176491765017651176521765317654176551765617657176581765917660176611766217663176641766517666176671766817669176701767117672176731767417675176761767717678176791768017681176821768317684176851768617687176881768917690176911769217693176941769517696176971769817699177001770117702177031770417705177061770717708177091771017711177121771317714177151771617717177181771917720177211772217723177241772517726177271772817729177301773117732177331773417735177361773717738177391774017741177421774317744177451774617747177481774917750177511775217753177541775517756177571775817759177601776117762177631776417765177661776717768177691777017771177721777317774177751777617777177781777917780177811778217783177841778517786177871778817789177901779117792177931779417795177961779717798177991780017801178021780317804178051780617807178081780917810178111781217813178141781517816178171781817819178201782117822178231782417825178261782717828178291783017831178321783317834178351783617837178381783917840178411784217843178441784517846178471784817849178501785117852178531785417855178561785717858178591786017861178621786317864178651786617867178681786917870178711787217873178741787517876178771787817879178801788117882178831788417885178861788717888178891789017891178921789317894178951789617897178981789917900179011790217903179041790517906179071790817909179101791117912179131791417915179161791717918179191792017921179221792317924179251792617927179281792917930179311793217933179341793517936179371793817939179401794117942179431794417945179461794717948179491795017951179521795317954179551795617957179581795917960179611796217963179641796517966179671796817969179701797117972179731797417975179761797717978179791798017981179821798317984179851798617987179881798917990179911799217993179941799517996179971799817999180001800118002180031800418005180061800718008180091801018011180121801318014180151801618017180181801918020180211802218023180241802518026180271802818029180301803118032180331803418035180361803718038180391804018041180421804318044180451804618047180481804918050180511805218053180541805518056180571805818059180601806118062180631806418065180661806718068180691807018071180721807318074180751807618077180781807918080180811808218083180841808518086180871808818089180901809118092180931809418095180961809718098180991810018101181021810318104181051810618107181081810918110181111811218113181141811518116181171811818119181201812118122181231812418125181261812718128181291813018131181321813318134181351813618137181381813918140181411814218143181441814518146181471814818149181501815118152181531815418155181561815718158181591816018161181621816318164181651816618167181681816918170181711817218173181741817518176181771817818179181801818118182181831818418185181861818718188181891819018191181921819318194181951819618197181981819918200182011820218203182041820518206182071820818209182101821118212182131821418215182161821718218182191822018221182221822318224182251822618227182281822918230182311823218233182341823518236182371823818239182401824118242182431824418245182461824718248182491825018251182521825318254182551825618257182581825918260182611826218263182641826518266182671826818269182701827118272182731827418275182761827718278182791828018281182821828318284182851828618287182881828918290182911829218293182941829518296182971829818299183001830118302183031830418305183061830718308183091831018311183121831318314183151831618317183181831918320183211832218323183241832518326183271832818329183301833118332183331833418335183361833718338183391834018341183421834318344183451834618347183481834918350183511835218353183541835518356183571835818359183601836118362183631836418365183661836718368183691837018371183721837318374183751837618377183781837918380183811838218383183841838518386183871838818389183901839118392183931839418395183961839718398183991840018401184021840318404184051840618407184081840918410184111841218413184141841518416184171841818419184201842118422184231842418425184261842718428184291843018431184321843318434184351843618437184381843918440184411844218443184441844518446184471844818449184501845118452184531845418455184561845718458184591846018461184621846318464184651846618467184681846918470184711847218473184741847518476184771847818479184801848118482184831848418485184861848718488184891849018491184921849318494184951849618497184981849918500185011850218503185041850518506185071850818509185101851118512185131851418515185161851718518185191852018521185221852318524185251852618527185281852918530185311853218533185341853518536185371853818539185401854118542185431854418545185461854718548185491855018551185521855318554185551855618557185581855918560185611856218563185641856518566185671856818569185701857118572185731857418575185761857718578185791858018581185821858318584185851858618587185881858918590185911859218593185941859518596185971859818599186001860118602186031860418605186061860718608186091861018611186121861318614186151861618617186181861918620186211862218623186241862518626186271862818629186301863118632186331863418635186361863718638186391864018641186421864318644186451864618647186481864918650186511865218653186541865518656186571865818659186601866118662186631866418665186661866718668186691867018671186721867318674186751867618677186781867918680186811868218683186841868518686186871868818689186901869118692186931869418695186961869718698186991870018701187021870318704187051870618707187081870918710187111871218713187141871518716187171871818719187201872118722187231872418725187261872718728187291873018731187321873318734187351873618737187381873918740187411874218743187441874518746187471874818749187501875118752187531875418755187561875718758187591876018761187621876318764187651876618767187681876918770187711877218773187741877518776187771877818779187801878118782187831878418785187861878718788187891879018791187921879318794187951879618797187981879918800188011880218803188041880518806188071880818809188101881118812188131881418815188161881718818188191882018821188221882318824188251882618827188281882918830188311883218833188341883518836188371883818839188401884118842188431884418845188461884718848188491885018851188521885318854188551885618857188581885918860188611886218863188641886518866188671886818869188701887118872188731887418875188761887718878188791888018881188821888318884188851888618887188881888918890188911889218893188941889518896188971889818899189001890118902189031890418905189061890718908189091891018911189121891318914189151891618917189181891918920189211892218923189241892518926189271892818929189301893118932189331893418935189361893718938189391894018941189421894318944189451894618947189481894918950189511895218953189541895518956189571895818959189601896118962189631896418965189661896718968189691897018971189721897318974189751897618977189781897918980189811898218983189841898518986189871898818989189901899118992189931899418995189961899718998189991900019001190021900319004190051900619007190081900919010190111901219013190141901519016190171901819019190201902119022190231902419025190261902719028190291903019031190321903319034190351903619037190381903919040190411904219043190441904519046190471904819049190501905119052190531905419055190561905719058190591906019061190621906319064190651906619067190681906919070190711907219073190741907519076190771907819079190801908119082190831908419085190861908719088190891909019091190921909319094190951909619097190981909919100191011910219103191041910519106191071910819109191101911119112191131911419115191161911719118191191912019121191221912319124191251912619127191281912919130191311913219133191341913519136191371913819139191401914119142191431914419145191461914719148191491915019151191521915319154191551915619157191581915919160191611916219163191641916519166191671916819169191701917119172191731917419175191761917719178191791918019181191821918319184191851918619187191881918919190191911919219193191941919519196191971919819199192001920119202192031920419205192061920719208192091921019211192121921319214192151921619217192181921919220192211922219223192241922519226192271922819229192301923119232192331923419235192361923719238192391924019241192421924319244192451924619247192481924919250192511925219253192541925519256192571925819259192601926119262192631926419265192661926719268192691927019271192721927319274192751927619277192781927919280192811928219283192841928519286192871928819289192901929119292192931929419295192961929719298192991930019301193021930319304193051930619307193081930919310193111931219313193141931519316193171931819319193201932119322193231932419325193261932719328193291933019331193321933319334193351933619337193381933919340193411934219343193441934519346193471934819349193501935119352193531935419355193561935719358193591936019361193621936319364193651936619367193681936919370193711937219373193741937519376193771937819379193801938119382193831938419385193861938719388193891939019391193921939319394193951939619397193981939919400194011940219403194041940519406194071940819409194101941119412194131941419415194161941719418194191942019421194221942319424194251942619427194281942919430194311943219433194341943519436194371943819439194401944119442194431944419445194461944719448194491945019451194521945319454194551945619457194581945919460194611946219463194641946519466194671946819469194701947119472194731947419475194761947719478194791948019481194821948319484194851948619487194881948919490194911949219493194941949519496194971949819499195001950119502195031950419505195061950719508195091951019511195121951319514195151951619517195181951919520195211952219523195241952519526195271952819529195301953119532195331953419535195361953719538195391954019541195421954319544195451954619547195481954919550195511955219553195541955519556195571955819559195601956119562195631956419565195661956719568195691957019571195721957319574195751957619577195781957919580195811958219583195841958519586195871958819589195901959119592195931959419595195961959719598195991960019601196021960319604196051960619607196081960919610196111961219613196141961519616196171961819619196201962119622196231962419625196261962719628196291963019631196321963319634196351963619637196381963919640196411964219643196441964519646196471964819649196501965119652196531965419655196561965719658196591966019661196621966319664196651966619667196681966919670196711967219673196741967519676196771967819679196801968119682196831968419685196861968719688196891969019691196921969319694196951969619697196981969919700197011970219703197041970519706197071970819709197101971119712197131971419715197161971719718197191972019721197221972319724197251972619727197281972919730197311973219733197341973519736197371973819739197401974119742197431974419745197461974719748197491975019751197521975319754197551975619757197581975919760197611976219763197641976519766197671976819769197701977119772197731977419775197761977719778197791978019781197821978319784197851978619787197881978919790197911979219793197941979519796197971979819799198001980119802198031980419805198061980719808198091981019811198121981319814198151981619817198181981919820198211982219823198241982519826198271982819829198301983119832198331983419835198361983719838198391984019841198421984319844198451984619847198481984919850198511985219853198541985519856198571985819859198601986119862198631986419865198661986719868198691987019871198721987319874198751987619877198781987919880198811988219883198841988519886198871988819889198901989119892198931989419895198961989719898198991990019901199021990319904199051990619907199081990919910199111991219913199141991519916199171991819919199201992119922199231992419925199261992719928199291993019931199321993319934199351993619937199381993919940199411994219943199441994519946199471994819949199501995119952199531995419955199561995719958199591996019961199621996319964199651996619967199681996919970199711997219973199741997519976199771997819979199801998119982199831998419985199861998719988199891999019991199921999319994199951999619997199981999920000200012000220003200042000520006200072000820009200102001120012200132001420015200162001720018200192002020021200222002320024200252002620027200282002920030200312003220033200342003520036200372003820039200402004120042200432004420045200462004720048200492005020051200522005320054200552005620057200582005920060200612006220063200642006520066200672006820069200702007120072200732007420075200762007720078200792008020081200822008320084200852008620087200882008920090200912009220093200942009520096200972009820099201002010120102201032010420105201062010720108201092011020111201122011320114201152011620117201182011920120201212012220123201242012520126201272012820129201302013120132201332013420135201362013720138201392014020141201422014320144201452014620147201482014920150201512015220153201542015520156201572015820159201602016120162201632016420165201662016720168201692017020171201722017320174201752017620177201782017920180201812018220183201842018520186201872018820189201902019120192201932019420195201962019720198201992020020201202022020320204202052020620207202082020920210202112021220213202142021520216202172021820219202202022120222202232022420225202262022720228202292023020231202322023320234202352023620237202382023920240202412024220243202442024520246202472024820249202502025120252202532025420255202562025720258202592026020261202622026320264202652026620267202682026920270202712027220273202742027520276202772027820279202802028120282202832028420285202862028720288202892029020291202922029320294202952029620297202982029920300203012030220303203042030520306203072030820309203102031120312203132031420315203162031720318203192032020321203222032320324203252032620327203282032920330203312033220333203342033520336203372033820339203402034120342203432034420345203462034720348203492035020351203522035320354203552035620357203582035920360203612036220363203642036520366203672036820369203702037120372203732037420375203762037720378203792038020381203822038320384203852038620387203882038920390203912039220393203942039520396203972039820399204002040120402204032040420405204062040720408204092041020411204122041320414204152041620417204182041920420204212042220423204242042520426204272042820429204302043120432204332043420435204362043720438204392044020441204422044320444204452044620447204482044920450204512045220453204542045520456204572045820459204602046120462204632046420465204662046720468204692047020471204722047320474204752047620477204782047920480204812048220483204842048520486204872048820489204902049120492204932049420495204962049720498204992050020501205022050320504205052050620507205082050920510205112051220513205142051520516205172051820519205202052120522205232052420525205262052720528205292053020531205322053320534205352053620537205382053920540205412054220543205442054520546205472054820549205502055120552205532055420555205562055720558205592056020561205622056320564205652056620567205682056920570205712057220573205742057520576205772057820579205802058120582205832058420585205862058720588205892059020591205922059320594205952059620597205982059920600206012060220603206042060520606206072060820609206102061120612206132061420615206162061720618206192062020621206222062320624206252062620627206282062920630206312063220633206342063520636206372063820639206402064120642206432064420645206462064720648206492065020651206522065320654206552065620657206582065920660206612066220663206642066520666206672066820669206702067120672206732067420675206762067720678206792068020681206822068320684206852068620687206882068920690206912069220693206942069520696206972069820699207002070120702207032070420705207062070720708207092071020711207122071320714207152071620717207182071920720207212072220723207242072520726207272072820729207302073120732207332073420735207362073720738207392074020741207422074320744207452074620747207482074920750207512075220753207542075520756207572075820759207602076120762207632076420765207662076720768207692077020771207722077320774207752077620777207782077920780207812078220783207842078520786207872078820789207902079120792207932079420795207962079720798207992080020801208022080320804208052080620807208082080920810208112081220813208142081520816208172081820819208202082120822208232082420825208262082720828208292083020831208322083320834208352083620837208382083920840208412084220843208442084520846208472084820849208502085120852208532085420855208562085720858208592086020861208622086320864208652086620867208682086920870208712087220873208742087520876208772087820879208802088120882208832088420885208862088720888208892089020891208922089320894208952089620897208982089920900209012090220903209042090520906209072090820909209102091120912209132091420915209162091720918209192092020921209222092320924209252092620927209282092920930209312093220933209342093520936209372093820939209402094120942209432094420945209462094720948209492095020951209522095320954209552095620957209582095920960209612096220963209642096520966209672096820969209702097120972209732097420975209762097720978209792098020981209822098320984209852098620987209882098920990209912099220993209942099520996209972099820999210002100121002210032100421005210062100721008210092101021011210122101321014210152101621017210182101921020210212102221023210242102521026210272102821029210302103121032210332103421035210362103721038210392104021041210422104321044210452104621047210482104921050210512105221053210542105521056210572105821059210602106121062210632106421065210662106721068210692107021071210722107321074210752107621077210782107921080210812108221083210842108521086210872108821089210902109121092210932109421095210962109721098210992110021101211022110321104211052110621107211082110921110 |
- /*!
- Copyright (C) 2016-2020 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.cli.ts");
- /******/ })
- /************************************************************************/
- /******/ ({
- /***/ "./index.cli.ts":
- /*!**********************!*\
- !*** ./index.cli.ts ***!
- \**********************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- const JavaScriptObfuscatorCLIFacade_1 = __webpack_require__(/*! ./src/JavaScriptObfuscatorCLIFacade */ "./src/JavaScriptObfuscatorCLIFacade.ts");
- module.exports = JavaScriptObfuscatorCLIFacade_1.JavaScriptObfuscatorCLI;
- /***/ }),
- /***/ "./src/ASTParserFacade.ts":
- /*!********************************!*\
- !*** ./src/ASTParserFacade.ts ***!
- \********************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- }));
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- });
- var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
- var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ASTParserFacade = void 0;
- const acorn = __importStar(__webpack_require__(/*! acorn */ "acorn"));
- const chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "chalk"));
- class ASTParserFacade {
- static parse(sourceCode, config) {
- const sourceTypeLength = ASTParserFacade.sourceTypes.length;
- for (let i = 0; i < sourceTypeLength; i++) {
- try {
- return ASTParserFacade.parseType(sourceCode, config, ASTParserFacade.sourceTypes[i]);
- }
- catch (error) {
- if (i < sourceTypeLength - 1) {
- continue;
- }
- throw new Error(ASTParserFacade.processParsingError(sourceCode, error.message, error.loc));
- }
- }
- throw new Error('Acorn parsing error');
- }
- static parseType(sourceCode, inputConfig, sourceType) {
- const comments = [];
- const config = Object.assign(Object.assign({}, inputConfig), { onComment: comments, sourceType });
- const program = acorn
- .parse(sourceCode, config);
- if (comments.length) {
- program.comments = comments;
- }
- return program;
- }
- static processParsingError(sourceCode, errorMessage, position) {
- if (!position || !position.line || !position.column) {
- throw new Error(errorMessage);
- }
- const sourceCodeLines = sourceCode.split(/\r?\n/);
- const errorLine = sourceCodeLines[position.line - 1];
- if (!errorLine) {
- throw new Error(errorMessage);
- }
- const startErrorIndex = Math.max(0, position.column - ASTParserFacade.nearestSymbolsCount);
- const endErrorIndex = Math.min(errorLine.length, position.column + ASTParserFacade.nearestSymbolsCount);
- const formattedPointer = ASTParserFacade.colorError('>');
- const formattedCodeSlice = `...${errorLine.substring(startErrorIndex, endErrorIndex).replace(/^\s+/, '')}...`;
- throw new Error(`ERROR at line ${position.line}: ${errorMessage}\n${formattedPointer} ${formattedCodeSlice}`);
- }
- }
- exports.ASTParserFacade = ASTParserFacade;
- ASTParserFacade.colorError = chalk_1.default.red;
- ASTParserFacade.nearestSymbolsCount = 15;
- ASTParserFacade.sourceTypes = [
- 'script',
- 'module'
- ];
- /***/ }),
- /***/ "./src/JavaScriptObfuscator.ts":
- /*!*************************************!*\
- !*** ./src/JavaScriptObfuscator.ts ***!
- \*************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- }));
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- });
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var JavaScriptObfuscator_1, _a, _b, _c, _d, _e, _f;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.JavaScriptObfuscator = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ./container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const escodegen = __importStar(__webpack_require__(/*! escodegen */ "escodegen"));
- const TObfuscatedCodeFactory_1 = __webpack_require__(/*! ./types/container/source-code/TObfuscatedCodeFactory */ "./src/types/container/source-code/TObfuscatedCodeFactory.ts");
- const ICodeTransformersRunner_1 = __webpack_require__(/*! ./interfaces/code-transformers/ICodeTransformersRunner */ "./src/interfaces/code-transformers/ICodeTransformersRunner.ts");
- const ILogger_1 = __webpack_require__(/*! ./interfaces/logger/ILogger */ "./src/interfaces/logger/ILogger.ts");
- const IOptions_1 = __webpack_require__(/*! ./interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ./interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const INodeTransformersRunner_1 = __webpack_require__(/*! ./interfaces/node-transformers/INodeTransformersRunner */ "./src/interfaces/node-transformers/INodeTransformersRunner.ts");
- const CodeTransformer_1 = __webpack_require__(/*! ./enums/code-transformers/CodeTransformer */ "./src/enums/code-transformers/CodeTransformer.ts");
- const CodeTransformationStage_1 = __webpack_require__(/*! ./enums/code-transformers/CodeTransformationStage */ "./src/enums/code-transformers/CodeTransformationStage.ts");
- const LoggingMessage_1 = __webpack_require__(/*! ./enums/logger/LoggingMessage */ "./src/enums/logger/LoggingMessage.ts");
- const NodeTransformer_1 = __webpack_require__(/*! ./enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
- const NodeTransformationStage_1 = __webpack_require__(/*! ./enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
- const EcmaVersion_1 = __webpack_require__(/*! ./constants/EcmaVersion */ "./src/constants/EcmaVersion.ts");
- const ASTParserFacade_1 = __webpack_require__(/*! ./ASTParserFacade */ "./src/ASTParserFacade.ts");
- const NodeGuards_1 = __webpack_require__(/*! ./node/NodeGuards */ "./src/node/NodeGuards.ts");
- const Utils_1 = __webpack_require__(/*! ./utils/Utils */ "./src/utils/Utils.ts");
- let JavaScriptObfuscator = JavaScriptObfuscator_1 = class JavaScriptObfuscator {
- constructor(codeTransformersRunner, nodeTransformersRunner, randomGenerator, obfuscatedCodeFactory, logger, options) {
- this.codeTransformersRunner = codeTransformersRunner;
- this.nodeTransformersRunner = nodeTransformersRunner;
- this.randomGenerator = randomGenerator;
- this.obfuscatedCodeFactory = obfuscatedCodeFactory;
- this.logger = logger;
- this.options = options;
- }
- obfuscate(sourceCode) {
- if (typeof sourceCode !== 'string') {
- sourceCode = '';
- }
- const timeStart = Date.now();
- this.logger.info(LoggingMessage_1.LoggingMessage.Version, Utils_1.Utils.buildVersionMessage("1.0.1", 1591383009702));
- this.logger.info(LoggingMessage_1.LoggingMessage.ObfuscationStarted);
- this.logger.info(LoggingMessage_1.LoggingMessage.RandomGeneratorSeed, this.randomGenerator.getInputSeed());
- sourceCode = this.runCodeTransformationStage(sourceCode, CodeTransformationStage_1.CodeTransformationStage.PreparingTransformers);
- const astTree = this.parseCode(sourceCode);
- const obfuscatedAstTree = this.transformAstTree(astTree);
- const generatorOutput = this.generateCode(sourceCode, obfuscatedAstTree);
- generatorOutput.code = this.runCodeTransformationStage(generatorOutput.code, CodeTransformationStage_1.CodeTransformationStage.FinalizingTransformers);
- const obfuscationTime = (Date.now() - timeStart) / 1000;
- this.logger.success(LoggingMessage_1.LoggingMessage.ObfuscationCompleted, obfuscationTime);
- return this.getObfuscatedCode(generatorOutput);
- }
- parseCode(sourceCode) {
- return ASTParserFacade_1.ASTParserFacade.parse(sourceCode, JavaScriptObfuscator_1.parseOptions);
- }
- transformAstTree(astTree) {
- astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Initializing);
- const 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.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Preparing);
- if (this.options.deadCodeInjection) {
- astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.DeadCodeInjection);
- }
- if (this.options.controlFlowFlattening) {
- astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.ControlFlowFlattening);
- }
- astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.MangleProperties);
- astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Converting);
- astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Obfuscating);
- astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Finalizing);
- return astTree;
- }
- generateCode(sourceCode, astTree) {
- const escodegenParams = Object.assign({}, JavaScriptObfuscator_1.escodegenParams);
- if (this.options.sourceMap) {
- escodegenParams.sourceMap = this.options.inputFileName || 'sourceMap';
- escodegenParams.sourceContent = sourceCode;
- }
- const generatorOutput = escodegen.generate(astTree, Object.assign(Object.assign({}, escodegenParams), { format: {
- compact: this.options.compact
- } }));
- generatorOutput.map = generatorOutput.map ? generatorOutput.map.toString() : '';
- return generatorOutput;
- }
- getObfuscatedCode(generatorOutput) {
- return this.obfuscatedCodeFactory(generatorOutput.code, generatorOutput.map);
- }
- runCodeTransformationStage(code, codeTransformationStage) {
- this.logger.info(LoggingMessage_1.LoggingMessage.CodeTransformationStage, codeTransformationStage);
- return this.codeTransformersRunner.transform(code, JavaScriptObfuscator_1.codeTransformersList, codeTransformationStage);
- }
- runNodeTransformationStage(astTree, nodeTransformationStage) {
- this.logger.info(LoggingMessage_1.LoggingMessage.NodeTransformationStage, nodeTransformationStage);
- return this.nodeTransformersRunner.transform(astTree, JavaScriptObfuscator_1.nodeTransformersList, nodeTransformationStage);
- }
- };
- JavaScriptObfuscator.parseOptions = {
- ecmaVersion: EcmaVersion_1.ecmaVersion,
- allowHashBang: true,
- allowImportExportEverywhere: true,
- allowReturnOutsideFunction: true,
- locations: true,
- ranges: true
- };
- JavaScriptObfuscator.escodegenParams = {
- comment: true,
- verbatim: 'x-verbatim-property',
- sourceMapWithCode: true
- };
- JavaScriptObfuscator.codeTransformersList = [
- CodeTransformer_1.CodeTransformer.HashbangOperatorTransformer
- ];
- JavaScriptObfuscator.nodeTransformersList = [
- NodeTransformer_1.NodeTransformer.BlockStatementControlFlowTransformer,
- NodeTransformer_1.NodeTransformer.CommentsTransformer,
- NodeTransformer_1.NodeTransformer.CustomCodeHelpersTransformer,
- NodeTransformer_1.NodeTransformer.DeadCodeInjectionTransformer,
- NodeTransformer_1.NodeTransformer.EvalCallExpressionTransformer,
- NodeTransformer_1.NodeTransformer.FunctionControlFlowTransformer,
- NodeTransformer_1.NodeTransformer.LabeledStatementTransformer,
- NodeTransformer_1.NodeTransformer.LiteralTransformer,
- NodeTransformer_1.NodeTransformer.ManglePropertiesTransformer,
- 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.ScopeIdentifiersTransformer,
- NodeTransformer_1.NodeTransformer.SplitStringTransformer,
- NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer,
- NodeTransformer_1.NodeTransformer.VariablePreserveTransformer
- ];
- JavaScriptObfuscator = JavaScriptObfuscator_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformersRunner)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformersRunner)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatedCode)),
- __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ILogger)),
- __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof ICodeTransformersRunner_1.ICodeTransformersRunner !== "undefined" && ICodeTransformersRunner_1.ICodeTransformersRunner) === "function" ? _a : Object, typeof (_b = typeof INodeTransformersRunner_1.INodeTransformersRunner !== "undefined" && INodeTransformersRunner_1.INodeTransformersRunner) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof TObfuscatedCodeFactory_1.TObfuscatedCodeFactory !== "undefined" && TObfuscatedCodeFactory_1.TObfuscatedCodeFactory) === "function" ? _d : Object, typeof (_e = typeof ILogger_1.ILogger !== "undefined" && ILogger_1.ILogger) === "function" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _f : Object])
- ], JavaScriptObfuscator);
- exports.JavaScriptObfuscator = JavaScriptObfuscator;
- /***/ }),
- /***/ "./src/JavaScriptObfuscatorCLIFacade.ts":
- /*!**********************************************!*\
- !*** ./src/JavaScriptObfuscatorCLIFacade.ts ***!
- \**********************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.JavaScriptObfuscatorCLI = void 0;
- __webpack_require__(/*! reflect-metadata */ "reflect-metadata");
- const JavaScriptObfuscatorCLI_1 = __webpack_require__(/*! ./cli/JavaScriptObfuscatorCLI */ "./src/cli/JavaScriptObfuscatorCLI.ts");
- class JavaScriptObfuscatorCLIFacade {
- static obfuscate(argv) {
- const javaScriptObfuscatorCLI = new JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI(argv);
- javaScriptObfuscatorCLI.initialize();
- javaScriptObfuscatorCLI.run();
- }
- }
- exports.JavaScriptObfuscatorCLI = JavaScriptObfuscatorCLIFacade;
- /***/ }),
- /***/ "./src/JavaScriptObfuscatorFacade.ts":
- /*!*******************************************!*\
- !*** ./src/JavaScriptObfuscatorFacade.ts ***!
- \*******************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _a;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.JavaScriptObfuscator = void 0;
- __webpack_require__(/*! reflect-metadata */ "reflect-metadata");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ./container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const InversifyContainerFacade_1 = __webpack_require__(/*! ./container/InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
- const Utils_1 = __webpack_require__(/*! ./utils/Utils */ "./src/utils/Utils.ts");
- class JavaScriptObfuscatorFacade {
- static obfuscate(sourceCode, inputOptions = {}) {
- const inversifyContainerFacade = new InversifyContainerFacade_1.InversifyContainerFacade();
- inversifyContainerFacade.load(sourceCode, '', inputOptions);
- const javaScriptObfuscator = inversifyContainerFacade
- .get(ServiceIdentifiers_1.ServiceIdentifiers.IJavaScriptObfuscator);
- const obfuscatedCode = javaScriptObfuscator.obfuscate(sourceCode);
- inversifyContainerFacade.unload();
- return obfuscatedCode;
- }
- static obfuscateMultiple(sourceCodesObject, inputOptions = {}) {
- if (typeof sourceCodesObject !== 'object') {
- throw new Error('Source codes object should be a plain object');
- }
- return Object
- .keys(sourceCodesObject)
- .reduce((acc, sourceCodeIdentifier, index) => {
- const identifiersPrefix = Utils_1.Utils.getIdentifiersPrefixForMultipleSources(inputOptions.identifiersPrefix, index);
- const sourceCode = sourceCodesObject[sourceCodeIdentifier];
- const sourceCodeOptions = Object.assign(Object.assign({}, inputOptions), { identifiersPrefix });
- return Object.assign(Object.assign({}, acc), { [sourceCodeIdentifier]: JavaScriptObfuscatorFacade.obfuscate(sourceCode, sourceCodeOptions) });
- }, {});
- }
- }
- exports.JavaScriptObfuscator = JavaScriptObfuscatorFacade;
- JavaScriptObfuscatorFacade.version = (_a = "1.0.1") !== null && _a !== void 0 ? _a : 'unknown';
- /***/ }),
- /***/ "./src/analyzers/calls-graph-analyzer/CallsGraphAnalyzer.ts":
- /*!******************************************************************!*\
- !*** ./src/analyzers/calls-graph-analyzer/CallsGraphAnalyzer.ts ***!
- \******************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- }));
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- });
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var CallsGraphAnalyzer_1, _a;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.CallsGraphAnalyzer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- const TCalleeDataExtractorFactory_1 = __webpack_require__(/*! ../../types/container/calls-graph-analyzer/TCalleeDataExtractorFactory */ "./src/types/container/calls-graph-analyzer/TCalleeDataExtractorFactory.ts");
- const CalleeDataExtractor_1 = __webpack_require__(/*! ../../enums/analyzers/calls-graph-analyzer/CalleeDataExtractor */ "./src/enums/analyzers/calls-graph-analyzer/CalleeDataExtractor.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- const NodeStatementUtils_1 = __webpack_require__(/*! ../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
- let CallsGraphAnalyzer = CallsGraphAnalyzer_1 = class CallsGraphAnalyzer {
- constructor(calleeDataExtractorFactory) {
- this.calleeDataExtractorFactory = calleeDataExtractorFactory;
- }
- static getLimitIndex(blockScopeBodyLength) {
- const lastIndex = blockScopeBodyLength - 1;
- const limitThresholdActivationIndex = CallsGraphAnalyzer_1.limitThresholdActivationLength - 1;
- let limitIndex = lastIndex;
- if (lastIndex > limitThresholdActivationIndex) {
- limitIndex = Math.round(limitThresholdActivationIndex + (lastIndex * CallsGraphAnalyzer_1.limitThreshold));
- if (limitIndex > lastIndex) {
- limitIndex = lastIndex;
- }
- }
- return limitIndex;
- }
- analyze(astTree) {
- return this.analyzeRecursive(astTree.body);
- }
- analyzeRecursive(blockScopeBody) {
- const limitIndex = CallsGraphAnalyzer_1.getLimitIndex(blockScopeBody.length);
- const callsGraphData = [];
- const blockScopeBodyLength = blockScopeBody.length;
- for (let index = 0; index < blockScopeBodyLength; index++) {
- if (index > limitIndex) {
- break;
- }
- const blockScopeBodyNode = blockScopeBody[index];
- estraverse.traverse(blockScopeBodyNode, {
- enter: (node) => {
- if (!NodeGuards_1.NodeGuards.isCallExpressionNode(node)) {
- return;
- }
- if (blockScopeBodyNode.parentNode !== NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(node)) {
- return estraverse.VisitorOption.Skip;
- }
- this.analyzeCallExpressionNode(callsGraphData, blockScopeBody, node);
- }
- });
- }
- return callsGraphData;
- }
- analyzeCallExpressionNode(callsGraphData, blockScopeBody, callExpressionNode) {
- CallsGraphAnalyzer_1.calleeDataExtractorsList.forEach((calleeDataExtractorName) => {
- const calleeData = this.calleeDataExtractorFactory(calleeDataExtractorName)
- .extract(blockScopeBody, callExpressionNode.callee);
- if (!calleeData) {
- return;
- }
- callsGraphData.push(Object.assign(Object.assign({}, calleeData), { callsGraph: this.analyzeRecursive(calleeData.callee.body) }));
- });
- }
- };
- CallsGraphAnalyzer.calleeDataExtractorsList = [
- CalleeDataExtractor_1.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor,
- CalleeDataExtractor_1.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor,
- CalleeDataExtractor_1.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor
- ];
- CallsGraphAnalyzer.limitThresholdActivationLength = 25;
- CallsGraphAnalyzer.limitThreshold = 0.002;
- CallsGraphAnalyzer = CallsGraphAnalyzer_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICalleeDataExtractor)),
- __metadata("design:paramtypes", [typeof (_a = typeof TCalleeDataExtractorFactory_1.TCalleeDataExtractorFactory !== "undefined" && TCalleeDataExtractorFactory_1.TCalleeDataExtractorFactory) === "function" ? _a : Object])
- ], CallsGraphAnalyzer);
- exports.CallsGraphAnalyzer = CallsGraphAnalyzer;
- /***/ }),
- /***/ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts":
- /*!**************************************************************************************************!*\
- !*** ./src/analyzers/calls-graph-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts ***!
- \**************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.AbstractCalleeDataExtractor = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- let AbstractCalleeDataExtractor = class AbstractCalleeDataExtractor {
- };
- AbstractCalleeDataExtractor = __decorate([
- inversify_1.injectable()
- ], AbstractCalleeDataExtractor);
- exports.AbstractCalleeDataExtractor = AbstractCalleeDataExtractor;
- /***/ }),
- /***/ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts":
- /*!*************************************************************************************************************!*\
- !*** ./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts ***!
- \*************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- }));
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- });
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.FunctionDeclarationCalleeDataExtractor = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- const AbstractCalleeDataExtractor_1 = __webpack_require__(/*! ./AbstractCalleeDataExtractor */ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- const NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
- let FunctionDeclarationCalleeDataExtractor = class FunctionDeclarationCalleeDataExtractor extends AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor {
- extract(blockScopeBody, callee) {
- if (!NodeGuards_1.NodeGuards.isIdentifierNode(callee)) {
- return null;
- }
- const calleeBlockStatement = this.getCalleeBlockStatement(NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]), callee.name);
- if (!calleeBlockStatement) {
- return null;
- }
- return {
- callee: calleeBlockStatement,
- name: callee.name
- };
- }
- getCalleeBlockStatement(targetNode, name) {
- let calleeBlockStatement = null;
- estraverse.traverse(targetNode, {
- enter: (node) => {
- if (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) && node.id.name === name) {
- calleeBlockStatement = node.body;
- return estraverse.VisitorOption.Break;
- }
- }
- });
- return calleeBlockStatement;
- }
- };
- FunctionDeclarationCalleeDataExtractor = __decorate([
- inversify_1.injectable()
- ], FunctionDeclarationCalleeDataExtractor);
- exports.FunctionDeclarationCalleeDataExtractor = FunctionDeclarationCalleeDataExtractor;
- /***/ }),
- /***/ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts":
- /*!************************************************************************************************************!*\
- !*** ./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts ***!
- \************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- }));
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- });
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.FunctionExpressionCalleeDataExtractor = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- const AbstractCalleeDataExtractor_1 = __webpack_require__(/*! ./AbstractCalleeDataExtractor */ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- const NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
- let FunctionExpressionCalleeDataExtractor = class FunctionExpressionCalleeDataExtractor extends AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor {
- extract(blockScopeBody, callee) {
- let calleeName = null;
- let calleeBlockStatement = null;
- if (NodeGuards_1.NodeGuards.isIdentifierNode(callee)) {
- calleeName = callee.name;
- calleeBlockStatement = this.getCalleeBlockStatement(NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]), callee.name);
- }
- else if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(callee)) {
- calleeName = null;
- calleeBlockStatement = callee.body;
- }
- if (!calleeBlockStatement) {
- return null;
- }
- return {
- callee: calleeBlockStatement,
- name: calleeName
- };
- }
- getCalleeBlockStatement(targetNode, name) {
- let calleeBlockStatement = null;
- estraverse.traverse(targetNode, {
- 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;
- }
- };
- FunctionExpressionCalleeDataExtractor = __decorate([
- inversify_1.injectable()
- ], FunctionExpressionCalleeDataExtractor);
- exports.FunctionExpressionCalleeDataExtractor = FunctionExpressionCalleeDataExtractor;
- /***/ }),
- /***/ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts":
- /*!**********************************************************************************************************!*\
- !*** ./src/analyzers/calls-graph-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts ***!
- \**********************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- }));
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- });
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
- var ObjectExpressionCalleeDataExtractor_1;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ObjectExpressionCalleeDataExtractor = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- const AbstractCalleeDataExtractor_1 = __webpack_require__(/*! ./AbstractCalleeDataExtractor */ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- const NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
- let ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor_1 = class ObjectExpressionCalleeDataExtractor extends AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor {
- static isValidTargetPropertyNode(propertyNode, nextItemInCallsChain) {
- if (!propertyNode.key) {
- return false;
- }
- const isTargetPropertyNodeWithIdentifierKey = NodeGuards_1.NodeGuards.isIdentifierNode(propertyNode.key) && propertyNode.key.name === nextItemInCallsChain;
- const isTargetPropertyNodeWithLiteralKey = NodeGuards_1.NodeGuards.isLiteralNode(propertyNode.key) &&
- Boolean(propertyNode.key.value) &&
- propertyNode.key.value === nextItemInCallsChain;
- return isTargetPropertyNodeWithIdentifierKey || isTargetPropertyNodeWithLiteralKey;
- }
- extract(blockScopeBody, callee) {
- if (!NodeGuards_1.NodeGuards.isMemberExpressionNode(callee)) {
- return null;
- }
- const objectMembersCallsChain = this.createObjectMembersCallsChain([], callee);
- if (!objectMembersCallsChain.length) {
- return null;
- }
- const functionExpressionName = objectMembersCallsChain[objectMembersCallsChain.length - 1];
- const calleeBlockStatement = this.getCalleeBlockStatement(NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]), objectMembersCallsChain);
- if (!calleeBlockStatement) {
- return null;
- }
- return {
- callee: calleeBlockStatement,
- name: functionExpressionName
- };
- }
- createObjectMembersCallsChain(currentChain, memberExpression) {
- if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpression.property) && !memberExpression.computed) {
- 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;
- }
- getCalleeBlockStatement(targetNode, objectMembersCallsChain) {
- const objectName = objectMembersCallsChain.shift();
- if (!objectName) {
- return null;
- }
- let calleeBlockStatement = null;
- estraverse.traverse(targetNode, {
- 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;
- }
- findCalleeBlockStatement(objectExpressionProperties, objectMembersCallsChain) {
- const nextItemInCallsChain = objectMembersCallsChain.shift();
- if (!nextItemInCallsChain) {
- return null;
- }
- for (const propertyNode of objectExpressionProperties) {
- if (!NodeGuards_1.NodeGuards.isPropertyNode(propertyNode)) {
- continue;
- }
- 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;
- }
- }
- return null;
- }
- };
- ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor_1 = __decorate([
- inversify_1.injectable()
- ], ObjectExpressionCalleeDataExtractor);
- exports.ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor;
- /***/ }),
- /***/ "./src/analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer.ts":
- /*!**************************************************************************************************!*\
- !*** ./src/analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer.ts ***!
- \**************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- }));
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- });
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var PrevailingKindOfVariablesAnalyzer_1, _a;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.PrevailingKindOfVariablesAnalyzer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- let PrevailingKindOfVariablesAnalyzer = PrevailingKindOfVariablesAnalyzer_1 = class PrevailingKindOfVariablesAnalyzer {
- constructor(arrayUtils) {
- this.prevailingKindOfVariables = PrevailingKindOfVariablesAnalyzer_1.defaultKindOfVariables;
- this.arrayUtils = arrayUtils;
- }
- analyze(astTree) {
- var _a;
- const variableKinds = [];
- estraverse.traverse(astTree, {
- enter: (node) => {
- if (!NodeGuards_1.NodeGuards.isVariableDeclarationNode(node)) {
- return;
- }
- variableKinds.push(node.kind);
- }
- });
- this.prevailingKindOfVariables = (_a = this.arrayUtils.findMostOccurringElement(variableKinds)) !== null && _a !== void 0 ? _a : PrevailingKindOfVariablesAnalyzer_1.defaultKindOfVariables;
- }
- getPrevailingKind() {
- return this.prevailingKindOfVariables;
- }
- };
- PrevailingKindOfVariablesAnalyzer.defaultKindOfVariables = 'var';
- PrevailingKindOfVariablesAnalyzer = PrevailingKindOfVariablesAnalyzer_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),
- __metadata("design:paramtypes", [typeof (_a = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _a : Object])
- ], PrevailingKindOfVariablesAnalyzer);
- exports.PrevailingKindOfVariablesAnalyzer = PrevailingKindOfVariablesAnalyzer;
- /***/ }),
- /***/ "./src/analyzers/scope-analyzer/ScopeAnalyzer.ts":
- /*!*******************************************************!*\
- !*** ./src/analyzers/scope-analyzer/ScopeAnalyzer.ts ***!
- \*******************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- }));
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- });
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
- var ScopeAnalyzer_1;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ScopeAnalyzer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const eslintScope = __importStar(__webpack_require__(/*! eslint-scope */ "eslint-scope"));
- const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- const EcmaVersion_1 = __webpack_require__(/*! ../../constants/EcmaVersion */ "./src/constants/EcmaVersion.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- let ScopeAnalyzer = ScopeAnalyzer_1 = class ScopeAnalyzer {
- constructor() {
- this.scopeManager = null;
- }
- static attachMissingRanges(astTree) {
- estraverse.replace(astTree, {
- enter: (node) => {
- var _a, _b, _c, _d, _e, _f;
- if (!node.range) {
- node.range = [
- (_c = (_b = (_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.range) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : ScopeAnalyzer_1.emptyRangeValue,
- (_f = (_e = (_d = node.parentNode) === null || _d === void 0 ? void 0 : _d.range) === null || _e === void 0 ? void 0 : _e[1]) !== null && _f !== void 0 ? _f : ScopeAnalyzer_1.emptyRangeValue
- ];
- }
- return node;
- }
- });
- }
- static isRootNode(node) {
- return NodeGuards_1.NodeGuards.isProgramNode(node) || node.parentNode === node;
- }
- analyze(astTree) {
- const sourceTypeLength = ScopeAnalyzer_1.sourceTypes.length;
- ScopeAnalyzer_1.attachMissingRanges(astTree);
- for (let i = 0; i < sourceTypeLength; i++) {
- try {
- this.scopeManager = eslintScope.analyze(astTree, Object.assign(Object.assign({}, ScopeAnalyzer_1.eslintScopeOptions), { sourceType: ScopeAnalyzer_1.sourceTypes[i] }));
- return;
- }
- catch (error) {
- if (i < sourceTypeLength - 1) {
- continue;
- }
- throw new Error(error);
- }
- }
- throw new Error('Scope analyzing error');
- }
- acquireScope(node) {
- if (!this.scopeManager) {
- throw new Error('Scope manager is not defined');
- }
- const scope = this.scopeManager.acquire(node, ScopeAnalyzer_1.isRootNode(node));
- if (!scope) {
- throw new Error('Cannot acquire scope for node');
- }
- this.sanitizeScopes(scope);
- return scope;
- }
- sanitizeScopes(scope) {
- scope.childScopes.forEach((childScope) => {
- if (childScope.type === 'class' && childScope.upper) {
- if (!childScope.variables.length) {
- return;
- }
- const classNameVariable = childScope.variables[0];
- const upperVariable = childScope.upper.variables
- .find((variable) => {
- const isValidClassNameVariable = classNameVariable.defs
- .some((definition) => definition.type === 'ClassName');
- return isValidClassNameVariable && variable.name === classNameVariable.name;
- });
- upperVariable === null || upperVariable === void 0 ? void 0 : upperVariable.references.push(...childScope.variables[0].references);
- }
- });
- for (const childScope of scope.childScopes) {
- this.sanitizeScopes(childScope);
- }
- }
- };
- ScopeAnalyzer.eslintScopeOptions = {
- ecmaVersion: EcmaVersion_1.ecmaVersion,
- optimistic: true
- };
- ScopeAnalyzer.sourceTypes = [
- 'script',
- 'module'
- ];
- ScopeAnalyzer.emptyRangeValue = 0;
- ScopeAnalyzer = ScopeAnalyzer_1 = __decorate([
- inversify_1.injectable()
- ], ScopeAnalyzer);
- exports.ScopeAnalyzer = ScopeAnalyzer;
- /***/ }),
- /***/ "./src/analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer.ts":
- /*!***********************************************************************************!*\
- !*** ./src/analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer.ts ***!
- \***********************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- }));
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- });
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var StringArrayStorageAnalyzer_1, _a, _b, _c;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.StringArrayStorageAnalyzer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const IStringArrayStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-storage/IStringArrayStorage */ "./src/interfaces/storages/string-array-storage/IStringArrayStorage.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
- const NodeLiteralUtils_1 = __webpack_require__(/*! ../../node/NodeLiteralUtils */ "./src/node/NodeLiteralUtils.ts");
- let StringArrayStorageAnalyzer = StringArrayStorageAnalyzer_1 = class StringArrayStorageAnalyzer {
- constructor(stringArrayStorage, randomGenerator, options) {
- this.stringArrayStorageData = new Map();
- this.stringArrayStorage = stringArrayStorage;
- this.randomGenerator = randomGenerator;
- this.options = options;
- }
- analyze(astTree) {
- if (!this.options.stringArray) {
- return;
- }
- estraverse.traverse(astTree, {
- enter: (node, parentNode) => {
- if (!parentNode) {
- return;
- }
- if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) {
- return estraverse.VisitorOption.Skip;
- }
- if (!NodeGuards_1.NodeGuards.isLiteralNode(node)) {
- return;
- }
- this.analyzeLiteralNode(node, parentNode);
- }
- });
- }
- getItemDataForLiteralNode(literalNode) {
- return this.stringArrayStorageData.get(literalNode);
- }
- analyzeLiteralNode(literalNode, parentNode) {
- if (typeof literalNode.value !== 'string') {
- return;
- }
- if (NodeLiteralUtils_1.NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)) {
- return;
- }
- if (!this.shouldAddValueToStringArray(literalNode.value)) {
- return;
- }
- this.stringArrayStorageData.set(literalNode, this.stringArrayStorage.getOrThrow(literalNode.value));
- }
- shouldAddValueToStringArray(value) {
- return value.length >= StringArrayStorageAnalyzer_1.minimumLengthForStringArray
- && this.randomGenerator.getMathRandom() <= this.options.stringArrayThreshold;
- }
- };
- StringArrayStorageAnalyzer.minimumLengthForStringArray = 3;
- StringArrayStorageAnalyzer = StringArrayStorageAnalyzer_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
- ], StringArrayStorageAnalyzer);
- exports.StringArrayStorageAnalyzer = StringArrayStorageAnalyzer;
- /***/ }),
- /***/ "./src/cli/JavaScriptObfuscatorCLI.ts":
- /*!********************************************!*\
- !*** ./src/cli/JavaScriptObfuscatorCLI.ts ***!
- \********************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- }));
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- });
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var _a, _b, _c, _d;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.JavaScriptObfuscatorCLI = void 0;
- const commander = __importStar(__webpack_require__(/*! commander */ "commander"));
- const path = __importStar(__webpack_require__(/*! path */ "path"));
- const TInputCLIOptions_1 = __webpack_require__(/*! ../types/options/TInputCLIOptions */ "./src/types/options/TInputCLIOptions.ts");
- const Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts");
- const LoggingPrefix_1 = __webpack_require__(/*! ../enums/logger/LoggingPrefix */ "./src/enums/logger/LoggingPrefix.ts");
- const SourceMapMode_1 = __webpack_require__(/*! ../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts");
- const Default_1 = __webpack_require__(/*! ../options/presets/Default */ "./src/options/presets/Default.ts");
- const ArraySanitizer_1 = __webpack_require__(/*! ./sanitizers/ArraySanitizer */ "./src/cli/sanitizers/ArraySanitizer.ts");
- const BooleanSanitizer_1 = __webpack_require__(/*! ./sanitizers/BooleanSanitizer */ "./src/cli/sanitizers/BooleanSanitizer.ts");
- const IdentifierNamesGeneratorSanitizer_1 = __webpack_require__(/*! ./sanitizers/IdentifierNamesGeneratorSanitizer */ "./src/cli/sanitizers/IdentifierNamesGeneratorSanitizer.ts");
- const ObfuscatingTargetSanitizer_1 = __webpack_require__(/*! ./sanitizers/ObfuscatingTargetSanitizer */ "./src/cli/sanitizers/ObfuscatingTargetSanitizer.ts");
- const SourceMapModeSanitizer_1 = __webpack_require__(/*! ./sanitizers/SourceMapModeSanitizer */ "./src/cli/sanitizers/SourceMapModeSanitizer.ts");
- const StringArrayEncodingSanitizer_1 = __webpack_require__(/*! ./sanitizers/StringArrayEncodingSanitizer */ "./src/cli/sanitizers/StringArrayEncodingSanitizer.ts");
- const CLIUtils_1 = __webpack_require__(/*! ./utils/CLIUtils */ "./src/cli/utils/CLIUtils.ts");
- const JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts");
- const Logger_1 = __webpack_require__(/*! ../logger/Logger */ "./src/logger/Logger.ts");
- const ObfuscatedCodeWriter_1 = __webpack_require__(/*! ./utils/ObfuscatedCodeWriter */ "./src/cli/utils/ObfuscatedCodeWriter.ts");
- const SourceCodeReader_1 = __webpack_require__(/*! ./utils/SourceCodeReader */ "./src/cli/utils/SourceCodeReader.ts");
- const Utils_1 = __webpack_require__(/*! ../utils/Utils */ "./src/utils/Utils.ts");
- class JavaScriptObfuscatorCLI {
- constructor(argv) {
- this.rawArguments = argv;
- this.arguments = argv.slice(2);
- }
- static buildOptions(inputOptions) {
- const inputCLIOptions = JavaScriptObfuscatorCLI.filterOptions(inputOptions);
- const configFilePath = inputOptions.config;
- const configFileLocation = configFilePath ? path.resolve(configFilePath, '.') : '';
- const configFileOptions = configFileLocation ? CLIUtils_1.CLIUtils.getUserConfig(configFileLocation) : {};
- return Object.assign(Object.assign(Object.assign({}, Default_1.DEFAULT_PRESET), configFileOptions), inputCLIOptions);
- }
- static filterOptions(options) {
- const filteredOptions = {};
- Object
- .keys(options)
- .forEach((option) => {
- if (options[option] === undefined) {
- return;
- }
- filteredOptions[option] = options[option];
- });
- return filteredOptions;
- }
- initialize() {
- this.inputPath = path.normalize(this.arguments[0] || '');
- this.commands = (new commander.Command());
- this.configureCommands();
- this.configureHelp();
- this.inputCLIOptions = JavaScriptObfuscatorCLI.buildOptions(this.commands.opts());
- this.sourceCodeReader = new SourceCodeReader_1.SourceCodeReader(this.inputPath, this.inputCLIOptions);
- this.obfuscatedCodeWriter = new ObfuscatedCodeWriter_1.ObfuscatedCodeWriter(this.inputPath, this.inputCLIOptions);
- }
- run() {
- const canShowHelp = !this.arguments.length || this.arguments.includes('--help');
- if (canShowHelp) {
- this.commands.outputHelp();
- return;
- }
- const sourceCodeData = this.sourceCodeReader.readSourceCode();
- this.processSourceCodeData(sourceCodeData);
- }
- configureCommands() {
- this.commands
- .usage('<inputPath> [options]')
- .version(Utils_1.Utils.buildVersionMessage("1.0.1", 1591383009702), '-v, --version')
- .option('-o, --output <path>', 'Output path for obfuscated code')
- .option('--compact <boolean>', 'Disable one line output code compacting', BooleanSanitizer_1.BooleanSanitizer)
- .option('--config <boolean>', 'Name of js / json config file')
- .option('--control-flow-flattening <boolean>', 'Enables control flow flattening', BooleanSanitizer_1.BooleanSanitizer)
- .option('--control-flow-flattening-threshold <number>', 'The probability that the control flow flattening transformation will be applied to the node', parseFloat)
- .option('--dead-code-injection <boolean>', 'Enables dead code injection', BooleanSanitizer_1.BooleanSanitizer)
- .option('--dead-code-injection-threshold <number>', 'The probability that the dead code injection transformation will be applied to the node', parseFloat)
- .option('--debug-protection <boolean>', 'Disable browser Debug panel (can cause DevTools enabled browser freeze)', BooleanSanitizer_1.BooleanSanitizer)
- .option('--debug-protection-interval <boolean>', 'Disable browser Debug panel even after page was loaded (can cause DevTools enabled browser freeze)', BooleanSanitizer_1.BooleanSanitizer)
- .option('--disable-console-output <boolean>', 'Allow console.log, console.info, console.error and console.warn messages output into browser console', BooleanSanitizer_1.BooleanSanitizer)
- .option('--domain-lock <list> (comma separated, without whitespaces)', 'Blocks the execution of the code in domains that do not match the passed RegExp patterns (comma separated)', ArraySanitizer_1.ArraySanitizer)
- .option('--exclude <list> (comma separated, without whitespaces)', 'A filename or glob which indicates files to exclude from obfuscation', ArraySanitizer_1.ArraySanitizer)
- .option('--identifier-names-generator <string>', 'Sets identifier names generator. ' +
- 'Values: hexadecimal, mangled, dictionary. ' +
- 'Default: hexadecimal', IdentifierNamesGeneratorSanitizer_1.IdentifierNamesGeneratorSanitizer)
- .option('--identifiers-prefix <string>', 'Sets prefix for all global identifiers.')
- .option('--identifiers-dictionary <list> (comma separated, without whitespaces)', 'Identifiers dictionary (comma separated) for `--identifier-names-generator dictionary` option', ArraySanitizer_1.ArraySanitizer)
- .option('--log <boolean>', 'Enables logging of the information to the console', BooleanSanitizer_1.BooleanSanitizer)
- .option('--reserved-names <list> (comma separated, without whitespaces)', 'Disables obfuscation and generation of identifiers, which being matched by passed RegExp patterns (comma separated)', ArraySanitizer_1.ArraySanitizer)
- .option('--reserved-strings <list> (comma separated, without whitespaces)', 'Disables transformation of string literals, which being matched by passed RegExp patterns (comma separated)', ArraySanitizer_1.ArraySanitizer)
- .option('--rename-globals <boolean>', 'Allows to enable obfuscation of global variable and function names with declaration.', BooleanSanitizer_1.BooleanSanitizer)
- .option('--rotate-string-array <boolean>', 'Enable rotation of string array values during obfuscation', BooleanSanitizer_1.BooleanSanitizer)
- .option('--seed <string|number>', 'Sets seed for random generator. This is useful for creating repeatable results.', parseFloat)
- .option('--self-defending <boolean>', 'Disables self-defending for obfuscated code', BooleanSanitizer_1.BooleanSanitizer)
- .option('--shuffle-string-array <boolean>', 'Randomly shuffles string array items', BooleanSanitizer_1.BooleanSanitizer)
- .option('--source-map <boolean>', 'Enables source map generation', BooleanSanitizer_1.BooleanSanitizer)
- .option('--source-map-base-url <string>', 'Sets base url to the source map import url when `--source-map-mode=separate`')
- .option('--source-map-file-name <string>', 'Sets file name for output source map when `--source-map-mode=separate`')
- .option('--source-map-mode <string>', 'Specify source map output mode. ' +
- 'Values: inline, separate. ' +
- 'Default: separate', SourceMapModeSanitizer_1.SourceMapModeSanitizer)
- .option('--split-strings <boolean>', 'Splits literal strings into chunks with length of `splitStringsChunkLength` option value', BooleanSanitizer_1.BooleanSanitizer)
- .option('--split-strings-chunk-length <number>', 'Sets chunk length of `splitStrings` option', parseFloat)
- .option('--string-array <boolean>', 'Disables gathering of all literal strings into an array and replacing every literal string with an array call', BooleanSanitizer_1.BooleanSanitizer)
- .option('--string-array-encoding <string|boolean>', 'Encodes all strings in strings array using base64 or rc4 (this option can slow down your code speed. ' +
- 'Values: true, false, base64, rc4. ' +
- 'Default: false', StringArrayEncodingSanitizer_1.StringArrayEncodingSanitizer)
- .option('--string-array-threshold <number>', 'The probability that the literal string will be inserted into stringArray (Default: 0.8, Min: 0, Max: 1)', parseFloat)
- .option('--target <string>', 'Allows to set target environment for obfuscated code. ' +
- 'Values: browser, browser-no-eval, node. ' +
- 'Default: browser', ObfuscatingTargetSanitizer_1.ObfuscationTargetSanitizer)
- .option('--transform-object-keys <boolean>', 'Enables transformation of object keys', BooleanSanitizer_1.BooleanSanitizer)
- .option('--unicode-escape-sequence <boolean>', 'Allows to enable/disable string conversion to unicode escape sequence', BooleanSanitizer_1.BooleanSanitizer)
- .parse(this.rawArguments);
- }
- configureHelp() {
- this.commands.on('--help', () => {
- console.log(' Examples:\n');
- console.log(' %> javascript-obfuscator input_file_name.js --compact true --self-defending false');
- console.log(' %> javascript-obfuscator input_file_name.js --output output_file_name.js --compact true --self-defending false');
- console.log(' %> javascript-obfuscator input_directory_name --compact true --self-defending false');
- console.log('');
- });
- }
- processSourceCodeData(sourceCodeData) {
- sourceCodeData.forEach(({ filePath, content }, index) => {
- const outputCodePath = this.obfuscatedCodeWriter.getOutputCodePath(filePath);
- try {
- Logger_1.Logger.log(Logger_1.Logger.colorInfo, LoggingPrefix_1.LoggingPrefix.CLI, `Obfuscating file: ${filePath}...`);
- this.processSourceCode(content, filePath, outputCodePath, index);
- }
- catch (error) {
- Logger_1.Logger.log(Logger_1.Logger.colorInfo, LoggingPrefix_1.LoggingPrefix.CLI, `Error in file: ${filePath}...`);
- throw error;
- }
- });
- }
- processSourceCode(sourceCode, inputCodePath, outputCodePath, sourceCodeIndex) {
- const options = Object.assign(Object.assign(Object.assign({}, this.inputCLIOptions), { inputFileName: path.basename(inputCodePath) }), sourceCodeIndex !== null && {
- identifiersPrefix: Utils_1.Utils.getIdentifiersPrefixForMultipleSources(this.inputCLIOptions.identifiersPrefix, sourceCodeIndex)
- });
- if (options.sourceMap) {
- this.processSourceCodeWithSourceMap(sourceCode, outputCodePath, options);
- }
- else {
- this.processSourceCodeWithoutSourceMap(sourceCode, outputCodePath, options);
- }
- }
- processSourceCodeWithoutSourceMap(sourceCode, outputCodePath, options) {
- const obfuscatedCode = JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(sourceCode, options).getObfuscatedCode();
- this.obfuscatedCodeWriter.writeFile(outputCodePath, obfuscatedCode);
- }
- processSourceCodeWithSourceMap(sourceCode, outputCodePath, options) {
- var _a;
- const outputSourceMapPath = this.obfuscatedCodeWriter.getOutputSourceMapPath(outputCodePath, (_a = options.sourceMapFileName) !== null && _a !== void 0 ? _a : '');
- options = Object.assign(Object.assign({}, options), { sourceMapFileName: path.basename(outputSourceMapPath) });
- const obfuscatedCode = JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(sourceCode, options);
- this.obfuscatedCodeWriter.writeFile(outputCodePath, obfuscatedCode.getObfuscatedCode());
- if (options.sourceMapMode === SourceMapMode_1.SourceMapMode.Separate && obfuscatedCode.getSourceMap()) {
- this.obfuscatedCodeWriter.writeFile(outputSourceMapPath, obfuscatedCode.getSourceMap());
- }
- }
- }
- JavaScriptObfuscatorCLI.availableInputExtensions = [
- '.js'
- ];
- JavaScriptObfuscatorCLI.encoding = 'utf8';
- JavaScriptObfuscatorCLI.obfuscatedFilePrefix = '-obfuscated';
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", typeof (_a = typeof commander !== "undefined" && commander.CommanderStatic) === "function" ? _a : Object)
- ], JavaScriptObfuscatorCLI.prototype, "commands", void 0);
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", typeof (_b = typeof TInputCLIOptions_1.TInputCLIOptions !== "undefined" && TInputCLIOptions_1.TInputCLIOptions) === "function" ? _b : Object)
- ], JavaScriptObfuscatorCLI.prototype, "inputCLIOptions", void 0);
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", String)
- ], JavaScriptObfuscatorCLI.prototype, "inputPath", void 0);
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", typeof (_c = typeof SourceCodeReader_1.SourceCodeReader !== "undefined" && SourceCodeReader_1.SourceCodeReader) === "function" ? _c : Object)
- ], JavaScriptObfuscatorCLI.prototype, "sourceCodeReader", void 0);
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", typeof (_d = typeof ObfuscatedCodeWriter_1.ObfuscatedCodeWriter !== "undefined" && ObfuscatedCodeWriter_1.ObfuscatedCodeWriter) === "function" ? _d : Object)
- ], JavaScriptObfuscatorCLI.prototype, "obfuscatedCodeWriter", void 0);
- exports.JavaScriptObfuscatorCLI = JavaScriptObfuscatorCLI;
- /***/ }),
- /***/ "./src/cli/sanitizers/ArraySanitizer.ts":
- /*!**********************************************!*\
- !*** ./src/cli/sanitizers/ArraySanitizer.ts ***!
- \**********************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ArraySanitizer = void 0;
- exports.ArraySanitizer = (value) => {
- if (value.endsWith(',')) {
- throw new SyntaxError('Multiple <list> values should be wrapped inside quotes: --option-name \'value1\',\'value2\'');
- }
- return value.split(',').map((string) => string.trim());
- };
- /***/ }),
- /***/ "./src/cli/sanitizers/BooleanSanitizer.ts":
- /*!************************************************!*\
- !*** ./src/cli/sanitizers/BooleanSanitizer.ts ***!
- \************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.BooleanSanitizer = void 0;
- exports.BooleanSanitizer = (value) => {
- return value === 'true' || value === '1';
- };
- /***/ }),
- /***/ "./src/cli/sanitizers/IdentifierNamesGeneratorSanitizer.ts":
- /*!*****************************************************************!*\
- !*** ./src/cli/sanitizers/IdentifierNamesGeneratorSanitizer.ts ***!
- \*****************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.IdentifierNamesGeneratorSanitizer = void 0;
- const IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts");
- exports.IdentifierNamesGeneratorSanitizer = (value) => {
- const isCorrectIdentifierNamesGenerator = Object
- .keys(IdentifierNamesGenerator_1.IdentifierNamesGenerator)
- .some((key) => {
- return IdentifierNamesGenerator_1.IdentifierNamesGenerator[key] === value;
- });
- if (!isCorrectIdentifierNamesGenerator) {
- throw new ReferenceError('Invalid value of `--identifier-names-generator` option');
- }
- return value;
- };
- /***/ }),
- /***/ "./src/cli/sanitizers/ObfuscatingTargetSanitizer.ts":
- /*!**********************************************************!*\
- !*** ./src/cli/sanitizers/ObfuscatingTargetSanitizer.ts ***!
- \**********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ObfuscationTargetSanitizer = void 0;
- const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
- exports.ObfuscationTargetSanitizer = (value) => {
- const isCorrectTarget = Object
- .keys(ObfuscationTarget_1.ObfuscationTarget)
- .some((key) => {
- return ObfuscationTarget_1.ObfuscationTarget[key] === value;
- });
- if (!isCorrectTarget) {
- throw new ReferenceError('Invalid value of `--target` option');
- }
- return value;
- };
- /***/ }),
- /***/ "./src/cli/sanitizers/SourceMapModeSanitizer.ts":
- /*!******************************************************!*\
- !*** ./src/cli/sanitizers/SourceMapModeSanitizer.ts ***!
- \******************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.SourceMapModeSanitizer = void 0;
- const SourceMapMode_1 = __webpack_require__(/*! ../../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts");
- exports.SourceMapModeSanitizer = (value) => {
- const isCorrectSourceMapMode = Object
- .keys(SourceMapMode_1.SourceMapMode)
- .some((key) => {
- return SourceMapMode_1.SourceMapMode[key] === value;
- });
- if (!isCorrectSourceMapMode) {
- throw new ReferenceError('Invalid value of `--source-map-mode` option');
- }
- return value;
- };
- /***/ }),
- /***/ "./src/cli/sanitizers/StringArrayEncodingSanitizer.ts":
- /*!************************************************************!*\
- !*** ./src/cli/sanitizers/StringArrayEncodingSanitizer.ts ***!
- \************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.StringArrayEncodingSanitizer = void 0;
- const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts");
- exports.StringArrayEncodingSanitizer = (value) => {
- switch (value) {
- case 'true':
- case '1':
- case StringArrayEncoding_1.StringArrayEncoding.Base64:
- return true;
- case StringArrayEncoding_1.StringArrayEncoding.Rc4:
- return StringArrayEncoding_1.StringArrayEncoding.Rc4;
- default:
- return false;
- }
- };
- /***/ }),
- /***/ "./src/cli/utils sync recursive":
- /*!****************************!*\
- !*** ./src/cli/utils sync ***!
- \****************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- function webpackEmptyContext(req) {
- var e = new Error("Cannot find module '" + req + "'");
- e.code = 'MODULE_NOT_FOUND';
- throw e;
- }
- webpackEmptyContext.keys = function() { return []; };
- webpackEmptyContext.resolve = webpackEmptyContext;
- module.exports = webpackEmptyContext;
- webpackEmptyContext.id = "./src/cli/utils sync recursive";
- /***/ }),
- /***/ "./src/cli/utils/CLIUtils.ts":
- /*!***********************************!*\
- !*** ./src/cli/utils/CLIUtils.ts ***!
- \***********************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.CLIUtils = void 0;
- class CLIUtils {
- static getUserConfig(configPath) {
- let config;
- try {
- config = __webpack_require__("./src/cli/utils sync recursive")(configPath);
- }
- catch (_a) {
- try {
- config = require(configPath);
- }
- catch (_b) {
- throw new ReferenceError('Given config path must be a valid `.js` or `.json` file path');
- }
- }
- return config;
- }
- }
- exports.CLIUtils = CLIUtils;
- /***/ }),
- /***/ "./src/cli/utils/ObfuscatedCodeWriter.ts":
- /*!***********************************************!*\
- !*** ./src/cli/utils/ObfuscatedCodeWriter.ts ***!
- \***********************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- }));
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- });
- var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ObfuscatedCodeWriter = void 0;
- const fs = __importStar(__webpack_require__(/*! fs */ "fs"));
- const mkdirp = __importStar(__webpack_require__(/*! mkdirp */ "mkdirp"));
- const path = __importStar(__webpack_require__(/*! path */ "path"));
- const StringSeparator_1 = __webpack_require__(/*! ../../enums/StringSeparator */ "./src/enums/StringSeparator.ts");
- const JavaScriptObfuscatorCLI_1 = __webpack_require__(/*! ../JavaScriptObfuscatorCLI */ "./src/cli/JavaScriptObfuscatorCLI.ts");
- class ObfuscatedCodeWriter {
- constructor(inputPath, options) {
- this.inputPath = inputPath;
- this.options = options;
- }
- getOutputCodePath(filePath) {
- const normalizedRawOutputPath = this.options.output
- ? path.normalize(this.options.output)
- : null;
- if (!normalizedRawOutputPath) {
- return path
- .normalize(filePath)
- .split(StringSeparator_1.StringSeparator.Dot)
- .map((value, index) => {
- return index === 0 ? `${value}${JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.obfuscatedFilePrefix}` : value;
- })
- .join(StringSeparator_1.StringSeparator.Dot);
- }
- const rawInputPathStats = fs.lstatSync(this.inputPath);
- const outputPathExtName = path.extname(normalizedRawOutputPath);
- const isDirectoryRawInputPath = rawInputPathStats.isDirectory();
- const isDirectoryRawOutputPath = !JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI
- .availableInputExtensions
- .includes(outputPathExtName);
- if (isDirectoryRawInputPath) {
- if (isDirectoryRawOutputPath) {
- return path.join(normalizedRawOutputPath, filePath);
- }
- else {
- throw new Error('Output path for directory obfuscation should be a directory path');
- }
- }
- else {
- if (isDirectoryRawOutputPath) {
- return path.join(normalizedRawOutputPath, path.basename(filePath));
- }
- else {
- return normalizedRawOutputPath;
- }
- }
- }
- getOutputSourceMapPath(outputCodePath, sourceMapFileName = '') {
- if (sourceMapFileName) {
- outputCodePath = `${outputCodePath.substring(0, outputCodePath.lastIndexOf('/'))}/${sourceMapFileName}`;
- }
- if (!/\.js\.map$/.test(outputCodePath)) {
- outputCodePath = `${outputCodePath.split(StringSeparator_1.StringSeparator.Dot)[0]}.js.map`;
- }
- else if (/\.js$/.test(outputCodePath)) {
- outputCodePath += '.map';
- }
- return outputCodePath;
- }
- writeFile(outputPath, data) {
- mkdirp.sync(path.dirname(outputPath));
- fs.writeFileSync(outputPath, data, {
- encoding: JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.encoding
- });
- }
- }
- exports.ObfuscatedCodeWriter = ObfuscatedCodeWriter;
- /***/ }),
- /***/ "./src/cli/utils/SourceCodeReader.ts":
- /*!*******************************************!*\
- !*** ./src/cli/utils/SourceCodeReader.ts ***!
- \*******************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- }));
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- });
- var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
- var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.SourceCodeReader = void 0;
- const fs = __importStar(__webpack_require__(/*! fs */ "fs"));
- const path = __importStar(__webpack_require__(/*! path */ "path"));
- const multimatch_1 = __importDefault(__webpack_require__(/*! multimatch */ "multimatch"));
- const JavaScriptObfuscatorCLI_1 = __webpack_require__(/*! ../JavaScriptObfuscatorCLI */ "./src/cli/JavaScriptObfuscatorCLI.ts");
- class SourceCodeReader {
- constructor(inputPath, options) {
- this.inputPath = inputPath;
- this.options = options;
- }
- static isExcludedPath(filePath, excludePatterns = []) {
- if (!excludePatterns.length) {
- return false;
- }
- const fileName = path.basename(filePath);
- const isExcludedFilePathByGlobPattern = !!multimatch_1.default([filePath], excludePatterns).length;
- const isExcludedFilePathByInclusion = excludePatterns.some((excludePattern) => filePath.includes(excludePattern) || fileName.includes(excludePattern));
- return isExcludedFilePathByInclusion || isExcludedFilePathByGlobPattern;
- }
- static isDirectoryPath(filePath) {
- try {
- return fs.statSync(filePath).isDirectory();
- }
- catch (_a) {
- return false;
- }
- }
- static isFilePath(filePath) {
- try {
- return fs.statSync(filePath).isFile();
- }
- catch (_a) {
- return false;
- }
- }
- static isValidDirectory(directoryPath, excludePatterns = []) {
- return !SourceCodeReader.isExcludedPath(directoryPath, excludePatterns);
- }
- static isValidFile(filePath, excludePatterns = []) {
- return JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.availableInputExtensions.includes(path.extname(filePath))
- && !filePath.includes(JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.obfuscatedFilePrefix)
- && !SourceCodeReader.isExcludedPath(filePath, excludePatterns);
- }
- static readFile(filePath) {
- return {
- filePath: path.normalize(filePath),
- content: fs.readFileSync(filePath, JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.encoding)
- };
- }
- readSourceCode() {
- if (SourceCodeReader.isFilePath(this.inputPath)
- && SourceCodeReader.isValidFile(this.inputPath, this.options.exclude)) {
- return [SourceCodeReader.readFile(this.inputPath)];
- }
- if (SourceCodeReader.isDirectoryPath(this.inputPath)
- && SourceCodeReader.isValidDirectory(this.inputPath, this.options.exclude)) {
- return this.readDirectoryRecursive(this.inputPath);
- }
- const availableFilePaths = JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI
- .availableInputExtensions
- .map((extension) => `\`${extension}\``)
- .join(', ');
- throw new ReferenceError(`Given input path must be a valid ${availableFilePaths} file or directory path`);
- }
- readDirectoryRecursive(directoryPath, filesData = []) {
- fs.readdirSync(directoryPath, JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.encoding)
- .forEach((fileName) => {
- const filePath = `${directoryPath}/${fileName}`;
- if (SourceCodeReader.isDirectoryPath(filePath)
- && SourceCodeReader.isValidDirectory(filePath, this.options.exclude)) {
- filesData.push(...this.readDirectoryRecursive(filePath));
- return;
- }
- if (SourceCodeReader.isFilePath(filePath)
- && SourceCodeReader.isValidFile(filePath, this.options.exclude)) {
- const fileData = SourceCodeReader.readFile(filePath);
- filesData.push(fileData);
- return;
- }
- });
- return filesData;
- }
- }
- exports.SourceCodeReader = SourceCodeReader;
- /***/ }),
- /***/ "./src/code-transformers/AbstractCodeTransformer.ts":
- /*!**********************************************************!*\
- !*** ./src/code-transformers/AbstractCodeTransformer.ts ***!
- \**********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.AbstractCodeTransformer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- let AbstractCodeTransformer = class AbstractCodeTransformer {
- constructor(randomGenerator, options) {
- this.randomGenerator = randomGenerator;
- this.options = options;
- }
- };
- AbstractCodeTransformer = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
- ], AbstractCodeTransformer);
- exports.AbstractCodeTransformer = AbstractCodeTransformer;
- /***/ }),
- /***/ "./src/code-transformers/CodeTransformerNamesGroupsBuilder.ts":
- /*!********************************************************************!*\
- !*** ./src/code-transformers/CodeTransformerNamesGroupsBuilder.ts ***!
- \********************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.CodeTransformerNamesGroupsBuilder = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const AbstractTransformerNamesGroupsBuilder_1 = __webpack_require__(/*! ../utils/AbstractTransformerNamesGroupsBuilder */ "./src/utils/AbstractTransformerNamesGroupsBuilder.ts");
- let CodeTransformerNamesGroupsBuilder = class CodeTransformerNamesGroupsBuilder extends AbstractTransformerNamesGroupsBuilder_1.AbstractTransformerNamesGroupsBuilder {
- };
- CodeTransformerNamesGroupsBuilder = __decorate([
- inversify_1.injectable()
- ], CodeTransformerNamesGroupsBuilder);
- exports.CodeTransformerNamesGroupsBuilder = CodeTransformerNamesGroupsBuilder;
- /***/ }),
- /***/ "./src/code-transformers/CodeTransformersRunner.ts":
- /*!*********************************************************!*\
- !*** ./src/code-transformers/CodeTransformersRunner.ts ***!
- \*********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.CodeTransformersRunner = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TCodeTransformerFactory_1 = __webpack_require__(/*! ../types/container/code-transformers/TCodeTransformerFactory */ "./src/types/container/code-transformers/TCodeTransformerFactory.ts");
- const ITransformerNamesGroupsBuilder_1 = __webpack_require__(/*! ../interfaces/utils/ITransformerNamesGroupsBuilder */ "./src/interfaces/utils/ITransformerNamesGroupsBuilder.ts");
- let CodeTransformersRunner = class CodeTransformersRunner {
- constructor(codeTransformerFactory, codeTransformerNamesGroupsBuilder) {
- this.codeTransformerFactory = codeTransformerFactory;
- this.codeTransformerNamesGroupsBuilder = codeTransformerNamesGroupsBuilder;
- }
- transform(code, codeTransformerNames, codeTransformationStage) {
- if (!codeTransformerNames.length) {
- return code;
- }
- const normalizedCodeTransformers = this.buildNormalizedCodeTransformers(codeTransformerNames, codeTransformationStage);
- const codeTransformerNamesGroups = this.codeTransformerNamesGroupsBuilder.build(normalizedCodeTransformers);
- for (const nodeTransformerNamesGroup of codeTransformerNamesGroups) {
- for (const nodeTransformerName of nodeTransformerNamesGroup) {
- const codeTransformer = normalizedCodeTransformers[nodeTransformerName];
- code = codeTransformer.transformCode(code, codeTransformationStage);
- }
- }
- return code;
- }
- buildNormalizedCodeTransformers(codeTransformerNames, codeTransformationStage) {
- return codeTransformerNames
- .reduce((acc, codeTransformerName) => {
- const codeTransformer = this.codeTransformerFactory(codeTransformerName);
- return Object.assign(Object.assign({}, acc), { [codeTransformerName]: codeTransformer });
- }, {});
- }
- };
- CodeTransformersRunner = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICodeTransformer)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder)),
- __metadata("design:paramtypes", [typeof (_a = typeof TCodeTransformerFactory_1.TCodeTransformerFactory !== "undefined" && TCodeTransformerFactory_1.TCodeTransformerFactory) === "function" ? _a : Object, typeof (_b = typeof ITransformerNamesGroupsBuilder_1.ITransformerNamesGroupsBuilder !== "undefined" && ITransformerNamesGroupsBuilder_1.ITransformerNamesGroupsBuilder) === "function" ? _b : Object])
- ], CodeTransformersRunner);
- exports.CodeTransformersRunner = CodeTransformersRunner;
- /***/ }),
- /***/ "./src/code-transformers/preparing-transformers/HashbangOperatorTransformer.ts":
- /*!*************************************************************************************!*\
- !*** ./src/code-transformers/preparing-transformers/HashbangOperatorTransformer.ts ***!
- \*************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.HashbangOperatorTransformer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const CodeTransformationStage_1 = __webpack_require__(/*! ../../enums/code-transformers/CodeTransformationStage */ "./src/enums/code-transformers/CodeTransformationStage.ts");
- const AbstractCodeTransformer_1 = __webpack_require__(/*! ../AbstractCodeTransformer */ "./src/code-transformers/AbstractCodeTransformer.ts");
- let HashbangOperatorTransformer = class HashbangOperatorTransformer extends AbstractCodeTransformer_1.AbstractCodeTransformer {
- constructor(randomGenerator, options) {
- super(randomGenerator, options);
- this.hashbangOperatorLine = null;
- }
- transformCode(code, codeTransformationStage) {
- switch (codeTransformationStage) {
- case CodeTransformationStage_1.CodeTransformationStage.PreparingTransformers:
- return this.removeAndSaveHashbangOperatorLine(code);
- case CodeTransformationStage_1.CodeTransformationStage.FinalizingTransformers:
- return this.appendSavedHashbangOperatorLine(code);
- default:
- return code;
- }
- }
- removeAndSaveHashbangOperatorLine(code) {
- return code
- .replace(/^#!.*$(\r?\n)*/m, (substring) => {
- if (substring) {
- this.hashbangOperatorLine = substring;
- }
- return '';
- })
- .trim();
- }
- appendSavedHashbangOperatorLine(code) {
- var _a;
- return `${(_a = this.hashbangOperatorLine) !== null && _a !== void 0 ? _a : ''}${code}`;
- }
- };
- HashbangOperatorTransformer = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
- ], HashbangOperatorTransformer);
- exports.HashbangOperatorTransformer = HashbangOperatorTransformer;
- /***/ }),
- /***/ "./src/constants/EcmaVersion.ts":
- /*!**************************************!*\
- !*** ./src/constants/EcmaVersion.ts ***!
- \**************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ecmaVersion = void 0;
- exports.ecmaVersion = 11;
- /***/ }),
- /***/ "./src/constants/ReservedDomProperties.ts":
- /*!************************************************!*\
- !*** ./src/constants/ReservedDomProperties.ts ***!
- \************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ReservedDomProperties = void 0;
- exports.ReservedDomProperties = [
- '$&',
- '$\'',
- '$*',
- '$+',
- '$1',
- '$2',
- '$3',
- '$4',
- '$5',
- '$6',
- '$7',
- '$8',
- '$9',
- '$_',
- '$`',
- '$input',
- '@@iterator',
- 'ABORT_ERR',
- 'ACTIVE',
- 'ACTIVE_ATTRIBUTES',
- 'ACTIVE_TEXTURE',
- 'ACTIVE_UNIFORMS',
- 'ADDITION',
- 'ALIASED_LINE_WIDTH_RANGE',
- 'ALIASED_POINT_SIZE_RANGE',
- 'ALLOW_KEYBOARD_INPUT',
- 'ALLPASS',
- 'ALPHA',
- 'ALPHA_BITS',
- 'ALT_MASK',
- 'ALWAYS',
- 'ANY_TYPE',
- 'ANY_UNORDERED_NODE_TYPE',
- 'ARRAY_BUFFER',
- 'ARRAY_BUFFER_BINDING',
- 'ATTACHED_SHADERS',
- 'ATTRIBUTE_NODE',
- 'AT_TARGET',
- 'AddSearchProvider',
- 'AnalyserNode',
- 'AnimationEvent',
- 'AnonXMLHttpRequest',
- 'ApplicationCache',
- 'ApplicationCacheErrorEvent',
- 'Array',
- 'ArrayBuffer',
- 'Attr',
- 'Audio',
- 'AudioBuffer',
- 'AudioBufferSourceNode',
- 'AudioContext',
- 'AudioDestinationNode',
- 'AudioListener',
- 'AudioNode',
- 'AudioParam',
- 'AudioProcessingEvent',
- 'AudioStreamTrack',
- 'AutocompleteErrorEvent',
- 'BACK',
- 'BAD_BOUNDARYPOINTS_ERR',
- 'BANDPASS',
- 'BLEND',
- 'BLEND_COLOR',
- 'BLEND_DST_ALPHA',
- 'BLEND_DST_RGB',
- 'BLEND_EQUATION',
- 'BLEND_EQUATION_ALPHA',
- 'BLEND_EQUATION_RGB',
- 'BLEND_SRC_ALPHA',
- 'BLEND_SRC_RGB',
- 'BLUE_BITS',
- 'BLUR',
- 'BOOL',
- 'BOOLEAN_TYPE',
- 'BOOL_VEC2',
- 'BOOL_VEC3',
- 'BOOL_VEC4',
- 'BOTH',
- 'BROWSER_DEFAULT_WEBGL',
- 'BUBBLING_PHASE',
- 'BUFFER_SIZE',
- 'BUFFER_USAGE',
- 'BYTE',
- 'BYTES_PER_ELEMENT',
- 'BarProp',
- 'BaseHref',
- 'BatteryManager',
- 'BeforeLoadEvent',
- 'BeforeUnloadEvent',
- 'BiquadFilterNode',
- 'Blob',
- 'BlobEvent',
- 'Boolean',
- 'CAPTURING_PHASE',
- 'CCW',
- 'CDATASection',
- 'CDATA_SECTION_NODE',
- 'CHANGE',
- 'CHARSET_RULE',
- 'CHECKING',
- 'CLAMP_TO_EDGE',
- 'CLICK',
- 'CLOSED',
- 'CLOSING',
- 'COLOR_ATTACHMENT0',
- 'COLOR_BUFFER_BIT',
- 'COLOR_CLEAR_VALUE',
- 'COLOR_WRITEMASK',
- 'COMMENT_NODE',
- 'COMPILE_STATUS',
- 'COMPRESSED_RGBA_S3TC_DXT1_EXT',
- 'COMPRESSED_RGBA_S3TC_DXT3_EXT',
- 'COMPRESSED_RGBA_S3TC_DXT5_EXT',
- 'COMPRESSED_RGB_S3TC_DXT1_EXT',
- 'COMPRESSED_TEXTURE_FORMATS',
- 'CONNECTING',
- 'CONSTANT_ALPHA',
- 'CONSTANT_COLOR',
- 'CONSTRAINT_ERR',
- 'CONTEXT_LOST_WEBGL',
- 'CONTROL_MASK',
- 'COUNTER_STYLE_RULE',
- 'CSS',
- 'CSS2Properties',
- 'CSSCharsetRule',
- 'CSSConditionRule',
- 'CSSCounterStyleRule',
- 'CSSFontFaceRule',
- 'CSSFontFeatureValuesRule',
- 'CSSGroupingRule',
- 'CSSImportRule',
- 'CSSKeyframeRule',
- 'CSSKeyframesRule',
- 'CSSMediaRule',
- 'CSSMozDocumentRule',
- 'CSSNameSpaceRule',
- 'CSSPageRule',
- 'CSSPrimitiveValue',
- 'CSSRule',
- 'CSSRuleList',
- 'CSSStyleDeclaration',
- 'CSSStyleRule',
- 'CSSStyleSheet',
- 'CSSSupportsRule',
- 'CSSUnknownRule',
- 'CSSValue',
- 'CSSValueList',
- 'CSSVariablesDeclaration',
- 'CSSVariablesRule',
- 'CSSViewportRule',
- 'CSS_ATTR',
- 'CSS_CM',
- 'CSS_COUNTER',
- 'CSS_CUSTOM',
- 'CSS_DEG',
- 'CSS_DIMENSION',
- 'CSS_EMS',
- 'CSS_EXS',
- 'CSS_FILTER_BLUR',
- 'CSS_FILTER_BRIGHTNESS',
- 'CSS_FILTER_CONTRAST',
- 'CSS_FILTER_CUSTOM',
- 'CSS_FILTER_DROP_SHADOW',
- 'CSS_FILTER_GRAYSCALE',
- 'CSS_FILTER_HUE_ROTATE',
- 'CSS_FILTER_INVERT',
- 'CSS_FILTER_OPACITY',
- 'CSS_FILTER_REFERENCE',
- 'CSS_FILTER_SATURATE',
- 'CSS_FILTER_SEPIA',
- 'CSS_GRAD',
- 'CSS_HZ',
- 'CSS_IDENT',
- 'CSS_IN',
- 'CSS_INHERIT',
- 'CSS_KHZ',
- 'CSS_MATRIX',
- 'CSS_MATRIX3D',
- 'CSS_MM',
- 'CSS_MS',
- 'CSS_NUMBER',
- 'CSS_PC',
- 'CSS_PERCENTAGE',
- 'CSS_PERSPECTIVE',
- 'CSS_PRIMITIVE_VALUE',
- 'CSS_PT',
- 'CSS_PX',
- 'CSS_RAD',
- 'CSS_RECT',
- 'CSS_RGBCOLOR',
- 'CSS_ROTATE',
- 'CSS_ROTATE3D',
- 'CSS_ROTATEX',
- 'CSS_ROTATEY',
- 'CSS_ROTATEZ',
- 'CSS_S',
- 'CSS_SCALE',
- 'CSS_SCALE3D',
- 'CSS_SCALEX',
- 'CSS_SCALEY',
- 'CSS_SCALEZ',
- 'CSS_SKEW',
- 'CSS_SKEWX',
- 'CSS_SKEWY',
- 'CSS_STRING',
- 'CSS_TRANSLATE',
- 'CSS_TRANSLATE3D',
- 'CSS_TRANSLATEX',
- 'CSS_TRANSLATEY',
- 'CSS_TRANSLATEZ',
- 'CSS_UNKNOWN',
- 'CSS_URI',
- 'CSS_VALUE_LIST',
- 'CSS_VH',
- 'CSS_VMAX',
- 'CSS_VMIN',
- 'CSS_VW',
- 'CULL_FACE',
- 'CULL_FACE_MODE',
- 'CURRENT_PROGRAM',
- 'CURRENT_VERTEX_ATTRIB',
- 'CUSTOM',
- 'CW',
- 'CanvasGradient',
- 'CanvasPattern',
- 'CanvasRenderingContext2D',
- 'CaretPosition',
- 'ChannelMergerNode',
- 'ChannelSplitterNode',
- 'CharacterData',
- 'ClientRect',
- 'ClientRectList',
- 'Clipboard',
- 'ClipboardEvent',
- 'CloseEvent',
- 'Collator',
- 'CommandEvent',
- 'Comment',
- 'CompositionEvent',
- 'Console',
- 'Controllers',
- 'ConvolverNode',
- 'Counter',
- 'Crypto',
- 'CryptoKey',
- 'CustomEvent',
- 'DATABASE_ERR',
- 'DATA_CLONE_ERR',
- 'DATA_ERR',
- 'DBLCLICK',
- 'DECR',
- 'DECR_WRAP',
- 'DELETE_STATUS',
- 'DEPTH_ATTACHMENT',
- 'DEPTH_BITS',
- 'DEPTH_BUFFER_BIT',
- 'DEPTH_CLEAR_VALUE',
- 'DEPTH_COMPONENT',
- 'DEPTH_COMPONENT16',
- 'DEPTH_FUNC',
- 'DEPTH_RANGE',
- 'DEPTH_STENCIL',
- 'DEPTH_STENCIL_ATTACHMENT',
- 'DEPTH_TEST',
- 'DEPTH_WRITEMASK',
- 'DIRECTION_DOWN',
- 'DIRECTION_LEFT',
- 'DIRECTION_RIGHT',
- 'DIRECTION_UP',
- 'DISABLED',
- 'DISPATCH_REQUEST_ERR',
- 'DITHER',
- 'DOCUMENT_FRAGMENT_NODE',
- 'DOCUMENT_NODE',
- 'DOCUMENT_POSITION_CONTAINED_BY',
- 'DOCUMENT_POSITION_CONTAINS',
- 'DOCUMENT_POSITION_DISCONNECTED',
- 'DOCUMENT_POSITION_FOLLOWING',
- 'DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC',
- 'DOCUMENT_POSITION_PRECEDING',
- 'DOCUMENT_TYPE_NODE',
- 'DOMCursor',
- 'DOMError',
- 'DOMException',
- 'DOMImplementation',
- 'DOMImplementationLS',
- 'DOMMatrix',
- 'DOMMatrixReadOnly',
- 'DOMParser',
- 'DOMPoint',
- 'DOMPointReadOnly',
- 'DOMQuad',
- 'DOMRect',
- 'DOMRectList',
- 'DOMRectReadOnly',
- 'DOMRequest',
- 'DOMSTRING_SIZE_ERR',
- 'DOMSettableTokenList',
- 'DOMStringList',
- 'DOMStringMap',
- 'DOMTokenList',
- 'DOMTransactionEvent',
- 'DOM_DELTA_LINE',
- 'DOM_DELTA_PAGE',
- 'DOM_DELTA_PIXEL',
- 'DOM_INPUT_METHOD_DROP',
- 'DOM_INPUT_METHOD_HANDWRITING',
- 'DOM_INPUT_METHOD_IME',
- 'DOM_INPUT_METHOD_KEYBOARD',
- 'DOM_INPUT_METHOD_MULTIMODAL',
- 'DOM_INPUT_METHOD_OPTION',
- 'DOM_INPUT_METHOD_PASTE',
- 'DOM_INPUT_METHOD_SCRIPT',
- 'DOM_INPUT_METHOD_UNKNOWN',
- 'DOM_INPUT_METHOD_VOICE',
- 'DOM_KEY_LOCATION_JOYSTICK',
- 'DOM_KEY_LOCATION_LEFT',
- 'DOM_KEY_LOCATION_MOBILE',
- 'DOM_KEY_LOCATION_NUMPAD',
- 'DOM_KEY_LOCATION_RIGHT',
- 'DOM_KEY_LOCATION_STANDARD',
- 'DOM_VK_0',
- 'DOM_VK_1',
- 'DOM_VK_2',
- 'DOM_VK_3',
- 'DOM_VK_4',
- 'DOM_VK_5',
- 'DOM_VK_6',
- 'DOM_VK_7',
- 'DOM_VK_8',
- 'DOM_VK_9',
- 'DOM_VK_A',
- 'DOM_VK_ACCEPT',
- 'DOM_VK_ADD',
- 'DOM_VK_ALT',
- 'DOM_VK_ALTGR',
- 'DOM_VK_AMPERSAND',
- 'DOM_VK_ASTERISK',
- 'DOM_VK_AT',
- 'DOM_VK_ATTN',
- 'DOM_VK_B',
- 'DOM_VK_BACKSPACE',
- 'DOM_VK_BACK_QUOTE',
- 'DOM_VK_BACK_SLASH',
- 'DOM_VK_BACK_SPACE',
- 'DOM_VK_C',
- 'DOM_VK_CANCEL',
- 'DOM_VK_CAPS_LOCK',
- 'DOM_VK_CIRCUMFLEX',
- 'DOM_VK_CLEAR',
- 'DOM_VK_CLOSE_BRACKET',
- 'DOM_VK_CLOSE_CURLY_BRACKET',
- 'DOM_VK_CLOSE_PAREN',
- 'DOM_VK_COLON',
- 'DOM_VK_COMMA',
- 'DOM_VK_CONTEXT_MENU',
- 'DOM_VK_CONTROL',
- 'DOM_VK_CONVERT',
- 'DOM_VK_CRSEL',
- 'DOM_VK_CTRL',
- 'DOM_VK_D',
- 'DOM_VK_DECIMAL',
- 'DOM_VK_DELETE',
- 'DOM_VK_DIVIDE',
- 'DOM_VK_DOLLAR',
- 'DOM_VK_DOUBLE_QUOTE',
- 'DOM_VK_DOWN',
- 'DOM_VK_E',
- 'DOM_VK_EISU',
- 'DOM_VK_END',
- 'DOM_VK_ENTER',
- 'DOM_VK_EQUALS',
- 'DOM_VK_EREOF',
- 'DOM_VK_ESCAPE',
- 'DOM_VK_EXCLAMATION',
- 'DOM_VK_EXECUTE',
- 'DOM_VK_EXSEL',
- 'DOM_VK_F',
- 'DOM_VK_F1',
- 'DOM_VK_F10',
- 'DOM_VK_F11',
- 'DOM_VK_F12',
- 'DOM_VK_F13',
- 'DOM_VK_F14',
- 'DOM_VK_F15',
- 'DOM_VK_F16',
- 'DOM_VK_F17',
- 'DOM_VK_F18',
- 'DOM_VK_F19',
- 'DOM_VK_F2',
- 'DOM_VK_F20',
- 'DOM_VK_F21',
- 'DOM_VK_F22',
- 'DOM_VK_F23',
- 'DOM_VK_F24',
- 'DOM_VK_F25',
- 'DOM_VK_F26',
- 'DOM_VK_F27',
- 'DOM_VK_F28',
- 'DOM_VK_F29',
- 'DOM_VK_F3',
- 'DOM_VK_F30',
- 'DOM_VK_F31',
- 'DOM_VK_F32',
- 'DOM_VK_F33',
- 'DOM_VK_F34',
- 'DOM_VK_F35',
- 'DOM_VK_F36',
- 'DOM_VK_F4',
- 'DOM_VK_F5',
- 'DOM_VK_F6',
- 'DOM_VK_F7',
- 'DOM_VK_F8',
- 'DOM_VK_F9',
- 'DOM_VK_FINAL',
- 'DOM_VK_FRONT',
- 'DOM_VK_G',
- 'DOM_VK_GREATER_THAN',
- 'DOM_VK_H',
- 'DOM_VK_HANGUL',
- 'DOM_VK_HANJA',
- 'DOM_VK_HASH',
- 'DOM_VK_HELP',
- 'DOM_VK_HK_TOGGLE',
- 'DOM_VK_HOME',
- 'DOM_VK_HYPHEN_MINUS',
- 'DOM_VK_I',
- 'DOM_VK_INSERT',
- 'DOM_VK_J',
- 'DOM_VK_JUNJA',
- 'DOM_VK_K',
- 'DOM_VK_KANA',
- 'DOM_VK_KANJI',
- 'DOM_VK_L',
- 'DOM_VK_LEFT',
- 'DOM_VK_LEFT_TAB',
- 'DOM_VK_LESS_THAN',
- 'DOM_VK_M',
- 'DOM_VK_META',
- 'DOM_VK_MODECHANGE',
- 'DOM_VK_MULTIPLY',
- 'DOM_VK_N',
- 'DOM_VK_NONCONVERT',
- 'DOM_VK_NUMPAD0',
- 'DOM_VK_NUMPAD1',
- 'DOM_VK_NUMPAD2',
- 'DOM_VK_NUMPAD3',
- 'DOM_VK_NUMPAD4',
- 'DOM_VK_NUMPAD5',
- 'DOM_VK_NUMPAD6',
- 'DOM_VK_NUMPAD7',
- 'DOM_VK_NUMPAD8',
- 'DOM_VK_NUMPAD9',
- 'DOM_VK_NUM_LOCK',
- 'DOM_VK_O',
- 'DOM_VK_OEM_1',
- 'DOM_VK_OEM_102',
- 'DOM_VK_OEM_2',
- 'DOM_VK_OEM_3',
- 'DOM_VK_OEM_4',
- 'DOM_VK_OEM_5',
- 'DOM_VK_OEM_6',
- 'DOM_VK_OEM_7',
- 'DOM_VK_OEM_8',
- 'DOM_VK_OEM_COMMA',
- 'DOM_VK_OEM_MINUS',
- 'DOM_VK_OEM_PERIOD',
- 'DOM_VK_OEM_PLUS',
- 'DOM_VK_OPEN_BRACKET',
- 'DOM_VK_OPEN_CURLY_BRACKET',
- 'DOM_VK_OPEN_PAREN',
- 'DOM_VK_P',
- 'DOM_VK_PA1',
- 'DOM_VK_PAGEDOWN',
- 'DOM_VK_PAGEUP',
- 'DOM_VK_PAGE_DOWN',
- 'DOM_VK_PAGE_UP',
- 'DOM_VK_PAUSE',
- 'DOM_VK_PERCENT',
- 'DOM_VK_PERIOD',
- 'DOM_VK_PIPE',
- 'DOM_VK_PLAY',
- 'DOM_VK_PLUS',
- 'DOM_VK_PRINT',
- 'DOM_VK_PRINTSCREEN',
- 'DOM_VK_PROCESSKEY',
- 'DOM_VK_PROPERITES',
- 'DOM_VK_Q',
- 'DOM_VK_QUESTION_MARK',
- 'DOM_VK_QUOTE',
- 'DOM_VK_R',
- 'DOM_VK_REDO',
- 'DOM_VK_RETURN',
- 'DOM_VK_RIGHT',
- 'DOM_VK_S',
- 'DOM_VK_SCROLL_LOCK',
- 'DOM_VK_SELECT',
- 'DOM_VK_SEMICOLON',
- 'DOM_VK_SEPARATOR',
- 'DOM_VK_SHIFT',
- 'DOM_VK_SLASH',
- 'DOM_VK_SLEEP',
- 'DOM_VK_SPACE',
- 'DOM_VK_SUBTRACT',
- 'DOM_VK_T',
- 'DOM_VK_TAB',
- 'DOM_VK_TILDE',
- 'DOM_VK_U',
- 'DOM_VK_UNDERSCORE',
- 'DOM_VK_UNDO',
- 'DOM_VK_UNICODE',
- 'DOM_VK_UP',
- 'DOM_VK_V',
- 'DOM_VK_VOLUME_DOWN',
- 'DOM_VK_VOLUME_MUTE',
- 'DOM_VK_VOLUME_UP',
- 'DOM_VK_W',
- 'DOM_VK_WIN',
- 'DOM_VK_WINDOW',
- 'DOM_VK_WIN_ICO_00',
- 'DOM_VK_WIN_ICO_CLEAR',
- 'DOM_VK_WIN_ICO_HELP',
- 'DOM_VK_WIN_OEM_ATTN',
- 'DOM_VK_WIN_OEM_AUTO',
- 'DOM_VK_WIN_OEM_BACKTAB',
- 'DOM_VK_WIN_OEM_CLEAR',
- 'DOM_VK_WIN_OEM_COPY',
- 'DOM_VK_WIN_OEM_CUSEL',
- 'DOM_VK_WIN_OEM_ENLW',
- 'DOM_VK_WIN_OEM_FINISH',
- 'DOM_VK_WIN_OEM_FJ_JISHO',
- 'DOM_VK_WIN_OEM_FJ_LOYA',
- 'DOM_VK_WIN_OEM_FJ_MASSHOU',
- 'DOM_VK_WIN_OEM_FJ_ROYA',
- 'DOM_VK_WIN_OEM_FJ_TOUROKU',
- 'DOM_VK_WIN_OEM_JUMP',
- 'DOM_VK_WIN_OEM_PA1',
- 'DOM_VK_WIN_OEM_PA2',
- 'DOM_VK_WIN_OEM_PA3',
- 'DOM_VK_WIN_OEM_RESET',
- 'DOM_VK_WIN_OEM_WSCTRL',
- 'DOM_VK_X',
- 'DOM_VK_XF86XK_ADD_FAVORITE',
- 'DOM_VK_XF86XK_APPLICATION_LEFT',
- 'DOM_VK_XF86XK_APPLICATION_RIGHT',
- 'DOM_VK_XF86XK_AUDIO_CYCLE_TRACK',
- 'DOM_VK_XF86XK_AUDIO_FORWARD',
- 'DOM_VK_XF86XK_AUDIO_LOWER_VOLUME',
- 'DOM_VK_XF86XK_AUDIO_MEDIA',
- 'DOM_VK_XF86XK_AUDIO_MUTE',
- 'DOM_VK_XF86XK_AUDIO_NEXT',
- 'DOM_VK_XF86XK_AUDIO_PAUSE',
- 'DOM_VK_XF86XK_AUDIO_PLAY',
- 'DOM_VK_XF86XK_AUDIO_PREV',
- 'DOM_VK_XF86XK_AUDIO_RAISE_VOLUME',
- 'DOM_VK_XF86XK_AUDIO_RANDOM_PLAY',
- 'DOM_VK_XF86XK_AUDIO_RECORD',
- 'DOM_VK_XF86XK_AUDIO_REPEAT',
- 'DOM_VK_XF86XK_AUDIO_REWIND',
- 'DOM_VK_XF86XK_AUDIO_STOP',
- 'DOM_VK_XF86XK_AWAY',
- 'DOM_VK_XF86XK_BACK',
- 'DOM_VK_XF86XK_BACK_FORWARD',
- 'DOM_VK_XF86XK_BATTERY',
- 'DOM_VK_XF86XK_BLUE',
- 'DOM_VK_XF86XK_BLUETOOTH',
- 'DOM_VK_XF86XK_BOOK',
- 'DOM_VK_XF86XK_BRIGHTNESS_ADJUST',
- 'DOM_VK_XF86XK_CALCULATOR',
- 'DOM_VK_XF86XK_CALENDAR',
- 'DOM_VK_XF86XK_CD',
- 'DOM_VK_XF86XK_CLOSE',
- 'DOM_VK_XF86XK_COMMUNITY',
- 'DOM_VK_XF86XK_CONTRAST_ADJUST',
- 'DOM_VK_XF86XK_COPY',
- 'DOM_VK_XF86XK_CUT',
- 'DOM_VK_XF86XK_CYCLE_ANGLE',
- 'DOM_VK_XF86XK_DISPLAY',
- 'DOM_VK_XF86XK_DOCUMENTS',
- 'DOM_VK_XF86XK_DOS',
- 'DOM_VK_XF86XK_EJECT',
- 'DOM_VK_XF86XK_EXCEL',
- 'DOM_VK_XF86XK_EXPLORER',
- 'DOM_VK_XF86XK_FAVORITES',
- 'DOM_VK_XF86XK_FINANCE',
- 'DOM_VK_XF86XK_FORWARD',
- 'DOM_VK_XF86XK_FRAME_BACK',
- 'DOM_VK_XF86XK_FRAME_FORWARD',
- 'DOM_VK_XF86XK_GAME',
- 'DOM_VK_XF86XK_GO',
- 'DOM_VK_XF86XK_GREEN',
- 'DOM_VK_XF86XK_HIBERNATE',
- 'DOM_VK_XF86XK_HISTORY',
- 'DOM_VK_XF86XK_HOME_PAGE',
- 'DOM_VK_XF86XK_HOT_LINKS',
- 'DOM_VK_XF86XK_I_TOUCH',
- 'DOM_VK_XF86XK_KBD_BRIGHTNESS_DOWN',
- 'DOM_VK_XF86XK_KBD_BRIGHTNESS_UP',
- 'DOM_VK_XF86XK_KBD_LIGHT_ON_OFF',
- 'DOM_VK_XF86XK_LAUNCH0',
- 'DOM_VK_XF86XK_LAUNCH1',
- 'DOM_VK_XF86XK_LAUNCH2',
- 'DOM_VK_XF86XK_LAUNCH3',
- 'DOM_VK_XF86XK_LAUNCH4',
- 'DOM_VK_XF86XK_LAUNCH5',
- 'DOM_VK_XF86XK_LAUNCH6',
- 'DOM_VK_XF86XK_LAUNCH7',
- 'DOM_VK_XF86XK_LAUNCH8',
- 'DOM_VK_XF86XK_LAUNCH9',
- 'DOM_VK_XF86XK_LAUNCH_A',
- 'DOM_VK_XF86XK_LAUNCH_B',
- 'DOM_VK_XF86XK_LAUNCH_C',
- 'DOM_VK_XF86XK_LAUNCH_D',
- 'DOM_VK_XF86XK_LAUNCH_E',
- 'DOM_VK_XF86XK_LAUNCH_F',
- 'DOM_VK_XF86XK_LIGHT_BULB',
- 'DOM_VK_XF86XK_LOG_OFF',
- 'DOM_VK_XF86XK_MAIL',
- 'DOM_VK_XF86XK_MAIL_FORWARD',
- 'DOM_VK_XF86XK_MARKET',
- 'DOM_VK_XF86XK_MEETING',
- 'DOM_VK_XF86XK_MEMO',
- 'DOM_VK_XF86XK_MENU_KB',
- 'DOM_VK_XF86XK_MENU_PB',
- 'DOM_VK_XF86XK_MESSENGER',
- 'DOM_VK_XF86XK_MON_BRIGHTNESS_DOWN',
- 'DOM_VK_XF86XK_MON_BRIGHTNESS_UP',
- 'DOM_VK_XF86XK_MUSIC',
- 'DOM_VK_XF86XK_MY_COMPUTER',
- 'DOM_VK_XF86XK_MY_SITES',
- 'DOM_VK_XF86XK_NEW',
- 'DOM_VK_XF86XK_NEWS',
- 'DOM_VK_XF86XK_OFFICE_HOME',
- 'DOM_VK_XF86XK_OPEN',
- 'DOM_VK_XF86XK_OPEN_URL',
- 'DOM_VK_XF86XK_OPTION',
- 'DOM_VK_XF86XK_PASTE',
- 'DOM_VK_XF86XK_PHONE',
- 'DOM_VK_XF86XK_PICTURES',
- 'DOM_VK_XF86XK_POWER_DOWN',
- 'DOM_VK_XF86XK_POWER_OFF',
- 'DOM_VK_XF86XK_RED',
- 'DOM_VK_XF86XK_REFRESH',
- 'DOM_VK_XF86XK_RELOAD',
- 'DOM_VK_XF86XK_REPLY',
- 'DOM_VK_XF86XK_ROCKER_DOWN',
- 'DOM_VK_XF86XK_ROCKER_ENTER',
- 'DOM_VK_XF86XK_ROCKER_UP',
- 'DOM_VK_XF86XK_ROTATE_WINDOWS',
- 'DOM_VK_XF86XK_ROTATION_KB',
- 'DOM_VK_XF86XK_ROTATION_PB',
- 'DOM_VK_XF86XK_SAVE',
- 'DOM_VK_XF86XK_SCREEN_SAVER',
- 'DOM_VK_XF86XK_SCROLL_CLICK',
- 'DOM_VK_XF86XK_SCROLL_DOWN',
- 'DOM_VK_XF86XK_SCROLL_UP',
- 'DOM_VK_XF86XK_SEARCH',
- 'DOM_VK_XF86XK_SEND',
- 'DOM_VK_XF86XK_SHOP',
- 'DOM_VK_XF86XK_SPELL',
- 'DOM_VK_XF86XK_SPLIT_SCREEN',
- 'DOM_VK_XF86XK_STANDBY',
- 'DOM_VK_XF86XK_START',
- 'DOM_VK_XF86XK_STOP',
- 'DOM_VK_XF86XK_SUBTITLE',
- 'DOM_VK_XF86XK_SUPPORT',
- 'DOM_VK_XF86XK_SUSPEND',
- 'DOM_VK_XF86XK_TASK_PANE',
- 'DOM_VK_XF86XK_TERMINAL',
- 'DOM_VK_XF86XK_TIME',
- 'DOM_VK_XF86XK_TOOLS',
- 'DOM_VK_XF86XK_TOP_MENU',
- 'DOM_VK_XF86XK_TO_DO_LIST',
- 'DOM_VK_XF86XK_TRAVEL',
- 'DOM_VK_XF86XK_USER1KB',
- 'DOM_VK_XF86XK_USER2KB',
- 'DOM_VK_XF86XK_USER_PB',
- 'DOM_VK_XF86XK_UWB',
- 'DOM_VK_XF86XK_VENDOR_HOME',
- 'DOM_VK_XF86XK_VIDEO',
- 'DOM_VK_XF86XK_VIEW',
- 'DOM_VK_XF86XK_WAKE_UP',
- 'DOM_VK_XF86XK_WEB_CAM',
- 'DOM_VK_XF86XK_WHEEL_BUTTON',
- 'DOM_VK_XF86XK_WLAN',
- 'DOM_VK_XF86XK_WORD',
- 'DOM_VK_XF86XK_WWW',
- 'DOM_VK_XF86XK_XFER',
- 'DOM_VK_XF86XK_YELLOW',
- 'DOM_VK_XF86XK_ZOOM_IN',
- 'DOM_VK_XF86XK_ZOOM_OUT',
- 'DOM_VK_Y',
- 'DOM_VK_Z',
- 'DOM_VK_ZOOM',
- 'DONE',
- 'DONT_CARE',
- 'DOWNLOADING',
- 'DRAGDROP',
- 'DST_ALPHA',
- 'DST_COLOR',
- 'DYNAMIC_DRAW',
- 'DataChannel',
- 'DataTransfer',
- 'DataTransferItem',
- 'DataTransferItemList',
- 'DataView',
- 'Date',
- 'DateTimeFormat',
- 'DelayNode',
- 'DesktopNotification',
- 'DesktopNotificationCenter',
- 'DeviceLightEvent',
- 'DeviceMotionEvent',
- 'DeviceOrientationEvent',
- 'DeviceProximityEvent',
- 'DeviceStorage',
- 'DeviceStorageChangeEvent',
- 'Document',
- 'DocumentFragment',
- 'DocumentType',
- 'DragEvent',
- 'DynamicsCompressorNode',
- 'E',
- 'ELEMENT_ARRAY_BUFFER',
- 'ELEMENT_ARRAY_BUFFER_BINDING',
- 'ELEMENT_NODE',
- 'EMPTY',
- 'ENCODING_ERR',
- 'ENDED',
- 'END_TO_END',
- 'END_TO_START',
- 'ENTITY_NODE',
- 'ENTITY_REFERENCE_NODE',
- 'EPSILON',
- 'EQUAL',
- 'EQUALPOWER',
- 'ERROR',
- 'EXPONENTIAL_DISTANCE',
- 'Element',
- 'ElementQuery',
- 'Entity',
- 'EntityReference',
- 'Error',
- 'ErrorEvent',
- 'EvalError',
- 'Event',
- 'EventException',
- 'EventSource',
- 'EventTarget',
- 'External',
- 'FASTEST',
- 'FIDOSDK',
- 'FILTER_ACCEPT',
- 'FILTER_INTERRUPT',
- 'FILTER_REJECT',
- 'FILTER_SKIP',
- 'FINISHED_STATE',
- 'FIRST_ORDERED_NODE_TYPE',
- 'FLOAT',
- 'FLOAT_MAT2',
- 'FLOAT_MAT3',
- 'FLOAT_MAT4',
- 'FLOAT_VEC2',
- 'FLOAT_VEC3',
- 'FLOAT_VEC4',
- 'FOCUS',
- 'FONT_FACE_RULE',
- 'FONT_FEATURE_VALUES_RULE',
- 'FRAGMENT_SHADER',
- 'FRAGMENT_SHADER_DERIVATIVE_HINT_OES',
- 'FRAMEBUFFER',
- 'FRAMEBUFFER_ATTACHMENT_OBJECT_NAME',
- 'FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE',
- 'FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE',
- 'FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL',
- 'FRAMEBUFFER_BINDING',
- 'FRAMEBUFFER_COMPLETE',
- 'FRAMEBUFFER_INCOMPLETE_ATTACHMENT',
- 'FRAMEBUFFER_INCOMPLETE_DIMENSIONS',
- 'FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT',
- 'FRAMEBUFFER_UNSUPPORTED',
- 'FRONT',
- 'FRONT_AND_BACK',
- 'FRONT_FACE',
- 'FUNC_ADD',
- 'FUNC_REVERSE_SUBTRACT',
- 'FUNC_SUBTRACT',
- 'Feed',
- 'FeedEntry',
- 'File',
- 'FileError',
- 'FileList',
- 'FileReader',
- 'FindInPage',
- 'Float32Array',
- 'Float64Array',
- 'FocusEvent',
- 'FontFace',
- 'FormData',
- 'Function',
- 'GENERATE_MIPMAP_HINT',
- 'GEQUAL',
- 'GREATER',
- 'GREEN_BITS',
- 'GainNode',
- 'Gamepad',
- 'GamepadButton',
- 'GamepadEvent',
- 'GestureEvent',
- 'HAVE_CURRENT_DATA',
- 'HAVE_ENOUGH_DATA',
- 'HAVE_FUTURE_DATA',
- 'HAVE_METADATA',
- 'HAVE_NOTHING',
- 'HEADERS_RECEIVED',
- 'HIDDEN',
- 'HIERARCHY_REQUEST_ERR',
- 'HIGHPASS',
- 'HIGHSHELF',
- 'HIGH_FLOAT',
- 'HIGH_INT',
- 'HORIZONTAL',
- 'HORIZONTAL_AXIS',
- 'HRTF',
- 'HTMLAllCollection',
- 'HTMLAnchorElement',
- 'HTMLAppletElement',
- 'HTMLAreaElement',
- 'HTMLAudioElement',
- 'HTMLBRElement',
- 'HTMLBaseElement',
- 'HTMLBaseFontElement',
- 'HTMLBlockquoteElement',
- 'HTMLBodyElement',
- 'HTMLButtonElement',
- 'HTMLCanvasElement',
- 'HTMLCollection',
- 'HTMLCommandElement',
- 'HTMLContentElement',
- 'HTMLDListElement',
- 'HTMLDataElement',
- 'HTMLDataListElement',
- 'HTMLDetailsElement',
- 'HTMLDialogElement',
- 'HTMLDirectoryElement',
- 'HTMLDivElement',
- 'HTMLDocument',
- 'HTMLElement',
- 'HTMLEmbedElement',
- 'HTMLFieldSetElement',
- 'HTMLFontElement',
- 'HTMLFormControlsCollection',
- 'HTMLFormElement',
- 'HTMLFrameElement',
- 'HTMLFrameSetElement',
- 'HTMLHRElement',
- 'HTMLHeadElement',
- 'HTMLHeadingElement',
- 'HTMLHtmlElement',
- 'HTMLIFrameElement',
- 'HTMLImageElement',
- 'HTMLInputElement',
- 'HTMLIsIndexElement',
- 'HTMLKeygenElement',
- 'HTMLLIElement',
- 'HTMLLabelElement',
- 'HTMLLegendElement',
- 'HTMLLinkElement',
- 'HTMLMapElement',
- 'HTMLMarqueeElement',
- 'HTMLMediaElement',
- 'HTMLMenuElement',
- 'HTMLMenuItemElement',
- 'HTMLMetaElement',
- 'HTMLMeterElement',
- 'HTMLModElement',
- 'HTMLOListElement',
- 'HTMLObjectElement',
- 'HTMLOptGroupElement',
- 'HTMLOptionElement',
- 'HTMLOptionsCollection',
- 'HTMLOutputElement',
- 'HTMLParagraphElement',
- 'HTMLParamElement',
- 'HTMLPictureElement',
- 'HTMLPreElement',
- 'HTMLProgressElement',
- 'HTMLPropertiesCollection',
- 'HTMLQuoteElement',
- 'HTMLScriptElement',
- 'HTMLSelectElement',
- 'HTMLShadowElement',
- 'HTMLSourceElement',
- 'HTMLSpanElement',
- 'HTMLStyleElement',
- 'HTMLTableCaptionElement',
- 'HTMLTableCellElement',
- 'HTMLTableColElement',
- 'HTMLTableElement',
- 'HTMLTableRowElement',
- 'HTMLTableSectionElement',
- 'HTMLTemplateElement',
- 'HTMLTextAreaElement',
- 'HTMLTimeElement',
- 'HTMLTitleElement',
- 'HTMLTrackElement',
- 'HTMLUListElement',
- 'HTMLUnknownElement',
- 'HTMLVideoElement',
- 'HashChangeEvent',
- 'Headers',
- 'History',
- 'ICE_CHECKING',
- 'ICE_CLOSED',
- 'ICE_COMPLETED',
- 'ICE_CONNECTED',
- 'ICE_FAILED',
- 'ICE_GATHERING',
- 'ICE_WAITING',
- 'IDBCursor',
- 'IDBCursorWithValue',
- 'IDBDatabase',
- 'IDBDatabaseException',
- 'IDBFactory',
- 'IDBFileHandle',
- 'IDBFileRequest',
- 'IDBIndex',
- 'IDBKeyRange',
- 'IDBMutableFile',
- 'IDBObjectStore',
- 'IDBOpenDBRequest',
- 'IDBRequest',
- 'IDBTransaction',
- 'IDBVersionChangeEvent',
- 'IDLE',
- 'IMPLEMENTATION_COLOR_READ_FORMAT',
- 'IMPLEMENTATION_COLOR_READ_TYPE',
- 'IMPORT_RULE',
- 'INCR',
- 'INCR_WRAP',
- 'INDEX_SIZE_ERR',
- 'INT',
- 'INT_VEC2',
- 'INT_VEC3',
- 'INT_VEC4',
- 'INUSE_ATTRIBUTE_ERR',
- 'INVALID_ACCESS_ERR',
- 'INVALID_CHARACTER_ERR',
- 'INVALID_ENUM',
- 'INVALID_EXPRESSION_ERR',
- 'INVALID_FRAMEBUFFER_OPERATION',
- 'INVALID_MODIFICATION_ERR',
- 'INVALID_NODE_TYPE_ERR',
- 'INVALID_OPERATION',
- 'INVALID_STATE_ERR',
- 'INVALID_VALUE',
- 'INVERSE_DISTANCE',
- 'INVERT',
- 'IceCandidate',
- 'Image',
- 'ImageBitmap',
- 'ImageData',
- 'Infinity',
- 'InputEvent',
- 'InputMethodContext',
- 'InstallTrigger',
- 'Int16Array',
- 'Int32Array',
- 'Int8Array',
- 'Intent',
- 'InternalError',
- 'Intl',
- 'IsSearchProviderInstalled',
- 'Iterator',
- 'JSON',
- 'KEEP',
- 'KEYDOWN',
- 'KEYFRAMES_RULE',
- 'KEYFRAME_RULE',
- 'KEYPRESS',
- 'KEYUP',
- 'KeyEvent',
- 'KeyboardEvent',
- 'LENGTHADJUST_SPACING',
- 'LENGTHADJUST_SPACINGANDGLYPHS',
- 'LENGTHADJUST_UNKNOWN',
- 'LEQUAL',
- 'LESS',
- 'LINEAR',
- 'LINEAR_DISTANCE',
- 'LINEAR_MIPMAP_LINEAR',
- 'LINEAR_MIPMAP_NEAREST',
- 'LINES',
- 'LINE_LOOP',
- 'LINE_STRIP',
- 'LINE_WIDTH',
- 'LINK_STATUS',
- 'LIVE',
- 'LN10',
- 'LN2',
- 'LOADED',
- 'LOADING',
- 'LOG10E',
- 'LOG2E',
- 'LOWPASS',
- 'LOWSHELF',
- 'LOW_FLOAT',
- 'LOW_INT',
- 'LSException',
- 'LSParserFilter',
- 'LUMINANCE',
- 'LUMINANCE_ALPHA',
- 'LocalMediaStream',
- 'Location',
- 'MAX_COMBINED_TEXTURE_IMAGE_UNITS',
- 'MAX_CUBE_MAP_TEXTURE_SIZE',
- 'MAX_FRAGMENT_UNIFORM_VECTORS',
- 'MAX_RENDERBUFFER_SIZE',
- 'MAX_SAFE_INTEGER',
- 'MAX_TEXTURE_IMAGE_UNITS',
- 'MAX_TEXTURE_MAX_ANISOTROPY_EXT',
- 'MAX_TEXTURE_SIZE',
- 'MAX_VALUE',
- 'MAX_VARYING_VECTORS',
- 'MAX_VERTEX_ATTRIBS',
- 'MAX_VERTEX_TEXTURE_IMAGE_UNITS',
- 'MAX_VERTEX_UNIFORM_VECTORS',
- 'MAX_VIEWPORT_DIMS',
- 'MEDIA_ERR_ABORTED',
- 'MEDIA_ERR_DECODE',
- 'MEDIA_ERR_ENCRYPTED',
- 'MEDIA_ERR_NETWORK',
- 'MEDIA_ERR_SRC_NOT_SUPPORTED',
- 'MEDIA_KEYERR_CLIENT',
- 'MEDIA_KEYERR_DOMAIN',
- 'MEDIA_KEYERR_HARDWARECHANGE',
- 'MEDIA_KEYERR_OUTPUT',
- 'MEDIA_KEYERR_SERVICE',
- 'MEDIA_KEYERR_UNKNOWN',
- 'MEDIA_RULE',
- 'MEDIUM_FLOAT',
- 'MEDIUM_INT',
- 'META_MASK',
- 'MIN_SAFE_INTEGER',
- 'MIN_VALUE',
- 'MIRRORED_REPEAT',
- 'MODE_ASYNCHRONOUS',
- 'MODE_SYNCHRONOUS',
- 'MODIFICATION',
- 'MOUSEDOWN',
- 'MOUSEDRAG',
- 'MOUSEMOVE',
- 'MOUSEOUT',
- 'MOUSEOVER',
- 'MOUSEUP',
- 'MOZ_KEYFRAMES_RULE',
- 'MOZ_KEYFRAME_RULE',
- 'MOZ_SOURCE_CURSOR',
- 'MOZ_SOURCE_ERASER',
- 'MOZ_SOURCE_KEYBOARD',
- 'MOZ_SOURCE_MOUSE',
- 'MOZ_SOURCE_PEN',
- 'MOZ_SOURCE_TOUCH',
- 'MOZ_SOURCE_UNKNOWN',
- 'MSGESTURE_FLAG_BEGIN',
- 'MSGESTURE_FLAG_CANCEL',
- 'MSGESTURE_FLAG_END',
- 'MSGESTURE_FLAG_INERTIA',
- 'MSGESTURE_FLAG_NONE',
- 'MSPOINTER_TYPE_MOUSE',
- 'MSPOINTER_TYPE_PEN',
- 'MSPOINTER_TYPE_TOUCH',
- 'MS_ASYNC_CALLBACK_STATUS_ASSIGN_DELEGATE',
- 'MS_ASYNC_CALLBACK_STATUS_CANCEL',
- 'MS_ASYNC_CALLBACK_STATUS_CHOOSEANY',
- 'MS_ASYNC_CALLBACK_STATUS_ERROR',
- 'MS_ASYNC_CALLBACK_STATUS_JOIN',
- 'MS_ASYNC_OP_STATUS_CANCELED',
- 'MS_ASYNC_OP_STATUS_ERROR',
- 'MS_ASYNC_OP_STATUS_SUCCESS',
- 'MS_MANIPULATION_STATE_ACTIVE',
- 'MS_MANIPULATION_STATE_CANCELLED',
- 'MS_MANIPULATION_STATE_COMMITTED',
- 'MS_MANIPULATION_STATE_DRAGGING',
- 'MS_MANIPULATION_STATE_INERTIA',
- 'MS_MANIPULATION_STATE_PRESELECT',
- 'MS_MANIPULATION_STATE_SELECTING',
- 'MS_MANIPULATION_STATE_STOPPED',
- 'MS_MEDIA_ERR_ENCRYPTED',
- 'MS_MEDIA_KEYERR_CLIENT',
- 'MS_MEDIA_KEYERR_DOMAIN',
- 'MS_MEDIA_KEYERR_HARDWARECHANGE',
- 'MS_MEDIA_KEYERR_OUTPUT',
- 'MS_MEDIA_KEYERR_SERVICE',
- 'MS_MEDIA_KEYERR_UNKNOWN',
- 'Map',
- 'Math',
- 'MediaController',
- 'MediaDevices',
- 'MediaElementAudioSourceNode',
- 'MediaEncryptedEvent',
- 'MediaError',
- 'MediaKeyError',
- 'MediaKeyEvent',
- 'MediaKeyMessageEvent',
- 'MediaKeyNeededEvent',
- 'MediaKeySession',
- 'MediaKeyStatusMap',
- 'MediaKeySystemAccess',
- 'MediaKeys',
- 'MediaList',
- 'MediaQueryList',
- 'MediaQueryListEvent',
- 'MediaRecorder',
- 'MediaSource',
- 'MediaStream',
- 'MediaStreamAudioDestinationNode',
- 'MediaStreamAudioSourceNode',
- 'MediaStreamEvent',
- 'MediaStreamTrack',
- 'MediaStreamTrackEvent',
- 'MessageChannel',
- 'MessageEvent',
- 'MessagePort',
- 'Methods',
- 'MimeType',
- 'MimeTypeArray',
- 'MouseEvent',
- 'MouseScrollEvent',
- 'MozAnimation',
- 'MozAnimationDelay',
- 'MozAnimationDirection',
- 'MozAnimationDuration',
- 'MozAnimationFillMode',
- 'MozAnimationIterationCount',
- 'MozAnimationName',
- 'MozAnimationPlayState',
- 'MozAnimationTimingFunction',
- 'MozAppearance',
- 'MozBackfaceVisibility',
- 'MozBinding',
- 'MozBorderBottomColors',
- 'MozBorderEnd',
- 'MozBorderEndColor',
- 'MozBorderEndStyle',
- 'MozBorderEndWidth',
- 'MozBorderImage',
- 'MozBorderLeftColors',
- 'MozBorderRightColors',
- 'MozBorderStart',
- 'MozBorderStartColor',
- 'MozBorderStartStyle',
- 'MozBorderStartWidth',
- 'MozBorderTopColors',
- 'MozBoxAlign',
- 'MozBoxDirection',
- 'MozBoxFlex',
- 'MozBoxOrdinalGroup',
- 'MozBoxOrient',
- 'MozBoxPack',
- 'MozBoxSizing',
- 'MozCSSKeyframeRule',
- 'MozCSSKeyframesRule',
- 'MozColumnCount',
- 'MozColumnFill',
- 'MozColumnGap',
- 'MozColumnRule',
- 'MozColumnRuleColor',
- 'MozColumnRuleStyle',
- 'MozColumnRuleWidth',
- 'MozColumnWidth',
- 'MozColumns',
- 'MozContactChangeEvent',
- 'MozFloatEdge',
- 'MozFontFeatureSettings',
- 'MozFontLanguageOverride',
- 'MozForceBrokenImageIcon',
- 'MozHyphens',
- 'MozImageRegion',
- 'MozMarginEnd',
- 'MozMarginStart',
- 'MozMmsEvent',
- 'MozMmsMessage',
- 'MozMobileMessageThread',
- 'MozOSXFontSmoothing',
- 'MozOrient',
- 'MozOutlineRadius',
- 'MozOutlineRadiusBottomleft',
- 'MozOutlineRadiusBottomright',
- 'MozOutlineRadiusTopleft',
- 'MozOutlineRadiusTopright',
- 'MozPaddingEnd',
- 'MozPaddingStart',
- 'MozPerspective',
- 'MozPerspectiveOrigin',
- 'MozPowerManager',
- 'MozSettingsEvent',
- 'MozSmsEvent',
- 'MozSmsMessage',
- 'MozStackSizing',
- 'MozTabSize',
- 'MozTextAlignLast',
- 'MozTextDecorationColor',
- 'MozTextDecorationLine',
- 'MozTextDecorationStyle',
- 'MozTextSizeAdjust',
- 'MozTransform',
- 'MozTransformOrigin',
- 'MozTransformStyle',
- 'MozTransition',
- 'MozTransitionDelay',
- 'MozTransitionDuration',
- 'MozTransitionProperty',
- 'MozTransitionTimingFunction',
- 'MozUserFocus',
- 'MozUserInput',
- 'MozUserModify',
- 'MozUserSelect',
- 'MozWindowDragging',
- 'MozWindowShadow',
- 'MutationEvent',
- 'MutationObserver',
- 'MutationRecord',
- 'NAMESPACE_ERR',
- 'NAMESPACE_RULE',
- 'NEAREST',
- 'NEAREST_MIPMAP_LINEAR',
- 'NEAREST_MIPMAP_NEAREST',
- 'NEGATIVE_INFINITY',
- 'NETWORK_EMPTY',
- 'NETWORK_ERR',
- 'NETWORK_IDLE',
- 'NETWORK_LOADED',
- 'NETWORK_LOADING',
- 'NETWORK_NO_SOURCE',
- 'NEVER',
- 'NEW',
- 'NEXT',
- 'NEXT_NO_DUPLICATE',
- 'NICEST',
- 'NODE_AFTER',
- 'NODE_BEFORE',
- 'NODE_BEFORE_AND_AFTER',
- 'NODE_INSIDE',
- 'NONE',
- 'NON_TRANSIENT_ERR',
- 'NOTATION_NODE',
- 'NOTCH',
- 'NOTEQUAL',
- 'NOT_ALLOWED_ERR',
- 'NOT_FOUND_ERR',
- 'NOT_READABLE_ERR',
- 'NOT_SUPPORTED_ERR',
- 'NO_DATA_ALLOWED_ERR',
- 'NO_ERR',
- 'NO_ERROR',
- 'NO_MODIFICATION_ALLOWED_ERR',
- 'NUMBER_TYPE',
- 'NUM_COMPRESSED_TEXTURE_FORMATS',
- 'NaN',
- 'NamedNodeMap',
- 'Navigator',
- 'NearbyLinks',
- 'NetworkInformation',
- 'Node',
- 'NodeFilter',
- 'NodeIterator',
- 'NodeList',
- 'Notation',
- 'Notification',
- 'NotifyPaintEvent',
- 'Number',
- 'NumberFormat',
- 'OBSOLETE',
- 'ONE',
- 'ONE_MINUS_CONSTANT_ALPHA',
- 'ONE_MINUS_CONSTANT_COLOR',
- 'ONE_MINUS_DST_ALPHA',
- 'ONE_MINUS_DST_COLOR',
- 'ONE_MINUS_SRC_ALPHA',
- 'ONE_MINUS_SRC_COLOR',
- 'OPEN',
- 'OPENED',
- 'OPENING',
- 'ORDERED_NODE_ITERATOR_TYPE',
- 'ORDERED_NODE_SNAPSHOT_TYPE',
- 'OUT_OF_MEMORY',
- 'Object',
- 'OfflineAudioCompletionEvent',
- 'OfflineAudioContext',
- 'OfflineResourceList',
- 'Option',
- 'OscillatorNode',
- 'OverflowEvent',
- 'PACK_ALIGNMENT',
- 'PAGE_RULE',
- 'PARSE_ERR',
- 'PATHSEG_ARC_ABS',
- 'PATHSEG_ARC_REL',
- 'PATHSEG_CLOSEPATH',
- 'PATHSEG_CURVETO_CUBIC_ABS',
- 'PATHSEG_CURVETO_CUBIC_REL',
- 'PATHSEG_CURVETO_CUBIC_SMOOTH_ABS',
- 'PATHSEG_CURVETO_CUBIC_SMOOTH_REL',
- 'PATHSEG_CURVETO_QUADRATIC_ABS',
- 'PATHSEG_CURVETO_QUADRATIC_REL',
- 'PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS',
- 'PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL',
- 'PATHSEG_LINETO_ABS',
- 'PATHSEG_LINETO_HORIZONTAL_ABS',
- 'PATHSEG_LINETO_HORIZONTAL_REL',
- 'PATHSEG_LINETO_REL',
- 'PATHSEG_LINETO_VERTICAL_ABS',
- 'PATHSEG_LINETO_VERTICAL_REL',
- 'PATHSEG_MOVETO_ABS',
- 'PATHSEG_MOVETO_REL',
- 'PATHSEG_UNKNOWN',
- 'PATH_EXISTS_ERR',
- 'PEAKING',
- 'PERMISSION_DENIED',
- 'PERSISTENT',
- 'PI',
- 'PLAYING_STATE',
- 'POINTS',
- 'POLYGON_OFFSET_FACTOR',
- 'POLYGON_OFFSET_FILL',
- 'POLYGON_OFFSET_UNITS',
- 'POSITION_UNAVAILABLE',
- 'POSITIVE_INFINITY',
- 'PREV',
- 'PREV_NO_DUPLICATE',
- 'PROCESSING_INSTRUCTION_NODE',
- 'PageChangeEvent',
- 'PageTransitionEvent',
- 'PaintRequest',
- 'PaintRequestList',
- 'PannerNode',
- 'Path2D',
- 'Performance',
- 'PerformanceEntry',
- 'PerformanceMark',
- 'PerformanceMeasure',
- 'PerformanceNavigation',
- 'PerformanceResourceTiming',
- 'PerformanceTiming',
- 'PeriodicWave',
- 'Plugin',
- 'PluginArray',
- 'PopStateEvent',
- 'PopupBlockedEvent',
- 'ProcessingInstruction',
- 'ProgressEvent',
- 'Promise',
- 'PropertyNodeList',
- 'Proxy',
- 'PushManager',
- 'PushSubscription',
- 'Q',
- 'QUOTA_ERR',
- 'QUOTA_EXCEEDED_ERR',
- 'QueryInterface',
- 'READ_ONLY',
- 'READ_ONLY_ERR',
- 'READ_WRITE',
- 'RED_BITS',
- 'REMOVAL',
- 'RENDERBUFFER',
- 'RENDERBUFFER_ALPHA_SIZE',
- 'RENDERBUFFER_BINDING',
- 'RENDERBUFFER_BLUE_SIZE',
- 'RENDERBUFFER_DEPTH_SIZE',
- 'RENDERBUFFER_GREEN_SIZE',
- 'RENDERBUFFER_HEIGHT',
- 'RENDERBUFFER_INTERNAL_FORMAT',
- 'RENDERBUFFER_RED_SIZE',
- 'RENDERBUFFER_STENCIL_SIZE',
- 'RENDERBUFFER_WIDTH',
- 'RENDERER',
- 'RENDERING_INTENT_ABSOLUTE_COLORIMETRIC',
- 'RENDERING_INTENT_AUTO',
- 'RENDERING_INTENT_PERCEPTUAL',
- 'RENDERING_INTENT_RELATIVE_COLORIMETRIC',
- 'RENDERING_INTENT_SATURATION',
- 'RENDERING_INTENT_UNKNOWN',
- 'REPEAT',
- 'REPLACE',
- 'RGB',
- 'RGB565',
- 'RGB5_A1',
- 'RGBA',
- 'RGBA4',
- 'RGBColor',
- 'ROTATION_CLOCKWISE',
- 'ROTATION_COUNTERCLOCKWISE',
- 'RTCDataChannelEvent',
- 'RTCIceCandidate',
- 'RTCPeerConnectionIceEvent',
- 'RTCRtpReceiver',
- 'RTCRtpSender',
- 'RTCSessionDescription',
- 'RTCStatsReport',
- 'RadioNodeList',
- 'Range',
- 'RangeError',
- 'RangeException',
- 'RecordErrorEvent',
- 'Rect',
- 'ReferenceError',
- 'RegExp',
- 'Request',
- 'Response',
- 'SAMPLER_2D',
- 'SAMPLER_CUBE',
- 'SAMPLES',
- 'SAMPLE_ALPHA_TO_COVERAGE',
- 'SAMPLE_BUFFERS',
- 'SAMPLE_COVERAGE',
- 'SAMPLE_COVERAGE_INVERT',
- 'SAMPLE_COVERAGE_VALUE',
- 'SAWTOOTH',
- 'SCHEDULED_STATE',
- 'SCISSOR_BOX',
- 'SCISSOR_TEST',
- 'SCROLL_PAGE_DOWN',
- 'SCROLL_PAGE_UP',
- 'SDP_ANSWER',
- 'SDP_OFFER',
- 'SDP_PRANSWER',
- 'SECURITY_ERR',
- 'SELECT',
- 'SERIALIZE_ERR',
- 'SEVERITY_ERROR',
- 'SEVERITY_FATAL_ERROR',
- 'SEVERITY_WARNING',
- 'SHADER_COMPILER',
- 'SHADER_TYPE',
- 'SHADING_LANGUAGE_VERSION',
- 'SHIFT_MASK',
- 'SHORT',
- 'SHOWING',
- 'SHOW_ALL',
- 'SHOW_ATTRIBUTE',
- 'SHOW_CDATA_SECTION',
- 'SHOW_COMMENT',
- 'SHOW_DOCUMENT',
- 'SHOW_DOCUMENT_FRAGMENT',
- 'SHOW_DOCUMENT_TYPE',
- 'SHOW_ELEMENT',
- 'SHOW_ENTITY',
- 'SHOW_ENTITY_REFERENCE',
- 'SHOW_NOTATION',
- 'SHOW_PROCESSING_INSTRUCTION',
- 'SHOW_TEXT',
- 'SINE',
- 'SOUNDFIELD',
- 'SQLException',
- 'SQRT1_2',
- 'SQRT2',
- 'SQUARE',
- 'SRC_ALPHA',
- 'SRC_ALPHA_SATURATE',
- 'SRC_COLOR',
- 'START_TO_END',
- 'START_TO_START',
- 'STATIC_DRAW',
- 'STENCIL_ATTACHMENT',
- 'STENCIL_BACK_FAIL',
- 'STENCIL_BACK_FUNC',
- 'STENCIL_BACK_PASS_DEPTH_FAIL',
- 'STENCIL_BACK_PASS_DEPTH_PASS',
- 'STENCIL_BACK_REF',
- 'STENCIL_BACK_VALUE_MASK',
- 'STENCIL_BACK_WRITEMASK',
- 'STENCIL_BITS',
- 'STENCIL_BUFFER_BIT',
- 'STENCIL_CLEAR_VALUE',
- 'STENCIL_FAIL',
- 'STENCIL_FUNC',
- 'STENCIL_INDEX',
- 'STENCIL_INDEX8',
- 'STENCIL_PASS_DEPTH_FAIL',
- 'STENCIL_PASS_DEPTH_PASS',
- 'STENCIL_REF',
- 'STENCIL_TEST',
- 'STENCIL_VALUE_MASK',
- 'STENCIL_WRITEMASK',
- 'STREAM_DRAW',
- 'STRING_TYPE',
- 'STYLE_RULE',
- 'SUBPIXEL_BITS',
- 'SUPPORTS_RULE',
- 'SVGAElement',
- 'SVGAltGlyphDefElement',
- 'SVGAltGlyphElement',
- 'SVGAltGlyphItemElement',
- 'SVGAngle',
- 'SVGAnimateColorElement',
- 'SVGAnimateElement',
- 'SVGAnimateMotionElement',
- 'SVGAnimateTransformElement',
- 'SVGAnimatedAngle',
- 'SVGAnimatedBoolean',
- 'SVGAnimatedEnumeration',
- 'SVGAnimatedInteger',
- 'SVGAnimatedLength',
- 'SVGAnimatedLengthList',
- 'SVGAnimatedNumber',
- 'SVGAnimatedNumberList',
- 'SVGAnimatedPreserveAspectRatio',
- 'SVGAnimatedRect',
- 'SVGAnimatedString',
- 'SVGAnimatedTransformList',
- 'SVGAnimationElement',
- 'SVGCircleElement',
- 'SVGClipPathElement',
- 'SVGColor',
- 'SVGComponentTransferFunctionElement',
- 'SVGCursorElement',
- 'SVGDefsElement',
- 'SVGDescElement',
- 'SVGDiscardElement',
- 'SVGDocument',
- 'SVGElement',
- 'SVGElementInstance',
- 'SVGElementInstanceList',
- 'SVGEllipseElement',
- 'SVGException',
- 'SVGFEBlendElement',
- 'SVGFEColorMatrixElement',
- 'SVGFEComponentTransferElement',
- 'SVGFECompositeElement',
- 'SVGFEConvolveMatrixElement',
- 'SVGFEDiffuseLightingElement',
- 'SVGFEDisplacementMapElement',
- 'SVGFEDistantLightElement',
- 'SVGFEDropShadowElement',
- 'SVGFEFloodElement',
- 'SVGFEFuncAElement',
- 'SVGFEFuncBElement',
- 'SVGFEFuncGElement',
- 'SVGFEFuncRElement',
- 'SVGFEGaussianBlurElement',
- 'SVGFEImageElement',
- 'SVGFEMergeElement',
- 'SVGFEMergeNodeElement',
- 'SVGFEMorphologyElement',
- 'SVGFEOffsetElement',
- 'SVGFEPointLightElement',
- 'SVGFESpecularLightingElement',
- 'SVGFESpotLightElement',
- 'SVGFETileElement',
- 'SVGFETurbulenceElement',
- 'SVGFilterElement',
- 'SVGFontElement',
- 'SVGFontFaceElement',
- 'SVGFontFaceFormatElement',
- 'SVGFontFaceNameElement',
- 'SVGFontFaceSrcElement',
- 'SVGFontFaceUriElement',
- 'SVGForeignObjectElement',
- 'SVGGElement',
- 'SVGGeometryElement',
- 'SVGGlyphElement',
- 'SVGGlyphRefElement',
- 'SVGGradientElement',
- 'SVGGraphicsElement',
- 'SVGHKernElement',
- 'SVGImageElement',
- 'SVGLength',
- 'SVGLengthList',
- 'SVGLineElement',
- 'SVGLinearGradientElement',
- 'SVGMPathElement',
- 'SVGMarkerElement',
- 'SVGMaskElement',
- 'SVGMatrix',
- 'SVGMetadataElement',
- 'SVGMissingGlyphElement',
- 'SVGNumber',
- 'SVGNumberList',
- 'SVGPaint',
- 'SVGPathElement',
- 'SVGPathSeg',
- 'SVGPathSegArcAbs',
- 'SVGPathSegArcRel',
- 'SVGPathSegClosePath',
- 'SVGPathSegCurvetoCubicAbs',
- 'SVGPathSegCurvetoCubicRel',
- 'SVGPathSegCurvetoCubicSmoothAbs',
- 'SVGPathSegCurvetoCubicSmoothRel',
- 'SVGPathSegCurvetoQuadraticAbs',
- 'SVGPathSegCurvetoQuadraticRel',
- 'SVGPathSegCurvetoQuadraticSmoothAbs',
- 'SVGPathSegCurvetoQuadraticSmoothRel',
- 'SVGPathSegLinetoAbs',
- 'SVGPathSegLinetoHorizontalAbs',
- 'SVGPathSegLinetoHorizontalRel',
- 'SVGPathSegLinetoRel',
- 'SVGPathSegLinetoVerticalAbs',
- 'SVGPathSegLinetoVerticalRel',
- 'SVGPathSegList',
- 'SVGPathSegMovetoAbs',
- 'SVGPathSegMovetoRel',
- 'SVGPatternElement',
- 'SVGPoint',
- 'SVGPointList',
- 'SVGPolygonElement',
- 'SVGPolylineElement',
- 'SVGPreserveAspectRatio',
- 'SVGRadialGradientElement',
- 'SVGRect',
- 'SVGRectElement',
- 'SVGRenderingIntent',
- 'SVGSVGElement',
- 'SVGScriptElement',
- 'SVGSetElement',
- 'SVGStopElement',
- 'SVGStringList',
- 'SVGStyleElement',
- 'SVGSwitchElement',
- 'SVGSymbolElement',
- 'SVGTRefElement',
- 'SVGTSpanElement',
- 'SVGTextContentElement',
- 'SVGTextElement',
- 'SVGTextPathElement',
- 'SVGTextPositioningElement',
- 'SVGTitleElement',
- 'SVGTransform',
- 'SVGTransformList',
- 'SVGUnitTypes',
- 'SVGUseElement',
- 'SVGVKernElement',
- 'SVGViewElement',
- 'SVGViewSpec',
- 'SVGZoomAndPan',
- 'SVGZoomEvent',
- 'SVG_ANGLETYPE_DEG',
- 'SVG_ANGLETYPE_GRAD',
- 'SVG_ANGLETYPE_RAD',
- 'SVG_ANGLETYPE_UNKNOWN',
- 'SVG_ANGLETYPE_UNSPECIFIED',
- 'SVG_CHANNEL_A',
- 'SVG_CHANNEL_B',
- 'SVG_CHANNEL_G',
- 'SVG_CHANNEL_R',
- 'SVG_CHANNEL_UNKNOWN',
- 'SVG_COLORTYPE_CURRENTCOLOR',
- 'SVG_COLORTYPE_RGBCOLOR',
- 'SVG_COLORTYPE_RGBCOLOR_ICCCOLOR',
- 'SVG_COLORTYPE_UNKNOWN',
- 'SVG_EDGEMODE_DUPLICATE',
- 'SVG_EDGEMODE_NONE',
- 'SVG_EDGEMODE_UNKNOWN',
- 'SVG_EDGEMODE_WRAP',
- 'SVG_FEBLEND_MODE_COLOR',
- 'SVG_FEBLEND_MODE_COLOR_BURN',
- 'SVG_FEBLEND_MODE_COLOR_DODGE',
- 'SVG_FEBLEND_MODE_DARKEN',
- 'SVG_FEBLEND_MODE_DIFFERENCE',
- 'SVG_FEBLEND_MODE_EXCLUSION',
- 'SVG_FEBLEND_MODE_HARD_LIGHT',
- 'SVG_FEBLEND_MODE_HUE',
- 'SVG_FEBLEND_MODE_LIGHTEN',
- 'SVG_FEBLEND_MODE_LUMINOSITY',
- 'SVG_FEBLEND_MODE_MULTIPLY',
- 'SVG_FEBLEND_MODE_NORMAL',
- 'SVG_FEBLEND_MODE_OVERLAY',
- 'SVG_FEBLEND_MODE_SATURATION',
- 'SVG_FEBLEND_MODE_SCREEN',
- 'SVG_FEBLEND_MODE_SOFT_LIGHT',
- 'SVG_FEBLEND_MODE_UNKNOWN',
- 'SVG_FECOLORMATRIX_TYPE_HUEROTATE',
- 'SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA',
- 'SVG_FECOLORMATRIX_TYPE_MATRIX',
- 'SVG_FECOLORMATRIX_TYPE_SATURATE',
- 'SVG_FECOLORMATRIX_TYPE_UNKNOWN',
- 'SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE',
- 'SVG_FECOMPONENTTRANSFER_TYPE_GAMMA',
- 'SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY',
- 'SVG_FECOMPONENTTRANSFER_TYPE_LINEAR',
- 'SVG_FECOMPONENTTRANSFER_TYPE_TABLE',
- 'SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN',
- 'SVG_FECOMPOSITE_OPERATOR_ARITHMETIC',
- 'SVG_FECOMPOSITE_OPERATOR_ATOP',
- 'SVG_FECOMPOSITE_OPERATOR_IN',
- 'SVG_FECOMPOSITE_OPERATOR_OUT',
- 'SVG_FECOMPOSITE_OPERATOR_OVER',
- 'SVG_FECOMPOSITE_OPERATOR_UNKNOWN',
- 'SVG_FECOMPOSITE_OPERATOR_XOR',
- 'SVG_INVALID_VALUE_ERR',
- 'SVG_LENGTHTYPE_CM',
- 'SVG_LENGTHTYPE_EMS',
- 'SVG_LENGTHTYPE_EXS',
- 'SVG_LENGTHTYPE_IN',
- 'SVG_LENGTHTYPE_MM',
- 'SVG_LENGTHTYPE_NUMBER',
- 'SVG_LENGTHTYPE_PC',
- 'SVG_LENGTHTYPE_PERCENTAGE',
- 'SVG_LENGTHTYPE_PT',
- 'SVG_LENGTHTYPE_PX',
- 'SVG_LENGTHTYPE_UNKNOWN',
- 'SVG_MARKERUNITS_STROKEWIDTH',
- 'SVG_MARKERUNITS_UNKNOWN',
- 'SVG_MARKERUNITS_USERSPACEONUSE',
- 'SVG_MARKER_ORIENT_ANGLE',
- 'SVG_MARKER_ORIENT_AUTO',
- 'SVG_MARKER_ORIENT_UNKNOWN',
- 'SVG_MASKTYPE_ALPHA',
- 'SVG_MASKTYPE_LUMINANCE',
- 'SVG_MATRIX_NOT_INVERTABLE',
- 'SVG_MEETORSLICE_MEET',
- 'SVG_MEETORSLICE_SLICE',
- 'SVG_MEETORSLICE_UNKNOWN',
- 'SVG_MORPHOLOGY_OPERATOR_DILATE',
- 'SVG_MORPHOLOGY_OPERATOR_ERODE',
- 'SVG_MORPHOLOGY_OPERATOR_UNKNOWN',
- 'SVG_PAINTTYPE_CURRENTCOLOR',
- 'SVG_PAINTTYPE_NONE',
- 'SVG_PAINTTYPE_RGBCOLOR',
- 'SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR',
- 'SVG_PAINTTYPE_UNKNOWN',
- 'SVG_PAINTTYPE_URI',
- 'SVG_PAINTTYPE_URI_CURRENTCOLOR',
- 'SVG_PAINTTYPE_URI_NONE',
- 'SVG_PAINTTYPE_URI_RGBCOLOR',
- 'SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR',
- 'SVG_PRESERVEASPECTRATIO_NONE',
- 'SVG_PRESERVEASPECTRATIO_UNKNOWN',
- 'SVG_PRESERVEASPECTRATIO_XMAXYMAX',
- 'SVG_PRESERVEASPECTRATIO_XMAXYMID',
- 'SVG_PRESERVEASPECTRATIO_XMAXYMIN',
- 'SVG_PRESERVEASPECTRATIO_XMIDYMAX',
- 'SVG_PRESERVEASPECTRATIO_XMIDYMID',
- 'SVG_PRESERVEASPECTRATIO_XMIDYMIN',
- 'SVG_PRESERVEASPECTRATIO_XMINYMAX',
- 'SVG_PRESERVEASPECTRATIO_XMINYMID',
- 'SVG_PRESERVEASPECTRATIO_XMINYMIN',
- 'SVG_SPREADMETHOD_PAD',
- 'SVG_SPREADMETHOD_REFLECT',
- 'SVG_SPREADMETHOD_REPEAT',
- 'SVG_SPREADMETHOD_UNKNOWN',
- 'SVG_STITCHTYPE_NOSTITCH',
- 'SVG_STITCHTYPE_STITCH',
- 'SVG_STITCHTYPE_UNKNOWN',
- 'SVG_TRANSFORM_MATRIX',
- 'SVG_TRANSFORM_ROTATE',
- 'SVG_TRANSFORM_SCALE',
- 'SVG_TRANSFORM_SKEWX',
- 'SVG_TRANSFORM_SKEWY',
- 'SVG_TRANSFORM_TRANSLATE',
- 'SVG_TRANSFORM_UNKNOWN',
- 'SVG_TURBULENCE_TYPE_FRACTALNOISE',
- 'SVG_TURBULENCE_TYPE_TURBULENCE',
- 'SVG_TURBULENCE_TYPE_UNKNOWN',
- 'SVG_UNIT_TYPE_OBJECTBOUNDINGBOX',
- 'SVG_UNIT_TYPE_UNKNOWN',
- 'SVG_UNIT_TYPE_USERSPACEONUSE',
- 'SVG_WRONG_TYPE_ERR',
- 'SVG_ZOOMANDPAN_DISABLE',
- 'SVG_ZOOMANDPAN_MAGNIFY',
- 'SVG_ZOOMANDPAN_UNKNOWN',
- 'SYNTAX_ERR',
- 'SavedPages',
- 'Screen',
- 'ScreenOrientation',
- 'Script',
- 'ScriptProcessorNode',
- 'ScrollAreaEvent',
- 'SecurityPolicyViolationEvent',
- 'Selection',
- 'ServiceWorker',
- 'ServiceWorkerContainer',
- 'ServiceWorkerRegistration',
- 'SessionDescription',
- 'Set',
- 'ShadowRoot',
- 'SharedWorker',
- 'SimpleGestureEvent',
- 'SpeechSynthesisEvent',
- 'SpeechSynthesisUtterance',
- 'StopIteration',
- 'Storage',
- 'StorageEvent',
- 'String',
- 'StyleSheet',
- 'StyleSheetList',
- 'SubtleCrypto',
- 'Symbol',
- 'SyntaxError',
- 'TEMPORARY',
- 'TEXTPATH_METHODTYPE_ALIGN',
- 'TEXTPATH_METHODTYPE_STRETCH',
- 'TEXTPATH_METHODTYPE_UNKNOWN',
- 'TEXTPATH_SPACINGTYPE_AUTO',
- 'TEXTPATH_SPACINGTYPE_EXACT',
- 'TEXTPATH_SPACINGTYPE_UNKNOWN',
- 'TEXTURE',
- 'TEXTURE0',
- 'TEXTURE1',
- 'TEXTURE10',
- 'TEXTURE11',
- 'TEXTURE12',
- 'TEXTURE13',
- 'TEXTURE14',
- 'TEXTURE15',
- 'TEXTURE16',
- 'TEXTURE17',
- 'TEXTURE18',
- 'TEXTURE19',
- 'TEXTURE2',
- 'TEXTURE20',
- 'TEXTURE21',
- 'TEXTURE22',
- 'TEXTURE23',
- 'TEXTURE24',
- 'TEXTURE25',
- 'TEXTURE26',
- 'TEXTURE27',
- 'TEXTURE28',
- 'TEXTURE29',
- 'TEXTURE3',
- 'TEXTURE30',
- 'TEXTURE31',
- 'TEXTURE4',
- 'TEXTURE5',
- 'TEXTURE6',
- 'TEXTURE7',
- 'TEXTURE8',
- 'TEXTURE9',
- 'TEXTURE_2D',
- 'TEXTURE_BINDING_2D',
- 'TEXTURE_BINDING_CUBE_MAP',
- 'TEXTURE_CUBE_MAP',
- 'TEXTURE_CUBE_MAP_NEGATIVE_X',
- 'TEXTURE_CUBE_MAP_NEGATIVE_Y',
- 'TEXTURE_CUBE_MAP_NEGATIVE_Z',
- 'TEXTURE_CUBE_MAP_POSITIVE_X',
- 'TEXTURE_CUBE_MAP_POSITIVE_Y',
- 'TEXTURE_CUBE_MAP_POSITIVE_Z',
- 'TEXTURE_MAG_FILTER',
- 'TEXTURE_MAX_ANISOTROPY_EXT',
- 'TEXTURE_MIN_FILTER',
- 'TEXTURE_WRAP_S',
- 'TEXTURE_WRAP_T',
- 'TEXT_NODE',
- 'TIMEOUT',
- 'TIMEOUT_ERR',
- 'TOO_LARGE_ERR',
- 'TRANSACTION_INACTIVE_ERR',
- 'TRIANGLE',
- 'TRIANGLES',
- 'TRIANGLE_FAN',
- 'TRIANGLE_STRIP',
- 'TYPE_BACK_FORWARD',
- 'TYPE_ERR',
- 'TYPE_MISMATCH_ERR',
- 'TYPE_NAVIGATE',
- 'TYPE_RELOAD',
- 'TYPE_RESERVED',
- 'Text',
- 'TextDecoder',
- 'TextEncoder',
- 'TextEvent',
- 'TextMetrics',
- 'TextTrack',
- 'TextTrackCue',
- 'TextTrackCueList',
- 'TextTrackList',
- 'TimeEvent',
- 'TimeRanges',
- 'Touch',
- 'TouchEvent',
- 'TouchList',
- 'TrackEvent',
- 'TransitionEvent',
- 'TreeWalker',
- 'TypeError',
- 'UIEvent',
- 'UNCACHED',
- 'UNKNOWN_ERR',
- 'UNKNOWN_RULE',
- 'UNMASKED_RENDERER_WEBGL',
- 'UNMASKED_VENDOR_WEBGL',
- 'UNORDERED_NODE_ITERATOR_TYPE',
- 'UNORDERED_NODE_SNAPSHOT_TYPE',
- 'UNPACK_ALIGNMENT',
- 'UNPACK_COLORSPACE_CONVERSION_WEBGL',
- 'UNPACK_FLIP_Y_WEBGL',
- 'UNPACK_PREMULTIPLY_ALPHA_WEBGL',
- 'UNSCHEDULED_STATE',
- 'UNSENT',
- 'UNSIGNED_BYTE',
- 'UNSIGNED_INT',
- 'UNSIGNED_SHORT',
- 'UNSIGNED_SHORT_4_4_4_4',
- 'UNSIGNED_SHORT_5_5_5_1',
- 'UNSIGNED_SHORT_5_6_5',
- 'UNSPECIFIED_EVENT_TYPE_ERR',
- 'UPDATEREADY',
- 'URIError',
- 'URL',
- 'URLSearchParams',
- 'URLUnencoded',
- 'URL_MISMATCH_ERR',
- 'UTC',
- 'Uint16Array',
- 'Uint32Array',
- 'Uint8Array',
- 'Uint8ClampedArray',
- 'UserMessageHandler',
- 'UserMessageHandlersNamespace',
- 'UserProximityEvent',
- 'VALIDATE_STATUS',
- 'VALIDATION_ERR',
- 'VARIABLES_RULE',
- 'VENDOR',
- 'VERSION',
- 'VERSION_CHANGE',
- 'VERSION_ERR',
- 'VERTEX_ATTRIB_ARRAY_BUFFER_BINDING',
- 'VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE',
- 'VERTEX_ATTRIB_ARRAY_ENABLED',
- 'VERTEX_ATTRIB_ARRAY_NORMALIZED',
- 'VERTEX_ATTRIB_ARRAY_POINTER',
- 'VERTEX_ATTRIB_ARRAY_SIZE',
- 'VERTEX_ATTRIB_ARRAY_STRIDE',
- 'VERTEX_ATTRIB_ARRAY_TYPE',
- 'VERTEX_SHADER',
- 'VERTICAL',
- 'VERTICAL_AXIS',
- 'VER_ERR',
- 'VIEWPORT',
- 'VIEWPORT_RULE',
- 'VTTCue',
- 'VTTRegion',
- 'ValidityState',
- 'VideoStreamTrack',
- 'WEBKIT_FILTER_RULE',
- 'WEBKIT_KEYFRAMES_RULE',
- 'WEBKIT_KEYFRAME_RULE',
- 'WEBKIT_REGION_RULE',
- 'WRONG_DOCUMENT_ERR',
- 'WaveShaperNode',
- 'WeakMap',
- 'WeakSet',
- 'WebGLActiveInfo',
- 'WebGLBuffer',
- 'WebGLContextEvent',
- 'WebGLFramebuffer',
- 'WebGLProgram',
- 'WebGLRenderbuffer',
- 'WebGLRenderingContext',
- 'WebGLShader',
- 'WebGLShaderPrecisionFormat',
- 'WebGLTexture',
- 'WebGLUniformLocation',
- 'WebGLVertexArray',
- 'WebKitAnimationEvent',
- 'WebKitBlobBuilder',
- 'WebKitCSSFilterRule',
- 'WebKitCSSFilterValue',
- 'WebKitCSSKeyframeRule',
- 'WebKitCSSKeyframesRule',
- 'WebKitCSSMatrix',
- 'WebKitCSSRegionRule',
- 'WebKitCSSTransformValue',
- 'WebKitDataCue',
- 'WebKitGamepad',
- 'WebKitMediaKeyError',
- 'WebKitMediaKeyMessageEvent',
- 'WebKitMediaKeySession',
- 'WebKitMediaKeys',
- 'WebKitMediaSource',
- 'WebKitMutationObserver',
- 'WebKitNamespace',
- 'WebKitPlaybackTargetAvailabilityEvent',
- 'WebKitPoint',
- 'WebKitShadowRoot',
- 'WebKitSourceBuffer',
- 'WebKitSourceBufferList',
- 'WebKitTransitionEvent',
- 'WebSocket',
- 'WheelEvent',
- 'Window',
- 'Worker',
- 'XMLDocument',
- 'XMLHttpRequest',
- 'XMLHttpRequestEventTarget',
- 'XMLHttpRequestException',
- 'XMLHttpRequestProgressEvent',
- 'XMLHttpRequestUpload',
- 'XMLSerializer',
- 'XMLStylesheetProcessingInstruction',
- 'XPathEvaluator',
- 'XPathException',
- 'XPathExpression',
- 'XPathNSResolver',
- 'XPathResult',
- 'XSLTProcessor',
- 'ZERO',
- '_XD0M_',
- '_YD0M_',
- '__defineGetter__',
- '__defineSetter__',
- '__lookupGetter__',
- '__lookupSetter__',
- '__opera',
- '__proto__',
- '_browserjsran',
- 'a',
- 'aLink',
- 'abbr',
- 'abort',
- 'abs',
- 'absolute',
- 'acceleration',
- 'accelerationIncludingGravity',
- 'accelerator',
- 'accept',
- 'acceptCharset',
- 'acceptNode',
- 'accessKey',
- 'accessKeyLabel',
- 'accuracy',
- 'acos',
- 'acosh',
- 'action',
- 'actionURL',
- 'active',
- 'activeCues',
- 'activeElement',
- 'activeSourceBuffers',
- 'activeSourceCount',
- 'activeTexture',
- 'add',
- 'addBehavior',
- 'addCandidate',
- 'addColorStop',
- 'addCue',
- 'addElement',
- 'addEventListener',
- 'addFilter',
- 'addFromString',
- 'addFromUri',
- 'addIceCandidate',
- 'addImport',
- 'addListener',
- 'addNamed',
- 'addPageRule',
- 'addPath',
- 'addPointer',
- 'addRange',
- 'addRegion',
- 'addRule',
- 'addSearchEngine',
- 'addSourceBuffer',
- 'addStream',
- 'addTextTrack',
- 'addTrack',
- 'addWakeLockListener',
- 'addedNodes',
- 'additionalName',
- 'additiveSymbols',
- 'addons',
- 'adoptNode',
- 'adr',
- 'advance',
- 'alert',
- 'algorithm',
- 'align',
- 'align-content',
- 'align-items',
- 'align-self',
- 'alignContent',
- 'alignItems',
- 'alignSelf',
- 'alignmentBaseline',
- 'alinkColor',
- 'all',
- 'allSettled',
- 'allowFullscreen',
- 'allowedDirections',
- 'alpha',
- 'alt',
- 'altGraphKey',
- 'altHtml',
- 'altKey',
- 'altLeft',
- 'altitude',
- 'altitudeAccuracy',
- 'amplitude',
- 'ancestorOrigins',
- 'anchor',
- 'anchorNode',
- 'anchorOffset',
- 'anchors',
- 'angle',
- 'animVal',
- 'animate',
- 'animatedInstanceRoot',
- 'animatedNormalizedPathSegList',
- 'animatedPathSegList',
- 'animatedPoints',
- 'animation',
- 'animation-delay',
- 'animation-direction',
- 'animation-duration',
- 'animation-fill-mode',
- 'animation-iteration-count',
- 'animation-name',
- 'animation-play-state',
- 'animation-timing-function',
- 'animationDelay',
- 'animationDirection',
- 'animationDuration',
- 'animationFillMode',
- 'animationIterationCount',
- 'animationName',
- 'animationPlayState',
- 'animationStartTime',
- 'animationTimingFunction',
- 'animationsPaused',
- 'anniversary',
- 'any',
- 'app',
- 'appCodeName',
- 'appMinorVersion',
- 'appName',
- 'appNotifications',
- 'appVersion',
- 'append',
- 'appendBuffer',
- 'appendChild',
- 'appendData',
- 'appendItem',
- 'appendMedium',
- 'appendNamed',
- 'appendRule',
- 'appendStream',
- 'appendWindowEnd',
- 'appendWindowStart',
- 'applets',
- 'applicationCache',
- 'apply',
- 'applyElement',
- 'arc',
- 'arcTo',
- 'archive',
- 'areas',
- 'arguments',
- 'arrayBuffer',
- 'asin',
- 'asinh',
- 'assert',
- 'assign',
- 'async',
- 'atEnd',
- 'atan',
- 'atan2',
- 'atanh',
- 'atob',
- 'attachEvent',
- 'attachShader',
- 'attachShadow',
- 'attachments',
- 'attack',
- 'attrChange',
- 'attrName',
- 'attributeFilter',
- 'attributeName',
- 'attributeNamespace',
- 'attributeOldValue',
- 'attributes',
- 'audioTracks',
- 'autoIncrement',
- 'autobuffer',
- 'autocapitalize',
- 'autocomplete',
- 'autocorrect',
- 'autofocus',
- 'autoplay',
- 'availHeight',
- 'availLeft',
- 'availTop',
- 'availWidth',
- 'availability',
- 'available',
- 'aversion',
- 'axes',
- 'axis',
- 'azimuth',
- 'b',
- 'back',
- 'backface-visibility',
- 'backfaceVisibility',
- 'background',
- 'background-attachment',
- 'background-blend-mode',
- 'background-clip',
- 'background-color',
- 'background-image',
- 'background-origin',
- 'background-position',
- 'background-repeat',
- 'background-size',
- 'backgroundAttachment',
- 'backgroundBlendMode',
- 'backgroundClip',
- 'backgroundColor',
- 'backgroundImage',
- 'backgroundOrigin',
- 'backgroundPosition',
- 'backgroundPositionX',
- 'backgroundPositionY',
- 'backgroundRepeat',
- 'backgroundSize',
- 'badInput',
- 'balance',
- 'baseFrequencyX',
- 'baseFrequencyY',
- 'baseNode',
- 'baseOffset',
- 'baseURI',
- 'baseVal',
- 'baselineShift',
- 'battery',
- 'bday',
- 'beginElement',
- 'beginElementAt',
- 'beginPath',
- 'behavior',
- 'behaviorCookie',
- 'behaviorPart',
- 'behaviorUrns',
- 'beta',
- 'bezierCurveTo',
- 'bgColor',
- 'bgProperties',
- 'bias',
- 'big',
- 'binaryType',
- 'bind',
- 'bindAttribLocation',
- 'bindBuffer',
- 'bindFramebuffer',
- 'bindRenderbuffer',
- 'bindTexture',
- 'blendColor',
- 'blendEquation',
- 'blendEquationSeparate',
- 'blendFunc',
- 'blendFuncSeparate',
- 'blink',
- 'blob',
- 'blockDirection',
- 'blue',
- 'blur',
- 'body',
- 'bodyUsed',
- 'bold',
- 'bookmarks',
- 'booleanValue',
- 'border',
- 'border-bottom',
- 'border-bottom-color',
- 'border-bottom-left-radius',
- 'border-bottom-right-radius',
- 'border-bottom-style',
- 'border-bottom-width',
- 'border-collapse',
- 'border-color',
- 'border-image',
- 'border-image-outset',
- 'border-image-repeat',
- 'border-image-slice',
- 'border-image-source',
- 'border-image-width',
- 'border-left',
- 'border-left-color',
- 'border-left-style',
- 'border-left-width',
- 'border-radius',
- 'border-right',
- 'border-right-color',
- 'border-right-style',
- 'border-right-width',
- 'border-spacing',
- 'border-style',
- 'border-top',
- 'border-top-color',
- 'border-top-left-radius',
- 'border-top-right-radius',
- 'border-top-style',
- 'border-top-width',
- 'border-width',
- 'borderBottom',
- 'borderBottomColor',
- 'borderBottomLeftRadius',
- 'borderBottomRightRadius',
- 'borderBottomStyle',
- 'borderBottomWidth',
- 'borderCollapse',
- 'borderColor',
- 'borderColorDark',
- 'borderColorLight',
- 'borderImage',
- 'borderImageOutset',
- 'borderImageRepeat',
- 'borderImageSlice',
- 'borderImageSource',
- 'borderImageWidth',
- 'borderLeft',
- 'borderLeftColor',
- 'borderLeftStyle',
- 'borderLeftWidth',
- 'borderRadius',
- 'borderRight',
- 'borderRightColor',
- 'borderRightStyle',
- 'borderRightWidth',
- 'borderSpacing',
- 'borderStyle',
- 'borderTop',
- 'borderTopColor',
- 'borderTopLeftRadius',
- 'borderTopRightRadius',
- 'borderTopStyle',
- 'borderTopWidth',
- 'borderWidth',
- 'bottom',
- 'bottomMargin',
- 'bound',
- 'boundElements',
- 'boundingClientRect',
- 'boundingHeight',
- 'boundingLeft',
- 'boundingTop',
- 'boundingWidth',
- 'bounds',
- 'box-decoration-break',
- 'box-shadow',
- 'box-sizing',
- 'boxDecorationBreak',
- 'boxShadow',
- 'boxSizing',
- 'breakAfter',
- 'breakBefore',
- 'breakInside',
- 'browserLanguage',
- 'btoa',
- 'bubbles',
- 'buffer',
- 'bufferData',
- 'bufferDepth',
- 'bufferSize',
- 'bufferSubData',
- 'buffered',
- 'bufferedAmount',
- 'buildID',
- 'buildNumber',
- 'button',
- 'buttonID',
- 'buttons',
- 'byteLength',
- 'byteOffset',
- 'c',
- 'call',
- 'caller',
- 'canBeFormatted',
- 'canBeMounted',
- 'canBeShared',
- 'canHaveChildren',
- 'canHaveHTML',
- 'canPlayType',
- 'cancel',
- 'cancelAnimationFrame',
- 'cancelBubble',
- 'cancelScheduledValues',
- 'cancelable',
- 'candidate',
- 'canvas',
- 'caption',
- 'caption-side',
- 'captionSide',
- 'capture',
- 'captureEvents',
- 'captureStackTrace',
- 'caretPositionFromPoint',
- 'caretRangeFromPoint',
- 'cast',
- 'catch',
- 'category',
- 'cbrt',
- 'cd',
- 'ceil',
- 'cellIndex',
- 'cellPadding',
- 'cellSpacing',
- 'cells',
- 'ch',
- 'chOff',
- 'chain',
- 'challenge',
- 'changedTouches',
- 'channel',
- 'channelCount',
- 'channelCountMode',
- 'channelInterpretation',
- 'char',
- 'charAt',
- 'charCode',
- 'charCodeAt',
- 'charIndex',
- 'characterData',
- 'characterDataOldValue',
- 'characterSet',
- 'charging',
- 'chargingTime',
- 'charset',
- 'checkEnclosure',
- 'checkFramebufferStatus',
- 'checkIntersection',
- 'checkValidity',
- 'checked',
- 'childElementCount',
- 'childList',
- 'childNodes',
- 'children',
- 'chrome',
- 'ciphertext',
- 'cite',
- 'classList',
- 'className',
- 'classid',
- 'clear',
- 'clearAttributes',
- 'clearColor',
- 'clearData',
- 'clearDepth',
- 'clearImmediate',
- 'clearInterval',
- 'clearMarks',
- 'clearMeasures',
- 'clearParameters',
- 'clearRect',
- 'clearResourceTimings',
- 'clearShadow',
- 'clearStencil',
- 'clearTimeout',
- 'clearWatch',
- 'click',
- 'clickCount',
- 'clientHeight',
- 'clientInformation',
- 'clientLeft',
- 'clientRect',
- 'clientRects',
- 'clientTop',
- 'clientWidth',
- 'clientX',
- 'clientY',
- 'clip',
- 'clip-path',
- 'clip-rule',
- 'clipBottom',
- 'clipLeft',
- 'clipPath',
- 'clipPathUnits',
- 'clipRight',
- 'clipRule',
- 'clipTop',
- 'clipboardData',
- 'clone',
- 'cloneContents',
- 'cloneNode',
- 'cloneRange',
- 'close',
- 'closePath',
- 'closed',
- 'closest',
- 'clz',
- 'clz32',
- 'cmp',
- 'code',
- 'codeBase',
- 'codePointAt',
- 'codeType',
- 'colSpan',
- 'collapse',
- 'collapseToEnd',
- 'collapseToStart',
- 'collapsed',
- 'collect',
- 'colno',
- 'color',
- 'color-interpolation',
- 'color-interpolation-filters',
- 'colorDepth',
- 'colorInterpolation',
- 'colorInterpolationFilters',
- 'colorMask',
- 'colorType',
- 'cols',
- 'columnCount',
- 'columnFill',
- 'columnGap',
- 'columnNumber',
- 'columnRule',
- 'columnRuleColor',
- 'columnRuleStyle',
- 'columnRuleWidth',
- 'columnSpan',
- 'columnWidth',
- 'columns',
- 'command',
- 'commitPreferences',
- 'commonAncestorContainer',
- 'compact',
- 'compareBoundaryPoints',
- 'compareDocumentPosition',
- 'compareEndPoints',
- 'compareNode',
- 'comparePoint',
- 'compatMode',
- 'compatible',
- 'compile',
- 'compileShader',
- 'complete',
- 'componentFromPoint',
- 'compositionEndOffset',
- 'compositionStartOffset',
- 'compressedTexImage2D',
- 'compressedTexSubImage2D',
- 'concat',
- 'conditionText',
- 'coneInnerAngle',
- 'coneOuterAngle',
- 'coneOuterGain',
- 'confirm',
- 'confirmComposition',
- 'confirmSiteSpecificTrackingException',
- 'confirmWebWideTrackingException',
- 'connect',
- 'connectEnd',
- 'connectStart',
- 'connected',
- 'connection',
- 'connectionSpeed',
- 'console',
- 'consolidate',
- 'constrictionActive',
- 'constructor',
- 'contactID',
- 'contains',
- 'containsNode',
- 'content',
- 'contentDocument',
- 'contentEditable',
- 'contentOverflow',
- 'contentScriptType',
- 'contentStyleType',
- 'contentType',
- 'contentWindow',
- 'context',
- 'contextMenu',
- 'contextmenu',
- 'continue',
- 'continuous',
- 'control',
- 'controller',
- 'controls',
- 'convertToSpecifiedUnits',
- 'cookie',
- 'cookieEnabled',
- 'coords',
- 'copyFromChannel',
- 'copyTexImage2D',
- 'copyTexSubImage2D',
- 'copyToChannel',
- 'copyWithin',
- 'correspondingElement',
- 'correspondingUseElement',
- 'cos',
- 'cosh',
- 'count',
- 'counter-increment',
- 'counter-reset',
- 'counterIncrement',
- 'counterReset',
- 'cpuClass',
- 'cpuSleepAllowed',
- 'create',
- 'createAnalyser',
- 'createAnswer',
- 'createAttribute',
- 'createAttributeNS',
- 'createBiquadFilter',
- 'createBuffer',
- 'createBufferSource',
- 'createCDATASection',
- 'createCSSStyleSheet',
- 'createCaption',
- 'createChannelMerger',
- 'createChannelSplitter',
- 'createComment',
- 'createContextualFragment',
- 'createControlRange',
- 'createConvolver',
- 'createDTMFSender',
- 'createDataChannel',
- 'createDelay',
- 'createDelayNode',
- 'createDocument',
- 'createDocumentFragment',
- 'createDocumentType',
- 'createDynamicsCompressor',
- 'createElement',
- 'createElementNS',
- 'createEntityReference',
- 'createEvent',
- 'createEventObject',
- 'createExpression',
- 'createFramebuffer',
- 'createFunction',
- 'createGain',
- 'createGainNode',
- 'createHTMLDocument',
- 'createImageBitmap',
- 'createImageData',
- 'createIndex',
- 'createJavaScriptNode',
- 'createLinearGradient',
- 'createMediaElementSource',
- 'createMediaKeys',
- 'createMediaStreamDestination',
- 'createMediaStreamSource',
- 'createMutableFile',
- 'createNSResolver',
- 'createNodeIterator',
- 'createNotification',
- 'createObjectStore',
- 'createObjectURL',
- 'createOffer',
- 'createOscillator',
- 'createPanner',
- 'createPattern',
- 'createPeriodicWave',
- 'createPopup',
- 'createProcessingInstruction',
- 'createProgram',
- 'createRadialGradient',
- 'createRange',
- 'createRangeCollection',
- 'createRenderbuffer',
- 'createSVGAngle',
- 'createSVGLength',
- 'createSVGMatrix',
- 'createSVGNumber',
- 'createSVGPathSegArcAbs',
- 'createSVGPathSegArcRel',
- 'createSVGPathSegClosePath',
- 'createSVGPathSegCurvetoCubicAbs',
- 'createSVGPathSegCurvetoCubicRel',
- 'createSVGPathSegCurvetoCubicSmoothAbs',
- 'createSVGPathSegCurvetoCubicSmoothRel',
- 'createSVGPathSegCurvetoQuadraticAbs',
- 'createSVGPathSegCurvetoQuadraticRel',
- 'createSVGPathSegCurvetoQuadraticSmoothAbs',
- 'createSVGPathSegCurvetoQuadraticSmoothRel',
- 'createSVGPathSegLinetoAbs',
- 'createSVGPathSegLinetoHorizontalAbs',
- 'createSVGPathSegLinetoHorizontalRel',
- 'createSVGPathSegLinetoRel',
- 'createSVGPathSegLinetoVerticalAbs',
- 'createSVGPathSegLinetoVerticalRel',
- 'createSVGPathSegMovetoAbs',
- 'createSVGPathSegMovetoRel',
- 'createSVGPoint',
- 'createSVGRect',
- 'createSVGTransform',
- 'createSVGTransformFromMatrix',
- 'createScriptProcessor',
- 'createSession',
- 'createShader',
- 'createShadowRoot',
- 'createStereoPanner',
- 'createStyleSheet',
- 'createTBody',
- 'createTFoot',
- 'createTHead',
- 'createTextNode',
- 'createTextRange',
- 'createTexture',
- 'createTouch',
- 'createTouchList',
- 'createTreeWalker',
- 'createWaveShaper',
- 'creationTime',
- 'crossOrigin',
- 'crypto',
- 'csi',
- 'cssFloat',
- 'cssRules',
- 'cssText',
- 'cssValueType',
- 'ctrlKey',
- 'ctrlLeft',
- 'cues',
- 'cullFace',
- 'currentNode',
- 'currentPage',
- 'currentScale',
- 'currentScript',
- 'currentSrc',
- 'currentState',
- 'currentStyle',
- 'currentTarget',
- 'currentTime',
- 'currentTranslate',
- 'currentView',
- 'cursor',
- 'curve',
- 'customError',
- 'cx',
- 'cy',
- 'd',
- 'data',
- 'dataFld',
- 'dataFormatAs',
- 'dataPageSize',
- 'dataSrc',
- 'dataTransfer',
- 'database',
- 'dataset',
- 'dateTime',
- 'db',
- 'debug',
- 'debuggerEnabled',
- 'declare',
- 'decode',
- 'decodeAudioData',
- 'decodeURI',
- 'decodeURIComponent',
- 'decodingInfo',
- 'decrypt',
- 'default',
- 'defaultCharset',
- 'defaultChecked',
- 'defaultMuted',
- 'defaultPlaybackRate',
- 'defaultPrevented',
- 'defaultSelected',
- 'defaultStatus',
- 'defaultURL',
- 'defaultValue',
- 'defaultView',
- 'defaultstatus',
- 'defer',
- 'defineMagicFunction',
- 'defineMagicVariable',
- 'defineProperties',
- 'defineProperty',
- 'delayTime',
- 'delete',
- 'deleteBuffer',
- 'deleteCaption',
- 'deleteCell',
- 'deleteContents',
- 'deleteData',
- 'deleteDatabase',
- 'deleteFramebuffer',
- 'deleteFromDocument',
- 'deleteIndex',
- 'deleteMedium',
- 'deleteObjectStore',
- 'deleteProgram',
- 'deleteRenderbuffer',
- 'deleteRow',
- 'deleteRule',
- 'deleteShader',
- 'deleteTFoot',
- 'deleteTHead',
- 'deleteTexture',
- 'deliverChangeRecords',
- 'delivery',
- 'deliveryInfo',
- 'deliveryStatus',
- 'deliveryTimestamp',
- 'delta',
- 'deltaMode',
- 'deltaX',
- 'deltaY',
- 'deltaZ',
- 'depthFunc',
- 'depthMask',
- 'depthRange',
- 'deriveBits',
- 'deriveKey',
- 'description',
- 'deselectAll',
- 'designMode',
- 'destination',
- 'destinationURL',
- 'detach',
- 'detachEvent',
- 'detachShader',
- 'detail',
- 'detune',
- 'devicePixelRatio',
- 'deviceXDPI',
- 'deviceYDPI',
- 'diffuseConstant',
- 'digest',
- 'dimensions',
- 'dir',
- 'dirName',
- 'direction',
- 'dirxml',
- 'disable',
- 'disableVertexAttribArray',
- 'disabled',
- 'dischargingTime',
- 'disconnect',
- 'dispatchEvent',
- 'display',
- 'distanceModel',
- 'divisor',
- 'djsapi',
- 'djsproxy',
- 'doImport',
- 'doNotTrack',
- 'doScroll',
- 'doctype',
- 'document',
- 'documentElement',
- 'documentMode',
- 'documentURI',
- 'dolphin',
- 'dolphinGameCenter',
- 'dolphininfo',
- 'dolphinmeta',
- 'domComplete',
- 'domContentLoadedEventEnd',
- 'domContentLoadedEventStart',
- 'domInteractive',
- 'domLoading',
- 'domain',
- 'domainLookupEnd',
- 'domainLookupStart',
- 'dominant-baseline',
- 'dominantBaseline',
- 'done',
- 'dopplerFactor',
- 'download',
- 'dragDrop',
- 'draggable',
- 'drawArrays',
- 'drawArraysInstancedANGLE',
- 'drawCustomFocusRing',
- 'drawElements',
- 'drawElementsInstancedANGLE',
- 'drawFocusIfNeeded',
- 'drawImage',
- 'drawImageFromRect',
- 'drawSystemFocusRing',
- 'drawingBufferHeight',
- 'drawingBufferWidth',
- 'dropEffect',
- 'droppedVideoFrames',
- 'dropzone',
- 'dump',
- 'duplicate',
- 'duration',
- 'dvname',
- 'dvnum',
- 'dx',
- 'dy',
- 'dynsrc',
- 'e',
- 'edgeMode',
- 'effectAllowed',
- 'elapsedTime',
- 'elementFromPoint',
- 'elements',
- 'elevation',
- 'ellipse',
- 'email',
- 'embeds',
- 'empty',
- 'empty-cells',
- 'emptyCells',
- 'enable',
- 'enableBackground',
- 'enableStyleSheetsForSet',
- 'enableVertexAttribArray',
- 'enabled',
- 'enabledPlugin',
- 'encode',
- 'encodeURI',
- 'encodeURIComponent',
- 'encoding',
- 'encrypt',
- 'enctype',
- 'end',
- 'endContainer',
- 'endElement',
- 'endElementAt',
- 'endOfStream',
- 'endOffset',
- 'endTime',
- 'ended',
- 'endsWith',
- 'entities',
- 'entries',
- 'entryType',
- 'enumerate',
- 'enumerateEditable',
- 'error',
- 'errorCode',
- 'escape',
- 'eval',
- 'evaluate',
- 'event',
- 'eventPhase',
- 'every',
- 'exception',
- 'exec',
- 'execCommand',
- 'execCommandShowHelp',
- 'execScript',
- 'exitFullscreen',
- 'exitPointerLock',
- 'exp',
- 'expand',
- 'expandEntityReferences',
- 'expando',
- 'expansion',
- 'expiryDate',
- 'explicitOriginalTarget',
- 'expm1',
- 'exponent',
- 'exponentialRampToValueAtTime',
- 'exportKey',
- 'extend',
- 'extensions',
- 'extentNode',
- 'extentOffset',
- 'external',
- 'externalResourcesRequired',
- 'extractContents',
- 'extractable',
- 'f',
- 'face',
- 'factoryReset',
- 'fallback',
- 'familyName',
- 'farthestViewportElement',
- 'fastSeek',
- 'fatal',
- 'fetch',
- 'fetchStart',
- 'fftSize',
- 'fgColor',
- 'fileCreatedDate',
- 'fileHandle',
- 'fileModifiedDate',
- 'fileName',
- 'fileSize',
- 'fileUpdatedDate',
- 'filename',
- 'files',
- 'fill',
- 'fill-opacity',
- 'fill-rule',
- 'fillOpacity',
- 'fillRect',
- 'fillRule',
- 'fillStyle',
- 'fillText',
- 'filter',
- 'filterResX',
- 'filterResY',
- 'filterUnits',
- 'filters',
- 'finally',
- 'find',
- 'findIndex',
- 'findRule',
- 'findText',
- 'finish',
- 'fireEvent',
- 'firstChild',
- 'firstElementChild',
- 'firstPage',
- 'fixed',
- 'flex',
- 'flex-basis',
- 'flex-direction',
- 'flex-flow',
- 'flex-grow',
- 'flex-shrink',
- 'flex-wrap',
- 'flexBasis',
- 'flexDirection',
- 'flexFlow',
- 'flexGrow',
- 'flexShrink',
- 'flexWrap',
- 'flipX',
- 'flipY',
- 'float',
- 'flood-color',
- 'flood-opacity',
- 'floodColor',
- 'floodOpacity',
- 'floor',
- 'flush',
- 'focus',
- 'focusNode',
- 'focusOffset',
- 'font',
- 'font-family',
- 'font-feature-settings',
- 'font-kerning',
- 'font-language-override',
- 'font-size',
- 'font-size-adjust',
- 'font-stretch',
- 'font-style',
- 'font-synthesis',
- 'font-variant',
- 'font-variant-alternates',
- 'font-variant-caps',
- 'font-variant-east-asian',
- 'font-variant-ligatures',
- 'font-variant-numeric',
- 'font-variant-position',
- 'font-weight',
- 'fontFamily',
- 'fontFeatureSettings',
- 'fontKerning',
- 'fontLanguageOverride',
- 'fontSize',
- 'fontSizeAdjust',
- 'fontSmoothingEnabled',
- 'fontStretch',
- 'fontStyle',
- 'fontSynthesis',
- 'fontVariant',
- 'fontVariantAlternates',
- 'fontVariantCaps',
- 'fontVariantEastAsian',
- 'fontVariantLigatures',
- 'fontVariantNumeric',
- 'fontVariantPosition',
- 'fontWeight',
- 'fontcolor',
- 'fonts',
- 'fontsize',
- 'for',
- 'forEach',
- 'forceRedraw',
- 'form',
- 'formAction',
- 'formEnctype',
- 'formMethod',
- 'formNoValidate',
- 'formTarget',
- 'format',
- 'formatToParts',
- 'forms',
- 'forward',
- 'fr',
- 'frame',
- 'frameBorder',
- 'frameElement',
- 'frameSpacing',
- 'framebufferRenderbuffer',
- 'framebufferTexture2D',
- 'frames',
- 'freeSpace',
- 'freeze',
- 'frequency',
- 'frequencyBinCount',
- 'from',
- 'fromCharCode',
- 'fromCodePoint',
- 'fromElement',
- 'frontFace',
- 'fround',
- 'fullScreen',
- 'fullscreenElement',
- 'fullscreenEnabled',
- 'fx',
- 'fy',
- 'gain',
- 'gamepad',
- 'gamma',
- 'genderIdentity',
- 'generateKey',
- 'generateMipmap',
- 'generateRequest',
- 'geolocation',
- 'gestureObject',
- 'get',
- 'getActiveAttrib',
- 'getActiveUniform',
- 'getAdjacentText',
- 'getAll',
- 'getAllResponseHeaders',
- 'getAsFile',
- 'getAsString',
- 'getAttachedShaders',
- 'getAttribLocation',
- 'getAttribute',
- 'getAttributeNS',
- 'getAttributeNode',
- 'getAttributeNodeNS',
- 'getAudioTracks',
- 'getBBox',
- 'getBattery',
- 'getBlob',
- 'getBookmark',
- 'getBoundingClientRect',
- 'getBufferParameter',
- 'getByteFrequencyData',
- 'getByteTimeDomainData',
- 'getCSSCanvasContext',
- 'getCTM',
- 'getCandidateWindowClientRect',
- 'getChannelData',
- 'getCharNumAtPosition',
- 'getClientRect',
- 'getClientRects',
- 'getCompositionAlternatives',
- 'getComputedStyle',
- 'getComputedTextLength',
- 'getConfiguration',
- 'getContext',
- 'getContextAttributes',
- 'getCounterValue',
- 'getCueAsHTML',
- 'getCueById',
- 'getCurrentPosition',
- 'getCurrentTime',
- 'getData',
- 'getDatabaseNames',
- 'getDate',
- 'getDay',
- 'getDefaultComputedStyle',
- 'getDestinationInsertionPoints',
- 'getDistributedNodes',
- 'getEditable',
- 'getElementById',
- 'getElementsByClassName',
- 'getElementsByName',
- 'getElementsByTagName',
- 'getElementsByTagNameNS',
- 'getEnclosureList',
- 'getEndPositionOfChar',
- 'getEntries',
- 'getEntriesByName',
- 'getEntriesByType',
- 'getError',
- 'getExtension',
- 'getExtentOfChar',
- 'getFeature',
- 'getFile',
- 'getFloat32',
- 'getFloat64',
- 'getFloatFrequencyData',
- 'getFloatTimeDomainData',
- 'getFloatValue',
- 'getFramebufferAttachmentParameter',
- 'getFrequencyResponse',
- 'getFullYear',
- 'getGamepads',
- 'getHours',
- 'getImageData',
- 'getInt16',
- 'getInt32',
- 'getInt8',
- 'getIntersectionList',
- 'getItem',
- 'getItems',
- 'getKey',
- 'getLineDash',
- 'getLocalStreams',
- 'getMarks',
- 'getMatchedCSSRules',
- 'getMeasures',
- 'getMetadata',
- 'getMilliseconds',
- 'getMinutes',
- 'getModifierState',
- 'getMonth',
- 'getNamedItem',
- 'getNamedItemNS',
- 'getNotifier',
- 'getNumberOfChars',
- 'getOverrideHistoryNavigationMode',
- 'getOverrideStyle',
- 'getOwnPropertyDescriptor',
- 'getOwnPropertyNames',
- 'getOwnPropertySymbols',
- 'getParameter',
- 'getPathSegAtLength',
- 'getPointAtLength',
- 'getPreference',
- 'getPreferenceDefault',
- 'getPresentationAttribute',
- 'getPreventDefault',
- 'getProgramInfoLog',
- 'getProgramParameter',
- 'getPropertyCSSValue',
- 'getPropertyPriority',
- 'getPropertyShorthand',
- 'getPropertyValue',
- 'getPrototypeOf',
- 'getRGBColorValue',
- 'getRandomValues',
- 'getRangeAt',
- 'getReceivers',
- 'getRectValue',
- 'getRegistration',
- 'getRemoteStreams',
- 'getRenderbufferParameter',
- 'getResponseHeader',
- 'getRoot',
- 'getRotationOfChar',
- 'getSVGDocument',
- 'getScreenCTM',
- 'getSeconds',
- 'getSelection',
- 'getSenders',
- 'getShaderInfoLog',
- 'getShaderParameter',
- 'getShaderPrecisionFormat',
- 'getShaderSource',
- 'getSimpleDuration',
- 'getSiteIcons',
- 'getSources',
- 'getSpeculativeParserUrls',
- 'getStartPositionOfChar',
- 'getStartTime',
- 'getStats',
- 'getStorageUpdates',
- 'getStreamById',
- 'getStringValue',
- 'getSubStringLength',
- 'getSubscription',
- 'getSupportedExtensions',
- 'getTexParameter',
- 'getTime',
- 'getTimezoneOffset',
- 'getTotalLength',
- 'getTrackById',
- 'getTracks',
- 'getTransformToElement',
- 'getUTCDate',
- 'getUTCDay',
- 'getUTCFullYear',
- 'getUTCHours',
- 'getUTCMilliseconds',
- 'getUTCMinutes',
- 'getUTCMonth',
- 'getUTCSeconds',
- 'getUint16',
- 'getUint32',
- 'getUint8',
- 'getUniform',
- 'getUniformLocation',
- 'getUserMedia',
- 'getValues',
- 'getVarDate',
- 'getVariableValue',
- 'getVertexAttrib',
- 'getVertexAttribOffset',
- 'getVideoPlaybackQuality',
- 'getVideoTracks',
- 'getWakeLockState',
- 'getYear',
- 'givenName',
- 'global',
- 'globalAlpha',
- 'globalCompositeOperation',
- 'glyphOrientationHorizontal',
- 'glyphOrientationVertical',
- 'glyphRef',
- 'go',
- 'gradientTransform',
- 'gradientUnits',
- 'grammars',
- 'green',
- 'group',
- 'groupCollapsed',
- 'groupEnd',
- 'hardwareConcurrency',
- 'has',
- 'hasAttribute',
- 'hasAttributeNS',
- 'hasAttributes',
- 'hasChildNodes',
- 'hasComposition',
- 'hasExtension',
- 'hasFeature',
- 'hasFocus',
- 'hasLayout',
- 'hasOwnProperty',
- 'hash',
- 'head',
- 'headers',
- 'heading',
- 'height',
- 'hidden',
- 'hide',
- 'hideFocus',
- 'high',
- 'hint',
- 'history',
- 'honorificPrefix',
- 'honorificSuffix',
- 'horizontalOverflow',
- 'host',
- 'hostname',
- 'href',
- 'hreflang',
- 'hspace',
- 'html5TagCheckInerface',
- 'htmlFor',
- 'htmlText',
- 'httpEquiv',
- 'hwTimestamp',
- 'hypot',
- 'iccId',
- 'iceConnectionState',
- 'iceGatheringState',
- 'icon',
- 'id',
- 'identifier',
- 'identity',
- 'ignoreBOM',
- 'ignoreCase',
- 'image-orientation',
- 'image-rendering',
- 'imageOrientation',
- 'imageRendering',
- 'images',
- 'ime-mode',
- 'imeMode',
- 'implementation',
- 'importKey',
- 'importNode',
- 'importStylesheet',
- 'imports',
- 'impp',
- 'imul',
- 'in1',
- 'in2',
- 'inBandMetadataTrackDispatchType',
- 'inRange',
- 'includes',
- 'incremental',
- 'indeterminate',
- 'index',
- 'indexNames',
- 'indexOf',
- 'indexedDB',
- 'inertiaDestinationX',
- 'inertiaDestinationY',
- 'info',
- 'init',
- 'initAnimationEvent',
- 'initBeforeLoadEvent',
- 'initClipboardEvent',
- 'initCloseEvent',
- 'initCommandEvent',
- 'initCompositionEvent',
- 'initCustomEvent',
- 'initData',
- 'initDeviceMotionEvent',
- 'initDeviceOrientationEvent',
- 'initDragEvent',
- 'initErrorEvent',
- 'initEvent',
- 'initFocusEvent',
- 'initGestureEvent',
- 'initHashChangeEvent',
- 'initKeyEvent',
- 'initKeyboardEvent',
- 'initMSManipulationEvent',
- 'initMessageEvent',
- 'initMouseEvent',
- 'initMouseScrollEvent',
- 'initMouseWheelEvent',
- 'initMutationEvent',
- 'initNSMouseEvent',
- 'initOverflowEvent',
- 'initPageEvent',
- 'initPageTransitionEvent',
- 'initPointerEvent',
- 'initPopStateEvent',
- 'initProgressEvent',
- 'initScrollAreaEvent',
- 'initSimpleGestureEvent',
- 'initStorageEvent',
- 'initTextEvent',
- 'initTimeEvent',
- 'initTouchEvent',
- 'initTransitionEvent',
- 'initUIEvent',
- 'initWebKitAnimationEvent',
- 'initWebKitTransitionEvent',
- 'initWebKitWheelEvent',
- 'initWheelEvent',
- 'initialTime',
- 'initialize',
- 'initiatorType',
- 'inner',
- 'innerHTML',
- 'innerHeight',
- 'innerText',
- 'innerWidth',
- 'input',
- 'inputBuffer',
- 'inputEncoding',
- 'inputMethod',
- 'insertAdjacentElement',
- 'insertAdjacentHTML',
- 'insertAdjacentText',
- 'insertBefore',
- 'insertCell',
- 'insertData',
- 'insertItemBefore',
- 'insertNode',
- 'insertRow',
- 'insertRule',
- 'instanceRoot',
- 'intercept',
- 'interimResults',
- 'internalSubset',
- 'intersectsNode',
- 'interval',
- 'invalidIteratorState',
- 'inverse',
- 'invertSelf',
- 'is',
- 'is2D',
- 'isAlternate',
- 'isArray',
- 'isBingCurrentSearchDefault',
- 'isBuffer',
- 'isCandidateWindowVisible',
- 'isChar',
- 'isCollapsed',
- 'isComposing',
- 'isContentEditable',
- 'isContentHandlerRegistered',
- 'isContextLost',
- 'isDefaultNamespace',
- 'isDisabled',
- 'isEnabled',
- 'isEqual',
- 'isEqualNode',
- 'isExtensible',
- 'isFinite',
- 'isFramebuffer',
- 'isFrozen',
- 'isGenerator',
- 'isId',
- 'isInjected',
- 'isInteger',
- 'isMap',
- 'isMultiLine',
- 'isNaN',
- 'isOpen',
- 'isPointInFill',
- 'isPointInPath',
- 'isPointInRange',
- 'isPointInStroke',
- 'isPrefAlternate',
- 'isPrimary',
- 'isProgram',
- 'isPropertyImplicit',
- 'isProtocolHandlerRegistered',
- 'isPrototypeOf',
- 'isRenderbuffer',
- 'isSafeInteger',
- 'isSameNode',
- 'isSealed',
- 'isShader',
- 'isSupported',
- 'isTextEdit',
- 'isTexture',
- 'isTrusted',
- 'isTypeSupported',
- 'isView',
- 'isolation',
- 'italics',
- 'item',
- 'itemId',
- 'itemProp',
- 'itemRef',
- 'itemScope',
- 'itemType',
- 'itemValue',
- 'iterateNext',
- 'iterator',
- 'javaEnabled',
- 'jobTitle',
- 'join',
- 'json',
- 'justify-content',
- 'justifyContent',
- 'k1',
- 'k2',
- 'k3',
- 'k4',
- 'kernelMatrix',
- 'kernelUnitLengthX',
- 'kernelUnitLengthY',
- 'kerning',
- 'key',
- 'keyCode',
- 'keyFor',
- 'keyIdentifier',
- 'keyLightEnabled',
- 'keyLocation',
- 'keyPath',
- 'keySystem',
- 'keyText',
- 'keyUsage',
- 'keys',
- 'keytype',
- 'kind',
- 'knee',
- 'label',
- 'labels',
- 'lang',
- 'language',
- 'languages',
- 'largeArcFlag',
- 'lastChild',
- 'lastElementChild',
- 'lastEventId',
- 'lastIndex',
- 'lastIndexOf',
- 'lastMatch',
- 'lastMessageSubject',
- 'lastMessageType',
- 'lastModified',
- 'lastModifiedDate',
- 'lastPage',
- 'lastParen',
- 'lastState',
- 'lastStyleSheetSet',
- 'latitude',
- 'layerX',
- 'layerY',
- 'layoutFlow',
- 'layoutGrid',
- 'layoutGridChar',
- 'layoutGridLine',
- 'layoutGridMode',
- 'layoutGridType',
- 'lbound',
- 'left',
- 'leftContext',
- 'leftMargin',
- 'length',
- 'lengthAdjust',
- 'lengthComputable',
- 'letter-spacing',
- 'letterSpacing',
- 'level',
- 'lighting-color',
- 'lightingColor',
- 'limitingConeAngle',
- 'line',
- 'line-height',
- 'lineAlign',
- 'lineBreak',
- 'lineCap',
- 'lineDashOffset',
- 'lineHeight',
- 'lineJoin',
- 'lineNumber',
- 'lineTo',
- 'lineWidth',
- 'linearRampToValueAtTime',
- 'lineno',
- 'link',
- 'linkColor',
- 'linkProgram',
- 'links',
- 'list',
- 'list-style',
- 'list-style-image',
- 'list-style-position',
- 'list-style-type',
- 'listStyle',
- 'listStyleImage',
- 'listStylePosition',
- 'listStyleType',
- 'listener',
- 'load',
- 'loadEventEnd',
- 'loadEventStart',
- 'loadTimes',
- 'loaded',
- 'localDescription',
- 'localName',
- 'localStorage',
- 'locale',
- 'localeCompare',
- 'location',
- 'locationbar',
- 'lock',
- 'lockedFile',
- 'log',
- 'log10',
- 'log1p',
- 'log2',
- 'logicalXDPI',
- 'logicalYDPI',
- 'longDesc',
- 'longitude',
- 'lookupNamespaceURI',
- 'lookupPrefix',
- 'loop',
- 'loopEnd',
- 'loopStart',
- 'looping',
- 'low',
- 'lower',
- 'lowerBound',
- 'lowerOpen',
- 'lowsrc',
- 'm11',
- 'm12',
- 'm13',
- 'm14',
- 'm21',
- 'm22',
- 'm23',
- 'm24',
- 'm31',
- 'm32',
- 'm33',
- 'm34',
- 'm41',
- 'm42',
- 'm43',
- 'm44',
- 'manifest',
- 'map',
- 'mapping',
- 'margin',
- 'margin-bottom',
- 'margin-left',
- 'margin-right',
- 'margin-top',
- 'marginBottom',
- 'marginHeight',
- 'marginLeft',
- 'marginRight',
- 'marginTop',
- 'marginWidth',
- 'mark',
- 'marker',
- 'marker-end',
- 'marker-mid',
- 'marker-offset',
- 'marker-start',
- 'markerEnd',
- 'markerHeight',
- 'markerMid',
- 'markerOffset',
- 'markerStart',
- 'markerUnits',
- 'markerWidth',
- 'marks',
- 'mask',
- 'mask-type',
- 'maskContentUnits',
- 'maskType',
- 'maskUnits',
- 'match',
- 'matchMedia',
- 'matchMedium',
- 'matches',
- 'matrix',
- 'matrixTransform',
- 'max',
- 'max-height',
- 'max-width',
- 'maxAlternatives',
- 'maxChannelCount',
- 'maxConnectionsPerServer',
- 'maxDecibels',
- 'maxDistance',
- 'maxHeight',
- 'maxLength',
- 'maxTouchPoints',
- 'maxValue',
- 'maxWidth',
- 'measure',
- 'measureText',
- 'media',
- 'mediaCapabilities',
- 'mediaDevices',
- 'mediaElement',
- 'mediaGroup',
- 'mediaKeys',
- 'mediaText',
- 'meetOrSlice',
- 'memory',
- 'menubar',
- 'mergeAttributes',
- 'message',
- 'messageClass',
- 'messageHandlers',
- 'metaKey',
- 'method',
- 'mimeType',
- 'mimeTypes',
- 'min',
- 'min-height',
- 'min-width',
- 'minDecibels',
- 'minHeight',
- 'minValue',
- 'minWidth',
- 'miterLimit',
- 'mix-blend-mode',
- 'mixBlendMode',
- 'mode',
- 'modify',
- 'mount',
- 'move',
- 'moveBy',
- 'moveEnd',
- 'moveFirst',
- 'moveFocusDown',
- 'moveFocusLeft',
- 'moveFocusRight',
- 'moveFocusUp',
- 'moveNext',
- 'moveRow',
- 'moveStart',
- 'moveTo',
- 'moveToBookmark',
- 'moveToElementText',
- 'moveToPoint',
- 'mozAdd',
- 'mozAnimationStartTime',
- 'mozAnon',
- 'mozApps',
- 'mozAudioCaptured',
- 'mozAudioChannelType',
- 'mozAutoplayEnabled',
- 'mozCancelAnimationFrame',
- 'mozCancelFullScreen',
- 'mozCancelRequestAnimationFrame',
- 'mozCaptureStream',
- 'mozCaptureStreamUntilEnded',
- 'mozClearDataAt',
- 'mozContact',
- 'mozContacts',
- 'mozCreateFileHandle',
- 'mozCurrentTransform',
- 'mozCurrentTransformInverse',
- 'mozCursor',
- 'mozDash',
- 'mozDashOffset',
- 'mozDecodedFrames',
- 'mozExitPointerLock',
- 'mozFillRule',
- 'mozFragmentEnd',
- 'mozFrameDelay',
- 'mozFullScreen',
- 'mozFullScreenElement',
- 'mozFullScreenEnabled',
- 'mozGetAll',
- 'mozGetAllKeys',
- 'mozGetAsFile',
- 'mozGetDataAt',
- 'mozGetMetadata',
- 'mozGetUserMedia',
- 'mozHasAudio',
- 'mozHasItem',
- 'mozHidden',
- 'mozImageSmoothingEnabled',
- 'mozIndexedDB',
- 'mozInnerScreenX',
- 'mozInnerScreenY',
- 'mozInputSource',
- 'mozIsTextField',
- 'mozItem',
- 'mozItemCount',
- 'mozItems',
- 'mozLength',
- 'mozLockOrientation',
- 'mozMatchesSelector',
- 'mozMovementX',
- 'mozMovementY',
- 'mozOpaque',
- 'mozOrientation',
- 'mozPaintCount',
- 'mozPaintedFrames',
- 'mozParsedFrames',
- 'mozPay',
- 'mozPointerLockElement',
- 'mozPresentedFrames',
- 'mozPreservesPitch',
- 'mozPressure',
- 'mozPrintCallback',
- 'mozRTCIceCandidate',
- 'mozRTCPeerConnection',
- 'mozRTCSessionDescription',
- 'mozRemove',
- 'mozRequestAnimationFrame',
- 'mozRequestFullScreen',
- 'mozRequestPointerLock',
- 'mozSetDataAt',
- 'mozSetImageElement',
- 'mozSourceNode',
- 'mozSrcObject',
- 'mozSystem',
- 'mozTCPSocket',
- 'mozTextStyle',
- 'mozTypesAt',
- 'mozUnlockOrientation',
- 'mozUserCancelled',
- 'mozVisibilityState',
- 'msAnimation',
- 'msAnimationDelay',
- 'msAnimationDirection',
- 'msAnimationDuration',
- 'msAnimationFillMode',
- 'msAnimationIterationCount',
- 'msAnimationName',
- 'msAnimationPlayState',
- 'msAnimationStartTime',
- 'msAnimationTimingFunction',
- 'msBackfaceVisibility',
- 'msBlockProgression',
- 'msCSSOMElementFloatMetrics',
- 'msCaching',
- 'msCachingEnabled',
- 'msCancelRequestAnimationFrame',
- 'msCapsLockWarningOff',
- 'msClearImmediate',
- 'msClose',
- 'msContentZoomChaining',
- 'msContentZoomFactor',
- 'msContentZoomLimit',
- 'msContentZoomLimitMax',
- 'msContentZoomLimitMin',
- 'msContentZoomSnap',
- 'msContentZoomSnapPoints',
- 'msContentZoomSnapType',
- 'msContentZooming',
- 'msConvertURL',
- 'msCrypto',
- 'msDoNotTrack',
- 'msElementsFromPoint',
- 'msElementsFromRect',
- 'msExitFullscreen',
- 'msExtendedCode',
- 'msFillRule',
- 'msFirstPaint',
- 'msFlex',
- 'msFlexAlign',
- 'msFlexDirection',
- 'msFlexFlow',
- 'msFlexItemAlign',
- 'msFlexLinePack',
- 'msFlexNegative',
- 'msFlexOrder',
- 'msFlexPack',
- 'msFlexPositive',
- 'msFlexPreferredSize',
- 'msFlexWrap',
- 'msFlowFrom',
- 'msFlowInto',
- 'msFontFeatureSettings',
- 'msFullscreenElement',
- 'msFullscreenEnabled',
- 'msGetInputContext',
- 'msGetRegionContent',
- 'msGetUntransformedBounds',
- 'msGraphicsTrustStatus',
- 'msGridColumn',
- 'msGridColumnAlign',
- 'msGridColumnSpan',
- 'msGridColumns',
- 'msGridRow',
- 'msGridRowAlign',
- 'msGridRowSpan',
- 'msGridRows',
- 'msHidden',
- 'msHighContrastAdjust',
- 'msHyphenateLimitChars',
- 'msHyphenateLimitLines',
- 'msHyphenateLimitZone',
- 'msHyphens',
- 'msImageSmoothingEnabled',
- 'msImeAlign',
- 'msIndexedDB',
- 'msInterpolationMode',
- 'msIsStaticHTML',
- 'msKeySystem',
- 'msKeys',
- 'msLaunchUri',
- 'msLockOrientation',
- 'msManipulationViewsEnabled',
- 'msMatchMedia',
- 'msMatchesSelector',
- 'msMaxTouchPoints',
- 'msOrientation',
- 'msOverflowStyle',
- 'msPerspective',
- 'msPerspectiveOrigin',
- 'msPlayToDisabled',
- 'msPlayToPreferredSourceUri',
- 'msPlayToPrimary',
- 'msPointerEnabled',
- 'msRegionOverflow',
- 'msReleasePointerCapture',
- 'msRequestAnimationFrame',
- 'msRequestFullscreen',
- 'msSaveBlob',
- 'msSaveOrOpenBlob',
- 'msScrollChaining',
- 'msScrollLimit',
- 'msScrollLimitXMax',
- 'msScrollLimitXMin',
- 'msScrollLimitYMax',
- 'msScrollLimitYMin',
- 'msScrollRails',
- 'msScrollSnapPointsX',
- 'msScrollSnapPointsY',
- 'msScrollSnapType',
- 'msScrollSnapX',
- 'msScrollSnapY',
- 'msScrollTranslation',
- 'msSetImmediate',
- 'msSetMediaKeys',
- 'msSetPointerCapture',
- 'msTextCombineHorizontal',
- 'msTextSizeAdjust',
- 'msToBlob',
- 'msTouchAction',
- 'msTouchSelect',
- 'msTraceAsyncCallbackCompleted',
- 'msTraceAsyncCallbackStarting',
- 'msTraceAsyncOperationCompleted',
- 'msTraceAsyncOperationStarting',
- 'msTransform',
- 'msTransformOrigin',
- 'msTransformStyle',
- 'msTransition',
- 'msTransitionDelay',
- 'msTransitionDuration',
- 'msTransitionProperty',
- 'msTransitionTimingFunction',
- 'msUnlockOrientation',
- 'msUpdateAsyncCallbackRelation',
- 'msUserSelect',
- 'msVisibilityState',
- 'msWrapFlow',
- 'msWrapMargin',
- 'msWrapThrough',
- 'msWriteProfilerMark',
- 'msZoom',
- 'msZoomTo',
- 'mt',
- 'multiEntry',
- 'multiSelectionObj',
- 'multiline',
- 'multiple',
- 'multiply',
- 'multiplySelf',
- 'mutableFile',
- 'muted',
- 'n',
- 'name',
- 'nameProp',
- 'namedItem',
- 'namedRecordset',
- 'names',
- 'namespaceURI',
- 'namespaces',
- 'naturalHeight',
- 'naturalWidth',
- 'navigate',
- 'navigation',
- 'navigationMode',
- 'navigationStart',
- 'navigator',
- 'near',
- 'nearestViewportElement',
- 'negative',
- 'netscape',
- 'networkState',
- 'newScale',
- 'newTranslate',
- 'newURL',
- 'newValue',
- 'newValueSpecifiedUnits',
- 'newVersion',
- 'newhome',
- 'next',
- 'nextElementSibling',
- 'nextNode',
- 'nextPage',
- 'nextSibling',
- 'nickname',
- 'noHref',
- 'noResize',
- 'noShade',
- 'noValidate',
- 'noWrap',
- 'nodeName',
- 'nodeType',
- 'nodeValue',
- 'normalize',
- 'normalizedPathSegList',
- 'notationName',
- 'notations',
- 'note',
- 'noteGrainOn',
- 'noteOff',
- 'noteOn',
- 'now',
- 'numOctaves',
- 'number',
- 'numberOfChannels',
- 'numberOfInputs',
- 'numberOfItems',
- 'numberOfOutputs',
- 'numberValue',
- 'oMatchesSelector',
- 'object',
- 'object-fit',
- 'object-position',
- 'objectFit',
- 'objectPosition',
- 'objectStore',
- 'objectStoreNames',
- 'observe',
- 'of',
- 'offscreenBuffering',
- 'offset',
- 'offsetHeight',
- 'offsetLeft',
- 'offsetNode',
- 'offsetParent',
- 'offsetTop',
- 'offsetWidth',
- 'offsetX',
- 'offsetY',
- 'ok',
- 'oldURL',
- 'oldValue',
- 'oldVersion',
- 'olderShadowRoot',
- 'onLine',
- 'onabort',
- 'onactivate',
- 'onactive',
- 'onaddstream',
- 'onaddtrack',
- 'onafterprint',
- 'onafterscriptexecute',
- 'onafterupdate',
- 'onaudioend',
- 'onaudioprocess',
- 'onaudiostart',
- 'onautocomplete',
- 'onautocompleteerror',
- 'onbeforeactivate',
- 'onbeforecopy',
- 'onbeforecut',
- 'onbeforedeactivate',
- 'onbeforeeditfocus',
- 'onbeforepaste',
- 'onbeforeprint',
- 'onbeforescriptexecute',
- 'onbeforeunload',
- 'onbeforeupdate',
- 'onblocked',
- 'onblur',
- 'onbounce',
- 'onboundary',
- 'oncached',
- 'oncancel',
- 'oncandidatewindowhide',
- 'oncandidatewindowshow',
- 'oncandidatewindowupdate',
- 'oncanplay',
- 'oncanplaythrough',
- 'once',
- 'oncellchange',
- 'onchange',
- 'onchargingchange',
- 'onchargingtimechange',
- 'onchecking',
- 'onclick',
- 'onclose',
- 'oncompassneedscalibration',
- 'oncomplete',
- 'oncontextmenu',
- 'oncontrolselect',
- 'oncopy',
- 'oncuechange',
- 'oncut',
- 'ondataavailable',
- 'ondatachannel',
- 'ondatasetchanged',
- 'ondatasetcomplete',
- 'ondblclick',
- 'ondeactivate',
- 'ondevicelight',
- 'ondevicemotion',
- 'ondeviceorientation',
- 'ondeviceproximity',
- 'ondischargingtimechange',
- 'ondisplay',
- 'ondownloading',
- 'ondrag',
- 'ondragend',
- 'ondragenter',
- 'ondragleave',
- 'ondragover',
- 'ondragstart',
- 'ondrop',
- 'ondurationchange',
- 'onemptied',
- 'onencrypted',
- 'onend',
- 'onended',
- 'onenter',
- 'onerror',
- 'onerrorupdate',
- 'onexit',
- 'onfilterchange',
- 'onfinish',
- 'onfocus',
- 'onfocusin',
- 'onfocusout',
- 'onfullscreenchange',
- 'onfullscreenerror',
- 'ongesturechange',
- 'ongestureend',
- 'ongesturestart',
- 'ongotpointercapture',
- 'onhashchange',
- 'onhelp',
- 'onicecandidate',
- 'oniceconnectionstatechange',
- 'oninactive',
- 'oninput',
- 'oninvalid',
- 'onkeydown',
- 'onkeypress',
- 'onkeyup',
- 'onlanguagechange',
- 'onlayoutcomplete',
- 'onlevelchange',
- 'onload',
- 'onloadeddata',
- 'onloadedmetadata',
- 'onloadend',
- 'onloadstart',
- 'onlosecapture',
- 'onlostpointercapture',
- 'only',
- 'onmark',
- 'onmessage',
- 'onmousedown',
- 'onmouseenter',
- 'onmouseleave',
- 'onmousemove',
- 'onmouseout',
- 'onmouseover',
- 'onmouseup',
- 'onmousewheel',
- 'onmove',
- 'onmoveend',
- 'onmovestart',
- 'onmozfullscreenchange',
- 'onmozfullscreenerror',
- 'onmozorientationchange',
- 'onmozpointerlockchange',
- 'onmozpointerlockerror',
- 'onmscontentzoom',
- 'onmsfullscreenchange',
- 'onmsfullscreenerror',
- 'onmsgesturechange',
- 'onmsgesturedoubletap',
- 'onmsgestureend',
- 'onmsgesturehold',
- 'onmsgesturestart',
- 'onmsgesturetap',
- 'onmsgotpointercapture',
- 'onmsinertiastart',
- 'onmslostpointercapture',
- 'onmsmanipulationstatechanged',
- 'onmsneedkey',
- 'onmsorientationchange',
- 'onmspointercancel',
- 'onmspointerdown',
- 'onmspointerenter',
- 'onmspointerhover',
- 'onmspointerleave',
- 'onmspointermove',
- 'onmspointerout',
- 'onmspointerover',
- 'onmspointerup',
- 'onmssitemodejumplistitemremoved',
- 'onmsthumbnailclick',
- 'onnegotiationneeded',
- 'onnomatch',
- 'onnoupdate',
- 'onobsolete',
- 'onoffline',
- 'ononline',
- 'onopen',
- 'onorientationchange',
- 'onpagechange',
- 'onpagehide',
- 'onpageshow',
- 'onpaste',
- 'onpause',
- 'onplay',
- 'onplaying',
- 'onpluginstreamstart',
- 'onpointercancel',
- 'onpointerdown',
- 'onpointerenter',
- 'onpointerleave',
- 'onpointerlockchange',
- 'onpointerlockerror',
- 'onpointermove',
- 'onpointerout',
- 'onpointerover',
- 'onpointerup',
- 'onpopstate',
- 'onprogress',
- 'onpropertychange',
- 'onratechange',
- 'onreadystatechange',
- 'onremovestream',
- 'onremovetrack',
- 'onreset',
- 'onresize',
- 'onresizeend',
- 'onresizestart',
- 'onresourcetimingbufferfull',
- 'onresult',
- 'onresume',
- 'onrowenter',
- 'onrowexit',
- 'onrowsdelete',
- 'onrowsinserted',
- 'onscroll',
- 'onsearch',
- 'onseeked',
- 'onseeking',
- 'onselect',
- 'onselectionchange',
- 'onselectstart',
- 'onshow',
- 'onsignalingstatechange',
- 'onsoundend',
- 'onsoundstart',
- 'onspeechend',
- 'onspeechstart',
- 'onstalled',
- 'onstart',
- 'onstatechange',
- 'onstop',
- 'onstorage',
- 'onstoragecommit',
- 'onsubmit',
- 'onsuccess',
- 'onsuspend',
- 'ontextinput',
- 'ontimeout',
- 'ontimeupdate',
- 'ontoggle',
- 'ontouchcancel',
- 'ontouchend',
- 'ontouchmove',
- 'ontouchstart',
- 'ontransitionend',
- 'onunload',
- 'onupdateready',
- 'onupgradeneeded',
- 'onuserproximity',
- 'onversionchange',
- 'onvoiceschanged',
- 'onvolumechange',
- 'onwaiting',
- 'onwarning',
- 'onwebkitanimationend',
- 'onwebkitanimationiteration',
- 'onwebkitanimationstart',
- 'onwebkitcurrentplaybacktargetiswirelesschanged',
- 'onwebkitfullscreenchange',
- 'onwebkitfullscreenerror',
- 'onwebkitkeyadded',
- 'onwebkitkeyerror',
- 'onwebkitkeymessage',
- 'onwebkitneedkey',
- 'onwebkitorientationchange',
- 'onwebkitplaybacktargetavailabilitychanged',
- 'onwebkitpointerlockchange',
- 'onwebkitpointerlockerror',
- 'onwebkitresourcetimingbufferfull',
- 'onwebkittransitionend',
- 'onwheel',
- 'onzoom',
- 'opacity',
- 'open',
- 'openCursor',
- 'openDatabase',
- 'openKeyCursor',
- 'opener',
- 'opera',
- 'operationType',
- 'operator',
- 'opr',
- 'optimum',
- 'options',
- 'order',
- 'orderX',
- 'orderY',
- 'ordered',
- 'org',
- 'orient',
- 'orientAngle',
- 'orientType',
- 'orientation',
- 'origin',
- 'originalTarget',
- 'orphans',
- 'oscpu',
- 'outerHTML',
- 'outerHeight',
- 'outerText',
- 'outerWidth',
- 'outline',
- 'outline-color',
- 'outline-offset',
- 'outline-style',
- 'outline-width',
- 'outlineColor',
- 'outlineOffset',
- 'outlineStyle',
- 'outlineWidth',
- 'outputBuffer',
- 'overflow',
- 'overflow-x',
- 'overflow-y',
- 'overflowX',
- 'overflowY',
- 'overrideMimeType',
- 'oversample',
- 'ownerDocument',
- 'ownerElement',
- 'ownerNode',
- 'ownerRule',
- 'ownerSVGElement',
- 'owningElement',
- 'p1',
- 'p2',
- 'p3',
- 'p4',
- 'pad',
- 'padding',
- 'padding-bottom',
- 'padding-left',
- 'padding-right',
- 'padding-top',
- 'paddingBottom',
- 'paddingLeft',
- 'paddingRight',
- 'paddingTop',
- 'page',
- 'page-break-after',
- 'page-break-before',
- 'page-break-inside',
- 'pageBreakAfter',
- 'pageBreakBefore',
- 'pageBreakInside',
- 'pageCount',
- 'pageX',
- 'pageXOffset',
- 'pageY',
- 'pageYOffset',
- 'pages',
- 'paint-order',
- 'paintOrder',
- 'paintRequests',
- 'paintType',
- 'palette',
- 'panningModel',
- 'parent',
- 'parentElement',
- 'parentNode',
- 'parentRule',
- 'parentStyleSheet',
- 'parentTextEdit',
- 'parentWindow',
- 'parse',
- 'parseFloat',
- 'parseFromString',
- 'parseInt',
- 'participants',
- 'passive',
- 'password',
- 'pasteHTML',
- 'path',
- 'pathLength',
- 'pathSegList',
- 'pathSegType',
- 'pathSegTypeAsLetter',
- 'pathname',
- 'pattern',
- 'patternContentUnits',
- 'patternMismatch',
- 'patternTransform',
- 'patternUnits',
- 'pause',
- 'pauseAnimations',
- 'pauseOnExit',
- 'paused',
- 'pending',
- 'performance',
- 'permission',
- 'persisted',
- 'personalbar',
- 'perspective',
- 'perspective-origin',
- 'perspectiveOrigin',
- 'phoneticFamilyName',
- 'phoneticGivenName',
- 'photo',
- 'ping',
- 'pitch',
- 'pixelBottom',
- 'pixelDepth',
- 'pixelHeight',
- 'pixelLeft',
- 'pixelRight',
- 'pixelStorei',
- 'pixelTop',
- 'pixelUnitToMillimeterX',
- 'pixelUnitToMillimeterY',
- 'pixelWidth',
- 'placeholder',
- 'platform',
- 'play',
- 'playbackRate',
- 'playbackState',
- 'playbackTime',
- 'played',
- 'plugins',
- 'pluginspage',
- 'pname',
- 'pointer-events',
- 'pointerBeforeReferenceNode',
- 'pointerEnabled',
- 'pointerEvents',
- 'pointerId',
- 'pointerLockElement',
- 'pointerType',
- 'points',
- 'pointsAtX',
- 'pointsAtY',
- 'pointsAtZ',
- 'polygonOffset',
- 'pop',
- 'popupWindowFeatures',
- 'popupWindowName',
- 'popupWindowURI',
- 'port',
- 'port1',
- 'port2',
- 'ports',
- 'posBottom',
- 'posHeight',
- 'posLeft',
- 'posRight',
- 'posTop',
- 'posWidth',
- 'position',
- 'positionAlign',
- 'postError',
- 'postMessage',
- 'poster',
- 'pow',
- 'powerOff',
- 'preMultiplySelf',
- 'precision',
- 'preferredStyleSheetSet',
- 'preferredStylesheetSet',
- 'prefix',
- 'preload',
- 'prepend',
- 'preserveAlpha',
- 'preserveAspectRatio',
- 'preserveAspectRatioString',
- 'pressed',
- 'pressure',
- 'prevValue',
- 'preventDefault',
- 'preventExtensions',
- 'previousElementSibling',
- 'previousNode',
- 'previousPage',
- 'previousScale',
- 'previousSibling',
- 'previousTranslate',
- 'primaryKey',
- 'primitiveType',
- 'primitiveUnits',
- 'principals',
- 'print',
- 'privateKey',
- 'probablySupportsContext',
- 'process',
- 'processIceMessage',
- 'product',
- 'productSub',
- 'profile',
- 'profileEnd',
- 'profiles',
- 'prompt',
- 'properties',
- 'propertyIsEnumerable',
- 'propertyName',
- 'protocol',
- 'protocolLong',
- 'prototype',
- 'pseudoClass',
- 'pseudoElement',
- 'publicId',
- 'publicKey',
- 'published',
- 'push',
- 'pushNotification',
- 'pushState',
- 'put',
- 'putImageData',
- 'quadraticCurveTo',
- 'qualifier',
- 'queryCommandEnabled',
- 'queryCommandIndeterm',
- 'queryCommandState',
- 'queryCommandSupported',
- 'queryCommandText',
- 'queryCommandValue',
- 'querySelector',
- 'querySelectorAll',
- 'quote',
- 'quotes',
- 'r',
- 'r1',
- 'r2',
- 'race',
- 'radiogroup',
- 'radiusX',
- 'radiusY',
- 'random',
- 'range',
- 'rangeCount',
- 'rangeMax',
- 'rangeMin',
- 'rangeOffset',
- 'rangeOverflow',
- 'rangeParent',
- 'rangeUnderflow',
- 'rate',
- 'ratio',
- 'raw',
- 'read',
- 'readAsArrayBuffer',
- 'readAsBinaryString',
- 'readAsBlob',
- 'readAsDataURL',
- 'readAsText',
- 'readOnly',
- 'readPixels',
- 'readReportRequested',
- 'readyState',
- 'reason',
- 'reboot',
- 'receiver',
- 'receivers',
- 'recordNumber',
- 'recordset',
- 'rect',
- 'red',
- 'redirectCount',
- 'redirectEnd',
- 'redirectStart',
- 'reduce',
- 'reduceRight',
- 'reduction',
- 'refDistance',
- 'refX',
- 'refY',
- 'referenceNode',
- 'referrer',
- 'refresh',
- 'region',
- 'regionAnchorX',
- 'regionAnchorY',
- 'regionId',
- 'regions',
- 'register',
- 'registerContentHandler',
- 'registerElement',
- 'registerProtocolHandler',
- 'reject',
- 'rel',
- 'relList',
- 'relatedNode',
- 'relatedTarget',
- 'release',
- 'releaseCapture',
- 'releaseEvents',
- 'releasePointerCapture',
- 'releaseShaderCompiler',
- 'reliable',
- 'reload',
- 'remainingSpace',
- 'remoteDescription',
- 'remove',
- 'removeAllRanges',
- 'removeAttribute',
- 'removeAttributeNS',
- 'removeAttributeNode',
- 'removeBehavior',
- 'removeChild',
- 'removeCue',
- 'removeEventListener',
- 'removeFilter',
- 'removeImport',
- 'removeItem',
- 'removeListener',
- 'removeNamedItem',
- 'removeNamedItemNS',
- 'removeNode',
- 'removeParameter',
- 'removeProperty',
- 'removeRange',
- 'removeRegion',
- 'removeRule',
- 'removeSiteSpecificTrackingException',
- 'removeSourceBuffer',
- 'removeStream',
- 'removeTrack',
- 'removeVariable',
- 'removeWakeLockListener',
- 'removeWebWideTrackingException',
- 'removedNodes',
- 'renderbufferStorage',
- 'renderedBuffer',
- 'renderingMode',
- 'repeat',
- 'replace',
- 'replaceAdjacentText',
- 'replaceChild',
- 'replaceData',
- 'replaceId',
- 'replaceItem',
- 'replaceNode',
- 'replaceState',
- 'replaceTrack',
- 'replaceWholeText',
- 'reportValidity',
- 'requestAnimationFrame',
- 'requestAutocomplete',
- 'requestData',
- 'requestFullscreen',
- 'requestMediaKeySystemAccess',
- 'requestPermission',
- 'requestPointerLock',
- 'requestStart',
- 'requestingWindow',
- 'required',
- 'requiredExtensions',
- 'requiredFeatures',
- 'reset',
- 'resetTransform',
- 'resize',
- 'resizeBy',
- 'resizeTo',
- 'resolve',
- 'response',
- 'responseBody',
- 'responseEnd',
- 'responseStart',
- 'responseText',
- 'responseType',
- 'responseURL',
- 'responseXML',
- 'restore',
- 'result',
- 'resultType',
- 'resume',
- 'returnValue',
- 'rev',
- 'reverse',
- 'reversed',
- 'revocable',
- 'revokeObjectURL',
- 'rgbColor',
- 'right',
- 'rightContext',
- 'rightMargin',
- 'rolloffFactor',
- 'root',
- 'rootElement',
- 'rotate',
- 'rotateAxisAngle',
- 'rotateAxisAngleSelf',
- 'rotateFromVector',
- 'rotateFromVectorSelf',
- 'rotateSelf',
- 'rotation',
- 'rotationRate',
- 'round',
- 'rowIndex',
- 'rowSpan',
- 'rows',
- 'rubyAlign',
- 'rubyOverhang',
- 'rubyPosition',
- 'rules',
- 'runtime',
- 'runtimeStyle',
- 'rx',
- 'ry',
- 'safari',
- 'sampleCoverage',
- 'sampleRate',
- 'sandbox',
- 'save',
- 'scale',
- 'scale3d',
- 'scale3dSelf',
- 'scaleNonUniform',
- 'scaleNonUniformSelf',
- 'scaleSelf',
- 'scheme',
- 'scissor',
- 'scope',
- 'scopeName',
- 'scoped',
- 'screen',
- 'screenBrightness',
- 'screenEnabled',
- 'screenLeft',
- 'screenPixelToMillimeterX',
- 'screenPixelToMillimeterY',
- 'screenTop',
- 'screenX',
- 'screenY',
- 'scripts',
- 'scroll',
- 'scroll-behavior',
- 'scrollAmount',
- 'scrollBehavior',
- 'scrollBy',
- 'scrollByLines',
- 'scrollByPages',
- 'scrollDelay',
- 'scrollHeight',
- 'scrollIntoView',
- 'scrollIntoViewIfNeeded',
- 'scrollLeft',
- 'scrollLeftMax',
- 'scrollMaxX',
- 'scrollMaxY',
- 'scrollTo',
- 'scrollTop',
- 'scrollTopMax',
- 'scrollWidth',
- 'scrollX',
- 'scrollY',
- 'scrollbar3dLightColor',
- 'scrollbarArrowColor',
- 'scrollbarBaseColor',
- 'scrollbarDarkShadowColor',
- 'scrollbarFaceColor',
- 'scrollbarHighlightColor',
- 'scrollbarShadowColor',
- 'scrollbarTrackColor',
- 'scrollbars',
- 'scrolling',
- 'sdp',
- 'sdpMLineIndex',
- 'sdpMid',
- 'seal',
- 'search',
- 'searchBox',
- 'searchBoxJavaBridge_',
- 'searchParams',
- 'sectionRowIndex',
- 'secureConnectionStart',
- 'security',
- 'seed',
- 'seekable',
- 'seeking',
- 'select',
- 'selectAllChildren',
- 'selectNode',
- 'selectNodeContents',
- 'selectNodes',
- 'selectSingleNode',
- 'selectSubString',
- 'selected',
- 'selectedIndex',
- 'selectedOptions',
- 'selectedStyleSheetSet',
- 'selectedStylesheetSet',
- 'selection',
- 'selectionDirection',
- 'selectionEnd',
- 'selectionStart',
- 'selector',
- 'selectorText',
- 'self',
- 'send',
- 'sendAsBinary',
- 'sendBeacon',
- 'sender',
- 'sentTimestamp',
- 'separator',
- 'serializeToString',
- 'serviceWorker',
- 'sessionId',
- 'sessionStorage',
- 'set',
- 'setActive',
- 'setAlpha',
- 'setAttribute',
- 'setAttributeNS',
- 'setAttributeNode',
- 'setAttributeNodeNS',
- 'setBaseAndExtent',
- 'setBingCurrentSearchDefault',
- 'setCapture',
- 'setColor',
- 'setCompositeOperation',
- 'setCurrentTime',
- 'setCustomValidity',
- 'setData',
- 'setDate',
- 'setDragImage',
- 'setEnd',
- 'setEndAfter',
- 'setEndBefore',
- 'setEndPoint',
- 'setFillColor',
- 'setFilterRes',
- 'setFloat32',
- 'setFloat64',
- 'setFloatValue',
- 'setFullYear',
- 'setHours',
- 'setImmediate',
- 'setInt16',
- 'setInt32',
- 'setInt8',
- 'setInterval',
- 'setItem',
- 'setLineCap',
- 'setLineDash',
- 'setLineJoin',
- 'setLineWidth',
- 'setLocalDescription',
- 'setMatrix',
- 'setMatrixValue',
- 'setMediaKeys',
- 'setMilliseconds',
- 'setMinutes',
- 'setMiterLimit',
- 'setMonth',
- 'setNamedItem',
- 'setNamedItemNS',
- 'setNonUserCodeExceptions',
- 'setOrientToAngle',
- 'setOrientToAuto',
- 'setOrientation',
- 'setOverrideHistoryNavigationMode',
- 'setPaint',
- 'setParameter',
- 'setPeriodicWave',
- 'setPointerCapture',
- 'setPosition',
- 'setPreference',
- 'setProperty',
- 'setPrototypeOf',
- 'setRGBColor',
- 'setRGBColorICCColor',
- 'setRadius',
- 'setRangeText',
- 'setRemoteDescription',
- 'setRequestHeader',
- 'setResizable',
- 'setResourceTimingBufferSize',
- 'setRotate',
- 'setScale',
- 'setSeconds',
- 'setSelectionRange',
- 'setServerCertificate',
- 'setShadow',
- 'setSkewX',
- 'setSkewY',
- 'setStart',
- 'setStartAfter',
- 'setStartBefore',
- 'setStdDeviation',
- 'setStringValue',
- 'setStrokeColor',
- 'setSuggestResult',
- 'setTargetAtTime',
- 'setTargetValueAtTime',
- 'setTime',
- 'setTimeout',
- 'setTransform',
- 'setTranslate',
- 'setUTCDate',
- 'setUTCFullYear',
- 'setUTCHours',
- 'setUTCMilliseconds',
- 'setUTCMinutes',
- 'setUTCMonth',
- 'setUTCSeconds',
- 'setUint16',
- 'setUint32',
- 'setUint8',
- 'setUri',
- 'setValueAtTime',
- 'setValueCurveAtTime',
- 'setVariable',
- 'setVelocity',
- 'setVersion',
- 'setYear',
- 'settingName',
- 'settingValue',
- 'sex',
- 'shaderSource',
- 'shadowBlur',
- 'shadowColor',
- 'shadowOffsetX',
- 'shadowOffsetY',
- 'shadowRoot',
- 'shape',
- 'shape-rendering',
- 'shapeRendering',
- 'sheet',
- 'shift',
- 'shiftKey',
- 'shiftLeft',
- 'show',
- 'showHelp',
- 'showModal',
- 'showModalDialog',
- 'showModelessDialog',
- 'showNotification',
- 'sidebar',
- 'sign',
- 'signalingState',
- 'sin',
- 'singleNodeValue',
- 'sinh',
- 'size',
- 'sizeToContent',
- 'sizes',
- 'skewX',
- 'skewXSelf',
- 'skewY',
- 'skewYSelf',
- 'slice',
- 'slope',
- 'small',
- 'smil',
- 'smooth',
- 'smoothingTimeConstant',
- 'snapToLines',
- 'snapshotItem',
- 'snapshotLength',
- 'some',
- 'sort',
- 'source',
- 'sourceBuffer',
- 'sourceBuffers',
- 'sourceIndex',
- 'spacing',
- 'span',
- 'speakAs',
- 'speaking',
- 'specified',
- 'specularConstant',
- 'specularExponent',
- 'speechSynthesis',
- 'speed',
- 'speedOfSound',
- 'spellcheck',
- 'splice',
- 'split',
- 'splitText',
- 'spreadMethod',
- 'sqrt',
- 'src',
- 'srcElement',
- 'srcFilter',
- 'srcUrn',
- 'srcdoc',
- 'srclang',
- 'srcset',
- 'stack',
- 'stackTraceLimit',
- 'stacktrace',
- 'standalone',
- 'standby',
- 'start',
- 'startContainer',
- 'startIce',
- 'startOffset',
- 'startRendering',
- 'startTime',
- 'startsWith',
- 'state',
- 'status',
- 'statusMessage',
- 'statusText',
- 'statusbar',
- 'stdDeviationX',
- 'stdDeviationY',
- 'stencilFunc',
- 'stencilFuncSeparate',
- 'stencilMask',
- 'stencilMaskSeparate',
- 'stencilOp',
- 'stencilOpSeparate',
- 'step',
- 'stepDown',
- 'stepMismatch',
- 'stepUp',
- 'sticky',
- 'stitchTiles',
- 'stop',
- 'stop-color',
- 'stop-opacity',
- 'stopColor',
- 'stopImmediatePropagation',
- 'stopOpacity',
- 'stopPropagation',
- 'storageArea',
- 'storageName',
- 'storageStatus',
- 'storeSiteSpecificTrackingException',
- 'storeWebWideTrackingException',
- 'stpVersion',
- 'stream',
- 'strike',
- 'stringValue',
- 'stringify',
- 'stroke',
- 'stroke-dasharray',
- 'stroke-dashoffset',
- 'stroke-linecap',
- 'stroke-linejoin',
- 'stroke-miterlimit',
- 'stroke-opacity',
- 'stroke-width',
- 'strokeDasharray',
- 'strokeDashoffset',
- 'strokeLinecap',
- 'strokeLinejoin',
- 'strokeMiterlimit',
- 'strokeOpacity',
- 'strokeRect',
- 'strokeStyle',
- 'strokeText',
- 'strokeWidth',
- 'style',
- 'styleFloat',
- 'styleMedia',
- 'styleSheet',
- 'styleSheetSets',
- 'styleSheets',
- 'sub',
- 'subarray',
- 'subject',
- 'submit',
- 'subscribe',
- 'substr',
- 'substring',
- 'substringData',
- 'subtle',
- 'subtree',
- 'suffix',
- 'suffixes',
- 'summary',
- 'sup',
- 'supports',
- 'surfaceScale',
- 'surroundContents',
- 'suspend',
- 'suspendRedraw',
- 'swapCache',
- 'swapNode',
- 'sweepFlag',
- 'symbols',
- 'system',
- 'systemCode',
- 'systemId',
- 'systemLanguage',
- 'systemXDPI',
- 'systemYDPI',
- 'tBodies',
- 'tFoot',
- 'tHead',
- 'tabIndex',
- 'table',
- 'table-layout',
- 'tableLayout',
- 'tableValues',
- 'tag',
- 'tagName',
- 'tagUrn',
- 'tags',
- 'taintEnabled',
- 'takeRecords',
- 'tan',
- 'tanh',
- 'target',
- 'targetElement',
- 'targetTouches',
- 'targetX',
- 'targetY',
- 'tel',
- 'terminate',
- 'test',
- 'texImage2D',
- 'texParameterf',
- 'texParameteri',
- 'texSubImage2D',
- 'text',
- 'text-align',
- 'text-anchor',
- 'text-decoration',
- 'text-decoration-color',
- 'text-decoration-line',
- 'text-decoration-style',
- 'text-indent',
- 'text-overflow',
- 'text-rendering',
- 'text-shadow',
- 'text-transform',
- 'textAlign',
- 'textAlignLast',
- 'textAnchor',
- 'textAutospace',
- 'textBaseline',
- 'textContent',
- 'textDecoration',
- 'textDecorationBlink',
- 'textDecorationColor',
- 'textDecorationLine',
- 'textDecorationLineThrough',
- 'textDecorationNone',
- 'textDecorationOverline',
- 'textDecorationStyle',
- 'textDecorationUnderline',
- 'textIndent',
- 'textJustify',
- 'textJustifyTrim',
- 'textKashida',
- 'textKashidaSpace',
- 'textLength',
- 'textOverflow',
- 'textRendering',
- 'textShadow',
- 'textTracks',
- 'textTransform',
- 'textUnderlinePosition',
- 'then',
- 'threadId',
- 'threshold',
- 'tiltX',
- 'tiltY',
- 'time',
- 'timeEnd',
- 'timeStamp',
- 'timeout',
- 'timestamp',
- 'timestampOffset',
- 'timing',
- 'title',
- 'toArray',
- 'toBlob',
- 'toDataURL',
- 'toDateString',
- 'toElement',
- 'toExponential',
- 'toFixed',
- 'toFloat32Array',
- 'toFloat64Array',
- 'toGMTString',
- 'toISOString',
- 'toJSON',
- 'toLocaleDateString',
- 'toLocaleFormat',
- 'toLocaleLowerCase',
- 'toLocaleString',
- 'toLocaleTimeString',
- 'toLocaleUpperCase',
- 'toLowerCase',
- 'toMethod',
- 'toPrecision',
- 'toSdp',
- 'toSource',
- 'toStaticHTML',
- 'toString',
- 'toStringTag',
- 'toTimeString',
- 'toUTCString',
- 'toUpperCase',
- 'toggle',
- 'toggleLongPressEnabled',
- 'tooLong',
- 'toolbar',
- 'top',
- 'topMargin',
- 'total',
- 'totalFrameDelay',
- 'totalVideoFrames',
- 'touchAction',
- 'touches',
- 'trace',
- 'track',
- 'transaction',
- 'transactions',
- 'transform',
- 'transform-origin',
- 'transform-style',
- 'transformOrigin',
- 'transformPoint',
- 'transformString',
- 'transformStyle',
- 'transformToDocument',
- 'transformToFragment',
- 'transition',
- 'transition-delay',
- 'transition-duration',
- 'transition-property',
- 'transition-timing-function',
- 'transitionDelay',
- 'transitionDuration',
- 'transitionProperty',
- 'transitionTimingFunction',
- 'translate',
- 'translateSelf',
- 'translationX',
- 'translationY',
- 'trim',
- 'trimLeft',
- 'trimRight',
- 'trueSpeed',
- 'trunc',
- 'truncate',
- 'type',
- 'typeDetail',
- 'typeMismatch',
- 'typeMustMatch',
- 'types',
- 'ubound',
- 'undefined',
- 'unescape',
- 'uneval',
- 'unicode-bidi',
- 'unicodeBidi',
- 'uniform1f',
- 'uniform1fv',
- 'uniform1i',
- 'uniform1iv',
- 'uniform2f',
- 'uniform2fv',
- 'uniform2i',
- 'uniform2iv',
- 'uniform3f',
- 'uniform3fv',
- 'uniform3i',
- 'uniform3iv',
- 'uniform4f',
- 'uniform4fv',
- 'uniform4i',
- 'uniform4iv',
- 'uniformMatrix2fv',
- 'uniformMatrix3fv',
- 'uniformMatrix4fv',
- 'unique',
- 'uniqueID',
- 'uniqueNumber',
- 'unitType',
- 'units',
- 'unloadEventEnd',
- 'unloadEventStart',
- 'unlock',
- 'unmount',
- 'unobserve',
- 'unpause',
- 'unpauseAnimations',
- 'unreadCount',
- 'unregister',
- 'unregisterContentHandler',
- 'unregisterProtocolHandler',
- 'unscopables',
- 'unselectable',
- 'unshift',
- 'unsubscribe',
- 'unsuspendRedraw',
- 'unsuspendRedrawAll',
- 'unwatch',
- 'unwrapKey',
- 'update',
- 'updateCommands',
- 'updateIce',
- 'updateInterval',
- 'updateSettings',
- 'updated',
- 'updating',
- 'upload',
- 'upper',
- 'upperBound',
- 'upperOpen',
- 'uri',
- 'url',
- 'urn',
- 'urns',
- 'usages',
- 'useCurrentView',
- 'useMap',
- 'useProgram',
- 'usedSpace',
- 'userAgent',
- 'userLanguage',
- 'username',
- 'v8BreakIterator',
- 'vAlign',
- 'vLink',
- 'valid',
- 'validateProgram',
- 'validationMessage',
- 'validity',
- 'value',
- 'valueAsDate',
- 'valueAsNumber',
- 'valueAsString',
- 'valueInSpecifiedUnits',
- 'valueMissing',
- 'valueOf',
- 'valueText',
- 'valueType',
- 'values',
- 'vector-effect',
- 'vectorEffect',
- 'velocityAngular',
- 'velocityExpansion',
- 'velocityX',
- 'velocityY',
- 'vendor',
- 'vendorSub',
- 'verify',
- 'version',
- 'vertexAttrib1f',
- 'vertexAttrib1fv',
- 'vertexAttrib2f',
- 'vertexAttrib2fv',
- 'vertexAttrib3f',
- 'vertexAttrib3fv',
- 'vertexAttrib4f',
- 'vertexAttrib4fv',
- 'vertexAttribDivisorANGLE',
- 'vertexAttribPointer',
- 'vertical',
- 'vertical-align',
- 'verticalAlign',
- 'verticalOverflow',
- 'vibrate',
- 'videoHeight',
- 'videoTracks',
- 'videoWidth',
- 'view',
- 'viewBox',
- 'viewBoxString',
- 'viewTarget',
- 'viewTargetString',
- 'viewport',
- 'viewportAnchorX',
- 'viewportAnchorY',
- 'viewportElement',
- 'visibility',
- 'visibilityState',
- 'visible',
- 'vlinkColor',
- 'voice',
- 'volume',
- 'vrml',
- 'vspace',
- 'w',
- 'wand',
- 'warn',
- 'wasClean',
- 'watch',
- 'watchPosition',
- 'webdriver',
- 'webkitAddKey',
- 'webkitAnimation',
- 'webkitAnimationDelay',
- 'webkitAnimationDirection',
- 'webkitAnimationDuration',
- 'webkitAnimationFillMode',
- 'webkitAnimationIterationCount',
- 'webkitAnimationName',
- 'webkitAnimationPlayState',
- 'webkitAnimationTimingFunction',
- 'webkitAppearance',
- 'webkitAudioContext',
- 'webkitAudioDecodedByteCount',
- 'webkitAudioPannerNode',
- 'webkitBackfaceVisibility',
- 'webkitBackground',
- 'webkitBackgroundAttachment',
- 'webkitBackgroundClip',
- 'webkitBackgroundColor',
- 'webkitBackgroundImage',
- 'webkitBackgroundOrigin',
- 'webkitBackgroundPosition',
- 'webkitBackgroundPositionX',
- 'webkitBackgroundPositionY',
- 'webkitBackgroundRepeat',
- 'webkitBackgroundSize',
- 'webkitBackingStorePixelRatio',
- 'webkitBorderImage',
- 'webkitBorderImageOutset',
- 'webkitBorderImageRepeat',
- 'webkitBorderImageSlice',
- 'webkitBorderImageSource',
- 'webkitBorderImageWidth',
- 'webkitBoxAlign',
- 'webkitBoxDirection',
- 'webkitBoxFlex',
- 'webkitBoxOrdinalGroup',
- 'webkitBoxOrient',
- 'webkitBoxPack',
- 'webkitBoxSizing',
- 'webkitCancelAnimationFrame',
- 'webkitCancelFullScreen',
- 'webkitCancelKeyRequest',
- 'webkitCancelRequestAnimationFrame',
- 'webkitClearResourceTimings',
- 'webkitClosedCaptionsVisible',
- 'webkitConvertPointFromNodeToPage',
- 'webkitConvertPointFromPageToNode',
- 'webkitCreateShadowRoot',
- 'webkitCurrentFullScreenElement',
- 'webkitCurrentPlaybackTargetIsWireless',
- 'webkitDirectionInvertedFromDevice',
- 'webkitDisplayingFullscreen',
- 'webkitEnterFullScreen',
- 'webkitEnterFullscreen',
- 'webkitExitFullScreen',
- 'webkitExitFullscreen',
- 'webkitExitPointerLock',
- 'webkitFullScreenKeyboardInputAllowed',
- 'webkitFullscreenElement',
- 'webkitFullscreenEnabled',
- 'webkitGenerateKeyRequest',
- 'webkitGetAsEntry',
- 'webkitGetDatabaseNames',
- 'webkitGetEntries',
- 'webkitGetEntriesByName',
- 'webkitGetEntriesByType',
- 'webkitGetFlowByName',
- 'webkitGetGamepads',
- 'webkitGetImageDataHD',
- 'webkitGetNamedFlows',
- 'webkitGetRegionFlowRanges',
- 'webkitGetUserMedia',
- 'webkitHasClosedCaptions',
- 'webkitHidden',
- 'webkitIDBCursor',
- 'webkitIDBDatabase',
- 'webkitIDBDatabaseError',
- 'webkitIDBDatabaseException',
- 'webkitIDBFactory',
- 'webkitIDBIndex',
- 'webkitIDBKeyRange',
- 'webkitIDBObjectStore',
- 'webkitIDBRequest',
- 'webkitIDBTransaction',
- 'webkitImageSmoothingEnabled',
- 'webkitIndexedDB',
- 'webkitInitMessageEvent',
- 'webkitIsFullScreen',
- 'webkitKeys',
- 'webkitLineDashOffset',
- 'webkitLockOrientation',
- 'webkitMatchesSelector',
- 'webkitMediaStream',
- 'webkitNotifications',
- 'webkitOfflineAudioContext',
- 'webkitOrientation',
- 'webkitPeerConnection00',
- 'webkitPersistentStorage',
- 'webkitPointerLockElement',
- 'webkitPostMessage',
- 'webkitPreservesPitch',
- 'webkitPutImageDataHD',
- 'webkitRTCPeerConnection',
- 'webkitRegionOverset',
- 'webkitRequestAnimationFrame',
- 'webkitRequestFileSystem',
- 'webkitRequestFullScreen',
- 'webkitRequestFullscreen',
- 'webkitRequestPointerLock',
- 'webkitResolveLocalFileSystemURL',
- 'webkitSetMediaKeys',
- 'webkitSetResourceTimingBufferSize',
- 'webkitShadowRoot',
- 'webkitShowPlaybackTargetPicker',
- 'webkitSlice',
- 'webkitSpeechGrammar',
- 'webkitSpeechGrammarList',
- 'webkitSpeechRecognition',
- 'webkitSpeechRecognitionError',
- 'webkitSpeechRecognitionEvent',
- 'webkitStorageInfo',
- 'webkitSupportsFullscreen',
- 'webkitTemporaryStorage',
- 'webkitTextSizeAdjust',
- 'webkitTransform',
- 'webkitTransformOrigin',
- 'webkitTransition',
- 'webkitTransitionDelay',
- 'webkitTransitionDuration',
- 'webkitTransitionProperty',
- 'webkitTransitionTimingFunction',
- 'webkitURL',
- 'webkitUnlockOrientation',
- 'webkitUserSelect',
- 'webkitVideoDecodedByteCount',
- 'webkitVisibilityState',
- 'webkitWirelessVideoPlaybackDisabled',
- 'webkitdropzone',
- 'webstore',
- 'weight',
- 'whatToShow',
- 'wheelDelta',
- 'wheelDeltaX',
- 'wheelDeltaY',
- 'which',
- 'white-space',
- 'whiteSpace',
- 'wholeText',
- 'widows',
- 'width',
- 'will-change',
- 'willChange',
- 'willValidate',
- 'window',
- 'withCredentials',
- 'word-break',
- 'word-spacing',
- 'word-wrap',
- 'wordBreak',
- 'wordSpacing',
- 'wordWrap',
- 'wrap',
- 'wrapKey',
- 'write',
- 'writeln',
- 'writingMode',
- 'x',
- 'x1',
- 'x2',
- 'xChannelSelector',
- 'xmlEncoding',
- 'xmlStandalone',
- 'xmlVersion',
- 'xmlbase',
- 'xmllang',
- 'xmlspace',
- 'y',
- 'y1',
- 'y2',
- 'yChannelSelector',
- 'yandex',
- 'z',
- 'z-index',
- 'zIndex',
- 'zoom',
- 'zoomAndPan',
- 'zoomRectScreen'
- ];
- /***/ }),
- /***/ "./src/container/InversifyContainerFacade.ts":
- /*!***************************************************!*\
- !*** ./src/container/InversifyContainerFacade.ts ***!
- \***************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.InversifyContainerFacade = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ./ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const AnalyzersModule_1 = __webpack_require__(/*! ./modules/analyzers/AnalyzersModule */ "./src/container/modules/analyzers/AnalyzersModule.ts");
- const CodeTransformersModule_1 = __webpack_require__(/*! ./modules/code-transformers/CodeTransformersModule */ "./src/container/modules/code-transformers/CodeTransformersModule.ts");
- const ControlFlowTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/ControlFlowTransformersModule */ "./src/container/modules/node-transformers/ControlFlowTransformersModule.ts");
- const ConvertingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/ConvertingTransformersModule */ "./src/container/modules/node-transformers/ConvertingTransformersModule.ts");
- const CustomCodeHelpersModule_1 = __webpack_require__(/*! ./modules/custom-code-helpers/CustomCodeHelpersModule */ "./src/container/modules/custom-code-helpers/CustomCodeHelpersModule.ts");
- const CustomNodesModule_1 = __webpack_require__(/*! ./modules/custom-nodes/CustomNodesModule */ "./src/container/modules/custom-nodes/CustomNodesModule.ts");
- const FinalizingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/FinalizingTransformersModule */ "./src/container/modules/node-transformers/FinalizingTransformersModule.ts");
- const GeneratorsModule_1 = __webpack_require__(/*! ./modules/generators/GeneratorsModule */ "./src/container/modules/generators/GeneratorsModule.ts");
- const InitializingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/InitializingTransformersModule */ "./src/container/modules/node-transformers/InitializingTransformersModule.ts");
- const ManglePropertiesTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/ManglePropertiesTransformersModule */ "./src/container/modules/node-transformers/ManglePropertiesTransformersModule.ts");
- const NodeModule_1 = __webpack_require__(/*! ./modules/node/NodeModule */ "./src/container/modules/node/NodeModule.ts");
- const NodeTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/NodeTransformersModule */ "./src/container/modules/node-transformers/NodeTransformersModule.ts");
- const ObfuscatingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/ObfuscatingTransformersModule */ "./src/container/modules/node-transformers/ObfuscatingTransformersModule.ts");
- const OptionsModule_1 = __webpack_require__(/*! ./modules/options/OptionsModule */ "./src/container/modules/options/OptionsModule.ts");
- const PreparingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/PreparingTransformersModule */ "./src/container/modules/node-transformers/PreparingTransformersModule.ts");
- const StoragesModule_1 = __webpack_require__(/*! ./modules/storages/StoragesModule */ "./src/container/modules/storages/StoragesModule.ts");
- const UtilsModule_1 = __webpack_require__(/*! ./modules/utils/UtilsModule */ "./src/container/modules/utils/UtilsModule.ts");
- const CodeTransformersRunner_1 = __webpack_require__(/*! ../code-transformers/CodeTransformersRunner */ "./src/code-transformers/CodeTransformersRunner.ts");
- const JavaScriptObfuscator_1 = __webpack_require__(/*! ../JavaScriptObfuscator */ "./src/JavaScriptObfuscator.ts");
- const Logger_1 = __webpack_require__(/*! ../logger/Logger */ "./src/logger/Logger.ts");
- const NodeTransformersRunner_1 = __webpack_require__(/*! ../node-transformers/NodeTransformersRunner */ "./src/node-transformers/NodeTransformersRunner.ts");
- const ObfuscationEventEmitter_1 = __webpack_require__(/*! ../event-emitters/ObfuscationEventEmitter */ "./src/event-emitters/ObfuscationEventEmitter.ts");
- const ObfuscatedCode_1 = __webpack_require__(/*! ../source-code/ObfuscatedCode */ "./src/source-code/ObfuscatedCode.ts");
- const SourceCode_1 = __webpack_require__(/*! ../source-code/SourceCode */ "./src/source-code/SourceCode.ts");
- class InversifyContainerFacade {
- constructor() {
- this.container = new inversify_1.Container();
- }
- static getFactory(serviceIdentifier) {
- return (context) => {
- return (bindingName) => {
- return context.container.getNamed(serviceIdentifier, bindingName);
- };
- };
- }
- static getCacheFactory(serviceIdentifier) {
- return (context) => {
- const cache = new Map();
- return (bindingName) => {
- if (cache.has(bindingName)) {
- return cache.get(bindingName);
- }
- const object = context.container.getNamed(serviceIdentifier, bindingName);
- cache.set(bindingName, object);
- return object;
- };
- };
- }
- static getConstructorFactory(serviceIdentifier, ...dependencies) {
- return (context) => {
- const cache = new Map();
- const cachedDependencies = [];
- return (bindingName) => {
- dependencies.forEach((dependency, index) => {
- if (!cachedDependencies[index]) {
- cachedDependencies[index] = context.container.get(dependency);
- }
- });
- if (cache.has(bindingName)) {
- return new (cache.get(bindingName))(...cachedDependencies);
- }
- const constructor = context.container
- .getNamed(serviceIdentifier, bindingName);
- cache.set(bindingName, constructor);
- return new constructor(...cachedDependencies);
- };
- };
- }
- get(serviceIdentifier) {
- return this.container.get(serviceIdentifier);
- }
- getNamed(serviceIdentifier, named) {
- return this.container.getNamed(serviceIdentifier, named);
- }
- load(sourceCode, sourceMap, options) {
- this.container
- .bind(ServiceIdentifiers_1.ServiceIdentifiers.ISourceCode)
- .toDynamicValue(() => new SourceCode_1.SourceCode(sourceCode, sourceMap))
- .inSingletonScope();
- this.container
- .bind(ServiceIdentifiers_1.ServiceIdentifiers.TInputOptions)
- .toDynamicValue(() => 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.ICodeTransformersRunner)
- .to(CodeTransformersRunner_1.CodeTransformersRunner)
- .inSingletonScope();
- this.container
- .bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformersRunner)
- .to(NodeTransformersRunner_1.NodeTransformersRunner)
- .inSingletonScope();
- this.container
- .bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatedCode)
- .to(ObfuscatedCode_1.ObfuscatedCode);
- this.container
- .bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatedCode)
- .toFactory((context) => {
- return (obfuscatedCodeAsString, sourceMapAsString) => {
- const 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(CodeTransformersModule_1.codeTransformersModule);
- this.container.load(ControlFlowTransformersModule_1.controlFlowTransformersModule);
- this.container.load(ConvertingTransformersModule_1.convertingTransformersModule);
- this.container.load(CustomCodeHelpersModule_1.customCodeHelpersModule);
- this.container.load(CustomNodesModule_1.customNodesModule);
- this.container.load(FinalizingTransformersModule_1.finalizingTransformersModule);
- this.container.load(GeneratorsModule_1.generatorsModule);
- this.container.load(InitializingTransformersModule_1.initializingTransformersModule);
- this.container.load(ManglePropertiesTransformersModule_1.manglePropertiesTransformersModule);
- this.container.load(NodeModule_1.nodeModule);
- 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);
- }
- unload() {
- this.container.unbindAll();
- }
- }
- 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 });
- exports.ServiceIdentifiers = void 0;
- var ServiceIdentifiers;
- (function (ServiceIdentifiers) {
- ServiceIdentifiers["Factory__ICalleeDataExtractor"] = "Factory<ICalleeDataExtractor>";
- ServiceIdentifiers["Factory__ICodeTransformer"] = "Factory<ICodeTransformer[]>";
- ServiceIdentifiers["Factory__IControlFlowCustomNode"] = "Factory<IControlFlowCustomNode>";
- ServiceIdentifiers["Factory__IControlFlowReplacer"] = "Factory<IControlFlowReplacer>";
- ServiceIdentifiers["Factory__ICustomCodeHelper"] = "Factory<ICustomCodeHelper>";
- ServiceIdentifiers["Factory__ICustomCodeHelperGroup"] = "Factory<ICustomCodeHelperGroup>";
- 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__IObjectExpressionKeysTransformerCustomNode"] = "Factory<IObjectExpressionKeysTransformerCustomNode>";
- ServiceIdentifiers["Factory__IObjectExpressionExtractor"] = "Factory<IObjectExpressionExtractor>";
- ServiceIdentifiers["Factory__TControlFlowStorage"] = "Factory<TControlFlowStorage>";
- ServiceIdentifiers["IArrayUtils"] = "IArrayUtils";
- ServiceIdentifiers["ICalleeDataExtractor"] = "ICalleeDataExtractor";
- ServiceIdentifiers["ICallsGraphAnalyzer"] = "ICallsGraphAnalyzer";
- ServiceIdentifiers["ICodeTransformer"] = "ICodeTransformer";
- ServiceIdentifiers["ICodeTransformerNamesGroupsBuilder"] = "ICodeTransformerNamesGroupsBuilder";
- ServiceIdentifiers["ICodeTransformersRunner"] = "ICodeTransformersRunner";
- ServiceIdentifiers["ICryptUtils"] = "ICryptUtils";
- ServiceIdentifiers["ICustomCodeHelper"] = "ICustomCodeHelper";
- ServiceIdentifiers["ICustomCodeHelperGroup"] = "ICustomCodeHelperGroup";
- ServiceIdentifiers["IControlFlowReplacer"] = "IControlFlowReplacer";
- ServiceIdentifiers["ICustomCodeHelperFormatter"] = "ICustomCodeHelperFormatter";
- ServiceIdentifiers["ICustomCodeHelperObfuscator"] = "ICustomCodeHelperObfuscator";
- ServiceIdentifiers["IEscapeSequenceEncoder"] = "IEscapeSequenceEncoder";
- ServiceIdentifiers["IIdentifierNamesGenerator"] = "IIdentifierNamesGenerator";
- ServiceIdentifiers["IIdentifierObfuscatingReplacer"] = "IIdentifierObfuscatingReplacer";
- ServiceIdentifiers["IJavaScriptObfuscator"] = "IJavaScriptObfuscator";
- ServiceIdentifiers["ILevelledTopologicalSorter"] = "ILevelledTopologicalSorter";
- ServiceIdentifiers["ILogger"] = "ILogger";
- ServiceIdentifiers["IManglePropertiesObfuscatingReplacer"] = "IManglePropertiesObfuscatingReplacer";
- 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["IPrevailingKindOfVariablesAnalyzer"] = "IPrevailingKindOfVariablesAnalyzer";
- ServiceIdentifiers["IObjectExpressionExtractor"] = "IObjectExpressionExtractor";
- ServiceIdentifiers["IRandomGenerator"] = "IRandomGenerator";
- ServiceIdentifiers["IScopeIdentifiersTraverser"] = "IScopeIdentifiersTraverser";
- ServiceIdentifiers["ISourceCode"] = "ISourceCode";
- ServiceIdentifiers["IScopeAnalyzer"] = "IScopeAnalyzer";
- ServiceIdentifiers["IStringArrayStorage"] = "IStringArrayStorage";
- ServiceIdentifiers["IStringArrayStorageAnalyzer"] = "IStringArrayStorageAnalyzer";
- ServiceIdentifiers["INodeTransformersRunner"] = "INodeTransformersRunner";
- ServiceIdentifiers["Newable__ICustomNode"] = "Newable<ICustomNode>";
- ServiceIdentifiers["Newable__TControlFlowStorage"] = "Newable<TControlFlowStorage>";
- ServiceIdentifiers["TCustomNodeGroupStorage"] = "TCustomNodeGroupStorage";
- ServiceIdentifiers["TInputOptions"] = "TInputOptions";
- })(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 });
- exports.analyzersModule = void 0;
- const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const CalleeDataExtractor_1 = __webpack_require__(/*! ../../../enums/analyzers/calls-graph-analyzer/CalleeDataExtractor */ "./src/enums/analyzers/calls-graph-analyzer/CalleeDataExtractor.ts");
- const CallsGraphAnalyzer_1 = __webpack_require__(/*! ../../../analyzers/calls-graph-analyzer/CallsGraphAnalyzer */ "./src/analyzers/calls-graph-analyzer/CallsGraphAnalyzer.ts");
- const FunctionDeclarationCalleeDataExtractor_1 = __webpack_require__(/*! ../../../analyzers/calls-graph-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor */ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts");
- const FunctionExpressionCalleeDataExtractor_1 = __webpack_require__(/*! ../../../analyzers/calls-graph-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor */ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts");
- const ObjectExpressionCalleeDataExtractor_1 = __webpack_require__(/*! ../../../analyzers/calls-graph-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor */ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts");
- const PrevailingKindOfVariablesAnalyzer_1 = __webpack_require__(/*! ../../../analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer */ "./src/analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer.ts");
- const ScopeAnalyzer_1 = __webpack_require__(/*! ../../../analyzers/scope-analyzer/ScopeAnalyzer */ "./src/analyzers/scope-analyzer/ScopeAnalyzer.ts");
- const StringArrayStorageAnalyzer_1 = __webpack_require__(/*! ../../../analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer */ "./src/analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer.ts");
- exports.analyzersModule = new inversify_1.ContainerModule((bind) => {
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICallsGraphAnalyzer)
- .to(CallsGraphAnalyzer_1.CallsGraphAnalyzer)
- .inSingletonScope();
- bind(ServiceIdentifiers_1.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)
- .to(PrevailingKindOfVariablesAnalyzer_1.PrevailingKindOfVariablesAnalyzer)
- .inSingletonScope();
- bind(ServiceIdentifiers_1.ServiceIdentifiers.IScopeAnalyzer)
- .to(ScopeAnalyzer_1.ScopeAnalyzer)
- .inSingletonScope();
- bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorageAnalyzer)
- .to(StringArrayStorageAnalyzer_1.StringArrayStorageAnalyzer)
- .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/code-transformers/CodeTransformersModule.ts":
- /*!***************************************************************************!*\
- !*** ./src/container/modules/code-transformers/CodeTransformersModule.ts ***!
- \***************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.codeTransformersModule = void 0;
- const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const CodeTransformer_1 = __webpack_require__(/*! ../../../enums/code-transformers/CodeTransformer */ "./src/enums/code-transformers/CodeTransformer.ts");
- const CodeTransformerNamesGroupsBuilder_1 = __webpack_require__(/*! ../../../code-transformers/CodeTransformerNamesGroupsBuilder */ "./src/code-transformers/CodeTransformerNamesGroupsBuilder.ts");
- const HashbangOperatorTransformer_1 = __webpack_require__(/*! ../../../code-transformers/preparing-transformers/HashbangOperatorTransformer */ "./src/code-transformers/preparing-transformers/HashbangOperatorTransformer.ts");
- exports.codeTransformersModule = new inversify_1.ContainerModule((bind) => {
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICodeTransformer)
- .toFactory(InversifyContainerFacade_1.InversifyContainerFacade
- .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformer));
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder)
- .to(CodeTransformerNamesGroupsBuilder_1.CodeTransformerNamesGroupsBuilder)
- .inSingletonScope();
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformer)
- .to(HashbangOperatorTransformer_1.HashbangOperatorTransformer)
- .whenTargetNamed(CodeTransformer_1.CodeTransformer.HashbangOperatorTransformer);
- });
- /***/ }),
- /***/ "./src/container/modules/custom-code-helpers/CustomCodeHelpersModule.ts":
- /*!******************************************************************************!*\
- !*** ./src/container/modules/custom-code-helpers/CustomCodeHelpersModule.ts ***!
- \******************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.customCodeHelpersModule = void 0;
- const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const CustomCodeHelper_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelper */ "./src/enums/custom-code-helpers/CustomCodeHelper.ts");
- const CustomCodeHelperGroup_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelperGroup */ "./src/enums/custom-code-helpers/CustomCodeHelperGroup.ts");
- const ConsoleOutputCodeHelperGroup_1 = __webpack_require__(/*! ../../../custom-code-helpers/console-output/group/ConsoleOutputCodeHelperGroup */ "./src/custom-code-helpers/console-output/group/ConsoleOutputCodeHelperGroup.ts");
- const DebugProtectionCodeHelperGroup_1 = __webpack_require__(/*! ../../../custom-code-helpers/debug-protection/group/DebugProtectionCodeHelperGroup */ "./src/custom-code-helpers/debug-protection/group/DebugProtectionCodeHelperGroup.ts");
- const DomainLockCustomCodeHelperGroup_1 = __webpack_require__(/*! ../../../custom-code-helpers/domain-lock/group/DomainLockCustomCodeHelperGroup */ "./src/custom-code-helpers/domain-lock/group/DomainLockCustomCodeHelperGroup.ts");
- const SelfDefendingCodeHelperGroup_1 = __webpack_require__(/*! ../../../custom-code-helpers/self-defending/group/SelfDefendingCodeHelperGroup */ "./src/custom-code-helpers/self-defending/group/SelfDefendingCodeHelperGroup.ts");
- const StringArrayCodeHelperGroup_1 = __webpack_require__(/*! ../../../custom-code-helpers/string-array/group/StringArrayCodeHelperGroup */ "./src/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.ts");
- const ConsoleOutputDisableCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/console-output/ConsoleOutputDisableCodeHelper */ "./src/custom-code-helpers/console-output/ConsoleOutputDisableCodeHelper.ts");
- const CustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../../custom-code-helpers/CustomCodeHelperFormatter */ "./src/custom-code-helpers/CustomCodeHelperFormatter.ts");
- const CustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../../custom-code-helpers/CustomCodeHelperObfuscator */ "./src/custom-code-helpers/CustomCodeHelperObfuscator.ts");
- const DebugProtectionFunctionCallCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper */ "./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper.ts");
- const DebugProtectionFunctionIntervalCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/debug-protection/DebugProtectionFunctionIntervalCodeHelper */ "./src/custom-code-helpers/debug-protection/DebugProtectionFunctionIntervalCodeHelper.ts");
- const DebugProtectionFunctionCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/debug-protection/DebugProtectionFunctionCodeHelper */ "./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCodeHelper.ts");
- const DomainLockCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/domain-lock/DomainLockCodeHelper */ "./src/custom-code-helpers/domain-lock/DomainLockCodeHelper.ts");
- const CallsControllerFunctionCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/calls-controller/CallsControllerFunctionCodeHelper */ "./src/custom-code-helpers/calls-controller/CallsControllerFunctionCodeHelper.ts");
- const SelfDefendingUnicodeCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/self-defending/SelfDefendingUnicodeCodeHelper */ "./src/custom-code-helpers/self-defending/SelfDefendingUnicodeCodeHelper.ts");
- const StringArrayCallsWrapperCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper */ "./src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts");
- const StringArrayCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/string-array/StringArrayCodeHelper */ "./src/custom-code-helpers/string-array/StringArrayCodeHelper.ts");
- const StringArrayRotateFunctionCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper */ "./src/custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper.ts");
- exports.customCodeHelpersModule = new inversify_1.ContainerModule((bind) => {
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)
- .to(ConsoleOutputDisableCodeHelper_1.ConsoleOutputDisableCodeHelper)
- .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)
- .to(DebugProtectionFunctionCallCodeHelper_1.DebugProtectionFunctionCallCodeHelper)
- .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)
- .to(DebugProtectionFunctionIntervalCodeHelper_1.DebugProtectionFunctionIntervalCodeHelper)
- .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)
- .to(DebugProtectionFunctionCodeHelper_1.DebugProtectionFunctionCodeHelper)
- .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)
- .to(DomainLockCodeHelper_1.DomainLockCodeHelper)
- .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DomainLock);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)
- .to(CallsControllerFunctionCodeHelper_1.CallsControllerFunctionCodeHelper)
- .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)
- .to(SelfDefendingUnicodeCodeHelper_1.SelfDefendingUnicodeCodeHelper)
- .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)
- .to(StringArrayCallsWrapperCodeHelper_1.StringArrayCallsWrapperCodeHelper)
- .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)
- .to(StringArrayCodeHelper_1.StringArrayCodeHelper)
- .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArray);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)
- .to(StringArrayRotateFunctionCodeHelper_1.StringArrayRotateFunctionCodeHelper)
- .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup)
- .to(ConsoleOutputCodeHelperGroup_1.ConsoleOutputCodeHelperGroup)
- .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.ConsoleOutput);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup)
- .to(DebugProtectionCodeHelperGroup_1.DebugProtectionCodeHelperGroup)
- .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.DebugProtection);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup)
- .to(DomainLockCustomCodeHelperGroup_1.DomainLockCustomCodeHelperGroup)
- .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.DomainLock);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup)
- .to(SelfDefendingCodeHelperGroup_1.SelfDefendingCodeHelperGroup)
- .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.SelfDefending);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup)
- .to(StringArrayCodeHelperGroup_1.StringArrayCodeHelperGroup)
- .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.StringArray);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)
- .toFactory(InversifyContainerFacade_1.InversifyContainerFacade
- .getFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper));
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelperGroup)
- .toFactory(InversifyContainerFacade_1.InversifyContainerFacade
- .getFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup));
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)
- .to(CustomCodeHelperFormatter_1.CustomCodeHelperFormatter)
- .inSingletonScope();
- bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)
- .to(CustomCodeHelperObfuscator_1.CustomCodeHelperObfuscator)
- .inSingletonScope();
- });
- /***/ }),
- /***/ "./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 });
- exports.customNodesModule = void 0;
- const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
- const DeadCodeInjectionCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/DeadCodeInjectionCustomNode */ "./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts");
- const ObjectExpressionKeysTransformerCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode */ "./src/enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode.ts");
- const ObjectExpressionVariableDeclarationHostNode_1 = __webpack_require__(/*! ../../../custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode */ "./src/custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode.ts");
- const BinaryExpressionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode */ "./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts");
- const BlockStatementControlFlowFlatteningNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode */ "./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts");
- const BlockStatementDeadCodeInjectionNode_1 = __webpack_require__(/*! ../../../custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode */ "./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts");
- const CallExpressionControlFlowStorageCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts");
- const CallExpressionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode */ "./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts");
- const ControlFlowStorageNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts");
- const ExpressionWithOperatorControlFlowStorageCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts");
- const LogicalExpressionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode */ "./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts");
- const StringLiteralControlFlowStorageCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts");
- const 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((bind) => {
- 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.Newable__ICustomNode)
- .toConstructor(ObjectExpressionVariableDeclarationHostNode_1.ObjectExpressionVariableDeclarationHostNode)
- .whenTargetNamed(ObjectExpressionKeysTransformerCustomNode_1.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)
- .toFactory(InversifyContainerFacade_1.InversifyContainerFacade
- .getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions, ServiceIdentifiers_1.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer));
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)
- .toFactory(InversifyContainerFacade_1.InversifyContainerFacade
- .getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions));
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode)
- .toFactory(InversifyContainerFacade_1.InversifyContainerFacade
- .getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions, ServiceIdentifiers_1.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer));
- });
- /***/ }),
- /***/ "./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 });
- exports.generatorsModule = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts");
- const DictionaryIdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../generators/identifier-names-generators/DictionaryIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/DictionaryIdentifierNamesGenerator.ts");
- const HexadecimalIdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts");
- const MangledIdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../generators/identifier-names-generators/MangledIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts");
- exports.generatorsModule = new inversify_1.ContainerModule((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);
- function identifierNameGeneratorFactory() {
- let cachedIdentifierNamesGenerator = null;
- return (context) => (options) => {
- if (cachedIdentifierNamesGenerator) {
- return cachedIdentifierNamesGenerator;
- }
- let 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;
- };
- }
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
- .toFactory(identifierNameGeneratorFactory());
- });
- /***/ }),
- /***/ "./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 });
- exports.controlFlowTransformersModule = void 0;
- const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const ControlFlowReplacer_1 = __webpack_require__(/*! ../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts");
- const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
- const BinaryExpressionControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts");
- const BlockStatementControlFlowTransformer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer */ "./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts");
- const CallExpressionControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts");
- const DeadCodeInjectionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer */ "./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts");
- const FunctionControlFlowTransformer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/FunctionControlFlowTransformer */ "./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts");
- const LogicalExpressionControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts");
- const StringLiteralControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts");
- exports.controlFlowTransformersModule = new inversify_1.ContainerModule((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 });
- exports.convertingTransformersModule = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
- const ObjectExpressionExtractor_1 = __webpack_require__(/*! ../../../enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor */ "./src/enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor.ts");
- const ObjectExpressionToVariableDeclarationExtractor_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor */ "./src/node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor.ts");
- const MemberExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/MemberExpressionTransformer */ "./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts");
- const MethodDefinitionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/MethodDefinitionTransformer */ "./src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts");
- const ObjectExpressionKeysTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/ObjectExpressionKeysTransformer */ "./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts");
- const ObjectExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/ObjectExpressionTransformer */ "./src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts");
- const SplitStringTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/SplitStringTransformer */ "./src/node-transformers/converting-transformers/SplitStringTransformer.ts");
- const TemplateLiteralTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/TemplateLiteralTransformer */ "./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts");
- const BasePropertiesExtractor_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor */ "./src/node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor.ts");
- exports.convertingTransformersModule = new inversify_1.ContainerModule((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.IObjectExpressionExtractor)
- .to(ObjectExpressionToVariableDeclarationExtractor_1.ObjectExpressionToVariableDeclarationExtractor)
- .whenTargetNamed(ObjectExpressionExtractor_1.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.IObjectExpressionExtractor)
- .to(BasePropertiesExtractor_1.BasePropertiesExtractor)
- .whenTargetNamed(ObjectExpressionExtractor_1.ObjectExpressionExtractor.BasePropertiesExtractor);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionExtractor)
- .toFactory(InversifyContainerFacade_1.InversifyContainerFacade
- .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IObjectExpressionExtractor));
- });
- /***/ }),
- /***/ "./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 });
- exports.finalizingTransformersModule = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- exports.finalizingTransformersModule = new inversify_1.ContainerModule((bind) => {
- });
- /***/ }),
- /***/ "./src/container/modules/node-transformers/InitializingTransformersModule.ts":
- /*!***********************************************************************************!*\
- !*** ./src/container/modules/node-transformers/InitializingTransformersModule.ts ***!
- \***********************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.initializingTransformersModule = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
- const CommentsTransformer_1 = __webpack_require__(/*! ../../../node-transformers/initializing-transformers/CommentsTransformer */ "./src/node-transformers/initializing-transformers/CommentsTransformer.ts");
- exports.initializingTransformersModule = new inversify_1.ContainerModule((bind) => {
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
- .to(CommentsTransformer_1.CommentsTransformer)
- .whenTargetNamed(NodeTransformer_1.NodeTransformer.CommentsTransformer);
- });
- /***/ }),
- /***/ "./src/container/modules/node-transformers/ManglePropertiesTransformersModule.ts":
- /*!***************************************************************************************!*\
- !*** ./src/container/modules/node-transformers/ManglePropertiesTransformersModule.ts ***!
- \***************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.manglePropertiesTransformersModule = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
- const ManglePropertiesReplacer_1 = __webpack_require__(/*! ../../../node-transformers/mangle-properties-transformers/replacer/ManglePropertiesReplacer */ "./src/node-transformers/mangle-properties-transformers/replacer/ManglePropertiesReplacer.ts");
- const ManglePropertiesTransformer_1 = __webpack_require__(/*! ../../../node-transformers/mangle-properties-transformers/ManglePropertiesTransformer */ "./src/node-transformers/mangle-properties-transformers/ManglePropertiesTransformer.ts");
- exports.manglePropertiesTransformersModule = new inversify_1.ContainerModule((bind) => {
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
- .to(ManglePropertiesTransformer_1.ManglePropertiesTransformer)
- .whenTargetNamed(NodeTransformer_1.NodeTransformer.ManglePropertiesTransformer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.IManglePropertiesObfuscatingReplacer)
- .to(ManglePropertiesReplacer_1.ManglePropertiesReplacer);
- });
- /***/ }),
- /***/ "./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 });
- exports.nodeTransformersModule = void 0;
- const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const NodeTransformerNamesGroupsBuilder_1 = __webpack_require__(/*! ../../../node-transformers/NodeTransformerNamesGroupsBuilder */ "./src/node-transformers/NodeTransformerNamesGroupsBuilder.ts");
- exports.nodeTransformersModule = new inversify_1.ContainerModule((bind) => {
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeTransformer)
- .toFactory(InversifyContainerFacade_1.InversifyContainerFacade
- .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer));
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder)
- .to(NodeTransformerNamesGroupsBuilder_1.NodeTransformerNamesGroupsBuilder)
- .inSingletonScope();
- });
- /***/ }),
- /***/ "./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 });
- exports.obfuscatingTransformersModule = void 0;
- const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
- const LiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts");
- const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
- const 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");
- const 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");
- const LabeledStatementTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/LabeledStatementTransformer */ "./src/node-transformers/obfuscating-transformers/LabeledStatementTransformer.ts");
- const LiteralTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/LiteralTransformer */ "./src/node-transformers/obfuscating-transformers/LiteralTransformer.ts");
- const 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");
- const 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");
- const ScopeIdentifiersTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/ScopeIdentifiersTransformer */ "./src/node-transformers/obfuscating-transformers/ScopeIdentifiersTransformer.ts");
- exports.obfuscatingTransformersModule = new inversify_1.ContainerModule((bind) => {
- 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(ScopeIdentifiersTransformer_1.ScopeIdentifiersTransformer)
- .whenTargetNamed(NodeTransformer_1.NodeTransformer.ScopeIdentifiersTransformer);
- 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 });
- exports.preparingTransformersModule = void 0;
- const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
- const ObfuscatingGuard_1 = __webpack_require__(/*! ../../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard */ "./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts");
- const BlackListObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts");
- const ConditionalCommentObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts");
- const CustomCodeHelpersTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/CustomCodeHelpersTransformer */ "./src/node-transformers/preparing-transformers/CustomCodeHelpersTransformer.ts");
- const EvalCallExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/EvalCallExpressionTransformer */ "./src/node-transformers/preparing-transformers/EvalCallExpressionTransformer.ts");
- const MetadataTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/MetadataTransformer */ "./src/node-transformers/preparing-transformers/MetadataTransformer.ts");
- const ObfuscatingGuardsTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/ObfuscatingGuardsTransformer */ "./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts");
- const ParentificationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/ParentificationTransformer */ "./src/node-transformers/preparing-transformers/ParentificationTransformer.ts");
- const ReservedStringObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard.ts");
- const VariablePreserveTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/VariablePreserveTransformer */ "./src/node-transformers/preparing-transformers/VariablePreserveTransformer.ts");
- exports.preparingTransformersModule = new inversify_1.ContainerModule((bind) => {
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
- .to(CustomCodeHelpersTransformer_1.CustomCodeHelpersTransformer)
- .whenTargetNamed(NodeTransformer_1.NodeTransformer.CustomCodeHelpersTransformer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
- .to(EvalCallExpressionTransformer_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.BlackListObfuscatingGuard);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)
- .to(ConditionalCommentObfuscatingGuard_1.ConditionalCommentObfuscatingGuard)
- .inSingletonScope()
- .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.ConditionalCommentObfuscatingGuard);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)
- .to(ReservedStringObfuscatingGuard_1.ReservedStringObfuscatingGuard)
- .inSingletonScope()
- .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.ReservedStringObfuscatingGuard);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
- .to(VariablePreserveTransformer_1.VariablePreserveTransformer)
- .whenTargetNamed(NodeTransformer_1.NodeTransformer.VariablePreserveTransformer);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeGuard)
- .toFactory(InversifyContainerFacade_1.InversifyContainerFacade
- .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard));
- });
- /***/ }),
- /***/ "./src/container/modules/node/NodeModule.ts":
- /*!**************************************************!*\
- !*** ./src/container/modules/node/NodeModule.ts ***!
- \**************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.nodeModule = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const ScopeIdentifiersTraverser_1 = __webpack_require__(/*! ../../../node/ScopeIdentifiersTraverser */ "./src/node/ScopeIdentifiersTraverser.ts");
- exports.nodeModule = new inversify_1.ContainerModule((bind) => {
- bind(ServiceIdentifiers_1.ServiceIdentifiers.IScopeIdentifiersTraverser)
- .to(ScopeIdentifiersTraverser_1.ScopeIdentifiersTraverser)
- .inSingletonScope();
- });
- /***/ }),
- /***/ "./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 });
- exports.optionsModule = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const Options_1 = __webpack_require__(/*! ../../../options/Options */ "./src/options/Options.ts");
- const OptionsNormalizer_1 = __webpack_require__(/*! ../../../options/OptionsNormalizer */ "./src/options/OptionsNormalizer.ts");
- exports.optionsModule = new inversify_1.ContainerModule((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 });
- exports.storagesModule = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const ControlFlowStorage_1 = __webpack_require__(/*! ../../../storages/custom-nodes/ControlFlowStorage */ "./src/storages/custom-nodes/ControlFlowStorage.ts");
- const CustomCodeHelperGroupStorage_1 = __webpack_require__(/*! ../../../storages/custom-code-helpers/CustomCodeHelperGroupStorage */ "./src/storages/custom-code-helpers/CustomCodeHelperGroupStorage.ts");
- const StringArrayStorage_1 = __webpack_require__(/*! ../../../storages/string-array/StringArrayStorage */ "./src/storages/string-array/StringArrayStorage.ts");
- exports.storagesModule = new inversify_1.ContainerModule((bind) => {
- bind(ServiceIdentifiers_1.ServiceIdentifiers.TCustomNodeGroupStorage)
- .to(CustomCodeHelperGroupStorage_1.CustomCodeHelperGroupStorage)
- .inSingletonScope();
- bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)
- .to(StringArrayStorage_1.StringArrayStorage)
- .inSingletonScope();
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__TControlFlowStorage)
- .toConstructor(ControlFlowStorage_1.ControlFlowStorage);
- bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__TControlFlowStorage)
- .toFactory((context) => {
- return () => {
- const constructor = context.container
- .get(ServiceIdentifiers_1.ServiceIdentifiers.Newable__TControlFlowStorage);
- const randomGenerator = context.container
- .get(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator);
- const options = context.container
- .get(ServiceIdentifiers_1.ServiceIdentifiers.IOptions);
- const 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 });
- exports.utilsModule = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const ArrayUtils_1 = __webpack_require__(/*! ../../../utils/ArrayUtils */ "./src/utils/ArrayUtils.ts");
- const CryptUtils_1 = __webpack_require__(/*! ../../../utils/CryptUtils */ "./src/utils/CryptUtils.ts");
- const EscapeSequenceEncoder_1 = __webpack_require__(/*! ../../../utils/EscapeSequenceEncoder */ "./src/utils/EscapeSequenceEncoder.ts");
- const LevelledTopologicalSorter_1 = __webpack_require__(/*! ../../../utils/LevelledTopologicalSorter */ "./src/utils/LevelledTopologicalSorter.ts");
- const RandomGenerator_1 = __webpack_require__(/*! ../../../utils/RandomGenerator */ "./src/utils/RandomGenerator.ts");
- exports.utilsModule = new inversify_1.ContainerModule((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);
- });
- /***/ }),
- /***/ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts":
- /*!*************************************************************!*\
- !*** ./src/custom-code-helpers/AbstractCustomCodeHelper.ts ***!
- \*************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var AbstractCustomCodeHelper_1, _a, _b, _c, _d, _e;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.AbstractCustomCodeHelper = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
- const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts");
- const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const GlobalVariableTemplate1_1 = __webpack_require__(/*! ./common/templates/GlobalVariableTemplate1 */ "./src/custom-code-helpers/common/templates/GlobalVariableTemplate1.ts");
- const GlobalVariableTemplate2_1 = __webpack_require__(/*! ./common/templates/GlobalVariableTemplate2 */ "./src/custom-code-helpers/common/templates/GlobalVariableTemplate2.ts");
- let AbstractCustomCodeHelper = AbstractCustomCodeHelper_1 = class AbstractCustomCodeHelper {
- constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {
- this.cachedNode = null;
- this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
- this.customCodeHelperFormatter = customCodeHelperFormatter;
- this.customCodeHelperObfuscator = customCodeHelperObfuscator;
- this.randomGenerator = randomGenerator;
- this.options = options;
- }
- getNode() {
- if (!this.cachedNode) {
- const codeHelperTemplate = this.getCodeHelperTemplate();
- this.cachedNode = this.customCodeHelperFormatter.formatStructure(this.getNodeStructure(codeHelperTemplate));
- }
- return this.cachedNode;
- }
- getGlobalVariableTemplate() {
- return this.randomGenerator
- .getRandomGenerator()
- .pickone(AbstractCustomCodeHelper_1.globalVariableTemplateFunctions);
- }
- getCodeHelperTemplate() {
- return '';
- }
- };
- AbstractCustomCodeHelper.globalVariableTemplateFunctions = [
- GlobalVariableTemplate1_1.GlobalVariableTemplate1(),
- GlobalVariableTemplate2_1.GlobalVariableTemplate2()
- ];
- AbstractCustomCodeHelper = AbstractCustomCodeHelper_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
- ], AbstractCustomCodeHelper);
- exports.AbstractCustomCodeHelper = AbstractCustomCodeHelper;
- /***/ }),
- /***/ "./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts":
- /*!******************************************************************!*\
- !*** ./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts ***!
- \******************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.AbstractCustomCodeHelperGroup = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- let AbstractCustomCodeHelperGroup = class AbstractCustomCodeHelperGroup {
- constructor(identifierNamesGeneratorFactory, randomGenerator, options) {
- this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
- this.randomGenerator = randomGenerator;
- this.options = options;
- }
- getAppendEvent() {
- return this.appendEvent;
- }
- getCustomCodeHelpers() {
- return this.customCodeHelpers;
- }
- appendCustomNodeIfExist(customCodeHelperName, callback) {
- const customCodeHelper = this.customCodeHelpers.get(customCodeHelperName);
- if (!customCodeHelper) {
- return;
- }
- callback(customCodeHelper);
- }
- getRandomCallsGraphIndex(callsGraphLength) {
- return this.randomGenerator.getRandomInteger(0, Math.max(0, Math.round(callsGraphLength - 1)));
- }
- };
- AbstractCustomCodeHelperGroup = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
- ], AbstractCustomCodeHelperGroup);
- exports.AbstractCustomCodeHelperGroup = AbstractCustomCodeHelperGroup;
- /***/ }),
- /***/ "./src/custom-code-helpers/CustomCodeHelperFormatter.ts":
- /*!**************************************************************!*\
- !*** ./src/custom-code-helpers/CustomCodeHelperFormatter.ts ***!
- \**************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- }));
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- });
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- var _a;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.CustomCodeHelperFormatter = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- const string_template_1 = __importDefault(__webpack_require__(/*! string-template */ "string-template"));
- const IPrevailingKindOfVariablesAnalyzer_1 = __webpack_require__(/*! ../interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer */ "./src/interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../node/NodeGuards */ "./src/node/NodeGuards.ts");
- let CustomCodeHelperFormatter = class CustomCodeHelperFormatter {
- constructor(prevailingKindOfVariablesAnalyzer) {
- this.prevailingKindOfVariables = prevailingKindOfVariablesAnalyzer.getPrevailingKind();
- }
- formatTemplate(template, mapping) {
- return string_template_1.default(template, mapping);
- }
- formatStructure(statements) {
- for (const statement of statements) {
- estraverse.replace(statement, {
- enter: (node) => {
- if (!NodeGuards_1.NodeGuards.isVariableDeclarationNode(node)) {
- return;
- }
- if (this.prevailingKindOfVariables === 'var') {
- node.kind = 'var';
- }
- return node;
- }
- });
- }
- return statements;
- }
- };
- CustomCodeHelperFormatter = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),
- __metadata("design:paramtypes", [typeof (_a = typeof IPrevailingKindOfVariablesAnalyzer_1.IPrevailingKindOfVariablesAnalyzer !== "undefined" && IPrevailingKindOfVariablesAnalyzer_1.IPrevailingKindOfVariablesAnalyzer) === "function" ? _a : Object])
- ], CustomCodeHelperFormatter);
- exports.CustomCodeHelperFormatter = CustomCodeHelperFormatter;
- /***/ }),
- /***/ "./src/custom-code-helpers/CustomCodeHelperObfuscator.ts":
- /*!***************************************************************!*\
- !*** ./src/custom-code-helpers/CustomCodeHelperObfuscator.ts ***!
- \***************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.CustomCodeHelperObfuscator = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const NoCustomNodes_1 = __webpack_require__(/*! ../options/presets/NoCustomNodes */ "./src/options/presets/NoCustomNodes.ts");
- const JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts");
- let CustomCodeHelperObfuscator = class CustomCodeHelperObfuscator {
- constructor(randomGenerator, options) {
- this.randomGenerator = randomGenerator;
- this.options = options;
- }
- obfuscateTemplate(template, additionalOptions = {}) {
- return JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(template, Object.assign(Object.assign(Object.assign({}, NoCustomNodes_1.NO_ADDITIONAL_NODES_PRESET), { identifierNamesGenerator: this.options.identifierNamesGenerator, identifiersDictionary: this.options.identifiersDictionary, seed: this.randomGenerator.getRawSeed() }), additionalOptions)).getObfuscatedCode();
- }
- };
- CustomCodeHelperObfuscator = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
- ], CustomCodeHelperObfuscator);
- exports.CustomCodeHelperObfuscator = CustomCodeHelperObfuscator;
- /***/ }),
- /***/ "./src/custom-code-helpers/calls-controller/CallsControllerFunctionCodeHelper.ts":
- /*!***************************************************************************************!*\
- !*** ./src/custom-code-helpers/calls-controller/CallsControllerFunctionCodeHelper.ts ***!
- \***************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d, _e, _f;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.CallsControllerFunctionCodeHelper = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts");
- const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const ObfuscationEvent_1 = __webpack_require__(/*! ../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
- const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- const SingleCallControllerTemplate_1 = __webpack_require__(/*! ../common/templates/SingleCallControllerTemplate */ "./src/custom-code-helpers/common/templates/SingleCallControllerTemplate.ts");
- const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- let CallsControllerFunctionCodeHelper = class CallsControllerFunctionCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {
- constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {
- super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);
- }
- initialize(appendEvent, callsControllerFunctionName) {
- this.appendEvent = appendEvent;
- this.callsControllerFunctionName = callsControllerFunctionName;
- }
- getNodeStructure(codeHelperTemplate) {
- return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);
- }
- getCodeHelperTemplate() {
- if (this.appendEvent === ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation) {
- return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(SingleCallControllerTemplate_1.SingleCallControllerTemplate(), {
- callControllerFunctionName: this.callsControllerFunctionName
- }));
- }
- return this.customCodeHelperFormatter.formatTemplate(SingleCallControllerTemplate_1.SingleCallControllerTemplate(), {
- callControllerFunctionName: this.callsControllerFunctionName
- });
- }
- };
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", String)
- ], CallsControllerFunctionCodeHelper.prototype, "callsControllerFunctionName", void 0);
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", typeof (_a = typeof ObfuscationEvent_1.ObfuscationEvent !== "undefined" && ObfuscationEvent_1.ObfuscationEvent) === "function" ? _a : Object)
- ], CallsControllerFunctionCodeHelper.prototype, "appendEvent", void 0);
- CallsControllerFunctionCodeHelper = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_b = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _c : Object, typeof (_d = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _d : Object, typeof (_e = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _f : Object])
- ], CallsControllerFunctionCodeHelper);
- exports.CallsControllerFunctionCodeHelper = CallsControllerFunctionCodeHelper;
- /***/ }),
- /***/ "./src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts":
- /*!**********************************************************************************!*\
- !*** ./src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts ***!
- \**********************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.GlobalVariableNoEvalTemplate = void 0;
- function GlobalVariableNoEvalTemplate() {
- return `
- const that = (typeof window !== 'undefined'
- ? window
- : (typeof process === 'object' &&
- typeof require === 'function' &&
- typeof global === 'object')
- ? global
- : this);
- `;
- }
- exports.GlobalVariableNoEvalTemplate = GlobalVariableNoEvalTemplate;
- /***/ }),
- /***/ "./src/custom-code-helpers/common/templates/GlobalVariableTemplate1.ts":
- /*!*****************************************************************************!*\
- !*** ./src/custom-code-helpers/common/templates/GlobalVariableTemplate1.ts ***!
- \*****************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.GlobalVariableTemplate1 = void 0;
- function GlobalVariableTemplate1() {
- return `
- let that;
-
- try {
- const getGlobal = Function('return (function() ' + '{}.constructor("return this")( )' + ');');
-
- that = getGlobal();
- } catch (e) {
- that = window;
- }
- `;
- }
- exports.GlobalVariableTemplate1 = GlobalVariableTemplate1;
- /***/ }),
- /***/ "./src/custom-code-helpers/common/templates/GlobalVariableTemplate2.ts":
- /*!*****************************************************************************!*\
- !*** ./src/custom-code-helpers/common/templates/GlobalVariableTemplate2.ts ***!
- \*****************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.GlobalVariableTemplate2 = void 0;
- function GlobalVariableTemplate2() {
- return `
- const getGlobal = function () {
- let globalObject;
-
- try {
- globalObject = Function('return (function() ' + '{}.constructor("return this")( )' + ');')();
- } catch (e) {
- globalObject = window;
- }
-
- return globalObject;
- };
- const that = getGlobal();
- `;
- }
- exports.GlobalVariableTemplate2 = GlobalVariableTemplate2;
- /***/ }),
- /***/ "./src/custom-code-helpers/common/templates/SingleCallControllerTemplate.ts":
- /*!**********************************************************************************!*\
- !*** ./src/custom-code-helpers/common/templates/SingleCallControllerTemplate.ts ***!
- \**********************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.SingleCallControllerTemplate = void 0;
- function SingleCallControllerTemplate() {
- return `
- const {callControllerFunctionName} = (function(){
- let firstCall = true;
-
- return function (context, fn){
- const rfn = firstCall ? function(){
- if(fn){
- const res = fn.apply(context, arguments);
- fn = null;
- return res;
- }
- } : function(){}
-
- firstCall = false;
-
- return rfn;
- }
- })();
- `;
- }
- exports.SingleCallControllerTemplate = SingleCallControllerTemplate;
- /***/ }),
- /***/ "./src/custom-code-helpers/console-output/ConsoleOutputDisableCodeHelper.ts":
- /*!**********************************************************************************!*\
- !*** ./src/custom-code-helpers/console-output/ConsoleOutputDisableCodeHelper.ts ***!
- \**********************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d, _e;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ConsoleOutputDisableCodeHelper = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
- const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
- const ConsoleOutputDisableExpressionTemplate_1 = __webpack_require__(/*! ./templates/ConsoleOutputDisableExpressionTemplate */ "./src/custom-code-helpers/console-output/templates/ConsoleOutputDisableExpressionTemplate.ts");
- const GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../common/templates/GlobalVariableNoEvalTemplate */ "./src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts");
- const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- let ConsoleOutputDisableCodeHelper = class ConsoleOutputDisableCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {
- constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {
- super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);
- }
- initialize(callsControllerFunctionName, consoleOutputDisableFunctionName) {
- this.callsControllerFunctionName = callsControllerFunctionName;
- this.consoleOutputDisableFunctionName = consoleOutputDisableFunctionName;
- }
- getNodeStructure(codeHelperTemplate) {
- return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);
- }
- getCodeHelperTemplate() {
- const globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval
- ? this.getGlobalVariableTemplate()
- : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate();
- return this.customCodeHelperFormatter.formatTemplate(ConsoleOutputDisableExpressionTemplate_1.ConsoleOutputDisableExpressionTemplate(), {
- callControllerFunctionName: this.callsControllerFunctionName,
- consoleLogDisableFunctionName: this.consoleOutputDisableFunctionName,
- globalVariableTemplate
- });
- }
- };
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", String)
- ], ConsoleOutputDisableCodeHelper.prototype, "callsControllerFunctionName", void 0);
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", String)
- ], ConsoleOutputDisableCodeHelper.prototype, "consoleOutputDisableFunctionName", void 0);
- ConsoleOutputDisableCodeHelper = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
- ], ConsoleOutputDisableCodeHelper);
- exports.ConsoleOutputDisableCodeHelper = ConsoleOutputDisableCodeHelper;
- /***/ }),
- /***/ "./src/custom-code-helpers/console-output/group/ConsoleOutputCodeHelperGroup.ts":
- /*!**************************************************************************************!*\
- !*** ./src/custom-code-helpers/console-output/group/ConsoleOutputCodeHelperGroup.ts ***!
- \**************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d, _e;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ConsoleOutputCodeHelperGroup = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TCustomCodeHelperFactory_1 = __webpack_require__(/*! ../../../types/container/custom-code-helpers/TCustomCodeHelperFactory */ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- const CustomCodeHelper_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelper */ "./src/enums/custom-code-helpers/CustomCodeHelper.ts");
- const ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
- const AbstractCustomCodeHelperGroup_1 = __webpack_require__(/*! ../../AbstractCustomCodeHelperGroup */ "./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts");
- const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
- const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- let ConsoleOutputCodeHelperGroup = class ConsoleOutputCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup {
- constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) {
- super(identifierNamesGeneratorFactory, randomGenerator, options);
- this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation;
- this.customCodeHelperFactory = customCodeHelperFactory;
- }
- appendNodes(nodeWithStatements, callsGraphData) {
- var _a;
- if (!this.options.disableConsoleOutput) {
- return;
- }
- const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length);
- const consoleOutputDisableHostNode = callsGraphData.length
- ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex)
- : nodeWithStatements;
- const callsControllerHostNode = callsGraphData.length
- ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1)
- : nodeWithStatements;
- const consoleOutputDisableLexicalScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils
- .getLexicalScope(consoleOutputDisableHostNode)) !== null && _a !== void 0 ? _a : null;
- const consoleOutputDisableFunctionName = consoleOutputDisableLexicalScopeNode
- && NodeGuards_1.NodeGuards.isProgramNode(consoleOutputDisableLexicalScopeNode)
- ? this.identifierNamesGenerator.generate(consoleOutputDisableLexicalScopeNode)
- : this.randomGenerator.getRandomString(5);
- const callsControllerFunctionName = consoleOutputDisableLexicalScopeNode
- && NodeGuards_1.NodeGuards.isProgramNode(consoleOutputDisableLexicalScopeNode)
- ? this.identifierNamesGenerator.generate(consoleOutputDisableLexicalScopeNode)
- : this.randomGenerator.getRandomString(5);
- this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable, (customCodeHelper) => {
- customCodeHelper.initialize(callsControllerFunctionName, consoleOutputDisableFunctionName);
- NodeAppender_1.NodeAppender.prepend(consoleOutputDisableHostNode, customCodeHelper.getNode());
- });
- this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => {
- customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName);
- NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode());
- });
- }
- initialize() {
- this.customCodeHelpers = new Map();
- if (!this.options.disableConsoleOutput) {
- return;
- }
- const consoleOutputDisableExpressionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable);
- const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction);
- this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable, consoleOutputDisableExpressionCodeHelper);
- this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper);
- }
- };
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object)
- ], ConsoleOutputCodeHelperGroup.prototype, "customCodeHelpers", void 0);
- ConsoleOutputCodeHelperGroup = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== "undefined" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === "function" ? _b : Object, typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
- ], ConsoleOutputCodeHelperGroup);
- exports.ConsoleOutputCodeHelperGroup = ConsoleOutputCodeHelperGroup;
- /***/ }),
- /***/ "./src/custom-code-helpers/console-output/templates/ConsoleOutputDisableExpressionTemplate.ts":
- /*!****************************************************************************************************!*\
- !*** ./src/custom-code-helpers/console-output/templates/ConsoleOutputDisableExpressionTemplate.ts ***!
- \****************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ConsoleOutputDisableExpressionTemplate = void 0;
- function ConsoleOutputDisableExpressionTemplate() {
- return `
- const {consoleLogDisableFunctionName} = {callControllerFunctionName}(this, function () {
- const func = function () {};
-
- {globalVariableTemplate}
-
- if (!that.console) {
- that.console = (function (func){
- const c = {};
-
- c.log = func;
- c.warn = func;
- c.debug = func;
- c.info = func;
- c.error = func;
- c.exception = func;
- c.table = func;
- c.trace = func;
-
- return c;
- })(func);
- } else {
- that.console.log = func;
- that.console.warn = func;
- that.console.debug = func;
- that.console.info = func;
- that.console.error = func;
- that.console.exception = func;
- that.console.table = func;
- that.console.trace = func;
- }
- });
-
- {consoleLogDisableFunctionName}();
- `;
- }
- exports.ConsoleOutputDisableExpressionTemplate = ConsoleOutputDisableExpressionTemplate;
- /***/ }),
- /***/ "./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper.ts":
- /*!*******************************************************************************************!*\
- !*** ./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper.ts ***!
- \*******************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d, _e;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.DebugProtectionFunctionCallCodeHelper = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
- const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- const DebugProtectionFunctionCallTemplate_1 = __webpack_require__(/*! ./templates/debug-protection-function-call/DebugProtectionFunctionCallTemplate */ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function-call/DebugProtectionFunctionCallTemplate.ts");
- const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- let DebugProtectionFunctionCallCodeHelper = class DebugProtectionFunctionCallCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {
- constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {
- super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);
- }
- initialize(debugProtectionFunctionName, callsControllerFunctionName) {
- this.debugProtectionFunctionName = debugProtectionFunctionName;
- this.callsControllerFunctionName = callsControllerFunctionName;
- }
- getNodeStructure(codeHelperTemplate) {
- return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);
- }
- getCodeHelperTemplate() {
- return this.customCodeHelperFormatter.formatTemplate(DebugProtectionFunctionCallTemplate_1.DebugProtectionFunctionCallTemplate(), {
- debugProtectionFunctionName: this.debugProtectionFunctionName,
- callControllerFunctionName: this.callsControllerFunctionName
- });
- }
- };
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", String)
- ], DebugProtectionFunctionCallCodeHelper.prototype, "callsControllerFunctionName", void 0);
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", String)
- ], DebugProtectionFunctionCallCodeHelper.prototype, "debugProtectionFunctionName", void 0);
- DebugProtectionFunctionCallCodeHelper = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
- ], DebugProtectionFunctionCallCodeHelper);
- exports.DebugProtectionFunctionCallCodeHelper = DebugProtectionFunctionCallCodeHelper;
- /***/ }),
- /***/ "./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCodeHelper.ts":
- /*!***************************************************************************************!*\
- !*** ./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCodeHelper.ts ***!
- \***************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d, _e;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.DebugProtectionFunctionCodeHelper = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
- const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
- const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- const DebuggerTemplate_1 = __webpack_require__(/*! ./templates/debug-protection-function/DebuggerTemplate */ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplate.ts");
- const DebuggerTemplateNoEval_1 = __webpack_require__(/*! ./templates/debug-protection-function/DebuggerTemplateNoEval */ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplateNoEval.ts");
- const DebugProtectionFunctionTemplate_1 = __webpack_require__(/*! ./templates/debug-protection-function/DebugProtectionFunctionTemplate */ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebugProtectionFunctionTemplate.ts");
- const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- let DebugProtectionFunctionCodeHelper = class DebugProtectionFunctionCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {
- constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {
- super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);
- }
- initialize(debugProtectionFunctionName) {
- this.debugProtectionFunctionName = debugProtectionFunctionName;
- }
- getNodeStructure(codeHelperTemplate) {
- return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);
- }
- getCodeHelperTemplate() {
- const debuggerTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval
- ? DebuggerTemplate_1.DebuggerTemplate()
- : DebuggerTemplateNoEval_1.DebuggerTemplateNoEval();
- return this.customCodeHelperFormatter.formatTemplate(DebugProtectionFunctionTemplate_1.DebugProtectionFunctionTemplate(), {
- debuggerTemplate,
- debugProtectionFunctionName: this.debugProtectionFunctionName
- });
- }
- };
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", String)
- ], DebugProtectionFunctionCodeHelper.prototype, "debugProtectionFunctionName", void 0);
- DebugProtectionFunctionCodeHelper = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
- ], DebugProtectionFunctionCodeHelper);
- exports.DebugProtectionFunctionCodeHelper = DebugProtectionFunctionCodeHelper;
- /***/ }),
- /***/ "./src/custom-code-helpers/debug-protection/DebugProtectionFunctionIntervalCodeHelper.ts":
- /*!***********************************************************************************************!*\
- !*** ./src/custom-code-helpers/debug-protection/DebugProtectionFunctionIntervalCodeHelper.ts ***!
- \***********************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d, _e;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.DebugProtectionFunctionIntervalCodeHelper = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
- const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- const DebugProtectionFunctionIntervalTemplate_1 = __webpack_require__(/*! ./templates/debug-protection-function-interval/DebugProtectionFunctionIntervalTemplate */ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function-interval/DebugProtectionFunctionIntervalTemplate.ts");
- const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- let DebugProtectionFunctionIntervalCodeHelper = class DebugProtectionFunctionIntervalCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {
- constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {
- super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);
- }
- initialize(debugProtectionFunctionName) {
- this.debugProtectionFunctionName = debugProtectionFunctionName;
- }
- getNodeStructure(codeHelperTemplate) {
- return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);
- }
- getCodeHelperTemplate() {
- return this.customCodeHelperFormatter.formatTemplate(DebugProtectionFunctionIntervalTemplate_1.DebugProtectionFunctionIntervalTemplate(), {
- debugProtectionFunctionName: this.debugProtectionFunctionName
- });
- }
- };
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", String)
- ], DebugProtectionFunctionIntervalCodeHelper.prototype, "debugProtectionFunctionName", void 0);
- DebugProtectionFunctionIntervalCodeHelper = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
- ], DebugProtectionFunctionIntervalCodeHelper);
- exports.DebugProtectionFunctionIntervalCodeHelper = DebugProtectionFunctionIntervalCodeHelper;
- /***/ }),
- /***/ "./src/custom-code-helpers/debug-protection/group/DebugProtectionCodeHelperGroup.ts":
- /*!******************************************************************************************!*\
- !*** ./src/custom-code-helpers/debug-protection/group/DebugProtectionCodeHelperGroup.ts ***!
- \******************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d, _e;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.DebugProtectionCodeHelperGroup = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TCustomCodeHelperFactory_1 = __webpack_require__(/*! ../../../types/container/custom-code-helpers/TCustomCodeHelperFactory */ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- const CustomCodeHelper_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelper */ "./src/enums/custom-code-helpers/CustomCodeHelper.ts");
- const ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
- const AbstractCustomCodeHelperGroup_1 = __webpack_require__(/*! ../../AbstractCustomCodeHelperGroup */ "./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts");
- const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
- let DebugProtectionCodeHelperGroup = class DebugProtectionCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup {
- constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) {
- super(identifierNamesGeneratorFactory, randomGenerator, options);
- this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation;
- this.customCodeHelperFactory = customCodeHelperFactory;
- }
- appendNodes(nodeWithStatements, callsGraphData) {
- var _a;
- if (!this.options.debugProtection) {
- return;
- }
- const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length);
- const debugProtectionFunctionCallHostNode = callsGraphData.length
- ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex)
- : nodeWithStatements;
- const callsControllerHostNode = callsGraphData.length
- ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1)
- : nodeWithStatements;
- const debugProtectionFunctionCallScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils
- .getLexicalScope(debugProtectionFunctionCallHostNode)) !== null && _a !== void 0 ? _a : null;
- const debugProtectionFunctionName = debugProtectionFunctionCallScopeNode
- && NodeGuards_1.NodeGuards.isProgramNode(debugProtectionFunctionCallScopeNode)
- ? this.identifierNamesGenerator.generate(debugProtectionFunctionCallScopeNode)
- : this.randomGenerator.getRandomString(5);
- const callsControllerFunctionName = debugProtectionFunctionCallScopeNode
- && NodeGuards_1.NodeGuards.isProgramNode(debugProtectionFunctionCallScopeNode)
- ? this.identifierNamesGenerator.generate(debugProtectionFunctionCallScopeNode)
- : this.randomGenerator.getRandomString(5);
- this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall, (customCodeHelper) => {
- customCodeHelper.initialize(debugProtectionFunctionName, callsControllerFunctionName);
- NodeAppender_1.NodeAppender.prepend(debugProtectionFunctionCallHostNode, customCodeHelper.getNode());
- });
- this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => {
- customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName);
- NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode());
- });
- this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction, (customCodeHelper) => {
- customCodeHelper.initialize(debugProtectionFunctionName);
- NodeAppender_1.NodeAppender.append(nodeWithStatements, customCodeHelper.getNode());
- });
- this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval, (customCodeHelper) => {
- const programBodyLength = NodeGuards_1.NodeGuards.isSwitchCaseNode(nodeWithStatements)
- ? nodeWithStatements.consequent.length
- : nodeWithStatements.body.length;
- const randomIndex = this.randomGenerator.getRandomInteger(0, programBodyLength);
- customCodeHelper.initialize(debugProtectionFunctionName);
- NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customCodeHelper.getNode(), randomIndex);
- });
- }
- initialize() {
- this.customCodeHelpers = new Map();
- if (!this.options.debugProtection) {
- return;
- }
- const debugProtectionFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction);
- const debugProtectionFunctionCallCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall);
- const debugProtectionFunctionIntervalCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval);
- const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction);
- this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction, debugProtectionFunctionCodeHelper);
- this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall, debugProtectionFunctionCallCodeHelper);
- if (this.options.debugProtectionInterval) {
- this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval, debugProtectionFunctionIntervalCodeHelper);
- }
- this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper);
- }
- };
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object)
- ], DebugProtectionCodeHelperGroup.prototype, "customCodeHelpers", void 0);
- DebugProtectionCodeHelperGroup = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== "undefined" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === "function" ? _b : Object, typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
- ], DebugProtectionCodeHelperGroup);
- exports.DebugProtectionCodeHelperGroup = DebugProtectionCodeHelperGroup;
- /***/ }),
- /***/ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function-call/DebugProtectionFunctionCallTemplate.ts":
- /*!**********************************************************************************************************************************!*\
- !*** ./src/custom-code-helpers/debug-protection/templates/debug-protection-function-call/DebugProtectionFunctionCallTemplate.ts ***!
- \**********************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.DebugProtectionFunctionCallTemplate = void 0;
- function DebugProtectionFunctionCallTemplate() {
- return `
- (function () {
- {callControllerFunctionName}(
- this,
- function () {
- const regExp1 = new RegExp('function *\\\\( *\\\\)');
- const regExp2 = new RegExp('\\\\+\\\\+ *\\(?:[a-zA-Z_$][0-9a-zA-Z_$]*\\)', 'i');
-
- const result = {debugProtectionFunctionName}('init');
-
- if (!regExp1.test(result + 'chain') || !regExp2.test(result + 'input')) {
- result('0');
- } else {
- {debugProtectionFunctionName}();
- }
- }
- )();
- })();
- `;
- }
- exports.DebugProtectionFunctionCallTemplate = DebugProtectionFunctionCallTemplate;
- /***/ }),
- /***/ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function-interval/DebugProtectionFunctionIntervalTemplate.ts":
- /*!******************************************************************************************************************************************!*\
- !*** ./src/custom-code-helpers/debug-protection/templates/debug-protection-function-interval/DebugProtectionFunctionIntervalTemplate.ts ***!
- \******************************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.DebugProtectionFunctionIntervalTemplate = void 0;
- function DebugProtectionFunctionIntervalTemplate() {
- return `
- setInterval(function () {
- {debugProtectionFunctionName}();
- }, 4000);
- `;
- }
- exports.DebugProtectionFunctionIntervalTemplate = DebugProtectionFunctionIntervalTemplate;
- /***/ }),
- /***/ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebugProtectionFunctionTemplate.ts":
- /*!*************************************************************************************************************************!*\
- !*** ./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebugProtectionFunctionTemplate.ts ***!
- \*************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.DebugProtectionFunctionTemplate = void 0;
- function DebugProtectionFunctionTemplate() {
- return `
- function {debugProtectionFunctionName} (ret) {
- function debuggerProtection (counter) {
-
- {debuggerTemplate}
-
- debuggerProtection(++counter);
- }
-
- try {
- if (ret) {
- return debuggerProtection;
- } else {
- debuggerProtection(0);
- }
- } catch (y) {}
- }
- `;
- }
- exports.DebugProtectionFunctionTemplate = DebugProtectionFunctionTemplate;
- /***/ }),
- /***/ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplate.ts":
- /*!**********************************************************************************************************!*\
- !*** ./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplate.ts ***!
- \**********************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.DebuggerTemplate = void 0;
- function DebuggerTemplate() {
- return `
- if (typeof counter === 'string') {
- return (function (arg) {}.constructor('while (true) {}').apply('counter'));
- } else {
- if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {
- (function () {return true;}.constructor('debu' + 'gger').call('action'));
- } else {
- (function () {return false;}.constructor('debu' + 'gger').apply('stateObject'));
- }
-
- }
- `;
- }
- exports.DebuggerTemplate = DebuggerTemplate;
- /***/ }),
- /***/ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplateNoEval.ts":
- /*!****************************************************************************************************************!*\
- !*** ./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplateNoEval.ts ***!
- \****************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.DebuggerTemplateNoEval = void 0;
- function DebuggerTemplateNoEval() {
- return `
- if (typeof counter === 'string') {
- const func = function () {
- while (true) {}
- };
-
- return func();
- } else {
- if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {
- debugger;
- } else {
- debugger;
- }
-
- }
- `;
- }
- exports.DebuggerTemplateNoEval = DebuggerTemplateNoEval;
- /***/ }),
- /***/ "./src/custom-code-helpers/domain-lock/DomainLockCodeHelper.ts":
- /*!*********************************************************************!*\
- !*** ./src/custom-code-helpers/domain-lock/DomainLockCodeHelper.ts ***!
- \*********************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d, _e, _f;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.DomainLockCodeHelper = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
- const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts");
- const ICryptUtils_1 = __webpack_require__(/*! ../../interfaces/utils/ICryptUtils */ "./src/interfaces/utils/ICryptUtils.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
- const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- const DomainLockTemplate_1 = __webpack_require__(/*! ./templates/DomainLockTemplate */ "./src/custom-code-helpers/domain-lock/templates/DomainLockTemplate.ts");
- const GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../common/templates/GlobalVariableNoEvalTemplate */ "./src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts");
- const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- let DomainLockCodeHelper = class DomainLockCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {
- constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options, cryptUtils) {
- super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);
- this.cryptUtils = cryptUtils;
- }
- initialize(callsControllerFunctionName, domainLockFunctionName) {
- this.callsControllerFunctionName = callsControllerFunctionName;
- this.domainLockFunctionName = domainLockFunctionName;
- }
- getNodeStructure(codeHelperTemplate) {
- return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);
- }
- getCodeHelperTemplate() {
- const domainsString = this.options.domainLock.join(';');
- const [hiddenDomainsString, diff] = this.cryptUtils.hideString(domainsString, domainsString.length * 3);
- const globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval
- ? this.getGlobalVariableTemplate()
- : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate();
- return this.customCodeHelperFormatter.formatTemplate(DomainLockTemplate_1.DomainLockTemplate(), {
- callControllerFunctionName: this.callsControllerFunctionName,
- domainLockFunctionName: this.domainLockFunctionName,
- diff,
- domains: hiddenDomainsString,
- globalVariableTemplate
- });
- }
- };
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", String)
- ], DomainLockCodeHelper.prototype, "callsControllerFunctionName", void 0);
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", String)
- ], DomainLockCodeHelper.prototype, "domainLockFunctionName", void 0);
- DomainLockCodeHelper = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)),
- __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object, typeof (_f = typeof ICryptUtils_1.ICryptUtils !== "undefined" && ICryptUtils_1.ICryptUtils) === "function" ? _f : Object])
- ], DomainLockCodeHelper);
- exports.DomainLockCodeHelper = DomainLockCodeHelper;
- /***/ }),
- /***/ "./src/custom-code-helpers/domain-lock/group/DomainLockCustomCodeHelperGroup.ts":
- /*!**************************************************************************************!*\
- !*** ./src/custom-code-helpers/domain-lock/group/DomainLockCustomCodeHelperGroup.ts ***!
- \**************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d, _e;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.DomainLockCustomCodeHelperGroup = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TCustomCodeHelperFactory_1 = __webpack_require__(/*! ../../../types/container/custom-code-helpers/TCustomCodeHelperFactory */ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- const CustomCodeHelper_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelper */ "./src/enums/custom-code-helpers/CustomCodeHelper.ts");
- const ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
- const AbstractCustomCodeHelperGroup_1 = __webpack_require__(/*! ../../AbstractCustomCodeHelperGroup */ "./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts");
- const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
- const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- let DomainLockCustomCodeHelperGroup = class DomainLockCustomCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup {
- constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) {
- super(identifierNamesGeneratorFactory, randomGenerator, options);
- this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation;
- this.customCodeHelperFactory = customCodeHelperFactory;
- }
- appendNodes(nodeWithStatements, callsGraphData) {
- var _a;
- if (!this.options.domainLock.length) {
- return;
- }
- const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length);
- const domainLockFunctionHostNode = callsGraphData.length
- ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex)
- : nodeWithStatements;
- const callsControllerHostNode = callsGraphData.length
- ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1)
- : nodeWithStatements;
- const domainLockFunctionLexicalScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils
- .getLexicalScope(domainLockFunctionHostNode)) !== null && _a !== void 0 ? _a : null;
- const domainLockFunctionName = domainLockFunctionLexicalScopeNode
- && NodeGuards_1.NodeGuards.isProgramNode(domainLockFunctionLexicalScopeNode)
- ? this.identifierNamesGenerator.generate(domainLockFunctionLexicalScopeNode)
- : this.identifierNamesGenerator.generateNext();
- const callsControllerFunctionName = domainLockFunctionLexicalScopeNode
- && NodeGuards_1.NodeGuards.isProgramNode(domainLockFunctionLexicalScopeNode)
- ? this.identifierNamesGenerator.generate(domainLockFunctionLexicalScopeNode)
- : this.identifierNamesGenerator.generateNext();
- this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DomainLock, (customCodeHelper) => {
- customCodeHelper.initialize(callsControllerFunctionName, domainLockFunctionName);
- NodeAppender_1.NodeAppender.prepend(domainLockFunctionHostNode, customCodeHelper.getNode());
- });
- this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => {
- customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName);
- NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode());
- });
- }
- initialize() {
- this.customCodeHelpers = new Map();
- if (!this.options.domainLock.length) {
- return;
- }
- const domainLockCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DomainLock);
- const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction);
- this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DomainLock, domainLockCodeHelper);
- this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper);
- }
- };
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object)
- ], DomainLockCustomCodeHelperGroup.prototype, "customCodeHelpers", void 0);
- DomainLockCustomCodeHelperGroup = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== "undefined" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === "function" ? _b : Object, typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
- ], DomainLockCustomCodeHelperGroup);
- exports.DomainLockCustomCodeHelperGroup = DomainLockCustomCodeHelperGroup;
- /***/ }),
- /***/ "./src/custom-code-helpers/domain-lock/templates/DomainLockTemplate.ts":
- /*!*****************************************************************************!*\
- !*** ./src/custom-code-helpers/domain-lock/templates/DomainLockTemplate.ts ***!
- \*****************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.DomainLockTemplate = void 0;
- function DomainLockTemplate() {
- return `
- const {domainLockFunctionName} = {callControllerFunctionName}(this, function () {
-
- {globalVariableTemplate}
-
- const func = function () {
- return {
- key: 'item',
- value: 'attribute',
- getAttribute: function () {
- for (let i = 0; i < 1000; i--) {
- const isPositive = i > 0;
-
- switch (isPositive) {
- case true:
- return this.item + '_' + this.value + '_' + i;
- default:
- this.item + '_' + this.value;
- }
- }
- }()
- };
- };
-
- const regExp = new RegExp("[{diff}]", "g");
- const domains = "{domains}".replace(regExp, "").split(";");
- let document;
- let domain;
- let location;
- let hostname;
- for (let d in that) {
- if (d.length == 8 && d.charCodeAt(7) == 116 && d.charCodeAt(5) == 101 && d.charCodeAt(3) == 117 && d.charCodeAt(0) == 100) {
- document = d;
-
- break;
- }
- }
- for (let d1 in that[document]) {
- if (d1.length == 6 && d1.charCodeAt(5) == 110 && d1.charCodeAt(0) == 100) {
- domain = d1;
-
- break;
- }
- }
- if (!("~" > domain)) {
- for (let d2 in that[document]) {
- if (d2.length == 8 && d2.charCodeAt(7) == 110 && d2.charCodeAt(0) == 108) {
- location = d2;
-
- break;
- }
- }
- for (let d3 in that[document][location]) {
- if (d3.length == 8 && d3.charCodeAt(7) == 101 && d3.charCodeAt(0) == 104) {
- hostname = d3;
-
- break;
- }
- }
- }
-
- if (!document || !that[document]) {
- return;
- }
-
- const documentDomain = that[document][domain];
- const documentLocationHostName = !!that[document][location] && that[document][location][hostname];
- const currentDomain = documentDomain || documentLocationHostName;
-
- if (!currentDomain) {
- return;
- }
-
- let ok = false;
-
- for (let i = 0; i < domains.length; i++) {
- const domain = domains[i];
- const position = currentDomain.length - domain.length;
- const lastIndex = currentDomain.indexOf(domain, position);
- const endsWith = lastIndex !== -1 && lastIndex === position;
-
- if (endsWith) {
- if (currentDomain.length == domain.length || domain.indexOf(".") === 0) {
- ok = true;
- }
- }
- }
-
- if (!ok) {
- data;
- } else {
- return;
- }
-
- func();
- });
- {domainLockFunctionName}();
- `;
- }
- exports.DomainLockTemplate = DomainLockTemplate;
- /***/ }),
- /***/ "./src/custom-code-helpers/self-defending/SelfDefendingUnicodeCodeHelper.ts":
- /*!**********************************************************************************!*\
- !*** ./src/custom-code-helpers/self-defending/SelfDefendingUnicodeCodeHelper.ts ***!
- \**********************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d, _e;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.SelfDefendingUnicodeCodeHelper = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
- const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
- const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- const SelfDefendingTemplate_1 = __webpack_require__(/*! ./templates/SelfDefendingTemplate */ "./src/custom-code-helpers/self-defending/templates/SelfDefendingTemplate.ts");
- const SelfDefendingNoEvalTemplate_1 = __webpack_require__(/*! ./templates/SelfDefendingNoEvalTemplate */ "./src/custom-code-helpers/self-defending/templates/SelfDefendingNoEvalTemplate.ts");
- const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- const GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../common/templates/GlobalVariableNoEvalTemplate */ "./src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts");
- let SelfDefendingUnicodeCodeHelper = class SelfDefendingUnicodeCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {
- constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {
- super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);
- }
- initialize(callsControllerFunctionName, selfDefendingFunctionName) {
- this.callsControllerFunctionName = callsControllerFunctionName;
- this.selfDefendingFunctionName = selfDefendingFunctionName;
- }
- getNodeStructure(codeHelperTemplate) {
- return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);
- }
- getCodeHelperTemplate() {
- const globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval
- ? this.getGlobalVariableTemplate()
- : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate();
- const selfDefendingTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval
- ? SelfDefendingTemplate_1.SelfDefendingTemplate()
- : SelfDefendingNoEvalTemplate_1.SelfDefendingNoEvalTemplate();
- return this.customCodeHelperFormatter.formatTemplate(selfDefendingTemplate, {
- callControllerFunctionName: this.callsControllerFunctionName,
- selfDefendingFunctionName: this.selfDefendingFunctionName,
- globalVariableTemplate
- });
- }
- };
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", String)
- ], SelfDefendingUnicodeCodeHelper.prototype, "callsControllerFunctionName", void 0);
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", String)
- ], SelfDefendingUnicodeCodeHelper.prototype, "selfDefendingFunctionName", void 0);
- SelfDefendingUnicodeCodeHelper = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
- ], SelfDefendingUnicodeCodeHelper);
- exports.SelfDefendingUnicodeCodeHelper = SelfDefendingUnicodeCodeHelper;
- /***/ }),
- /***/ "./src/custom-code-helpers/self-defending/group/SelfDefendingCodeHelperGroup.ts":
- /*!**************************************************************************************!*\
- !*** ./src/custom-code-helpers/self-defending/group/SelfDefendingCodeHelperGroup.ts ***!
- \**************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d, _e;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.SelfDefendingCodeHelperGroup = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TCustomCodeHelperFactory_1 = __webpack_require__(/*! ../../../types/container/custom-code-helpers/TCustomCodeHelperFactory */ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- const CustomCodeHelper_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelper */ "./src/enums/custom-code-helpers/CustomCodeHelper.ts");
- const ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
- const AbstractCustomCodeHelperGroup_1 = __webpack_require__(/*! ../../AbstractCustomCodeHelperGroup */ "./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts");
- const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
- const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
- let SelfDefendingCodeHelperGroup = class SelfDefendingCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup {
- constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) {
- super(identifierNamesGeneratorFactory, randomGenerator, options);
- this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation;
- this.customCodeHelperFactory = customCodeHelperFactory;
- }
- appendNodes(nodeWithStatements, callsGraphData) {
- var _a;
- if (!this.options.selfDefending) {
- return;
- }
- const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length);
- const selfDefendingFunctionHostNode = callsGraphData.length
- ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex)
- : nodeWithStatements;
- const callsControllerHostNode = callsGraphData.length
- ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1)
- : nodeWithStatements;
- const selfDefendingFunctionLexicalScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils
- .getLexicalScope(selfDefendingFunctionHostNode)) !== null && _a !== void 0 ? _a : null;
- const selfDefendingFunctionName = selfDefendingFunctionLexicalScopeNode
- ? this.identifierNamesGenerator.generate(selfDefendingFunctionLexicalScopeNode)
- : this.identifierNamesGenerator.generateNext();
- const callsControllerFunctionName = selfDefendingFunctionLexicalScopeNode
- ? this.identifierNamesGenerator.generate(selfDefendingFunctionLexicalScopeNode)
- : this.identifierNamesGenerator.generateNext();
- this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode, (customCodeHelper) => {
- customCodeHelper.initialize(callsControllerFunctionName, selfDefendingFunctionName);
- NodeAppender_1.NodeAppender.prepend(selfDefendingFunctionHostNode, customCodeHelper.getNode());
- });
- this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => {
- customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName);
- NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode());
- });
- }
- initialize() {
- this.customCodeHelpers = new Map();
- if (!this.options.selfDefending) {
- return;
- }
- const selfDefendingUnicodeCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode);
- const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction);
- this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode, selfDefendingUnicodeCodeHelper);
- this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper);
- }
- };
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object)
- ], SelfDefendingCodeHelperGroup.prototype, "customCodeHelpers", void 0);
- SelfDefendingCodeHelperGroup = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== "undefined" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === "function" ? _b : Object, typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
- ], SelfDefendingCodeHelperGroup);
- exports.SelfDefendingCodeHelperGroup = SelfDefendingCodeHelperGroup;
- /***/ }),
- /***/ "./src/custom-code-helpers/self-defending/templates/SelfDefendingNoEvalTemplate.ts":
- /*!*****************************************************************************************!*\
- !*** ./src/custom-code-helpers/self-defending/templates/SelfDefendingNoEvalTemplate.ts ***!
- \*****************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.SelfDefendingNoEvalTemplate = void 0;
- function SelfDefendingNoEvalTemplate() {
- return `
- const {selfDefendingFunctionName} = {callControllerFunctionName}(this, function () {
- {globalVariableTemplate}
-
- const test = function () {
- const regExp = new that.RegExp('^([^ ]+( +[^ ]+)+)+[^ ]}');
-
- return !regExp.test({selfDefendingFunctionName});
- };
-
- return test();
- });
-
- {selfDefendingFunctionName}();
- `;
- }
- exports.SelfDefendingNoEvalTemplate = SelfDefendingNoEvalTemplate;
- /***/ }),
- /***/ "./src/custom-code-helpers/self-defending/templates/SelfDefendingTemplate.ts":
- /*!***********************************************************************************!*\
- !*** ./src/custom-code-helpers/self-defending/templates/SelfDefendingTemplate.ts ***!
- \***********************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.SelfDefendingTemplate = void 0;
- function SelfDefendingTemplate() {
- return `
- const {selfDefendingFunctionName} = {callControllerFunctionName}(this, function () {
- const test = function () {
- const regExp = test
- .constructor('return /" + this + "/')()
- .compile('^([^ ]+( +[^ ]+)+)+[^ ]}');
-
- return !regExp.test({selfDefendingFunctionName});
- };
-
- return test();
- });
-
- {selfDefendingFunctionName}();
- `;
- }
- exports.SelfDefendingTemplate = SelfDefendingTemplate;
- /***/ }),
- /***/ "./src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts":
- /*!***********************************************************************************!*\
- !*** ./src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts ***!
- \***********************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d, _e, _f;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.StringArrayCallsWrapperCodeHelper = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
- const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts");
- const IEscapeSequenceEncoder_1 = __webpack_require__(/*! ../../interfaces/utils/IEscapeSequenceEncoder */ "./src/interfaces/utils/IEscapeSequenceEncoder.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
- const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts");
- const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- const AtobTemplate_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/AtobTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/AtobTemplate.ts");
- const GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../common/templates/GlobalVariableNoEvalTemplate */ "./src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts");
- const Rc4Template_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/Rc4Template */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/Rc4Template.ts");
- const SelfDefendingTemplate_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/SelfDefendingTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/SelfDefendingTemplate.ts");
- const StringArrayBase64DecodeTemplate_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate.ts");
- const StringArrayCallsWrapperTemplate_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts");
- const StringArrayRC4DecodeTemplate_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate.ts");
- const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- let StringArrayCallsWrapperCodeHelper = class StringArrayCallsWrapperCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {
- constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options, escapeSequenceEncoder) {
- super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);
- this.escapeSequenceEncoder = escapeSequenceEncoder;
- }
- initialize(stringArrayName, stringArrayCallsWrapperName) {
- this.stringArrayName = stringArrayName;
- this.stringArrayCallsWrapperName = stringArrayCallsWrapperName;
- }
- getNodeStructure(codeHelperTemplate) {
- return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);
- }
- getCodeHelperTemplate() {
- const decodeCodeHelperTemplate = this.getDecodeStringArrayTemplate();
- const preservedNames = [`^${this.stringArrayName}$`];
- return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(StringArrayCallsWrapperTemplate_1.StringArrayCallsWrapperTemplate(), {
- decodeCodeHelperTemplate,
- stringArrayCallsWrapperName: this.stringArrayCallsWrapperName,
- stringArrayName: this.stringArrayName
- }), {
- reservedNames: preservedNames
- });
- }
- getDecodeStringArrayTemplate() {
- const globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval
- ? this.getGlobalVariableTemplate()
- : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate();
- const atobPolyfill = this.customCodeHelperFormatter.formatTemplate(AtobTemplate_1.AtobTemplate(), { globalVariableTemplate });
- let decodeStringArrayTemplate = '';
- let selfDefendingCode = '';
- if (this.options.selfDefending) {
- selfDefendingCode = this.customCodeHelperFormatter.formatTemplate(SelfDefendingTemplate_1.SelfDefendingTemplate(this.randomGenerator, this.escapeSequenceEncoder), {
- stringArrayCallsWrapperName: this.stringArrayCallsWrapperName,
- stringArrayName: this.stringArrayName
- });
- }
- switch (this.options.stringArrayEncoding) {
- case StringArrayEncoding_1.StringArrayEncoding.Rc4:
- decodeStringArrayTemplate = this.customCodeHelperFormatter.formatTemplate(StringArrayRC4DecodeTemplate_1.StringArrayRC4DecodeTemplate(this.randomGenerator), {
- atobPolyfill,
- selfDefendingCode,
- rc4Polyfill: Rc4Template_1.Rc4Template(),
- stringArrayCallsWrapperName: this.stringArrayCallsWrapperName
- });
- break;
- case StringArrayEncoding_1.StringArrayEncoding.Base64:
- decodeStringArrayTemplate = this.customCodeHelperFormatter.formatTemplate(StringArrayBase64DecodeTemplate_1.StringArrayBase64DecodeTemplate(this.randomGenerator), {
- atobPolyfill,
- selfDefendingCode,
- stringArrayCallsWrapperName: this.stringArrayCallsWrapperName
- });
- }
- return decodeStringArrayTemplate;
- }
- };
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", String)
- ], StringArrayCallsWrapperCodeHelper.prototype, "stringArrayName", void 0);
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", String)
- ], StringArrayCallsWrapperCodeHelper.prototype, "stringArrayCallsWrapperName", void 0);
- StringArrayCallsWrapperCodeHelper = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)),
- __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object, typeof (_f = typeof IEscapeSequenceEncoder_1.IEscapeSequenceEncoder !== "undefined" && IEscapeSequenceEncoder_1.IEscapeSequenceEncoder) === "function" ? _f : Object])
- ], StringArrayCallsWrapperCodeHelper);
- exports.StringArrayCallsWrapperCodeHelper = StringArrayCallsWrapperCodeHelper;
- /***/ }),
- /***/ "./src/custom-code-helpers/string-array/StringArrayCodeHelper.ts":
- /*!***********************************************************************!*\
- !*** ./src/custom-code-helpers/string-array/StringArrayCodeHelper.ts ***!
- \***********************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d, _e, _f;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.StringArrayCodeHelper = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
- const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const IStringArrayStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-storage/IStringArrayStorage */ "./src/interfaces/storages/string-array-storage/IStringArrayStorage.ts");
- const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- const StringArrayTemplate_1 = __webpack_require__(/*! ./templates/string-array/StringArrayTemplate */ "./src/custom-code-helpers/string-array/templates/string-array/StringArrayTemplate.ts");
- const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- let StringArrayCodeHelper = class StringArrayCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {
- constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {
- super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);
- }
- initialize(stringArrayStorage, stringArrayName) {
- this.stringArrayStorage = stringArrayStorage;
- this.stringArrayName = stringArrayName;
- }
- getNodeStructure(codeHelperTemplate) {
- return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);
- }
- getCodeHelperTemplate() {
- return this.customCodeHelperFormatter.formatTemplate(StringArrayTemplate_1.StringArrayTemplate(), {
- stringArrayName: this.stringArrayName,
- stringArray: this.stringArrayStorage.toString()
- });
- }
- };
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", typeof (_a = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _a : Object)
- ], StringArrayCodeHelper.prototype, "stringArrayStorage", void 0);
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", String)
- ], StringArrayCodeHelper.prototype, "stringArrayName", void 0);
- StringArrayCodeHelper = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_b = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _c : Object, typeof (_d = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _d : Object, typeof (_e = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _f : Object])
- ], StringArrayCodeHelper);
- exports.StringArrayCodeHelper = StringArrayCodeHelper;
- /***/ }),
- /***/ "./src/custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper.ts":
- /*!*************************************************************************************!*\
- !*** ./src/custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper.ts ***!
- \*************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d, _e, _f;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.StringArrayRotateFunctionCodeHelper = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
- const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts");
- const IEscapeSequenceEncoder_1 = __webpack_require__(/*! ../../interfaces/utils/IEscapeSequenceEncoder */ "./src/interfaces/utils/IEscapeSequenceEncoder.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- const SelfDefendingTemplate_1 = __webpack_require__(/*! ./templates/string-array-rotate-function/SelfDefendingTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-rotate-function/SelfDefendingTemplate.ts");
- const StringArrayRotateFunctionTemplate_1 = __webpack_require__(/*! ./templates/string-array-rotate-function/StringArrayRotateFunctionTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-rotate-function/StringArrayRotateFunctionTemplate.ts");
- const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- const NumberUtils_1 = __webpack_require__(/*! ../../utils/NumberUtils */ "./src/utils/NumberUtils.ts");
- let StringArrayRotateFunctionCodeHelper = class StringArrayRotateFunctionCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {
- constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options, escapeSequenceEncoder) {
- super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);
- this.escapeSequenceEncoder = escapeSequenceEncoder;
- }
- initialize(stringArrayName, stringArrayRotationAmount) {
- this.stringArrayName = stringArrayName;
- this.stringArrayRotationAmount = stringArrayRotationAmount;
- }
- getNodeStructure(codeHelperTemplate) {
- return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);
- }
- getCodeHelperTemplate() {
- const timesName = this.identifierNamesGenerator.generateNext();
- const whileFunctionName = this.identifierNamesGenerator.generateNext();
- const preservedNames = [`^${this.stringArrayName}$`];
- let code = '';
- if (this.options.selfDefending) {
- code = this.customCodeHelperFormatter.formatTemplate(SelfDefendingTemplate_1.SelfDefendingTemplate(this.escapeSequenceEncoder), {
- timesName,
- whileFunctionName
- });
- }
- else {
- code = `${whileFunctionName}(++${timesName})`;
- }
- return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(StringArrayRotateFunctionTemplate_1.StringArrayRotateFunctionTemplate(), {
- code,
- timesName,
- whileFunctionName,
- stringArrayName: this.stringArrayName,
- stringArrayRotationAmount: NumberUtils_1.NumberUtils.toHex(this.stringArrayRotationAmount)
- }), {
- reservedNames: preservedNames
- });
- }
- };
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", String)
- ], StringArrayRotateFunctionCodeHelper.prototype, "stringArrayName", void 0);
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", Number)
- ], StringArrayRotateFunctionCodeHelper.prototype, "stringArrayRotationAmount", void 0);
- StringArrayRotateFunctionCodeHelper = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)),
- __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object, typeof (_f = typeof IEscapeSequenceEncoder_1.IEscapeSequenceEncoder !== "undefined" && IEscapeSequenceEncoder_1.IEscapeSequenceEncoder) === "function" ? _f : Object])
- ], StringArrayRotateFunctionCodeHelper);
- exports.StringArrayRotateFunctionCodeHelper = StringArrayRotateFunctionCodeHelper;
- /***/ }),
- /***/ "./src/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.ts":
- /*!**********************************************************************************!*\
- !*** ./src/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.ts ***!
- \**********************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d, _e, _f;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.StringArrayCodeHelperGroup = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TCustomCodeHelperFactory_1 = __webpack_require__(/*! ../../../types/container/custom-code-helpers/TCustomCodeHelperFactory */ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const IStringArrayStorage_1 = __webpack_require__(/*! ../../../interfaces/storages/string-array-storage/IStringArrayStorage */ "./src/interfaces/storages/string-array-storage/IStringArrayStorage.ts");
- const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- const CustomCodeHelper_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelper */ "./src/enums/custom-code-helpers/CustomCodeHelper.ts");
- const ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
- const AbstractCustomCodeHelperGroup_1 = __webpack_require__(/*! ../../AbstractCustomCodeHelperGroup */ "./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts");
- const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
- let StringArrayCodeHelperGroup = class StringArrayCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup {
- constructor(customCodeHelperFactory, stringArrayStorage, identifierNamesGeneratorFactory, randomGenerator, options) {
- super(identifierNamesGeneratorFactory, randomGenerator, options);
- this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation;
- this.customCodeHelperFactory = customCodeHelperFactory;
- this.stringArrayStorage = stringArrayStorage;
- }
- appendNodes(nodeWithStatements, callsGraphData) {
- if (!this.stringArrayStorage.getLength()) {
- return;
- }
- this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.StringArray, (customCodeHelper) => {
- NodeAppender_1.NodeAppender.prepend(nodeWithStatements, customCodeHelper.getNode());
- });
- this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper, (customCodeHelper) => {
- NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customCodeHelper.getNode(), 1);
- });
- this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction, (customCodeHelper) => {
- NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customCodeHelper.getNode(), 1);
- });
- }
- initialize() {
- this.customCodeHelpers = new Map();
- if (!this.options.stringArray) {
- return;
- }
- const stringArrayCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.StringArray);
- const stringArrayCallsWrapperCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper);
- const stringArrayRotateFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction);
- const stringArrayName = this.stringArrayStorage.getStorageName();
- const stringArrayCallsWrapperName = this.stringArrayStorage.getStorageCallsWrapperName();
- const stringArrayRotationAmount = this.stringArrayStorage.getRotationAmount();
- stringArrayCodeHelper.initialize(this.stringArrayStorage, stringArrayName);
- stringArrayCallsWrapperCodeHelper.initialize(stringArrayName, stringArrayCallsWrapperName);
- stringArrayRotateFunctionCodeHelper.initialize(stringArrayName, stringArrayRotationAmount);
- this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.StringArray, stringArrayCodeHelper);
- this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper, stringArrayCallsWrapperCodeHelper);
- if (this.options.rotateStringArray) {
- this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction, stringArrayRotateFunctionCodeHelper);
- }
- }
- };
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object)
- ], StringArrayCodeHelperGroup.prototype, "customCodeHelpers", void 0);
- StringArrayCodeHelperGroup = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== "undefined" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === "function" ? _b : Object, typeof (_c = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _c : Object, typeof (_d = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _d : Object, typeof (_e = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _f : Object])
- ], StringArrayCodeHelperGroup);
- exports.StringArrayCodeHelperGroup = StringArrayCodeHelperGroup;
- /***/ }),
- /***/ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/AtobTemplate.ts":
- /*!***************************************************************************************************!*\
- !*** ./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/AtobTemplate.ts ***!
- \***************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.AtobTemplate = void 0;
- function AtobTemplate() {
- return `
- (function () {
- {globalVariableTemplate}
-
- const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
- that.atob || (
- that.atob = function(input) {
- const str = String(input).replace(/=+$/, '');
- let output = '';
- for (
- let bc = 0, bs, buffer, idx = 0;
- buffer = str.charAt(idx++);
- ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,
- bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0
- ) {
- buffer = chars.indexOf(buffer);
- }
- return output;
- }
- );
- })();
- `;
- }
- exports.AtobTemplate = AtobTemplate;
- /***/ }),
- /***/ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/Rc4Template.ts":
- /*!**************************************************************************************************!*\
- !*** ./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/Rc4Template.ts ***!
- \**************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.Rc4Template = void 0;
- function Rc4Template() {
- return `
- const rc4 = function (str, key) {
- let s = [], j = 0, x, res = '', newStr = '';
-
- str = atob(str);
-
- for (let k = 0, length = str.length; k < length; k++) {
- newStr += '%' + ('00' + str.charCodeAt(k).toString(16)).slice(-2);
- }
-
- str = decodeURIComponent(newStr);
-
- let i;
-
- for (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 (let y = 0; y < str.length; y++) {
- i = (i + 1) % 256;
- j = (j + s[i]) % 256;
- x = s[i];
- s[i] = s[j];
- s[j] = x;
- res += String.fromCharCode(str.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);
- }
-
- return res;
- }
- `;
- }
- exports.Rc4Template = Rc4Template;
- /***/ }),
- /***/ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/SelfDefendingTemplate.ts":
- /*!************************************************************************************************************!*\
- !*** ./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/SelfDefendingTemplate.ts ***!
- \************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.SelfDefendingTemplate = void 0;
- function SelfDefendingTemplate(randomGenerator, escapeSequenceEncoder) {
- const identifierLength = 6;
- const rc4BytesIdentifier = randomGenerator.getRandomString(identifierLength);
- const statesIdentifier = randomGenerator.getRandomString(identifierLength);
- const newStateIdentifier = randomGenerator.getRandomString(identifierLength);
- const firstStateIdentifier = randomGenerator.getRandomString(identifierLength);
- const secondStateIdentifier = randomGenerator.getRandomString(identifierLength);
- const checkStateIdentifier = randomGenerator.getRandomString(identifierLength);
- const runStateIdentifier = randomGenerator.getRandomString(identifierLength);
- const getStateIdentifier = randomGenerator.getRandomString(identifierLength);
- const stateResultIdentifier = randomGenerator.getRandomString(identifierLength);
- return `
- const StatesClass = function (${rc4BytesIdentifier}) {
- this.${rc4BytesIdentifier} = ${rc4BytesIdentifier};
- this.${statesIdentifier} = [1, 0, 0];
- this.${newStateIdentifier} = function(){return 'newState';};
- this.${firstStateIdentifier} = '${escapeSequenceEncoder.encode('\\w+ *\\(\\) *{\\w+ *', true)}';
- this.${secondStateIdentifier} = '${escapeSequenceEncoder.encode('[\'|"].+[\'|"];? *}', true)}';
- };
-
- StatesClass.prototype.${checkStateIdentifier} = function () {
- const regExp = new RegExp(this.${firstStateIdentifier} + this.${secondStateIdentifier});
- const expression = regExp.test(this.${newStateIdentifier}.toString())
- ? --this.${statesIdentifier}[1]
- : --this.${statesIdentifier}[0];
-
- return this.${runStateIdentifier}(expression);
- };
-
- StatesClass.prototype.${runStateIdentifier} = function (${stateResultIdentifier}) {
- if (!Boolean(~${stateResultIdentifier})) {
- return ${stateResultIdentifier};
- }
-
- return this.${getStateIdentifier}(this.${rc4BytesIdentifier});
- };
- StatesClass.prototype.${getStateIdentifier} = function (${rc4BytesIdentifier}) {
- for (let i = 0, len = this.${statesIdentifier}.length; i < len; i++) {
- this.${statesIdentifier}.push(Math.round(Math.random()));
- len = this.${statesIdentifier}.length;
- }
-
- return ${rc4BytesIdentifier}(this.${statesIdentifier}[0]);
- };
- new StatesClass({stringArrayCallsWrapperName}).${checkStateIdentifier}();
- `;
- }
- exports.SelfDefendingTemplate = SelfDefendingTemplate;
- /***/ }),
- /***/ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate.ts":
- /*!**********************************************************************************************************************!*\
- !*** ./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate.ts ***!
- \**********************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.StringArrayBase64DecodeTemplate = void 0;
- function StringArrayBase64DecodeTemplate(randomGenerator) {
- const identifierLength = 6;
- const initializedIdentifier = randomGenerator.getRandomString(identifierLength);
- const base64DecodeFunctionIdentifier = randomGenerator.getRandomString(identifierLength);
- const dataIdentifier = randomGenerator.getRandomString(identifierLength);
- return `
- if ({stringArrayCallsWrapperName}.${initializedIdentifier} === undefined) {
- {atobPolyfill}
-
- {stringArrayCallsWrapperName}.${base64DecodeFunctionIdentifier} = function (str) {
- const string = atob(str);
- let newStringChars = [];
-
- for (let i = 0, length = string.length; i < length; i++) {
- newStringChars += '%' + ('00' + string.charCodeAt(i).toString(16)).slice(-2);
- }
-
- return decodeURIComponent(newStringChars);
- };
-
- {stringArrayCallsWrapperName}.${dataIdentifier} = {};
-
- {stringArrayCallsWrapperName}.${initializedIdentifier} = true;
- }
-
- const cachedValue = {stringArrayCallsWrapperName}.${dataIdentifier}[index];
-
- if (cachedValue === undefined) {
- {selfDefendingCode}
-
- value = {stringArrayCallsWrapperName}.${base64DecodeFunctionIdentifier}(value);
- {stringArrayCallsWrapperName}.${dataIdentifier}[index] = value;
- } else {
- value = cachedValue;
- }
- `;
- }
- exports.StringArrayBase64DecodeTemplate = StringArrayBase64DecodeTemplate;
- /***/ }),
- /***/ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts":
- /*!**********************************************************************************************************************!*\
- !*** ./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts ***!
- \**********************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.StringArrayCallsWrapperTemplate = void 0;
- function StringArrayCallsWrapperTemplate() {
- return `
- const {stringArrayCallsWrapperName} = function (index, key) {
- index = index - 0;
-
- let value = {stringArrayName}[index];
-
- {decodeCodeHelperTemplate}
-
- return value;
- };
- `;
- }
- exports.StringArrayCallsWrapperTemplate = StringArrayCallsWrapperTemplate;
- /***/ }),
- /***/ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate.ts":
- /*!*******************************************************************************************************************!*\
- !*** ./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate.ts ***!
- \*******************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.StringArrayRC4DecodeTemplate = void 0;
- function StringArrayRC4DecodeTemplate(randomGenerator) {
- const identifierLength = 6;
- const initializedIdentifier = randomGenerator.getRandomString(identifierLength);
- const rc4Identifier = randomGenerator.getRandomString(identifierLength);
- const dataIdentifier = randomGenerator.getRandomString(identifierLength);
- const onceIdentifier = randomGenerator.getRandomString(identifierLength);
- return `
- if ({stringArrayCallsWrapperName}.${initializedIdentifier} === undefined) {
- {atobPolyfill}
-
- {rc4Polyfill}
- {stringArrayCallsWrapperName}.${rc4Identifier} = rc4;
-
- {stringArrayCallsWrapperName}.${dataIdentifier} = {};
-
- {stringArrayCallsWrapperName}.${initializedIdentifier} = true;
- }
-
- const cachedValue = {stringArrayCallsWrapperName}.${dataIdentifier}[index];
- if (cachedValue === undefined) {
- if ({stringArrayCallsWrapperName}.${onceIdentifier} === undefined) {
- {selfDefendingCode}
-
- {stringArrayCallsWrapperName}.${onceIdentifier} = true;
- }
-
- value = {stringArrayCallsWrapperName}.${rc4Identifier}(value, key);
- {stringArrayCallsWrapperName}.${dataIdentifier}[index] = value;
- } else {
- value = cachedValue;
- }
- `;
- }
- exports.StringArrayRC4DecodeTemplate = StringArrayRC4DecodeTemplate;
- /***/ }),
- /***/ "./src/custom-code-helpers/string-array/templates/string-array-rotate-function/SelfDefendingTemplate.ts":
- /*!**************************************************************************************************************!*\
- !*** ./src/custom-code-helpers/string-array/templates/string-array-rotate-function/SelfDefendingTemplate.ts ***!
- \**************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.SelfDefendingTemplate = void 0;
- function SelfDefendingTemplate(escapeSequenceEncoder) {
- return `
- const selfDefendingFunc = function () {
- const object = {
- data: {
- key: 'cookie',
- value: 'timeout'
- },
- setCookie: function (options, name, value, document) {
- document = document || {};
-
- let updatedCookie = name + "=" + value;
- let i = 0;
-
- for (let i = 0, len = options.length; i < len; i++) {
- const propName = options[i];
-
- updatedCookie += "; " + propName;
-
- const propValue = options[propName];
-
- options.push(propValue);
- len = options.length;
-
- if (propValue !== true) {
- updatedCookie += "=" + propValue;
- }
- }
- document['cookie'] = updatedCookie;
- },
- removeCookie: function(){return 'dev';},
- getCookie: function (document, name) {
- document = document || function (value) { return value };
- const matches = document(new RegExp(
- "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
- ));
-
- const func = function (param1, param2) {
- param1(++param2);
- };
-
- func({whileFunctionName}, {timesName});
-
- return matches ? decodeURIComponent(matches[1]) : undefined;
- }
- };
-
- const test1 = function () {
- const regExp = new RegExp('${escapeSequenceEncoder.encode('\\w+ *\\(\\) *{\\w+ *[\'|"].+[\'|"];? *}', true)}');
-
- return regExp.test(object.removeCookie.toString());
- };
-
- object['updateCookie'] = test1;
-
- let cookie = '';
- const result = object['updateCookie']();
-
- if (!result) {
- object['setCookie'](['*'], 'counter', 1);
- } else if (result) {
- cookie = object['getCookie'](null, 'counter');
- } else {
- object['removeCookie']();
- }
- };
-
- selfDefendingFunc();
- `;
- }
- exports.SelfDefendingTemplate = SelfDefendingTemplate;
- /***/ }),
- /***/ "./src/custom-code-helpers/string-array/templates/string-array-rotate-function/StringArrayRotateFunctionTemplate.ts":
- /*!**************************************************************************************************************************!*\
- !*** ./src/custom-code-helpers/string-array/templates/string-array-rotate-function/StringArrayRotateFunctionTemplate.ts ***!
- \**************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.StringArrayRotateFunctionTemplate = void 0;
- function StringArrayRotateFunctionTemplate() {
- return `
- (function (array, {timesName}) {
- const {whileFunctionName} = function (times) {
- while (--times) {
- array['push'](array['shift']());
- }
- };
-
- {code}
- })({stringArrayName}, {stringArrayRotationAmount});
- `;
- }
- exports.StringArrayRotateFunctionTemplate = StringArrayRotateFunctionTemplate;
- /***/ }),
- /***/ "./src/custom-code-helpers/string-array/templates/string-array/StringArrayTemplate.ts":
- /*!********************************************************************************************!*\
- !*** ./src/custom-code-helpers/string-array/templates/string-array/StringArrayTemplate.ts ***!
- \********************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.StringArrayTemplate = void 0;
- function StringArrayTemplate() {
- return `
- const {stringArrayName} = [{stringArray}];
- `;
- }
- exports.StringArrayTemplate = StringArrayTemplate;
- /***/ }),
- /***/ "./src/custom-nodes/AbstractCustomNode.ts":
- /*!************************************************!*\
- !*** ./src/custom-nodes/AbstractCustomNode.ts ***!
- \************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.AbstractCustomNode = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
- const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- let AbstractCustomNode = class AbstractCustomNode {
- constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {
- this.cachedNode = null;
- this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
- this.customCodeHelperFormatter = customCodeHelperFormatter;
- this.randomGenerator = randomGenerator;
- this.options = options;
- }
- getNode() {
- if (!this.cachedNode) {
- this.cachedNode = this.customCodeHelperFormatter.formatStructure(this.getNodeStructure());
- }
- return this.cachedNode;
- }
- };
- AbstractCustomNode = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object])
- ], AbstractCustomNode);
- exports.AbstractCustomNode = AbstractCustomNode;
- /***/ }),
- /***/ "./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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.BinaryExpressionFunctionNode = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- let BinaryExpressionFunctionNode = class BinaryExpressionFunctionNode extends AbstractCustomNode_1.AbstractCustomNode {
- constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {
- super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);
- }
- initialize(operator) {
- this.operator = operator;
- }
- getNodeStructure() {
- const 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];
- }
- };
- BinaryExpressionFunctionNode = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.BlockStatementControlFlowFlatteningNode = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- let BlockStatementControlFlowFlatteningNode = class BlockStatementControlFlowFlatteningNode extends AbstractCustomNode_1.AbstractCustomNode {
- constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {
- super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);
- }
- initialize(blockStatementBody, shuffledKeys, originalKeysIndexesInShuffledArray) {
- this.blockStatementBody = blockStatementBody;
- this.shuffledKeys = shuffledKeys;
- this.originalKeysIndexesInShuffledArray = originalKeysIndexesInShuffledArray;
- }
- getNodeStructure() {
- const controllerIdentifierName = this.randomGenerator.getRandomString(6);
- const indexIdentifierName = this.randomGenerator.getRandomString(6);
- const 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('|')
- ]))
- ], 'const'),
- NodeFactory_1.NodeFactory.variableDeclarationNode([
- NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(indexIdentifierName), NodeFactory_1.NodeFactory.literalNode(0))
- ], 'let'),
- 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((key, index) => {
- const statement = this.blockStatementBody[key];
- const 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];
- }
- };
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", Array)
- ], BlockStatementControlFlowFlatteningNode.prototype, "blockStatementBody", void 0);
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", Array)
- ], BlockStatementControlFlowFlatteningNode.prototype, "originalKeysIndexesInShuffledArray", void 0);
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", Array)
- ], BlockStatementControlFlowFlatteningNode.prototype, "shuffledKeys", void 0);
- BlockStatementControlFlowFlatteningNode = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.CallExpressionFunctionNode = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- let CallExpressionFunctionNode = class CallExpressionFunctionNode extends AbstractCustomNode_1.AbstractCustomNode {
- constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {
- super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);
- }
- initialize(expressionArguments) {
- this.expressionArguments = expressionArguments;
- }
- getNodeStructure() {
- const calleeIdentifier = NodeFactory_1.NodeFactory.identifierNode('callee');
- const params = [];
- const argumentsLength = this.expressionArguments.length;
- for (let i = 0; i < argumentsLength; i++) {
- params.push(NodeFactory_1.NodeFactory.identifierNode(`param${i + 1}`));
- }
- const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([
- calleeIdentifier,
- ...params
- ], NodeFactory_1.NodeFactory.blockStatementNode([
- NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(calleeIdentifier, params))
- ])));
- NodeUtils_1.NodeUtils.parentizeAst(structure);
- return [structure];
- }
- };
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", Array)
- ], CallExpressionFunctionNode.prototype, "expressionArguments", void 0);
- CallExpressionFunctionNode = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.LogicalExpressionFunctionNode = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- let LogicalExpressionFunctionNode = class LogicalExpressionFunctionNode extends AbstractCustomNode_1.AbstractCustomNode {
- constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {
- super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);
- }
- initialize(operator) {
- this.operator = operator;
- }
- getNodeStructure() {
- const 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];
- }
- };
- LogicalExpressionFunctionNode = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.StringLiteralNode = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- let StringLiteralNode = class StringLiteralNode extends AbstractCustomNode_1.AbstractCustomNode {
- constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {
- super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);
- }
- initialize(literalValue) {
- this.literalValue = literalValue;
- }
- getNodeStructure() {
- const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.literalNode(this.literalValue));
- return [structure];
- }
- };
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", String)
- ], StringLiteralNode.prototype, "literalValue", void 0);
- StringLiteralNode = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d, _e;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.CallExpressionControlFlowStorageCallNode = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
- const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- const AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- let CallExpressionControlFlowStorageCallNode = class CallExpressionControlFlowStorageCallNode extends AbstractCustomNode_1.AbstractCustomNode {
- constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {
- super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);
- }
- initialize(controlFlowStorageName, controlFlowStorageKey, callee, expressionArguments) {
- this.controlFlowStorageName = controlFlowStorageName;
- this.controlFlowStorageKey = controlFlowStorageKey;
- this.callee = callee;
- this.expressionArguments = expressionArguments;
- }
- getNodeStructure() {
- const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey)), [
- this.callee,
- ...this.expressionArguments
- ]));
- NodeUtils_1.NodeUtils.parentizeAst(structure);
- return [structure];
- }
- };
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", typeof (_a = typeof ESTree !== "undefined" && ESTree.Expression) === "function" ? _a : Object)
- ], CallExpressionControlFlowStorageCallNode.prototype, "callee", void 0);
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", String)
- ], CallExpressionControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0);
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", String)
- ], CallExpressionControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0);
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", Array)
- ], CallExpressionControlFlowStorageCallNode.prototype, "expressionArguments", void 0);
- CallExpressionControlFlowStorageCallNode = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_b = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d, _e;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ControlFlowStorageNode = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TControlFlowStorage_1 = __webpack_require__(/*! ../../../types/storages/TControlFlowStorage */ "./src/types/storages/TControlFlowStorage.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
- const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- const AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- let ControlFlowStorageNode = class ControlFlowStorageNode extends AbstractCustomNode_1.AbstractCustomNode {
- constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {
- super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);
- }
- initialize(controlFlowStorage) {
- this.controlFlowStorage = controlFlowStorage;
- }
- getNodeStructure() {
- const propertyNodes = Array
- .from(this.controlFlowStorage.getStorage())
- .map(([key, value]) => {
- const 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);
- });
- let structure = NodeFactory_1.NodeFactory.variableDeclarationNode([
- NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorage.getStorageId()), NodeFactory_1.NodeFactory.objectExpressionNode(propertyNodes))
- ], 'const');
- structure = NodeUtils_1.NodeUtils.parentizeAst(structure);
- return [structure];
- }
- };
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", typeof (_a = typeof TControlFlowStorage_1.TControlFlowStorage !== "undefined" && TControlFlowStorage_1.TControlFlowStorage) === "function" ? _a : Object)
- ], ControlFlowStorageNode.prototype, "controlFlowStorage", void 0);
- ControlFlowStorageNode = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_b = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ExpressionWithOperatorControlFlowStorageCallNode = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
- const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- const AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- let ExpressionWithOperatorControlFlowStorageCallNode = class ExpressionWithOperatorControlFlowStorageCallNode extends AbstractCustomNode_1.AbstractCustomNode {
- constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {
- super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);
- }
- initialize(controlFlowStorageName, controlFlowStorageKey, leftValue, rightValue) {
- this.controlFlowStorageName = controlFlowStorageName;
- this.controlFlowStorageKey = controlFlowStorageKey;
- this.leftValue = leftValue;
- this.rightValue = rightValue;
- }
- getNodeStructure() {
- const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey)), [
- this.leftValue,
- this.rightValue
- ]));
- NodeUtils_1.NodeUtils.parentizeAst(structure);
- return [structure];
- }
- };
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", String)
- ], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0);
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", String)
- ], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0);
- ExpressionWithOperatorControlFlowStorageCallNode = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.StringLiteralControlFlowStorageCallNode = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
- const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
- const AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- let StringLiteralControlFlowStorageCallNode = class StringLiteralControlFlowStorageCallNode extends AbstractCustomNode_1.AbstractCustomNode {
- constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {
- super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);
- }
- initialize(controlFlowStorageName, controlFlowStorageKey) {
- this.controlFlowStorageName = controlFlowStorageName;
- this.controlFlowStorageKey = controlFlowStorageKey;
- }
- getNodeStructure() {
- const 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];
- }
- };
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", String)
- ], StringLiteralControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0);
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", String)
- ], StringLiteralControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0);
- StringLiteralControlFlowStorageCallNode = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.BlockStatementDeadCodeInjectionNode = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- let BlockStatementDeadCodeInjectionNode = class BlockStatementDeadCodeInjectionNode extends AbstractCustomNode_1.AbstractCustomNode {
- constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {
- super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);
- }
- initialize(blockStatementNode, deadCodeInjectionRootAstHostNode) {
- this.blockStatementNode = blockStatementNode;
- this.deadCodeInjectionRootAstHostNode = deadCodeInjectionRootAstHostNode;
- }
- getNode() {
- return this.getNodeStructure();
- }
- getNodeStructure() {
- const random1 = this.randomGenerator.getMathRandom() > 0.5;
- const random2 = this.randomGenerator.getMathRandom() > 0.5;
- const operator = random1 ? '===' : '!==';
- const leftString = this.randomGenerator.getRandomString(5);
- const rightString = random2 ? leftString : this.randomGenerator.getRandomString(5);
- const [consequent, alternate] = random1 === random2
- ? [this.blockStatementNode, this.deadCodeInjectionRootAstHostNode]
- : [this.deadCodeInjectionRootAstHostNode, this.blockStatementNode];
- const 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];
- }
- };
- BlockStatementDeadCodeInjectionNode = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object])
- ], BlockStatementDeadCodeInjectionNode);
- exports.BlockStatementDeadCodeInjectionNode = BlockStatementDeadCodeInjectionNode;
- /***/ }),
- /***/ "./src/custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode.ts":
- /*!******************************************************************************************************************!*\
- !*** ./src/custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode.ts ***!
- \******************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ObjectExpressionVariableDeclarationHostNode = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
- const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- let ObjectExpressionVariableDeclarationHostNode = class ObjectExpressionVariableDeclarationHostNode extends AbstractCustomNode_1.AbstractCustomNode {
- constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {
- super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);
- }
- initialize(lexicalScopeNode, properties) {
- this.lexicalScopeNode = lexicalScopeNode;
- this.properties = properties;
- }
- getNodeStructure() {
- const variableDeclarationName = NodeGuards_1.NodeGuards.isProgramNode(this.lexicalScopeNode)
- ? this.identifierNamesGenerator.generateForGlobalScope()
- : this.identifierNamesGenerator.generateForLexicalScope(this.lexicalScopeNode);
- const structure = NodeFactory_1.NodeFactory.variableDeclarationNode([
- NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(variableDeclarationName), NodeFactory_1.NodeFactory.objectExpressionNode(this.properties))
- ], 'const');
- return [structure];
- }
- };
- ObjectExpressionVariableDeclarationHostNode = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object])
- ], ObjectExpressionVariableDeclarationHostNode);
- exports.ObjectExpressionVariableDeclarationHostNode = ObjectExpressionVariableDeclarationHostNode;
- /***/ }),
- /***/ "./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 });
- exports.initializable = void 0;
- const defaultDescriptor = {
- configurable: true,
- enumerable: true
- };
- const initializedTargetMetadataKey = '_initialized';
- const initializablePropertiesSetMetadataKey = '_initializablePropertiesSet';
- const wrappedMethodsSetMetadataKey = '_wrappedMethodsSet';
- const constructorMethodName = 'constructor';
- function initializable(initializeMethodName = 'initialize') {
- const decoratorName = Object.keys(this)[0];
- return (target, propertyKey) => {
- const initializeMethod = target[initializeMethodName];
- if (!initializeMethod || typeof initializeMethod !== 'function') {
- throw new Error(`\`${initializeMethodName}\` method with initialization logic not ` +
- `found. \`@${decoratorName}\` decorator requires \`${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) {
- const hasInitializedMetadata = Reflect.hasMetadata(metadataKey, target);
- if (!hasInitializedMetadata) {
- Reflect.defineMetadata(metadataKey, metadataValue, target);
- }
- }
- function wrapTargetMethodsInInitializedCheck(target, initializeMethodName) {
- const ownPropertyNames = Object.getOwnPropertyNames(target);
- const prohibitedPropertyNames = [initializeMethodName, constructorMethodName];
- ownPropertyNames.forEach((propertyName) => {
- var _a;
- const initializablePropertiesSet = Reflect
- .getMetadata(initializablePropertiesSetMetadataKey, target);
- const wrappedMethodsSet = Reflect
- .getMetadata(wrappedMethodsSetMetadataKey, target);
- const isProhibitedPropertyName = prohibitedPropertyNames.includes(propertyName)
- || initializablePropertiesSet.has(propertyName)
- || wrappedMethodsSet.has(propertyName);
- if (isProhibitedPropertyName) {
- return;
- }
- const targetProperty = target[propertyName];
- if (typeof targetProperty !== 'function') {
- return;
- }
- const methodDescriptor = (_a = Object
- .getOwnPropertyDescriptor(target, propertyName)) !== null && _a !== void 0 ? _a : defaultDescriptor;
- const originalMethod = methodDescriptor.value;
- Object.defineProperty(target, propertyName, Object.assign(Object.assign({}, methodDescriptor), { value() {
- if (!Reflect.getMetadata(initializedTargetMetadataKey, this)) {
- throw new Error(`Class should be initialized with \`${initializeMethodName}()\` method`);
- }
- return originalMethod.apply(this, arguments);
- } }));
- wrappedMethodsSet.add(propertyName);
- });
- }
- function wrapInitializeMethodInInitializeCheck(target, initializeMethodName, propertyKey) {
- var _a;
- const methodDescriptor = (_a = Object
- .getOwnPropertyDescriptor(target, initializeMethodName)) !== null && _a !== void 0 ? _a : defaultDescriptor;
- const originalMethod = methodDescriptor.value;
- Object.defineProperty(target, initializeMethodName, Object.assign(Object.assign({}, methodDescriptor), { value: function () {
- Reflect.defineMetadata(initializedTargetMetadataKey, true, this);
- const result = originalMethod.apply(this, arguments);
- if (this[propertyKey]) { }
- return result;
- } }));
- }
- function wrapInitializableProperty(target, propertyKey) {
- var _a;
- const initializablePropertiesSet = Reflect
- .getMetadata(initializablePropertiesSetMetadataKey, target);
- initializablePropertiesSet.add(propertyKey);
- const initializablePropertyMetadataKey = `_${propertyKey.toString()}`;
- const propertyDescriptor = (_a = Object
- .getOwnPropertyDescriptor(target, initializablePropertyMetadataKey)) !== null && _a !== void 0 ? _a : defaultDescriptor;
- Object.defineProperty(target, propertyKey, Object.assign(Object.assign({}, propertyDescriptor), { get: function () {
- if (this[initializablePropertyMetadataKey] === undefined) {
- throw new Error(`Property \`${propertyKey.toString()}\` is not initialized! Initialize it first!`);
- }
- return this[initializablePropertyMetadataKey];
- }, set: function (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 });
- exports.ObfuscationTarget = void 0;
- const tsenum_1 = __webpack_require__(/*! @gradecam/tsenum */ "@gradecam/tsenum");
- exports.ObfuscationTarget = tsenum_1.MakeEnum({
- Browser: 'browser',
- BrowserNoEval: 'browser-no-eval',
- Node: 'node'
- });
- /***/ }),
- /***/ "./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 });
- exports.StringArrayEncoding = void 0;
- const tsenum_1 = __webpack_require__(/*! @gradecam/tsenum */ "@gradecam/tsenum");
- exports.StringArrayEncoding = tsenum_1.MakeEnum({
- Base64: 'base64',
- Rc4: 'rc4'
- });
- /***/ }),
- /***/ "./src/enums/StringSeparator.ts":
- /*!**************************************!*\
- !*** ./src/enums/StringSeparator.ts ***!
- \**************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.StringSeparator = void 0;
- var StringSeparator;
- (function (StringSeparator) {
- StringSeparator["Dot"] = ".";
- StringSeparator["Comma"] = ",";
- })(StringSeparator = exports.StringSeparator || (exports.StringSeparator = {}));
- /***/ }),
- /***/ "./src/enums/analyzers/calls-graph-analyzer/CalleeDataExtractor.ts":
- /*!*************************************************************************!*\
- !*** ./src/enums/analyzers/calls-graph-analyzer/CalleeDataExtractor.ts ***!
- \*************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.CalleeDataExtractor = void 0;
- var CalleeDataExtractor;
- (function (CalleeDataExtractor) {
- CalleeDataExtractor["FunctionDeclarationCalleeDataExtractor"] = "FunctionDeclarationCalleeDataExtractor";
- CalleeDataExtractor["FunctionExpressionCalleeDataExtractor"] = "FunctionExpressionCalleeDataExtractor";
- CalleeDataExtractor["ObjectExpressionCalleeDataExtractor"] = "ObjectExpressionCalleeDataExtractor";
- })(CalleeDataExtractor = exports.CalleeDataExtractor || (exports.CalleeDataExtractor = {}));
- /***/ }),
- /***/ "./src/enums/code-transformers/CodeTransformationStage.ts":
- /*!****************************************************************!*\
- !*** ./src/enums/code-transformers/CodeTransformationStage.ts ***!
- \****************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.CodeTransformationStage = void 0;
- var CodeTransformationStage;
- (function (CodeTransformationStage) {
- CodeTransformationStage["PreparingTransformers"] = "PreparingTransformers";
- CodeTransformationStage["FinalizingTransformers"] = "FinalizingTransformers";
- })(CodeTransformationStage = exports.CodeTransformationStage || (exports.CodeTransformationStage = {}));
- /***/ }),
- /***/ "./src/enums/code-transformers/CodeTransformer.ts":
- /*!********************************************************!*\
- !*** ./src/enums/code-transformers/CodeTransformer.ts ***!
- \********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.CodeTransformer = void 0;
- var CodeTransformer;
- (function (CodeTransformer) {
- CodeTransformer["HashbangOperatorTransformer"] = "HashbangOperatorTransformer";
- })(CodeTransformer = exports.CodeTransformer || (exports.CodeTransformer = {}));
- /***/ }),
- /***/ "./src/enums/custom-code-helpers/CustomCodeHelper.ts":
- /*!***********************************************************!*\
- !*** ./src/enums/custom-code-helpers/CustomCodeHelper.ts ***!
- \***********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.CustomCodeHelper = void 0;
- var CustomCodeHelper;
- (function (CustomCodeHelper) {
- CustomCodeHelper["CallsControllerFunction"] = "CallsControllerFunction";
- CustomCodeHelper["ConsoleOutputDisable"] = "ConsoleOutputDisable";
- CustomCodeHelper["DebugProtectionFunctionCall"] = "DebugProtectionFunctionCall";
- CustomCodeHelper["DebugProtectionFunctionInterval"] = "DebugProtectionFunctionInterval";
- CustomCodeHelper["DebugProtectionFunction"] = "DebugProtectionFunction";
- CustomCodeHelper["DomainLock"] = "DomainLock";
- CustomCodeHelper["SelfDefendingUnicode"] = "SelfDefendingUnicode";
- CustomCodeHelper["StringArrayCallsWrapper"] = "StringArrayCallsWrapper";
- CustomCodeHelper["StringArray"] = "StringArray";
- CustomCodeHelper["StringArrayRotateFunction"] = "StringArrayRotateFunction";
- })(CustomCodeHelper = exports.CustomCodeHelper || (exports.CustomCodeHelper = {}));
- /***/ }),
- /***/ "./src/enums/custom-code-helpers/CustomCodeHelperGroup.ts":
- /*!****************************************************************!*\
- !*** ./src/enums/custom-code-helpers/CustomCodeHelperGroup.ts ***!
- \****************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.CustomCodeHelperGroup = void 0;
- var CustomCodeHelperGroup;
- (function (CustomCodeHelperGroup) {
- CustomCodeHelperGroup["ConsoleOutput"] = "ConsoleOutput";
- CustomCodeHelperGroup["DebugProtection"] = "DebugProtection";
- CustomCodeHelperGroup["DomainLock"] = "DomainLock";
- CustomCodeHelperGroup["SelfDefending"] = "SelfDefending";
- CustomCodeHelperGroup["StringArray"] = "StringArray";
- })(CustomCodeHelperGroup = exports.CustomCodeHelperGroup || (exports.CustomCodeHelperGroup = {}));
- /***/ }),
- /***/ "./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 });
- exports.ControlFlowCustomNode = void 0;
- 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/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 });
- exports.DeadCodeInjectionCustomNode = void 0;
- var DeadCodeInjectionCustomNode;
- (function (DeadCodeInjectionCustomNode) {
- DeadCodeInjectionCustomNode["BlockStatementDeadCodeInjectionNode"] = "BlockStatementDeadCodeInjectionNode";
- })(DeadCodeInjectionCustomNode = exports.DeadCodeInjectionCustomNode || (exports.DeadCodeInjectionCustomNode = {}));
- /***/ }),
- /***/ "./src/enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode.ts":
- /*!*****************************************************************************!*\
- !*** ./src/enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode.ts ***!
- \*****************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ObjectExpressionKeysTransformerCustomNode = void 0;
- var ObjectExpressionKeysTransformerCustomNode;
- (function (ObjectExpressionKeysTransformerCustomNode) {
- ObjectExpressionKeysTransformerCustomNode["ObjectExpressionVariableDeclarationHostNode"] = "ObjectExpressionVariableDeclarationHostNode";
- })(ObjectExpressionKeysTransformerCustomNode = exports.ObjectExpressionKeysTransformerCustomNode || (exports.ObjectExpressionKeysTransformerCustomNode = {}));
- /***/ }),
- /***/ "./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 });
- exports.ObfuscationEvent = void 0;
- 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 });
- exports.IdentifierNamesGenerator = void 0;
- const tsenum_1 = __webpack_require__(/*! @gradecam/tsenum */ "@gradecam/tsenum");
- exports.IdentifierNamesGenerator = tsenum_1.MakeEnum({
- DictionaryIdentifierNamesGenerator: 'dictionary',
- HexadecimalIdentifierNamesGenerator: 'hexadecimal',
- MangledIdentifierNamesGenerator: 'mangled'
- });
- /***/ }),
- /***/ "./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 });
- exports.LoggingMessage = void 0;
- 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["CodeTransformationStage"] = "Code transformation stage: %s...";
- LoggingMessage["NodeTransformationStage"] = "AST 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 });
- exports.LoggingPrefix = void 0;
- var LoggingPrefix;
- (function (LoggingPrefix) {
- LoggingPrefix["Base"] = "[javascript-obfuscator]";
- LoggingPrefix["CLI"] = "[javascript-obfuscator-cli]";
- })(LoggingPrefix = exports.LoggingPrefix || (exports.LoggingPrefix = {}));
- /***/ }),
- /***/ "./src/enums/node-transformers/NodeTransformationStage.ts":
- /*!****************************************************************!*\
- !*** ./src/enums/node-transformers/NodeTransformationStage.ts ***!
- \****************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.NodeTransformationStage = void 0;
- var NodeTransformationStage;
- (function (NodeTransformationStage) {
- NodeTransformationStage["Initializing"] = "Initializing";
- NodeTransformationStage["Preparing"] = "Preparing";
- NodeTransformationStage["MangleProperties"] = "MangleProperties";
- NodeTransformationStage["DeadCodeInjection"] = "DeadCodeInjection";
- NodeTransformationStage["ControlFlowFlattening"] = "ControlFlowFlattening";
- NodeTransformationStage["Converting"] = "Converting";
- NodeTransformationStage["Obfuscating"] = "Obfuscating";
- NodeTransformationStage["Finalizing"] = "Finalizing";
- })(NodeTransformationStage = exports.NodeTransformationStage || (exports.NodeTransformationStage = {}));
- /***/ }),
- /***/ "./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 });
- exports.NodeTransformer = void 0;
- var NodeTransformer;
- (function (NodeTransformer) {
- NodeTransformer["BlockStatementControlFlowTransformer"] = "BlockStatementControlFlowTransformer";
- NodeTransformer["CommentsTransformer"] = "CommentsTransformer";
- NodeTransformer["CustomCodeHelpersTransformer"] = "CustomCodeHelpersTransformer";
- NodeTransformer["DeadCodeInjectionTransformer"] = "DeadCodeInjectionTransformer";
- NodeTransformer["EvalCallExpressionTransformer"] = "EvalCallExpressionTransformer";
- NodeTransformer["FunctionControlFlowTransformer"] = "FunctionControlFlowTransformer";
- NodeTransformer["LabeledStatementTransformer"] = "LabeledStatementTransformer";
- NodeTransformer["LiteralTransformer"] = "LiteralTransformer";
- NodeTransformer["ManglePropertiesTransformer"] = "ManglePropertiesTransformer";
- NodeTransformer["MemberExpressionTransformer"] = "MemberExpressionTransformer";
- NodeTransformer["MetadataTransformer"] = "MetadataTransformer";
- NodeTransformer["MethodDefinitionTransformer"] = "MethodDefinitionTransformer";
- NodeTransformer["ObfuscatingGuardsTransformer"] = "ObfuscatingGuardsTransformer";
- NodeTransformer["ObjectExpressionKeysTransformer"] = "ObjectExpressionKeysTransformer";
- NodeTransformer["ObjectExpressionTransformer"] = "ObjectExpressionTransformer";
- NodeTransformer["ParentificationTransformer"] = "ParentificationTransformer";
- NodeTransformer["ScopeIdentifiersTransformer"] = "ScopeIdentifiersTransformer";
- NodeTransformer["SplitStringTransformer"] = "SplitStringTransformer";
- NodeTransformer["TemplateLiteralTransformer"] = "TemplateLiteralTransformer";
- NodeTransformer["VariablePreserveTransformer"] = "VariablePreserveTransformer";
- })(NodeTransformer = exports.NodeTransformer || (exports.NodeTransformer = {}));
- /***/ }),
- /***/ "./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 });
- exports.VisitorDirection = void 0;
- var VisitorDirection;
- (function (VisitorDirection) {
- VisitorDirection["Enter"] = "enter";
- VisitorDirection["Leave"] = "leave";
- })(VisitorDirection = exports.VisitorDirection || (exports.VisitorDirection = {}));
- /***/ }),
- /***/ "./src/enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor.ts":
- /*!****************************************************************************************************************!*\
- !*** ./src/enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor.ts ***!
- \****************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ObjectExpressionExtractor = void 0;
- var ObjectExpressionExtractor;
- (function (ObjectExpressionExtractor) {
- ObjectExpressionExtractor["BasePropertiesExtractor"] = "BasePropertiesExtractor";
- ObjectExpressionExtractor["ObjectExpressionToVariableDeclarationExtractor"] = "ObjectExpressionToVariableDeclarationExtractor";
- })(ObjectExpressionExtractor = exports.ObjectExpressionExtractor || (exports.ObjectExpressionExtractor = {}));
- /***/ }),
- /***/ "./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 });
- exports.ControlFlowReplacer = void 0;
- 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 });
- exports.IdentifierObfuscatingReplacer = void 0;
- 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 });
- exports.LiteralObfuscatingReplacer = void 0;
- 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 });
- exports.ObfuscatingGuard = void 0;
- var ObfuscatingGuard;
- (function (ObfuscatingGuard) {
- ObfuscatingGuard["BlackListObfuscatingGuard"] = "BlackListObfuscatingGuard";
- ObfuscatingGuard["ConditionalCommentObfuscatingGuard"] = "ConditionalCommentObfuscatingGuard";
- ObfuscatingGuard["ReservedStringObfuscatingGuard"] = "ReservedStringObfuscatingGuard";
- })(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 });
- exports.NodeType = void 0;
- 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["ConditionalExpression"] = "ConditionalExpression";
- NodeType["ContinueStatement"] = "ContinueStatement";
- NodeType["ExportNamedDeclaration"] = "ExportNamedDeclaration";
- NodeType["ExpressionStatement"] = "ExpressionStatement";
- NodeType["ForStatement"] = "ForStatement";
- NodeType["ForInStatement"] = "ForInStatement";
- NodeType["ForOfStatement"] = "ForOfStatement";
- 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["SequenceExpression"] = "SequenceExpression";
- 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 });
- exports.SourceMapMode = void 0;
- const tsenum_1 = __webpack_require__(/*! @gradecam/tsenum */ "@gradecam/tsenum");
- exports.SourceMapMode = tsenum_1.MakeEnum({
- Inline: 'inline',
- Separate: 'separate'
- });
- /***/ }),
- /***/ "./src/event-emitters/ObfuscationEventEmitter.ts":
- /*!*******************************************************!*\
- !*** ./src/event-emitters/ObfuscationEventEmitter.ts ***!
- \*******************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ObfuscationEventEmitter = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const eventemitter3_1 = __importDefault(__webpack_require__(/*! eventemitter3 */ "eventemitter3"));
- inversify_1.decorate(inversify_1.injectable(), eventemitter3_1.default);
- let ObfuscationEventEmitter = class ObfuscationEventEmitter extends eventemitter3_1.default {
- };
- ObfuscationEventEmitter = __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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.AbstractIdentifierNamesGenerator = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- let AbstractIdentifierNamesGenerator = class AbstractIdentifierNamesGenerator {
- constructor(randomGenerator, options) {
- this.preservedNamesSet = new Set();
- this.lexicalScopesPreservedNamesMap = new Map();
- this.randomGenerator = randomGenerator;
- this.options = options;
- }
- generate(lexicalScopeNode, nameLength) {
- return NodeGuards_1.NodeGuards.isProgramNode(lexicalScopeNode)
- ? this.generateForGlobalScope()
- : this.generateForLexicalScope(lexicalScopeNode);
- }
- preserveName(name) {
- this.preservedNamesSet.add(name);
- }
- preserveNameForLexicalScope(name, lexicalScopeNode) {
- var _a;
- const preservedNamesForLexicalScopeSet = (_a = this.lexicalScopesPreservedNamesMap.get(lexicalScopeNode)) !== null && _a !== void 0 ? _a : new Set();
- preservedNamesForLexicalScopeSet.add(name);
- this.lexicalScopesPreservedNamesMap.set(lexicalScopeNode, preservedNamesForLexicalScopeSet);
- }
- isValidIdentifierName(name) {
- return this.notReservedName(name) && !this.preservedNamesSet.has(name);
- }
- isValidIdentifierNameInLexicalScopes(name, lexicalScopeNodes) {
- var _a;
- if (!this.isValidIdentifierName(name)) {
- return false;
- }
- for (const lexicalScope of lexicalScopeNodes) {
- const preservedNamesForLexicalScopeSet = (_a = this.lexicalScopesPreservedNamesMap.get(lexicalScope)) !== null && _a !== void 0 ? _a : null;
- if (!preservedNamesForLexicalScopeSet) {
- continue;
- }
- if (preservedNamesForLexicalScopeSet.has(name)) {
- return false;
- }
- }
- return true;
- }
- notReservedName(name) {
- return this.options.reservedNames.length
- ? !this.options.reservedNames.some((reservedName) => new RegExp(reservedName, 'g').exec(name) !== null)
- : true;
- }
- };
- AbstractIdentifierNamesGenerator = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var DictionaryIdentifierNamesGenerator_1, _a, _b, _c;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.DictionaryIdentifierNamesGenerator = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const AbstractIdentifierNamesGenerator_1 = __webpack_require__(/*! ./AbstractIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts");
- const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
- let DictionaryIdentifierNamesGenerator = DictionaryIdentifierNamesGenerator_1 = class DictionaryIdentifierNamesGenerator extends AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator {
- constructor(randomGenerator, options, arrayUtils) {
- super(randomGenerator, options);
- this.arrayUtils = arrayUtils;
- this.identifierNamesSet = new Set(this.getInitialIdentifierNames(this.options.identifiersDictionary));
- this.identifiersIterator = this.identifierNamesSet.values();
- }
- static incrementIdentifierName(identifierName) {
- let newIdentifierName = '';
- let isSuccess = false;
- for (const character of identifierName) {
- if (!isSuccess && character === character.toUpperCase()) {
- newIdentifierName += character.toLowerCase();
- }
- else if (!isSuccess && character === character.toLowerCase()) {
- newIdentifierName += character.toUpperCase();
- isSuccess = true;
- }
- else {
- newIdentifierName += character;
- }
- }
- if (isSuccess) {
- return newIdentifierName;
- }
- return null;
- }
- generateNext() {
- const identifierName = this.generateNewDictionaryName();
- this.preserveName(identifierName);
- return identifierName;
- }
- generateForGlobalScope() {
- const prefix = this.options.identifiersPrefix ?
- `${this.options.identifiersPrefix}`
- : '';
- const identifierName = this.generateNewDictionaryName();
- const identifierNameWithPrefix = `${prefix}${identifierName}`;
- if (!this.isValidIdentifierName(identifierNameWithPrefix)) {
- return this.generateForGlobalScope();
- }
- this.preserveName(identifierNameWithPrefix);
- return identifierNameWithPrefix;
- }
- generateForLexicalScope(lexicalScopeNode) {
- const lexicalScopes = [
- lexicalScopeNode,
- ...NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScopes(lexicalScopeNode)
- ];
- const identifierName = this.generateNewDictionaryName();
- if (!this.isValidIdentifierNameInLexicalScopes(identifierName, lexicalScopes)) {
- return this.generateForLexicalScope(lexicalScopeNode);
- }
- this.preserveNameForLexicalScope(identifierName, lexicalScopeNode);
- return identifierName;
- }
- generateNewDictionaryName() {
- if (!this.identifierNamesSet.size) {
- throw new Error('Too many identifiers in the code, add more words to identifiers dictionary');
- }
- const iteratorResult = this.identifiersIterator.next();
- if (!iteratorResult.done) {
- const identifierName = iteratorResult.value;
- if (!this.isValidIdentifierName(identifierName)) {
- return this.generateNewDictionaryName();
- }
- return iteratorResult.value;
- }
- this.identifierNamesSet = new Set(this.getIncrementedIdentifierNames([...this.identifierNamesSet]));
- this.identifiersIterator = this.identifierNamesSet.values();
- return this.generateNewDictionaryName();
- }
- getInitialIdentifierNames(identifierNames) {
- const formattedIdentifierNames = identifierNames
- .filter(Boolean)
- .map((identifierName) => identifierName.toLowerCase());
- return this.arrayUtils.shuffle(formattedIdentifierNames);
- }
- getIncrementedIdentifierNames(identifierNames) {
- const formattedIdentifierNames = [];
- for (const identifierName of identifierNames) {
- const newIdentifierName = DictionaryIdentifierNamesGenerator_1
- .incrementIdentifierName(identifierName);
- if (newIdentifierName) {
- formattedIdentifierNames.push(newIdentifierName);
- }
- }
- return this.arrayUtils.shuffle(formattedIdentifierNames);
- }
- };
- DictionaryIdentifierNamesGenerator = DictionaryIdentifierNamesGenerator_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),
- __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object, typeof (_c = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _c : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var HexadecimalIdentifierNamesGenerator_1, _a, _b;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.HexadecimalIdentifierNamesGenerator = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const AbstractIdentifierNamesGenerator_1 = __webpack_require__(/*! ./AbstractIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts");
- const NumberUtils_1 = __webpack_require__(/*! ../../utils/NumberUtils */ "./src/utils/NumberUtils.ts");
- const Utils_1 = __webpack_require__(/*! ../../utils/Utils */ "./src/utils/Utils.ts");
- let HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator_1 = class HexadecimalIdentifierNamesGenerator extends AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator {
- constructor(randomGenerator, options) {
- super(randomGenerator, options);
- }
- generateNext(nameLength) {
- const rangeMinInteger = 10000;
- const rangeMaxInteger = 99999999;
- const randomInteger = this.randomGenerator.getRandomInteger(rangeMinInteger, rangeMaxInteger);
- const hexadecimalNumber = NumberUtils_1.NumberUtils.toHex(randomInteger);
- const prefixLength = Utils_1.Utils.hexadecimalPrefix.length;
- const baseNameLength = (nameLength !== null && nameLength !== void 0 ? nameLength : HexadecimalIdentifierNamesGenerator_1.baseIdentifierNameLength)
- + prefixLength;
- const baseIdentifierName = hexadecimalNumber.substr(0, baseNameLength);
- const identifierName = `_${baseIdentifierName}`;
- if (!this.isValidIdentifierName(identifierName)) {
- return this.generateNext(nameLength);
- }
- this.preserveName(identifierName);
- return identifierName;
- }
- generateForGlobalScope(nameLength) {
- const identifierName = this.generateNext(nameLength);
- return `${this.options.identifiersPrefix}${identifierName}`.replace('__', '_');
- }
- generateForLexicalScope(lexicalScopeNode, nameLength) {
- return this.generateNext(nameLength);
- }
- };
- HexadecimalIdentifierNamesGenerator.baseIdentifierNameLength = 6;
- HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var MangledIdentifierNamesGenerator_1, _a, _b;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.MangledIdentifierNamesGenerator = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const AbstractIdentifierNamesGenerator_1 = __webpack_require__(/*! ./AbstractIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts");
- const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
- let MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator_1 = class MangledIdentifierNamesGenerator extends AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator {
- constructor(randomGenerator, options) {
- super(randomGenerator, options);
- this.previousMangledName = MangledIdentifierNamesGenerator_1.initMangledNameCharacter;
- }
- generateNext(nameLength) {
- const identifierName = this.generateNewMangledName(this.previousMangledName);
- this.previousMangledName = identifierName;
- this.preserveName(identifierName);
- return identifierName;
- }
- generateForGlobalScope(nameLength) {
- const prefix = this.options.identifiersPrefix ?
- `${this.options.identifiersPrefix}`
- : '';
- const identifierName = this.generateNewMangledName(this.previousMangledName);
- const identifierNameWithPrefix = `${prefix}${identifierName}`;
- this.previousMangledName = identifierName;
- if (!this.isValidIdentifierName(identifierNameWithPrefix)) {
- return this.generateForGlobalScope(nameLength);
- }
- this.preserveName(identifierNameWithPrefix);
- return identifierNameWithPrefix;
- }
- generateForLexicalScope(lexicalScopeNode, nameLength) {
- const lexicalScopes = [
- lexicalScopeNode,
- ...NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScopes(lexicalScopeNode)
- ];
- const lastMangledNameForScope = this.getLastMangledNameForScopes(lexicalScopes);
- let identifierName = lastMangledNameForScope;
- do {
- identifierName = this.generateNewMangledName(identifierName);
- } while (!this.isValidIdentifierNameInLexicalScopes(identifierName, lexicalScopes));
- MangledIdentifierNamesGenerator_1.lastMangledNameInScopeMap.set(lexicalScopeNode, identifierName);
- this.preserveNameForLexicalScope(identifierName, lexicalScopeNode);
- return identifierName;
- }
- isValidIdentifierName(mangledName) {
- return super.isValidIdentifierName(mangledName)
- && !MangledIdentifierNamesGenerator_1.reservedNamesSet.has(mangledName);
- }
- generateNewMangledName(previousMangledName) {
- const generateNewMangledName = (name) => {
- const nameSequence = MangledIdentifierNamesGenerator_1.nameSequence;
- const nameSequenceLength = nameSequence.length;
- const nameLength = name.length;
- const zeroSequence = (num) => {
- return '0'.repeat(num);
- };
- let index = nameLength - 1;
- do {
- const character = name[index];
- const indexInSequence = nameSequence.indexOf(character);
- const lastNameSequenceIndex = nameSequenceLength - 1;
- if (indexInSequence !== lastNameSequenceIndex) {
- const previousNamePart = name.substring(0, index);
- const nextCharacter = nameSequence[indexInSequence + 1];
- const zeroSequenceLength = nameLength - (index + 1);
- const zeroSequenceCharacters = zeroSequence(zeroSequenceLength);
- return previousNamePart + nextCharacter + zeroSequenceCharacters;
- }
- --index;
- } while (index >= 0);
- return `a${zeroSequence(nameLength)}`;
- };
- let newMangledName = generateNewMangledName(previousMangledName);
- if (!this.isValidIdentifierName(newMangledName)) {
- newMangledName = this.generateNewMangledName(newMangledName);
- }
- return newMangledName;
- }
- getLastMangledNameForScopes(lexicalScopeNodes) {
- var _a;
- for (const lexicalScope of lexicalScopeNodes) {
- const lastMangledName = (_a = MangledIdentifierNamesGenerator_1.lastMangledNameInScopeMap
- .get(lexicalScope)) !== null && _a !== void 0 ? _a : null;
- if (!lastMangledName) {
- continue;
- }
- return lastMangledName;
- }
- return MangledIdentifierNamesGenerator_1.initMangledNameCharacter;
- }
- };
- MangledIdentifierNamesGenerator.initMangledNameCharacter = '9';
- MangledIdentifierNamesGenerator.lastMangledNameInScopeMap = new WeakMap();
- MangledIdentifierNamesGenerator.nameSequence = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
- MangledIdentifierNamesGenerator.reservedNamesSet = new Set([
- '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 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
- ], MangledIdentifierNamesGenerator);
- exports.MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator;
- /***/ }),
- /***/ "./src/interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer.ts":
- /*!******************************************************************************!*\
- !*** ./src/interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer.ts ***!
- \******************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer.ts":
- /*!*********************************************************************************************!*\
- !*** ./src/interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer.ts ***!
- \*********************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/interfaces/analyzers/scope-analyzer/IScopeAnalyzer.ts":
- /*!*******************************************************************!*\
- !*** ./src/interfaces/analyzers/scope-analyzer/IScopeAnalyzer.ts ***!
- \*******************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer.ts":
- /*!***********************************************************************************************!*\
- !*** ./src/interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer.ts ***!
- \***********************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/interfaces/code-transformers/ICodeTransformersRunner.ts":
- /*!*********************************************************************!*\
- !*** ./src/interfaces/code-transformers/ICodeTransformersRunner.ts ***!
- \*********************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts":
- /*!**************************************************************************!*\
- !*** ./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts ***!
- \**************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts":
- /*!***************************************************************************!*\
- !*** ./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts ***!
- \***************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/interfaces/event-emitters/IObfuscationEventEmitter.ts":
- /*!*******************************************************************!*\
- !*** ./src/interfaces/event-emitters/IObfuscationEventEmitter.ts ***!
- \*******************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/interfaces/logger/ILogger.ts":
- /*!******************************************!*\
- !*** ./src/interfaces/logger/ILogger.ts ***!
- \******************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/interfaces/node-transformers/INodeTransformersRunner.ts":
- /*!*********************************************************************!*\
- !*** ./src/interfaces/node-transformers/INodeTransformersRunner.ts ***!
- \*********************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/interfaces/node-transformers/mangle-properties-transformers/replacer/IManglePropertiesReplacer.ts":
- /*!***************************************************************************************************************!*\
- !*** ./src/interfaces/node-transformers/mangle-properties-transformers/replacer/IManglePropertiesReplacer.ts ***!
- \***************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/interfaces/node/IScopeIdentifiersTraverser.ts":
- /*!***********************************************************!*\
- !*** ./src/interfaces/node/IScopeIdentifiersTraverser.ts ***!
- \***********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/interfaces/options/IOptions.ts":
- /*!********************************************!*\
- !*** ./src/interfaces/options/IOptions.ts ***!
- \********************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/interfaces/options/IOptionsNormalizer.ts":
- /*!******************************************************!*\
- !*** ./src/interfaces/options/IOptionsNormalizer.ts ***!
- \******************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/interfaces/source-code/ISourceCode.ts":
- /*!***************************************************!*\
- !*** ./src/interfaces/source-code/ISourceCode.ts ***!
- \***************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/interfaces/storages/string-array-storage/IStringArrayStorage.ts":
- /*!*****************************************************************************!*\
- !*** ./src/interfaces/storages/string-array-storage/IStringArrayStorage.ts ***!
- \*****************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/interfaces/utils/IArrayUtils.ts":
- /*!*********************************************!*\
- !*** ./src/interfaces/utils/IArrayUtils.ts ***!
- \*********************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/interfaces/utils/ICryptUtils.ts":
- /*!*********************************************!*\
- !*** ./src/interfaces/utils/ICryptUtils.ts ***!
- \*********************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/interfaces/utils/IEscapeSequenceEncoder.ts":
- /*!********************************************************!*\
- !*** ./src/interfaces/utils/IEscapeSequenceEncoder.ts ***!
- \********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/interfaces/utils/ILevelledTopologicalSorter.ts":
- /*!************************************************************!*\
- !*** ./src/interfaces/utils/ILevelledTopologicalSorter.ts ***!
- \************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/interfaces/utils/IRandomGenerator.ts":
- /*!**************************************************!*\
- !*** ./src/interfaces/utils/IRandomGenerator.ts ***!
- \**************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/interfaces/utils/ITransformerNamesGroupsBuilder.ts":
- /*!****************************************************************!*\
- !*** ./src/interfaces/utils/ITransformerNamesGroupsBuilder.ts ***!
- \****************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/logger/Logger.ts":
- /*!******************************!*\
- !*** ./src/logger/Logger.ts ***!
- \******************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- var Logger_1, _a;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.Logger = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "chalk"));
- const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const LoggingPrefix_1 = __webpack_require__(/*! ../enums/logger/LoggingPrefix */ "./src/enums/logger/LoggingPrefix.ts");
- let Logger = Logger_1 = class Logger {
- constructor(options) {
- this.options = options;
- }
- static log(loggingLevelColor, loggingPrefix, loggingMessage, value) {
- const processedMessage = loggingLevelColor(`\n${loggingPrefix} ${loggingMessage}`);
- console.log(processedMessage, value !== null && value !== void 0 ? value : '');
- }
- info(loggingMessage, value) {
- if (!this.options.log) {
- return;
- }
- Logger_1.log(Logger_1.colorInfo, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value);
- }
- success(loggingMessage, value) {
- if (!this.options.log) {
- return;
- }
- Logger_1.log(Logger_1.colorSuccess, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value);
- }
- warn(loggingMessage, value) {
- if (!this.options.log) {
- return;
- }
- Logger_1.log(Logger_1.colorWarn, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value);
- }
- };
- Logger.colorInfo = chalk_1.default.cyan;
- Logger.colorSuccess = chalk_1.default.green;
- Logger.colorWarn = chalk_1.default.yellow;
- Logger = Logger_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _a : 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.AbstractNodeTransformer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- let AbstractNodeTransformer = class AbstractNodeTransformer {
- constructor(randomGenerator, options) {
- this.randomGenerator = randomGenerator;
- this.options = options;
- }
- };
- AbstractNodeTransformer = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
- ], AbstractNodeTransformer);
- exports.AbstractNodeTransformer = AbstractNodeTransformer;
- /***/ }),
- /***/ "./src/node-transformers/NodeTransformerNamesGroupsBuilder.ts":
- /*!********************************************************************!*\
- !*** ./src/node-transformers/NodeTransformerNamesGroupsBuilder.ts ***!
- \********************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.NodeTransformerNamesGroupsBuilder = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const AbstractTransformerNamesGroupsBuilder_1 = __webpack_require__(/*! ../utils/AbstractTransformerNamesGroupsBuilder */ "./src/utils/AbstractTransformerNamesGroupsBuilder.ts");
- let NodeTransformerNamesGroupsBuilder = class NodeTransformerNamesGroupsBuilder extends AbstractTransformerNamesGroupsBuilder_1.AbstractTransformerNamesGroupsBuilder {
- };
- NodeTransformerNamesGroupsBuilder = __decorate([
- inversify_1.injectable()
- ], NodeTransformerNamesGroupsBuilder);
- exports.NodeTransformerNamesGroupsBuilder = NodeTransformerNamesGroupsBuilder;
- /***/ }),
- /***/ "./src/node-transformers/NodeTransformersRunner.ts":
- /*!*********************************************************!*\
- !*** ./src/node-transformers/NodeTransformersRunner.ts ***!
- \*********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- }));
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- });
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.NodeTransformersRunner = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- const TNodeTransformerFactory_1 = __webpack_require__(/*! ../types/container/node-transformers/TNodeTransformerFactory */ "./src/types/container/node-transformers/TNodeTransformerFactory.ts");
- const ITransformerNamesGroupsBuilder_1 = __webpack_require__(/*! ../interfaces/utils/ITransformerNamesGroupsBuilder */ "./src/interfaces/utils/ITransformerNamesGroupsBuilder.ts");
- const VisitorDirection_1 = __webpack_require__(/*! ../enums/node-transformers/VisitorDirection */ "./src/enums/node-transformers/VisitorDirection.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../node/NodeGuards */ "./src/node/NodeGuards.ts");
- const NodeMetadata_1 = __webpack_require__(/*! ../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
- let NodeTransformersRunner = class NodeTransformersRunner {
- constructor(nodeTransformerFactory, nodeTransformerNamesGroupsBuilder) {
- this.nodeTransformerFactory = nodeTransformerFactory;
- this.nodeTransformerNamesGroupsBuilder = nodeTransformerNamesGroupsBuilder;
- }
- transform(astTree, nodeTransformerNames, nodeTransformationStage) {
- if (!nodeTransformerNames.length) {
- return astTree;
- }
- const normalizedNodeTransformers = this.buildNormalizedNodeTransformers(nodeTransformerNames, nodeTransformationStage);
- const nodeTransformerNamesGroups = this.nodeTransformerNamesGroupsBuilder.build(normalizedNodeTransformers);
- for (const nodeTransformerNamesGroup of nodeTransformerNamesGroups) {
- const enterVisitors = [];
- const leaveVisitors = [];
- for (const nodeTransformerName of nodeTransformerNamesGroup) {
- const nodeTransformer = normalizedNodeTransformers[nodeTransformerName];
- const visitor = nodeTransformer.getVisitor(nodeTransformationStage);
- if (!visitor) {
- continue;
- }
- if (visitor.enter) {
- enterVisitors.push({ enter: visitor.enter });
- }
- if (visitor.leave) {
- leaveVisitors.push({ leave: visitor.leave });
- }
- }
- 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)
- });
- }
- return astTree;
- }
- buildNormalizedNodeTransformers(nodeTransformerNames, nodeTransformationStage) {
- return nodeTransformerNames
- .reduce((acc, nodeTransformerName) => {
- const nodeTransformer = this.nodeTransformerFactory(nodeTransformerName);
- if (!nodeTransformer.getVisitor(nodeTransformationStage)) {
- return acc;
- }
- return Object.assign(Object.assign({}, acc), { [nodeTransformerName]: nodeTransformer });
- }, {});
- }
- mergeVisitorsForDirection(visitors, direction) {
- const visitorsLength = visitors.length;
- if (!visitorsLength) {
- return (node, parentNode) => node;
- }
- return (node, parentNode) => {
- if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) {
- return estraverse.VisitorOption.Skip;
- }
- for (let i = 0; i < visitorsLength; i++) {
- const visitorFunction = visitors[i][direction];
- if (!visitorFunction) {
- continue;
- }
- const visitorResult = visitorFunction(node, parentNode);
- if (!visitorResult || !NodeGuards_1.NodeGuards.isNode(visitorResult)) {
- continue;
- }
- node = visitorResult;
- }
- return node;
- };
- }
- };
- NodeTransformersRunner = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeTransformer)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder)),
- __metadata("design:paramtypes", [typeof (_a = typeof TNodeTransformerFactory_1.TNodeTransformerFactory !== "undefined" && TNodeTransformerFactory_1.TNodeTransformerFactory) === "function" ? _a : Object, typeof (_b = typeof ITransformerNamesGroupsBuilder_1.ITransformerNamesGroupsBuilder !== "undefined" && ITransformerNamesGroupsBuilder_1.ITransformerNamesGroupsBuilder) === "function" ? _b : Object])
- ], NodeTransformersRunner);
- exports.NodeTransformersRunner = NodeTransformersRunner;
- /***/ }),
- /***/ "./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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- }));
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- });
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var BlockStatementControlFlowTransformer_1, _a, _b, _c, _d;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.BlockStatementControlFlowTransformer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts");
- const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
- const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
- const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- let BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer_1 = class BlockStatementControlFlowTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
- constructor(controlFlowCustomNodeFactory, arrayUtils, randomGenerator, options) {
- super(randomGenerator, options);
- this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory;
- this.arrayUtils = arrayUtils;
- }
- static isProhibitedStatementNode(node) {
- const isBreakOrContinueStatement = NodeGuards_1.NodeGuards.isBreakStatementNode(node)
- || NodeGuards_1.NodeGuards.isContinueStatementNode(node);
- const isVariableDeclarationWithLetOrConstKind = NodeGuards_1.NodeGuards.isVariableDeclarationNode(node)
- && (node.kind === 'const' || node.kind === 'let');
- const isClassDeclaration = NodeGuards_1.NodeGuards.isClassDeclarationNode(node);
- return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node)
- || isBreakOrContinueStatement
- || isVariableDeclarationWithLetOrConstKind
- || isClassDeclaration;
- }
- static canTransformBlockStatementNode(blockStatementNode) {
- let canTransform = true;
- estraverse.traverse(blockStatementNode, {
- 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;
- }
- getVisitor(nodeTransformationStage) {
- switch (nodeTransformationStage) {
- case NodeTransformationStage_1.NodeTransformationStage.ControlFlowFlattening:
- return {
- leave: (node, parentNode) => {
- if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {
- return this.transformNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- transformNode(blockStatementNode, parentNode) {
- if (this.randomGenerator.getMathRandom() > this.options.controlFlowFlatteningThreshold ||
- !BlockStatementControlFlowTransformer_1.canTransformBlockStatementNode(blockStatementNode)) {
- return blockStatementNode;
- }
- const blockStatementBody = blockStatementNode.body;
- const originalKeys = this.arrayUtils.createWithRange(blockStatementBody.length);
- const shuffledKeys = this.arrayUtils.shuffle(originalKeys);
- const originalKeysIndexesInShuffledArray = originalKeys.map((key) => shuffledKeys.indexOf(key));
- const blockStatementControlFlowFlatteningCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode);
- blockStatementControlFlowFlatteningCustomNode.initialize(blockStatementBody, shuffledKeys, originalKeysIndexesInShuffledArray);
- const newBlockStatementNode = blockStatementControlFlowFlatteningCustomNode.getNode()[0];
- NodeUtils_1.NodeUtils.parentizeNode(newBlockStatementNode, parentNode);
- return newBlockStatementNode;
- }
- };
- BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object])
- ], 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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- }));
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- });
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var FunctionControlFlowTransformer_1, _a, _b, _c, _d, _e;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.FunctionControlFlowTransformer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts");
- const TControlFlowReplacerFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TControlFlowReplacerFactory */ "./src/types/container/node-transformers/TControlFlowReplacerFactory.ts");
- const TControlFlowStorageFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TControlFlowStorageFactory */ "./src/types/container/node-transformers/TControlFlowStorageFactory.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
- const ControlFlowReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts");
- const NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
- const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
- const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- const NodeAppender_1 = __webpack_require__(/*! ../../node/NodeAppender */ "./src/node/NodeAppender.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
- const NodeStatementUtils_1 = __webpack_require__(/*! ../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- let FunctionControlFlowTransformer = FunctionControlFlowTransformer_1 = class FunctionControlFlowTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
- constructor(controlFlowStorageFactory, controlFlowReplacerFactory, controlFlowCustomNodeFactory, randomGenerator, options) {
- super(randomGenerator, options);
- this.controlFlowData = new Map();
- this.visitedFunctionNodes = new Set();
- this.hostNodesWithControlFlowNode = new Set();
- this.controlFlowStorageFactory = controlFlowStorageFactory;
- this.controlFlowReplacerFactory = controlFlowReplacerFactory;
- this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory;
- }
- getVisitor(nodeTransformationStage) {
- switch (nodeTransformationStage) {
- case NodeTransformationStage_1.NodeTransformationStage.ControlFlowFlattening:
- return {
- leave: (node, parentNode) => {
- if (parentNode && (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) ||
- NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) ||
- NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(node))) {
- return this.transformNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- transformNode(functionNode, parentNode) {
- this.visitedFunctionNodes.add(functionNode);
- if (!NodeGuards_1.NodeGuards.isBlockStatementNode(functionNode.body)) {
- return functionNode;
- }
- const hostNode = this.getHostNode(functionNode.body);
- const controlFlowStorage = this.getControlFlowStorage(hostNode);
- this.controlFlowData.set(hostNode, controlFlowStorage);
- this.transformFunctionBody(functionNode.body, controlFlowStorage);
- if (!controlFlowStorage.getLength()) {
- return functionNode;
- }
- const controlFlowStorageCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.ControlFlowStorageNode);
- controlFlowStorageCustomNode.initialize(controlFlowStorage);
- NodeAppender_1.NodeAppender.prepend(hostNode, controlFlowStorageCustomNode.getNode());
- this.hostNodesWithControlFlowNode.add(hostNode);
- NodeUtils_1.NodeUtils.parentizeAst(functionNode);
- return functionNode;
- }
- getControlFlowStorage(hostNode) {
- const 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();
- }
- }
- const hostControlFlowStorage = this.controlFlowData.get(hostNode);
- controlFlowStorage.mergeWith(hostControlFlowStorage, true);
- }
- return controlFlowStorage;
- }
- getHostNode(functionNodeBody) {
- const 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);
- }
- isVisitedFunctionNode(node) {
- return (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) ||
- NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) ||
- NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(node)) && this.visitedFunctionNodes.has(node);
- }
- transformFunctionBody(functionNodeBody, controlFlowStorage) {
- estraverse.replace(functionNodeBody, {
- enter: (node, parentNode) => {
- if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) {
- return estraverse.VisitorOption.Skip;
- }
- if (this.isVisitedFunctionNode(node) || !parentNode) {
- return estraverse.VisitorOption.Skip;
- }
- if (!FunctionControlFlowTransformer_1.controlFlowReplacersMap.has(node.type)) {
- return node;
- }
- if (this.randomGenerator.getMathRandom() > this.options.controlFlowFlatteningThreshold) {
- return node;
- }
- const controlFlowReplacerName = FunctionControlFlowTransformer_1
- .controlFlowReplacersMap.get(node.type);
- if (controlFlowReplacerName === undefined) {
- return node;
- }
- return Object.assign(Object.assign({}, this.controlFlowReplacerFactory(controlFlowReplacerName).replace(node, parentNode, controlFlowStorage)), { parentNode });
- }
- });
- }
- };
- 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 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__TControlFlowStorage)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowReplacer)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowStorageFactory_1.TControlFlowStorageFactory !== "undefined" && TControlFlowStorageFactory_1.TControlFlowStorageFactory) === "function" ? _a : Object, typeof (_b = typeof TControlFlowReplacerFactory_1.TControlFlowReplacerFactory !== "undefined" && TControlFlowReplacerFactory_1.TControlFlowReplacerFactory) === "function" ? _b : Object, typeof (_c = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var AbstractControlFlowReplacer_1, _a, _b, _c;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.AbstractControlFlowReplacer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts");
- const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- let AbstractControlFlowReplacer = AbstractControlFlowReplacer_1 = class AbstractControlFlowReplacer {
- constructor(controlFlowCustomNodeFactory, randomGenerator, options) {
- this.replacerDataByControlFlowStorageId = new Map();
- this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory;
- this.randomGenerator = randomGenerator;
- this.options = options;
- }
- static getStorageKeysByIdForCurrentStorage(identifierDataByControlFlowStorageId, controlFlowStorageId) {
- let storageKeysById;
- if (identifierDataByControlFlowStorageId.has(controlFlowStorageId)) {
- storageKeysById = identifierDataByControlFlowStorageId.get(controlFlowStorageId);
- }
- else {
- storageKeysById = new Map();
- }
- return storageKeysById;
- }
- insertCustomNodeToControlFlowStorage(customNode, controlFlowStorage, replacerId, usingExistingIdentifierChance) {
- const controlFlowStorageId = controlFlowStorage.getStorageId();
- const storageKeysById = AbstractControlFlowReplacer_1
- .getStorageKeysByIdForCurrentStorage(this.replacerDataByControlFlowStorageId, controlFlowStorageId);
- const storageKeysForCurrentId = storageKeysById.get(replacerId);
- if (this.randomGenerator.getMathRandom() < usingExistingIdentifierChance &&
- storageKeysForCurrentId &&
- storageKeysForCurrentId.length) {
- return this.randomGenerator.getRandomGenerator().pickone(storageKeysForCurrentId);
- }
- const generateStorageKey = (length) => {
- const key = this.randomGenerator.getRandomString(length);
- if (controlFlowStorage.getStorage().has(key)) {
- return generateStorageKey(length);
- }
- return key;
- };
- const storageKey = generateStorageKey(5);
- storageKeysById.set(replacerId, [storageKey]);
- this.replacerDataByControlFlowStorageId.set(controlFlowStorageId, storageKeysById);
- controlFlowStorage.set(storageKey, customNode);
- return storageKey;
- }
- };
- AbstractControlFlowReplacer = AbstractControlFlowReplacer_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var BinaryExpressionControlFlowReplacer_1, _a, _b, _c;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.BinaryExpressionControlFlowReplacer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts");
- const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
- const ExpressionWithOperatorControlFlowReplacer_1 = __webpack_require__(/*! ./ExpressionWithOperatorControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts");
- let BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer_1 = class BinaryExpressionControlFlowReplacer extends ExpressionWithOperatorControlFlowReplacer_1.ExpressionWithOperatorControlFlowReplacer {
- constructor(controlFlowCustomNodeFactory, randomGenerator, options) {
- super(controlFlowCustomNodeFactory, randomGenerator, options);
- }
- replace(binaryExpressionNode, parentNode, controlFlowStorage) {
- const operator = binaryExpressionNode.operator;
- const binaryExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.BinaryExpressionFunctionNode);
- binaryExpressionFunctionCustomNode.initialize(operator);
- const storageKey = this.insertCustomNodeToControlFlowStorage(binaryExpressionFunctionCustomNode, controlFlowStorage, operator, BinaryExpressionControlFlowReplacer_1.usingExistingIdentifierChance);
- return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, binaryExpressionNode.left, binaryExpressionNode.right);
- }
- };
- BinaryExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5;
- BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var CallExpressionControlFlowReplacer_1, _a, _b, _c;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.CallExpressionControlFlowReplacer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts");
- const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
- const AbstractControlFlowReplacer_1 = __webpack_require__(/*! ./AbstractControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- let CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer_1 = class CallExpressionControlFlowReplacer extends AbstractControlFlowReplacer_1.AbstractControlFlowReplacer {
- constructor(controlFlowCustomNodeFactory, randomGenerator, options) {
- super(controlFlowCustomNodeFactory, randomGenerator, options);
- }
- replace(callExpressionNode, parentNode, controlFlowStorage) {
- const callee = callExpressionNode.callee;
- if (!NodeGuards_1.NodeGuards.isIdentifierNode(callee)) {
- return callExpressionNode;
- }
- const replacerId = String(callExpressionNode.arguments.length);
- const callExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionFunctionNode);
- const expressionArguments = callExpressionNode.arguments;
- callExpressionFunctionCustomNode.initialize(expressionArguments);
- const storageKey = this.insertCustomNodeToControlFlowStorage(callExpressionFunctionCustomNode, controlFlowStorage, replacerId, CallExpressionControlFlowReplacer_1.usingExistingIdentifierChance);
- return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, callee, expressionArguments);
- }
- getControlFlowStorageCallNode(controlFlowStorageId, storageKey, callee, expressionArguments) {
- const controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode);
- controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey, callee, expressionArguments);
- const 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;
- }
- };
- CallExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5;
- CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ExpressionWithOperatorControlFlowReplacer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts");
- const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
- const AbstractControlFlowReplacer_1 = __webpack_require__(/*! ./AbstractControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- let ExpressionWithOperatorControlFlowReplacer = class ExpressionWithOperatorControlFlowReplacer extends AbstractControlFlowReplacer_1.AbstractControlFlowReplacer {
- constructor(controlFlowCustomNodeFactory, randomGenerator, options) {
- super(controlFlowCustomNodeFactory, randomGenerator, options);
- }
- getControlFlowStorageCallNode(controlFlowStorageId, storageKey, leftExpression, rightExpression) {
- const controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode);
- controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey, leftExpression, rightExpression);
- const 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;
- }
- };
- ExpressionWithOperatorControlFlowReplacer = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var LogicalExpressionControlFlowReplacer_1, _a, _b, _c;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.LogicalExpressionControlFlowReplacer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts");
- const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
- const ExpressionWithOperatorControlFlowReplacer_1 = __webpack_require__(/*! ./ExpressionWithOperatorControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- let LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer_1 = class LogicalExpressionControlFlowReplacer extends ExpressionWithOperatorControlFlowReplacer_1.ExpressionWithOperatorControlFlowReplacer {
- constructor(controlFlowCustomNodeFactory, randomGenerator, options) {
- super(controlFlowCustomNodeFactory, randomGenerator, options);
- }
- replace(logicalExpressionNode, parentNode, controlFlowStorage) {
- if (this.checkForProhibitedExpressions(logicalExpressionNode.left, logicalExpressionNode.right)) {
- return logicalExpressionNode;
- }
- const operator = logicalExpressionNode.operator;
- const logicalExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.LogicalExpressionFunctionNode);
- logicalExpressionFunctionCustomNode.initialize(operator);
- const storageKey = this.insertCustomNodeToControlFlowStorage(logicalExpressionFunctionCustomNode, controlFlowStorage, operator, LogicalExpressionControlFlowReplacer_1.usingExistingIdentifierChance);
- return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, logicalExpressionNode.left, logicalExpressionNode.right);
- }
- checkForProhibitedExpressions(leftExpression, rightExpression) {
- return [leftExpression, rightExpression].some((expressionNode) => {
- let 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);
- });
- }
- };
- LogicalExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5;
- LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var StringLiteralControlFlowReplacer_1, _a, _b, _c;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.StringLiteralControlFlowReplacer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts");
- const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
- const AbstractControlFlowReplacer_1 = __webpack_require__(/*! ./AbstractControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- let StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer_1 = class StringLiteralControlFlowReplacer extends AbstractControlFlowReplacer_1.AbstractControlFlowReplacer {
- constructor(controlFlowCustomNodeFactory, randomGenerator, options) {
- super(controlFlowCustomNodeFactory, randomGenerator, options);
- }
- 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;
- }
- const replacerId = String(literalNode.value);
- const literalFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralNode);
- literalFunctionCustomNode.initialize(literalNode.value);
- const storageKey = this.insertCustomNodeToControlFlowStorage(literalFunctionCustomNode, controlFlowStorage, replacerId, StringLiteralControlFlowReplacer_1.usingExistingIdentifierChance);
- return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey);
- }
- getControlFlowStorageCallNode(controlFlowStorageId, storageKey) {
- const controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode);
- controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey);
- const 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;
- }
- };
- StringLiteralControlFlowReplacer.usingExistingIdentifierChance = 1;
- StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.MemberExpressionTransformer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
- const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- let MemberExpressionTransformer = class MemberExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
- constructor(randomGenerator, options) {
- super(randomGenerator, options);
- }
- getVisitor(nodeTransformationStage) {
- switch (nodeTransformationStage) {
- case NodeTransformationStage_1.NodeTransformationStage.Converting:
- return {
- enter: (node, parentNode) => {
- if (parentNode && NodeGuards_1.NodeGuards.isMemberExpressionNode(node)) {
- return this.transformNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- 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;
- }
- };
- MemberExpressionTransformer = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var MethodDefinitionTransformer_1, _a, _b;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.MethodDefinitionTransformer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
- const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- let MethodDefinitionTransformer = MethodDefinitionTransformer_1 = class MethodDefinitionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
- constructor(randomGenerator, options) {
- super(randomGenerator, options);
- }
- getVisitor(nodeTransformationStage) {
- switch (nodeTransformationStage) {
- case NodeTransformationStage_1.NodeTransformationStage.Converting:
- return {
- enter: (node, parentNode) => {
- if (parentNode && NodeGuards_1.NodeGuards.isMethodDefinitionNode(node)) {
- return this.transformNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- transformNode(methodDefinitionNode, parentNode) {
- if (NodeGuards_1.NodeGuards.isIdentifierNode(methodDefinitionNode.key)) {
- return this.replaceIdentifierKey(methodDefinitionNode, methodDefinitionNode.key);
- }
- if (NodeGuards_1.NodeGuards.isLiteralNode(methodDefinitionNode.key)) {
- return this.replaceLiteralKey(methodDefinitionNode, methodDefinitionNode.key);
- }
- return methodDefinitionNode;
- }
- replaceIdentifierKey(methodDefinitionNode, keyNode) {
- if (!MethodDefinitionTransformer_1.ignoredNames.includes(keyNode.name)
- && !methodDefinitionNode.computed) {
- methodDefinitionNode.computed = true;
- methodDefinitionNode.key = NodeFactory_1.NodeFactory.literalNode(keyNode.name);
- }
- return methodDefinitionNode;
- }
- replaceLiteralKey(methodDefinitionNode, keyNode) {
- if (typeof keyNode.value === 'string'
- && !MethodDefinitionTransformer_1.ignoredNames.includes(keyNode.value)
- && !methodDefinitionNode.computed) {
- methodDefinitionNode.computed = true;
- }
- return methodDefinitionNode;
- }
- };
- MethodDefinitionTransformer.ignoredNames = ['constructor'];
- MethodDefinitionTransformer = MethodDefinitionTransformer_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
- ], 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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- }));
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- });
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var ObjectExpressionKeysTransformer_1, _a, _b, _c;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ObjectExpressionKeysTransformer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- const TObjectExpressionExtractorFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TObjectExpressionExtractorFactory */ "./src/types/container/node-transformers/TObjectExpressionExtractorFactory.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
- const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- const NodeStatementUtils_1 = __webpack_require__(/*! ../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
- const ObjectExpressionExtractor_1 = __webpack_require__(/*! ../../enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor */ "./src/enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor.ts");
- let ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer_1 = class ObjectExpressionKeysTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
- constructor(objectExpressionExtractorFactory, randomGenerator, options) {
- super(randomGenerator, options);
- this.objectExpressionExtractorFactory = objectExpressionExtractorFactory;
- }
- static isProhibitedHostStatement(objectExpressionNode, hostStatement) {
- return ObjectExpressionKeysTransformer_1.isReferencedIdentifierName(objectExpressionNode, hostStatement)
- || ObjectExpressionKeysTransformer_1.isProhibitedSequenceExpression(objectExpressionNode, hostStatement);
- }
- static isReferencedIdentifierName(objectExpressionNode, hostNode) {
- const identifierNamesSet = [];
- let isReferencedIdentifierName = false;
- let isCurrentNode = false;
- estraverse.traverse(hostNode, {
- enter: (node) => {
- if (node === objectExpressionNode) {
- isCurrentNode = true;
- }
- if (!NodeGuards_1.NodeGuards.isIdentifierNode(node)) {
- return;
- }
- if (!isCurrentNode) {
- identifierNamesSet.push(node.name);
- return;
- }
- if (identifierNamesSet.includes(node.name)) {
- isReferencedIdentifierName = true;
- }
- },
- leave: (node) => {
- if (node === objectExpressionNode) {
- isCurrentNode = false;
- return estraverse.VisitorOption.Break;
- }
- }
- });
- return isReferencedIdentifierName;
- }
- static isProhibitedSequenceExpression(objectExpressionNode, hostNode) {
- return NodeGuards_1.NodeGuards.isExpressionStatementNode(hostNode)
- && NodeGuards_1.NodeGuards.isSequenceExpressionNode(hostNode.expression)
- && hostNode.expression.expressions.some((expressionNode) => NodeGuards_1.NodeGuards.isCallExpressionNode(expressionNode)
- && NodeGuards_1.NodeGuards.isSuperNode(expressionNode.callee));
- }
- getVisitor(nodeTransformationStage) {
- if (!this.options.transformObjectKeys) {
- return null;
- }
- switch (nodeTransformationStage) {
- case NodeTransformationStage_1.NodeTransformationStage.Converting:
- return {
- leave: (node, parentNode) => {
- if (parentNode
- && NodeGuards_1.NodeGuards.isObjectExpressionNode(node)) {
- return this.transformNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- transformNode(objectExpressionNode, parentNode) {
- if (!objectExpressionNode.properties.length) {
- return objectExpressionNode;
- }
- const hostStatement = NodeStatementUtils_1.NodeStatementUtils.getRootStatementOfNode(objectExpressionNode);
- if (ObjectExpressionKeysTransformer_1.isProhibitedHostStatement(objectExpressionNode, hostStatement)) {
- return objectExpressionNode;
- }
- return this.applyObjectExpressionKeysExtractorsRecursive(ObjectExpressionKeysTransformer_1.objectExpressionExtractorNames, objectExpressionNode, hostStatement);
- }
- applyObjectExpressionKeysExtractorsRecursive(objectExpressionExtractorNames, objectExpressionNode, hostStatement) {
- const newObjectExpressionExtractorNames = [...objectExpressionExtractorNames];
- const objectExpressionExtractor = newObjectExpressionExtractorNames.shift();
- if (!objectExpressionExtractor) {
- return objectExpressionNode;
- }
- const { nodeToReplace, objectExpressionHostStatement: newObjectExpressionHostStatement, objectExpressionNode: newObjectExpressionNode } = this.objectExpressionExtractorFactory(objectExpressionExtractor)
- .extract(objectExpressionNode, hostStatement);
- this.applyObjectExpressionKeysExtractorsRecursive(newObjectExpressionExtractorNames, newObjectExpressionNode, newObjectExpressionHostStatement);
- return nodeToReplace;
- }
- };
- ObjectExpressionKeysTransformer.objectExpressionExtractorNames = [
- ObjectExpressionExtractor_1.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor,
- ObjectExpressionExtractor_1.ObjectExpressionExtractor.BasePropertiesExtractor
- ];
- ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionExtractor)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TObjectExpressionExtractorFactory_1.TObjectExpressionExtractorFactory !== "undefined" && TObjectExpressionExtractorFactory_1.TObjectExpressionExtractorFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ObjectExpressionTransformer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
- const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- let ObjectExpressionTransformer = class ObjectExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
- constructor(randomGenerator, options) {
- super(randomGenerator, options);
- }
- getVisitor(nodeTransformationStage) {
- switch (nodeTransformationStage) {
- case NodeTransformationStage_1.NodeTransformationStage.Converting:
- return {
- enter: (node, parentNode) => {
- if (parentNode && NodeGuards_1.NodeGuards.isObjectExpressionNode(node)) {
- return this.transformNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- transformNode(objectExpressionNode, parentNode) {
- objectExpressionNode.properties
- .forEach((property) => {
- if (!NodeGuards_1.NodeGuards.isPropertyNode(property)) {
- return;
- }
- if (!property.key) {
- return;
- }
- if (property.computed) {
- this.transformComputedProperty(property);
- }
- else {
- this.transformBaseProperty(property);
- }
- });
- return objectExpressionNode;
- }
- transformComputedProperty(property) {
- if (!NodeGuards_1.NodeGuards.isLiteralNode(property.key) || !(typeof property.key.value === 'string')) {
- return;
- }
- property.key = NodeFactory_1.NodeFactory.literalNode(property.key.value);
- }
- transformBaseProperty(property) {
- if (property.shorthand) {
- property.shorthand = false;
- }
- if (!NodeGuards_1.NodeGuards.isIdentifierNode(property.key)) {
- return;
- }
- property.key = NodeFactory_1.NodeFactory.literalNode(property.key.name);
- }
- };
- ObjectExpressionTransformer = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
- ], 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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- }));
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- });
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var SplitStringTransformer_1, _a, _b;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.SplitStringTransformer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
- const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
- const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- const NodeLiteralUtils_1 = __webpack_require__(/*! ../../node/NodeLiteralUtils */ "./src/node/NodeLiteralUtils.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- let SplitStringTransformer = SplitStringTransformer_1 = class SplitStringTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
- constructor(randomGenerator, options) {
- super(randomGenerator, options);
- this.runAfter = [
- NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer,
- NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer
- ];
- }
- static chunkString(string, chunkSize) {
- const chunksCount = Math.ceil(string.length / chunkSize);
- const chunks = [];
- let nextChunkStartIndex = 0;
- for (let chunkIndex = 0; chunkIndex < chunksCount; ++chunkIndex, nextChunkStartIndex += chunkSize) {
- chunks[chunkIndex] = string.substr(nextChunkStartIndex, chunkSize);
- }
- return chunks;
- }
- getVisitor(nodeTransformationStage) {
- switch (nodeTransformationStage) {
- case NodeTransformationStage_1.NodeTransformationStage.Converting:
- return {
- enter: (node, parentNode) => {
- if (!this.options.splitStrings) {
- return;
- }
- if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) {
- return this.transformNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- transformNode(literalNode, parentNode) {
- if (NodeLiteralUtils_1.NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)) {
- return literalNode;
- }
- const firstPassChunksNode = this.transformLiteralNodeByChunkLength(literalNode, parentNode, SplitStringTransformer_1.firstPassChunkLength);
- const secondPassChunksNode = estraverse.replace(firstPassChunksNode, {
- enter: (node, parentNode) => {
- if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) {
- return this.transformLiteralNodeByChunkLength(node, parentNode, this.options.splitStringsChunkLength);
- }
- }
- });
- return secondPassChunksNode;
- }
- transformLiteralNodeByChunkLength(literalNode, parentNode, chunkLength) {
- if (typeof literalNode.value !== 'string') {
- return literalNode;
- }
- if (chunkLength >= literalNode.value.length) {
- return literalNode;
- }
- const stringChunks = SplitStringTransformer_1.chunkString(literalNode.value, chunkLength);
- const binaryExpressionNode = this.transformStringChunksToBinaryExpressionNode(stringChunks);
- NodeUtils_1.NodeUtils.parentizeAst(binaryExpressionNode);
- NodeUtils_1.NodeUtils.parentizeNode(binaryExpressionNode, parentNode);
- return binaryExpressionNode;
- }
- transformStringChunksToBinaryExpressionNode(chunks) {
- const firstChunk = chunks.shift();
- const secondChunk = chunks.shift();
- if (!firstChunk || !secondChunk) {
- throw new Error('First and second chunks values should not be empty');
- }
- const initialBinaryExpressionNode = NodeFactory_1.NodeFactory.binaryExpressionNode('+', NodeFactory_1.NodeFactory.literalNode(firstChunk), NodeFactory_1.NodeFactory.literalNode(secondChunk));
- return chunks.reduce((binaryExpressionNode, chunk) => {
- const chunkLiteralNode = NodeFactory_1.NodeFactory.literalNode(chunk);
- return NodeFactory_1.NodeFactory.binaryExpressionNode('+', binaryExpressionNode, chunkLiteralNode);
- }, initialBinaryExpressionNode);
- }
- };
- SplitStringTransformer.firstPassChunkLength = 1000;
- SplitStringTransformer = SplitStringTransformer_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var TemplateLiteralTransformer_1, _a, _b;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.TemplateLiteralTransformer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
- const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- let TemplateLiteralTransformer = TemplateLiteralTransformer_1 = class TemplateLiteralTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
- constructor(randomGenerator, options) {
- super(randomGenerator, options);
- }
- static isLiteralNodeWithStringValue(node) {
- return !!node && NodeGuards_1.NodeGuards.isLiteralNode(node) && typeof node.value === 'string';
- }
- static isValidTemplateLiteralNode(node, parentNode) {
- return NodeGuards_1.NodeGuards.isTemplateLiteralNode(node) && !NodeGuards_1.NodeGuards.isTaggedTemplateExpressionNode(parentNode);
- }
- getVisitor(nodeTransformationStage) {
- switch (nodeTransformationStage) {
- case NodeTransformationStage_1.NodeTransformationStage.Converting:
- return {
- enter: (node, parentNode) => {
- if (parentNode && TemplateLiteralTransformer_1.isValidTemplateLiteralNode(node, parentNode)) {
- return this.transformNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- transformNode(templateLiteralNode, parentNode) {
- const templateLiteralExpressions = templateLiteralNode.expressions;
- let nodes = [];
- templateLiteralNode.quasis.forEach((templateElement) => {
- nodes.push(NodeFactory_1.NodeFactory.literalNode(templateElement.value.cooked));
- const expression = templateLiteralExpressions.shift();
- if (!expression) {
- return;
- }
- nodes.push(expression);
- });
- nodes = nodes.filter((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(''));
- }
- let transformedNode;
- if (nodes.length > 1) {
- let root = NodeFactory_1.NodeFactory.binaryExpressionNode('+', nodes.shift(), nodes.shift());
- nodes.forEach((node) => {
- root = NodeFactory_1.NodeFactory.binaryExpressionNode('+', root, node);
- });
- transformedNode = root;
- }
- else {
- transformedNode = nodes[0];
- }
- NodeUtils_1.NodeUtils.parentizeAst(transformedNode);
- NodeUtils_1.NodeUtils.parentizeNode(transformedNode, parentNode);
- return transformedNode;
- }
- };
- TemplateLiteralTransformer = TemplateLiteralTransformer_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
- ], TemplateLiteralTransformer);
- exports.TemplateLiteralTransformer = TemplateLiteralTransformer;
- /***/ }),
- /***/ "./src/node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor.ts":
- /*!***************************************************************************************************************!*\
- !*** ./src/node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor.ts ***!
- \***************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var BasePropertiesExtractor_1;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.BasePropertiesExtractor = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
- const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- const NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- let BasePropertiesExtractor = BasePropertiesExtractor_1 = class BasePropertiesExtractor {
- static getPropertyNodeKeyName(propertyNode) {
- const propertyKeyNode = propertyNode.key;
- if (NodeGuards_1.NodeGuards.isLiteralNode(propertyKeyNode)
- && (typeof propertyKeyNode.value === 'string'
- || typeof propertyKeyNode.value === 'number')) {
- return propertyKeyNode.value.toString();
- }
- if (NodeGuards_1.NodeGuards.isIdentifierNode(propertyKeyNode)) {
- return propertyKeyNode.name;
- }
- return null;
- }
- static isProhibitedPattern(node) {
- return !node
- || NodeGuards_1.NodeGuards.isObjectPatternNode(node)
- || NodeGuards_1.NodeGuards.isArrayPatternNode(node)
- || NodeGuards_1.NodeGuards.isAssignmentPatternNode(node)
- || NodeGuards_1.NodeGuards.isRestElementNode(node);
- }
- extract(objectExpressionNode, hostStatement) {
- const hostNode = objectExpressionNode.parentNode;
- if (hostNode
- && NodeGuards_1.NodeGuards.isVariableDeclaratorNode(hostNode)
- && NodeGuards_1.NodeGuards.isIdentifierNode(hostNode.id)) {
- return this.transformObjectExpressionNode(objectExpressionNode, hostStatement, hostNode.id);
- }
- return {
- nodeToReplace: objectExpressionNode,
- objectExpressionHostStatement: hostStatement,
- objectExpressionNode: objectExpressionNode
- };
- }
- transformObjectExpressionNode(objectExpressionNode, hostStatement, memberExpressionHostNode) {
- const properties = objectExpressionNode.properties;
- const [expressionStatements, removablePropertyIds] = this
- .extractPropertiesToExpressionStatements(properties, hostStatement, memberExpressionHostNode);
- const hostNodeWithStatements = NodeStatementUtils_1.NodeStatementUtils.getScopeOfNode(hostStatement);
- this.filterExtractedObjectExpressionProperties(objectExpressionNode, removablePropertyIds);
- NodeAppender_1.NodeAppender.insertAfter(hostNodeWithStatements, expressionStatements, hostStatement);
- NodeUtils_1.NodeUtils.parentizeAst(hostNodeWithStatements);
- return {
- nodeToReplace: objectExpressionNode,
- objectExpressionHostStatement: hostStatement,
- objectExpressionNode: objectExpressionNode
- };
- }
- extractPropertiesToExpressionStatements(properties, hostStatement, memberExpressionHostNode) {
- const propertiesLength = properties.length;
- const expressionStatements = [];
- const removablePropertyIds = [];
- for (let i = 0; i < propertiesLength; i++) {
- const property = properties[i];
- if (!NodeGuards_1.NodeGuards.isPropertyNode(property)) {
- continue;
- }
- const propertyValue = property.value;
- if (BasePropertiesExtractor_1.isProhibitedPattern(propertyValue)) {
- continue;
- }
- const propertyKeyName = BasePropertiesExtractor_1.getPropertyNodeKeyName(property);
- if (!propertyKeyName) {
- continue;
- }
- const shouldCreateLiteralNode = !property.computed
- || (property.computed && !!property.key && NodeGuards_1.NodeGuards.isLiteralNode(property.key));
- const memberExpressionProperty = shouldCreateLiteralNode
- ? NodeFactory_1.NodeFactory.literalNode(propertyKeyName)
- : NodeFactory_1.NodeFactory.identifierNode(propertyKeyName);
- const memberExpressionNode = NodeFactory_1.NodeFactory
- .memberExpressionNode(memberExpressionHostNode, memberExpressionProperty, true);
- const expressionStatementNode = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.assignmentExpressionNode('=', memberExpressionNode, propertyValue));
- if (NodeGuards_1.NodeGuards.isObjectExpressionNode(property.value)) {
- this.transformObjectExpressionNode(property.value, hostStatement, memberExpressionNode);
- }
- expressionStatements.push(expressionStatementNode);
- removablePropertyIds.push(i);
- }
- return [expressionStatements, removablePropertyIds];
- }
- filterExtractedObjectExpressionProperties(objectExpressionNode, removablePropertyIds) {
- objectExpressionNode.properties = objectExpressionNode.properties
- .filter((property, index) => !removablePropertyIds.includes(index));
- }
- };
- BasePropertiesExtractor = BasePropertiesExtractor_1 = __decorate([
- inversify_1.injectable()
- ], BasePropertiesExtractor);
- exports.BasePropertiesExtractor = BasePropertiesExtractor;
- /***/ }),
- /***/ "./src/node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor.ts":
- /*!**************************************************************************************************************************************!*\
- !*** ./src/node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor.ts ***!
- \**************************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ObjectExpressionToVariableDeclarationExtractor = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TObjectExpressionKeysTransformerCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory */ "./src/types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory.ts");
- const ObjectExpressionKeysTransformerCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode */ "./src/enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode.ts");
- const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- const NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
- let ObjectExpressionToVariableDeclarationExtractor = class ObjectExpressionToVariableDeclarationExtractor {
- constructor(objectExpressionKeysTransformerCustomNodeFactory) {
- this.objectExpressionKeysTransformerCustomNodeFactory = objectExpressionKeysTransformerCustomNodeFactory;
- }
- extract(objectExpressionNode, hostStatement) {
- return this.transformObjectExpressionToVariableDeclaration(objectExpressionNode, hostStatement);
- }
- transformObjectExpressionToVariableDeclaration(objectExpressionNode, hostStatement) {
- var _a;
- const hostNodeWithStatements = NodeStatementUtils_1.NodeStatementUtils.getScopeOfNode(hostStatement);
- const lexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithLexicalScope(hostNodeWithStatements)
- ? hostNodeWithStatements
- : (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(hostNodeWithStatements)) !== null && _a !== void 0 ? _a : null;
- if (!lexicalScopeNode) {
- throw new Error('Cannot find lexical scope node for the host statement node');
- }
- const properties = objectExpressionNode.properties;
- const newObjectExpressionHostStatement = this.getObjectExpressionHostNode(lexicalScopeNode, properties);
- const statementsToInsert = [newObjectExpressionHostStatement];
- NodeAppender_1.NodeAppender.insertBefore(hostNodeWithStatements, statementsToInsert, hostStatement);
- NodeUtils_1.NodeUtils.parentizeAst(newObjectExpressionHostStatement);
- NodeUtils_1.NodeUtils.parentizeNode(newObjectExpressionHostStatement, hostNodeWithStatements);
- const newObjectExpressionIdentifier = this.getObjectExpressionIdentifierNode(newObjectExpressionHostStatement);
- const newObjectExpressionNode = this.getObjectExpressionNode(newObjectExpressionHostStatement);
- return {
- nodeToReplace: newObjectExpressionIdentifier,
- objectExpressionHostStatement: newObjectExpressionHostStatement,
- objectExpressionNode: newObjectExpressionNode
- };
- }
- getObjectExpressionHostNode(lexicalScopeNode, properties) {
- const variableDeclarationHostNodeCustomNode = this.objectExpressionKeysTransformerCustomNodeFactory(ObjectExpressionKeysTransformerCustomNode_1.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode);
- variableDeclarationHostNodeCustomNode.initialize(lexicalScopeNode, properties);
- const statementNode = variableDeclarationHostNodeCustomNode.getNode()[0];
- if (!statementNode
- || !NodeGuards_1.NodeGuards.isVariableDeclarationNode(statementNode)) {
- throw new Error('`objectExpressionHostCustomNode.getNode()[0]` should returns array with `VariableDeclaration` node');
- }
- return statementNode;
- }
- getObjectExpressionIdentifierNode(objectExpressionHostNode) {
- const newObjectExpressionIdentifierNode = objectExpressionHostNode.declarations[0].id;
- if (!NodeGuards_1.NodeGuards.isIdentifierNode(newObjectExpressionIdentifierNode)) {
- throw new Error('`objectExpressionHostNode` should contain `VariableDeclarator` node with `Identifier` id property');
- }
- return newObjectExpressionIdentifierNode;
- }
- getObjectExpressionNode(objectExpressionHostNode) {
- var _a;
- const newObjectExpressionNode = (_a = objectExpressionHostNode.declarations[0].init) !== null && _a !== void 0 ? _a : null;
- if (!newObjectExpressionNode || !NodeGuards_1.NodeGuards.isObjectExpressionNode(newObjectExpressionNode)) {
- throw new Error('`objectExpressionHostNode` should contain `VariableDeclarator` node with `ObjectExpression` init property');
- }
- return newObjectExpressionNode;
- }
- };
- ObjectExpressionToVariableDeclarationExtractor = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode)),
- __metadata("design:paramtypes", [typeof (_a = typeof TObjectExpressionKeysTransformerCustomNodeFactory_1.TObjectExpressionKeysTransformerCustomNodeFactory !== "undefined" && TObjectExpressionKeysTransformerCustomNodeFactory_1.TObjectExpressionKeysTransformerCustomNodeFactory) === "function" ? _a : Object])
- ], ObjectExpressionToVariableDeclarationExtractor);
- exports.ObjectExpressionToVariableDeclarationExtractor = ObjectExpressionToVariableDeclarationExtractor;
- /***/ }),
- /***/ "./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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- }));
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- });
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var DeadCodeInjectionTransformer_1, _a, _b, _c, _d;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.DeadCodeInjectionTransformer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- const TDeadNodeInjectionCustomNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory */ "./src/types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const INodeTransformersRunner_1 = __webpack_require__(/*! ../../interfaces/node-transformers/INodeTransformersRunner */ "./src/interfaces/node-transformers/INodeTransformersRunner.ts");
- const DeadCodeInjectionCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/DeadCodeInjectionCustomNode */ "./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts");
- const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
- const NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
- const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
- const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- const NodeStatementUtils_1 = __webpack_require__(/*! ../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- let DeadCodeInjectionTransformer = DeadCodeInjectionTransformer_1 = class DeadCodeInjectionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
- constructor(deadCodeInjectionCustomNodeFactory, transformersRunner, randomGenerator, options) {
- super(randomGenerator, options);
- this.deadCodeInjectionRootAstHostNodeSet = new Set();
- this.collectedBlockStatements = [];
- this.collectedBlockStatementsTotalLength = 0;
- this.deadCodeInjectionCustomNodeFactory = deadCodeInjectionCustomNodeFactory;
- this.transformersRunner = transformersRunner;
- }
- static isProhibitedNodeInsideCollectedBlockStatement(targetNode) {
- return NodeGuards_1.NodeGuards.isBreakStatementNode(targetNode)
- || NodeGuards_1.NodeGuards.isContinueStatementNode(targetNode)
- || NodeGuards_1.NodeGuards.isAwaitExpressionNode(targetNode)
- || NodeGuards_1.NodeGuards.isSuperNode(targetNode);
- }
- static isScopeHoistingFunctionDeclaration(targetNode) {
- if (!NodeGuards_1.NodeGuards.isFunctionDeclarationNode(targetNode)) {
- return false;
- }
- const scopeNode = NodeStatementUtils_1.NodeStatementUtils.getScopeOfNode(targetNode);
- const scopeBody = !NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode)
- ? scopeNode.body
- : scopeNode.consequent;
- const indexInScope = scopeBody.indexOf(targetNode);
- if (indexInScope === 0) {
- return false;
- }
- const slicedBody = scopeBody.slice(0, indexInScope);
- const hostBlockStatementNode = NodeFactory_1.NodeFactory.blockStatementNode(slicedBody);
- const functionDeclarationName = targetNode.id.name;
- let isScopeHoistedFunctionDeclaration = false;
- estraverse.traverse(hostBlockStatementNode, {
- enter: (node) => {
- if (NodeGuards_1.NodeGuards.isIdentifierNode(node) && node.name === functionDeclarationName) {
- isScopeHoistedFunctionDeclaration = true;
- return estraverse.VisitorOption.Break;
- }
- }
- });
- return isScopeHoistedFunctionDeclaration;
- }
- static isValidCollectedBlockStatementNode(blockStatementNode) {
- if (!blockStatementNode.body.length) {
- return false;
- }
- let nestedBlockStatementsCount = 0;
- let isValidBlockStatementNode = true;
- estraverse.traverse(blockStatementNode, {
- 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;
- }
- static isValidWrappedBlockStatementNode(blockStatementNode) {
- if (!blockStatementNode.body.length) {
- return false;
- }
- let isValidBlockStatementNode = true;
- estraverse.traverse(blockStatementNode, {
- enter: (node) => {
- if (DeadCodeInjectionTransformer_1.isScopeHoistingFunctionDeclaration(node)) {
- isValidBlockStatementNode = false;
- return estraverse.VisitorOption.Break;
- }
- }
- });
- if (!isValidBlockStatementNode) {
- return false;
- }
- const parentNodeWithStatements = NodeStatementUtils_1.NodeStatementUtils
- .getParentNodeWithStatements(blockStatementNode);
- return parentNodeWithStatements.type !== NodeType_1.NodeType.Program;
- }
- getVisitor(nodeTransformationStage) {
- switch (nodeTransformationStage) {
- case NodeTransformationStage_1.NodeTransformationStage.DeadCodeInjection:
- return {
- enter: (node, parentNode) => {
- if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) {
- this.analyzeNode(node, parentNode);
- return node;
- }
- },
- leave: (node, parentNode) => {
- if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {
- return this.transformNode(node, parentNode);
- }
- }
- };
- case NodeTransformationStage_1.NodeTransformationStage.Finalizing:
- if (!this.deadCodeInjectionRootAstHostNodeSet.size) {
- return null;
- }
- return {
- enter: (node, parentNode) => {
- if (parentNode && this.isDeadCodeInjectionRootAstHostNode(node)) {
- return this.restoreNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- analyzeNode(programNode, parentNode) {
- estraverse.traverse(programNode, {
- enter: (node) => {
- if (!NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {
- return;
- }
- const clonedBlockStatementNode = NodeUtils_1.NodeUtils.clone(node);
- if (!DeadCodeInjectionTransformer_1.isValidCollectedBlockStatementNode(clonedBlockStatementNode)) {
- return;
- }
- const transformedBlockStatementNode = this.makeClonedBlockStatementNodeUnique(clonedBlockStatementNode);
- this.collectedBlockStatements.push(transformedBlockStatementNode);
- }
- });
- this.collectedBlockStatementsTotalLength = this.collectedBlockStatements.length;
- }
- transformNode(blockStatementNode, parentNode) {
- const 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;
- }
- const minInteger = 0;
- const maxInteger = this.collectedBlockStatements.length - 1;
- const randomIndex = this.randomGenerator.getRandomInteger(minInteger, maxInteger);
- const randomBlockStatementNode = this.collectedBlockStatements.splice(randomIndex, 1)[0];
- const isDuplicateBlockStatementNodes = randomBlockStatementNode === blockStatementNode;
- if (isDuplicateBlockStatementNodes) {
- return blockStatementNode;
- }
- return this.replaceBlockStatementNode(blockStatementNode, randomBlockStatementNode, parentNode);
- }
- restoreNode(deadCodeInjectionRootAstHostNode, parentNode) {
- const 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;
- }
- isDeadCodeInjectionRootAstHostNode(node) {
- return NodeGuards_1.NodeGuards.isBlockStatementNode(node) && this.deadCodeInjectionRootAstHostNodeSet.has(node);
- }
- makeClonedBlockStatementNodeUnique(clonedBlockStatementNode) {
- const hostNode = NodeFactory_1.NodeFactory.programNode([
- NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([], clonedBlockStatementNode))
- ]);
- NodeUtils_1.NodeUtils.parentizeAst(hostNode);
- NodeUtils_1.NodeUtils.parentizeNode(hostNode, hostNode);
- this.transformersRunner.transform(hostNode, DeadCodeInjectionTransformer_1.transformersToRenameBlockScopeIdentifiers, NodeTransformationStage_1.NodeTransformationStage.Obfuscating);
- return clonedBlockStatementNode;
- }
- replaceBlockStatementNode(blockStatementNode, randomBlockStatementNode, parentNode) {
- const deadCodeInjectionRootAstHostNode = NodeFactory_1.NodeFactory.blockStatementNode([
- NodeFactory_1.NodeFactory.functionDeclarationNode(DeadCodeInjectionTransformer_1.deadCodeInjectionRootAstHostNodeName, [], randomBlockStatementNode)
- ]);
- this.deadCodeInjectionRootAstHostNodeSet.add(deadCodeInjectionRootAstHostNode);
- const blockStatementDeadCodeInjectionCustomNode = this.deadCodeInjectionCustomNodeFactory(DeadCodeInjectionCustomNode_1.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode);
- blockStatementDeadCodeInjectionCustomNode.initialize(blockStatementNode, deadCodeInjectionRootAstHostNode);
- const newBlockStatementNode = blockStatementDeadCodeInjectionCustomNode.getNode()[0];
- NodeUtils_1.NodeUtils.parentizeNode(newBlockStatementNode, parentNode);
- return newBlockStatementNode;
- }
- };
- DeadCodeInjectionTransformer.deadCodeInjectionRootAstHostNodeName = 'deadCodeInjectionRootAstHostNode';
- DeadCodeInjectionTransformer.maxNestedBlockStatementsCount = 4;
- DeadCodeInjectionTransformer.minCollectedBlockStatementsCount = 5;
- DeadCodeInjectionTransformer.transformersToRenameBlockScopeIdentifiers = [
- NodeTransformer_1.NodeTransformer.LabeledStatementTransformer,
- NodeTransformer_1.NodeTransformer.ScopeIdentifiersTransformer
- ];
- DeadCodeInjectionTransformer = DeadCodeInjectionTransformer_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformersRunner)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TDeadNodeInjectionCustomNodeFactory_1.TDeadNodeInjectionCustomNodeFactory !== "undefined" && TDeadNodeInjectionCustomNodeFactory_1.TDeadNodeInjectionCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof INodeTransformersRunner_1.INodeTransformersRunner !== "undefined" && INodeTransformersRunner_1.INodeTransformersRunner) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object])
- ], DeadCodeInjectionTransformer);
- exports.DeadCodeInjectionTransformer = DeadCodeInjectionTransformer;
- /***/ }),
- /***/ "./src/node-transformers/initializing-transformers/CommentsTransformer.ts":
- /*!********************************************************************************!*\
- !*** ./src/node-transformers/initializing-transformers/CommentsTransformer.ts ***!
- \********************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- }));
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- });
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var CommentsTransformer_1, _a, _b;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.CommentsTransformer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
- const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- const ConditionalCommentObfuscatingGuard_1 = __webpack_require__(/*! ../preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- let CommentsTransformer = CommentsTransformer_1 = class CommentsTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
- constructor(randomGenerator, options) {
- super(randomGenerator, options);
- }
- getVisitor(nodeTransformationStage) {
- switch (nodeTransformationStage) {
- case NodeTransformationStage_1.NodeTransformationStage.Initializing:
- return {
- leave: (node) => {
- if (NodeGuards_1.NodeGuards.isProgramNode(node)) {
- return this.transformNode(node);
- }
- }
- };
- default:
- return null;
- }
- }
- transformNode(rootNode) {
- if (!rootNode.comments || !rootNode.comments.length) {
- return rootNode;
- }
- const comments = this.transformComments(rootNode.comments);
- if (comments.length === 0) {
- return rootNode;
- }
- if (!rootNode.body.length) {
- rootNode.leadingComments = comments;
- return rootNode;
- }
- let isFirstNode = true;
- estraverse.traverse(rootNode, {
- enter: (node) => {
- if (node === rootNode) {
- return;
- }
- const commentIdx = comments.findIndex((comment) => comment.range && node.range && comment.range[0] < node.range[0]);
- if (commentIdx >= 0) {
- (isFirstNode ? rootNode : node).leadingComments =
- comments.splice(commentIdx, comments.length - commentIdx).reverse();
- }
- isFirstNode = false;
- }
- });
- if (comments.length > 0) {
- rootNode.trailingComments = comments.reverse();
- }
- return rootNode;
- }
- transformComments(comments) {
- return comments.filter((comment) => CommentsTransformer_1.preservedWords
- .some((preservedWord) => comment.value.includes(preservedWord)) ||
- ConditionalCommentObfuscatingGuard_1.ConditionalCommentObfuscatingGuard.isConditionalComment(comment)).reverse();
- }
- };
- CommentsTransformer.preservedWords = [
- '@license',
- '@preserve'
- ];
- CommentsTransformer = CommentsTransformer_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
- ], CommentsTransformer);
- exports.CommentsTransformer = CommentsTransformer;
- /***/ }),
- /***/ "./src/node-transformers/mangle-properties-transformers/ManglePropertiesTransformer.ts":
- /*!*********************************************************************************************!*\
- !*** ./src/node-transformers/mangle-properties-transformers/ManglePropertiesTransformer.ts ***!
- \*********************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var ManglePropertiesTransformer_1, _a, _b, _c;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ManglePropertiesTransformer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const IManglePropertiesReplacer_1 = __webpack_require__(/*! ../../interfaces/node-transformers/mangle-properties-transformers/replacer/IManglePropertiesReplacer */ "./src/interfaces/node-transformers/mangle-properties-transformers/replacer/IManglePropertiesReplacer.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
- const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- let ManglePropertiesTransformer = ManglePropertiesTransformer_1 = class ManglePropertiesTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
- constructor(manglePropertiesObfuscatingReplacer, randomGenerator, options) {
- super(randomGenerator, options);
- this.manglePropertiesObfuscatingReplacer = manglePropertiesObfuscatingReplacer;
- }
- static isValidPropertyNode(propertyNode, propertyKeyNode) {
- if (NodeGuards_1.NodeGuards.isIdentifierNode(propertyKeyNode) && propertyNode.computed) {
- return false;
- }
- return NodeGuards_1.NodeGuards.isIdentifierNode(propertyKeyNode) || NodeGuards_1.NodeGuards.isLiteralNode(propertyKeyNode);
- }
- getVisitor(nodeTransformationStage) {
- switch (nodeTransformationStage) {
- case NodeTransformationStage_1.NodeTransformationStage.MangleProperties:
- return {
- enter: (node, parentNode) => {
- if (parentNode) {
- return this.transformNode(node, parentNode);
- }
- return node;
- }
- };
- default:
- return null;
- }
- }
- transformNode(node, parentNode) {
- if (NodeGuards_1.NodeGuards.isPropertyNode(node)) {
- return this.transformPropertyNode(node);
- }
- if (NodeGuards_1.NodeGuards.isMemberExpressionNode(node)) {
- return this.transformMemberExpressionNode(node);
- }
- if (NodeGuards_1.NodeGuards.isMethodDefinitionNode(node)) {
- return this.transformMethodDefinitionNode(node);
- }
- return node;
- }
- transformPropertyNode(propertyNode) {
- const propertyKeyNode = propertyNode.key;
- if (ManglePropertiesTransformer_1.isValidPropertyNode(propertyNode, propertyKeyNode)) {
- propertyNode.key = this.manglePropertiesObfuscatingReplacer.replace(propertyKeyNode);
- propertyNode.shorthand = false;
- }
- return propertyNode;
- }
- transformMemberExpressionNode(memberExpressionNode) {
- const propertyKeyNode = memberExpressionNode.property;
- if (ManglePropertiesTransformer_1.isValidPropertyNode(memberExpressionNode, propertyKeyNode)) {
- memberExpressionNode.property = this.manglePropertiesObfuscatingReplacer.replace(propertyKeyNode);
- }
- return memberExpressionNode;
- }
- transformMethodDefinitionNode(methodDefinitionNode) {
- const propertyKeyNode = methodDefinitionNode.key;
- if (ManglePropertiesTransformer_1.isValidPropertyNode(methodDefinitionNode, propertyKeyNode)) {
- methodDefinitionNode.key = this.manglePropertiesObfuscatingReplacer.replace(propertyKeyNode);
- }
- return methodDefinitionNode;
- }
- };
- ManglePropertiesTransformer = ManglePropertiesTransformer_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IManglePropertiesObfuscatingReplacer)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof IManglePropertiesReplacer_1.IManglePropertiesReplacer !== "undefined" && IManglePropertiesReplacer_1.IManglePropertiesReplacer) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
- ], ManglePropertiesTransformer);
- exports.ManglePropertiesTransformer = ManglePropertiesTransformer;
- /***/ }),
- /***/ "./src/node-transformers/mangle-properties-transformers/replacer/ManglePropertiesReplacer.ts":
- /*!***************************************************************************************************!*\
- !*** ./src/node-transformers/mangle-properties-transformers/replacer/ManglePropertiesReplacer.ts ***!
- \***************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ManglePropertiesReplacer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const ReservedDomProperties_1 = __webpack_require__(/*! ../../../constants/ReservedDomProperties */ "./src/constants/ReservedDomProperties.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- let ManglePropertiesReplacer = class ManglePropertiesReplacer {
- constructor(identifierNamesGeneratorFactory, options) {
- this.mangledPropertyNamesMap = new Map();
- this.reservedDomPropertiesList = new Set(ReservedDomProperties_1.ReservedDomProperties);
- this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
- this.options = options;
- }
- replace(node) {
- if (NodeGuards_1.NodeGuards.isIdentifierNode(node)) {
- return NodeFactory_1.NodeFactory.identifierNode(this.replacePropertyName(node.name));
- }
- if (NodeGuards_1.NodeGuards.isLiteralNode(node) && typeof node.value === 'string') {
- return NodeFactory_1.NodeFactory.literalNode(this.replacePropertyName(node.value));
- }
- return node;
- }
- replacePropertyName(propertyName) {
- var _a;
- if (this.isReservedName(propertyName)) {
- return propertyName;
- }
- let mangledPropertyName = (_a = this.mangledPropertyNamesMap.get(propertyName)) !== null && _a !== void 0 ? _a : null;
- if (mangledPropertyName !== null) {
- return mangledPropertyName;
- }
- mangledPropertyName = this.identifierNamesGenerator.generateNext();
- this.mangledPropertyNamesMap.set(propertyName, mangledPropertyName);
- return mangledPropertyName;
- }
- isReservedName(name) {
- return this.isReservedOptionName(name)
- || this.isReservedDomPropertyName(name);
- }
- isReservedOptionName(name) {
- if (!this.options.reservedNames.length) {
- return false;
- }
- return this.options.reservedNames
- .some((reservedName) => {
- return new RegExp(reservedName, 'g').exec(name) !== null;
- });
- }
- isReservedDomPropertyName(name) {
- return this.reservedDomPropertiesList.has(name);
- }
- };
- ManglePropertiesReplacer = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
- ], ManglePropertiesReplacer);
- exports.ManglePropertiesReplacer = ManglePropertiesReplacer;
- /***/ }),
- /***/ "./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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- }));
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- });
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.LabeledStatementTransformer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- const TIdentifierObfuscatingReplacerFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TIdentifierObfuscatingReplacerFactory */ "./src/types/container/node-transformers/TIdentifierObfuscatingReplacerFactory.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
- const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
- const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
- let LabeledStatementTransformer = class LabeledStatementTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
- constructor(identifierObfuscatingReplacerFactory, randomGenerator, options) {
- super(randomGenerator, options);
- this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
- }
- getVisitor(nodeTransformationStage) {
- switch (nodeTransformationStage) {
- case NodeTransformationStage_1.NodeTransformationStage.Obfuscating:
- return {
- enter: (node, parentNode) => {
- if (parentNode && NodeGuards_1.NodeGuards.isLabeledStatementNode(node)) {
- return this.transformNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- transformNode(labeledStatementNode, parentNode) {
- const lexicalScopeNode = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(labeledStatementNode);
- if (!lexicalScopeNode) {
- return labeledStatementNode;
- }
- this.storeLabeledStatementName(labeledStatementNode, lexicalScopeNode);
- this.replaceLabeledStatementName(labeledStatementNode, lexicalScopeNode);
- return labeledStatementNode;
- }
- storeLabeledStatementName(labeledStatementNode, lexicalScopeNode) {
- this.identifierObfuscatingReplacer.storeLocalName(labeledStatementNode.label, lexicalScopeNode);
- }
- replaceLabeledStatementName(labeledStatementNode, lexicalScopeNode) {
- estraverse.replace(labeledStatementNode, {
- enter: (node, parentNode) => {
- if (parentNode && NodeGuards_1.NodeGuards.isLabelIdentifierNode(node, parentNode)) {
- const newIdentifier = this.identifierObfuscatingReplacer
- .replace(node, lexicalScopeNode);
- node.name = newIdentifier.name;
- }
- }
- });
- }
- };
- LabeledStatementTransformer = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierObfuscatingReplacerFactory_1.TIdentifierObfuscatingReplacerFactory !== "undefined" && TIdentifierObfuscatingReplacerFactory_1.TIdentifierObfuscatingReplacerFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d, _e;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.LiteralTransformer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TLiteralObfuscatingReplacerFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TLiteralObfuscatingReplacerFactory */ "./src/types/container/node-transformers/TLiteralObfuscatingReplacerFactory.ts");
- const IEscapeSequenceEncoder_1 = __webpack_require__(/*! ../../interfaces/utils/IEscapeSequenceEncoder */ "./src/interfaces/utils/IEscapeSequenceEncoder.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const IStringArrayStorageAnalyzer_1 = __webpack_require__(/*! ../../interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer */ "./src/interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer.ts");
- const LiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts");
- const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
- const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- const NodeLiteralUtils_1 = __webpack_require__(/*! ../../node/NodeLiteralUtils */ "./src/node/NodeLiteralUtils.ts");
- const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- let LiteralTransformer = class LiteralTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
- constructor(literalObfuscatingReplacerFactory, randomGenerator, options, stringArrayStorageAnalyzer, escapeSequenceEncoder) {
- super(randomGenerator, options);
- this.literalObfuscatingReplacerFactory = literalObfuscatingReplacerFactory;
- this.stringArrayStorageAnalyzer = stringArrayStorageAnalyzer;
- this.escapeSequenceEncoder = escapeSequenceEncoder;
- }
- getVisitor(nodeTransformationStage) {
- switch (nodeTransformationStage) {
- case NodeTransformationStage_1.NodeTransformationStage.Obfuscating:
- return {
- enter: (node, parentNode) => {
- if (NodeGuards_1.NodeGuards.isProgramNode(node)) {
- this.analyzeNode(node);
- }
- if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node) && !NodeMetadata_1.NodeMetadata.isReplacedLiteral(node)) {
- return this.transformNode(node, parentNode);
- }
- }
- };
- case NodeTransformationStage_1.NodeTransformationStage.Finalizing:
- return {
- enter: (node, parentNode) => {
- if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) {
- return this.encodeLiteralNodeToEscapeSequence(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- analyzeNode(programNode) {
- this.stringArrayStorageAnalyzer.analyze(programNode);
- }
- transformNode(literalNode, parentNode) {
- if (NodeLiteralUtils_1.NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)) {
- return literalNode;
- }
- let newLiteralNode;
- switch (typeof literalNode.value) {
- case 'boolean':
- newLiteralNode = this.literalObfuscatingReplacerFactory(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.BooleanLiteralObfuscatingReplacer).replace(literalNode);
- break;
- case 'number':
- case 'bigint':
- newLiteralNode = this.literalObfuscatingReplacerFactory(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.NumberLiteralObfuscatingReplacer).replace(literalNode);
- break;
- case 'string':
- newLiteralNode = this.literalObfuscatingReplacerFactory(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.StringLiteralObfuscatingReplacer).replace(literalNode);
- break;
- default:
- newLiteralNode = literalNode;
- }
- NodeUtils_1.NodeUtils.parentizeNode(newLiteralNode, parentNode);
- return newLiteralNode;
- }
- encodeLiteralNodeToEscapeSequence(literalNode, parentNode) {
- if (typeof literalNode.value !== 'string') {
- return literalNode;
- }
- return NodeFactory_1.NodeFactory.literalNode(this.escapeSequenceEncoder.encode(literalNode.value, this.options.unicodeEscapeSequence));
- }
- };
- LiteralTransformer = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatingReplacer)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorageAnalyzer)),
- __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)),
- __metadata("design:paramtypes", [typeof (_a = typeof TLiteralObfuscatingReplacerFactory_1.TLiteralObfuscatingReplacerFactory !== "undefined" && TLiteralObfuscatingReplacerFactory_1.TLiteralObfuscatingReplacerFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object, typeof (_d = typeof IStringArrayStorageAnalyzer_1.IStringArrayStorageAnalyzer !== "undefined" && IStringArrayStorageAnalyzer_1.IStringArrayStorageAnalyzer) === "function" ? _d : Object, typeof (_e = typeof IEscapeSequenceEncoder_1.IEscapeSequenceEncoder !== "undefined" && IEscapeSequenceEncoder_1.IEscapeSequenceEncoder) === "function" ? _e : Object])
- ], LiteralTransformer);
- exports.LiteralTransformer = LiteralTransformer;
- /***/ }),
- /***/ "./src/node-transformers/obfuscating-transformers/ScopeIdentifiersTransformer.ts":
- /*!***************************************************************************************!*\
- !*** ./src/node-transformers/obfuscating-transformers/ScopeIdentifiersTransformer.ts ***!
- \***************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- }));
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- });
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ScopeIdentifiersTransformer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- const TIdentifierObfuscatingReplacerFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TIdentifierObfuscatingReplacerFactory */ "./src/types/container/node-transformers/TIdentifierObfuscatingReplacerFactory.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const IScopeIdentifiersTraverser_1 = __webpack_require__(/*! ../../interfaces/node/IScopeIdentifiersTraverser */ "./src/interfaces/node/IScopeIdentifiersTraverser.ts");
- const IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
- const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
- const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
- let ScopeIdentifiersTransformer = class ScopeIdentifiersTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
- constructor(identifierObfuscatingReplacerFactory, randomGenerator, options, scopeIdentifiersTraverser) {
- super(randomGenerator, options);
- this.lexicalScopesWithObjectPatternWithoutDeclarationMap = new Map();
- this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
- this.scopeIdentifiersTraverser = scopeIdentifiersTraverser;
- }
- getVisitor(nodeTransformationStage) {
- switch (nodeTransformationStage) {
- case NodeTransformationStage_1.NodeTransformationStage.Obfuscating:
- return {
- enter: (node, parentNode) => {
- if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) {
- return this.transformNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- transformNode(programNode, parentNode) {
- this.scopeIdentifiersTraverser.traverse(programNode, parentNode, (data) => {
- const { isGlobalDeclaration, variable, variableLexicalScopeNode } = data;
- if (!this.options.renameGlobals && isGlobalDeclaration) {
- const isImportBindingOrCatchClauseIdentifier = variable.defs
- .every((definition) => definition.type === 'ImportBinding'
- || definition.type === 'CatchClause');
- if (!isImportBindingOrCatchClauseIdentifier) {
- return;
- }
- }
- this.transformScopeVariableIdentifiers(variable, variableLexicalScopeNode, isGlobalDeclaration);
- });
- return programNode;
- }
- transformScopeVariableIdentifiers(variable, lexicalScopeNode, isGlobalDeclaration) {
- var _a;
- const firstIdentifier = (_a = variable.identifiers[0]) !== null && _a !== void 0 ? _a : null;
- if (!firstIdentifier) {
- return;
- }
- if (!this.isReplaceableIdentifierNode(firstIdentifier, lexicalScopeNode, variable)) {
- return;
- }
- this.storeIdentifierName(firstIdentifier, lexicalScopeNode, isGlobalDeclaration);
- this.replaceIdentifierName(firstIdentifier, lexicalScopeNode, variable);
- }
- storeIdentifierName(identifierNode, lexicalScopeNode, isGlobalDeclaration) {
- if (isGlobalDeclaration) {
- this.identifierObfuscatingReplacer.storeGlobalName(identifierNode, lexicalScopeNode);
- }
- else {
- this.identifierObfuscatingReplacer.storeLocalName(identifierNode, lexicalScopeNode);
- }
- }
- replaceIdentifierName(identifierNode, lexicalScopeNode, variable) {
- const newIdentifier = this.identifierObfuscatingReplacer
- .replace(identifierNode, lexicalScopeNode);
- variable.identifiers.forEach((identifier) => {
- identifier.name = newIdentifier.name;
- });
- variable.references.forEach((reference) => {
- reference.identifier.name = identifierNode.name;
- });
- }
- isReplaceableIdentifierNode(identifierNode, lexicalScopeNode, variable) {
- const parentNode = identifierNode.parentNode;
- return !!parentNode
- && !NodeMetadata_1.NodeMetadata.isIgnoredNode(identifierNode)
- && !this.isProhibitedPropertyNode(identifierNode, parentNode)
- && !this.isProhibitedClassDeclarationNameIdentifierNode(variable, identifierNode, parentNode)
- && !this.isProhibitedExportNamedClassDeclarationIdentifierNode(identifierNode, parentNode)
- && !this.isProhibitedExportNamedFunctionDeclarationIdentifierNode(identifierNode, parentNode)
- && !this.isProhibitedExportNamedVariableDeclarationIdentifierNode(identifierNode, parentNode)
- && !this.isProhibitedImportSpecifierNode(identifierNode, parentNode)
- && !this.isProhibitedVariableNameUsedInObjectPatternNode(variable, identifierNode, lexicalScopeNode)
- && !NodeGuards_1.NodeGuards.isLabelIdentifierNode(identifierNode, parentNode);
- }
- isProhibitedClassDeclarationNameIdentifierNode(variable, identifierNode, parentNode) {
- return NodeGuards_1.NodeGuards.isClassDeclarationNode(variable.scope.block)
- && NodeGuards_1.NodeGuards.isClassDeclarationNode(parentNode)
- && parentNode.id === identifierNode;
- }
- isProhibitedExportNamedClassDeclarationIdentifierNode(identifierNode, parentNode) {
- return NodeGuards_1.NodeGuards.isClassDeclarationNode(parentNode)
- && parentNode.id === identifierNode
- && !!parentNode.parentNode
- && NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode.parentNode);
- }
- isProhibitedExportNamedFunctionDeclarationIdentifierNode(identifierNode, parentNode) {
- return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(parentNode)
- && parentNode.id === identifierNode
- && !!parentNode.parentNode
- && NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode.parentNode);
- }
- isProhibitedExportNamedVariableDeclarationIdentifierNode(identifierNode, parentNode) {
- return NodeGuards_1.NodeGuards.isVariableDeclaratorNode(parentNode)
- && parentNode.id === identifierNode
- && !!parentNode.parentNode
- && NodeGuards_1.NodeGuards.isVariableDeclarationNode(parentNode.parentNode)
- && !!parentNode.parentNode.parentNode
- && NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode.parentNode.parentNode);
- }
- isProhibitedImportSpecifierNode(identifierNode, parentNode) {
- return NodeGuards_1.NodeGuards.isImportSpecifierNode(parentNode)
- && parentNode.imported.name === parentNode.local.name;
- }
- isProhibitedPropertyNode(node, parentNode) {
- const isProhibitedPropertyIdentifier = NodeGuards_1.NodeGuards.isPropertyNode(parentNode)
- && !parentNode.computed
- && parentNode.key === node;
- const isProhibitedPropertyAssignmentPatternIdentifier = NodeGuards_1.NodeGuards.isAssignmentPatternNode(parentNode)
- && parentNode.left === node
- && !!parentNode.parentNode
- && NodeGuards_1.NodeGuards.isPropertyNode(parentNode.parentNode)
- && parentNode.left === parentNode.parentNode.key;
- return isProhibitedPropertyIdentifier
- || isProhibitedPropertyAssignmentPatternIdentifier;
- }
- isProhibitedVariableNameUsedInObjectPatternNode(variable, identifierNode, lexicalScopeNode) {
- let isLexicalScopeHasObjectPatternWithoutDeclaration = this.lexicalScopesWithObjectPatternWithoutDeclarationMap.get(lexicalScopeNode);
- if (isLexicalScopeHasObjectPatternWithoutDeclaration === false) {
- return false;
- }
- const hasVarDefinitions = variable.defs.some((definition) => definition.kind === 'var');
- if (!hasVarDefinitions) {
- return false;
- }
- let isProhibitedVariableDeclaration = false;
- estraverse.traverse(lexicalScopeNode, {
- enter: (node, parentNode) => {
- if (NodeGuards_1.NodeGuards.isObjectPatternNode(node)
- && parentNode
- && NodeGuards_1.NodeGuards.isAssignmentExpressionNode(parentNode)) {
- isLexicalScopeHasObjectPatternWithoutDeclaration = true;
- const properties = node.properties;
- for (const property of properties) {
- if (!NodeGuards_1.NodeGuards.isPropertyNode(property)) {
- continue;
- }
- if (property.computed || !property.shorthand) {
- continue;
- }
- if (!NodeGuards_1.NodeGuards.isIdentifierNode(property.key)) {
- continue;
- }
- if (identifierNode.name !== property.key.name) {
- continue;
- }
- isProhibitedVariableDeclaration = true;
- return estraverse.VisitorOption.Break;
- }
- }
- }
- });
- this.lexicalScopesWithObjectPatternWithoutDeclarationMap.set(lexicalScopeNode, isLexicalScopeHasObjectPatternWithoutDeclaration !== null && isLexicalScopeHasObjectPatternWithoutDeclaration !== void 0 ? isLexicalScopeHasObjectPatternWithoutDeclaration : false);
- return isProhibitedVariableDeclaration;
- }
- };
- ScopeIdentifiersTransformer = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IScopeIdentifiersTraverser)),
- __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierObfuscatingReplacerFactory_1.TIdentifierObfuscatingReplacerFactory !== "undefined" && TIdentifierObfuscatingReplacerFactory_1.TIdentifierObfuscatingReplacerFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object, typeof (_d = typeof IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser !== "undefined" && IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser) === "function" ? _d : Object])
- ], ScopeIdentifiersTransformer);
- exports.ScopeIdentifiersTransformer = ScopeIdentifiersTransformer;
- /***/ }),
- /***/ "./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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.AbstractObfuscatingReplacer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- let AbstractObfuscatingReplacer = class AbstractObfuscatingReplacer {
- constructor(options) {
- this.options = options;
- }
- };
- AbstractObfuscatingReplacer = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _a : 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.BaseIdentifierObfuscatingReplacer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const IOptions_1 = __webpack_require__(/*! ../../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts");
- const NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- let BaseIdentifierObfuscatingReplacer = class BaseIdentifierObfuscatingReplacer extends AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer {
- constructor(identifierNamesGeneratorFactory, options) {
- super(options);
- this.blockScopesMap = new Map();
- this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
- }
- replace(identifierNode, lexicalScopeNode) {
- let identifierName = identifierNode.name;
- if (this.blockScopesMap.has(lexicalScopeNode)) {
- const namesMap = this.blockScopesMap.get(lexicalScopeNode);
- if (namesMap.has(identifierName)) {
- identifierName = namesMap.get(identifierName);
- }
- }
- return NodeFactory_1.NodeFactory.identifierNode(identifierName);
- }
- storeGlobalName(identifierNode, lexicalScopeNode) {
- const identifierName = identifierNode.name;
- if (this.isReservedName(identifierName)) {
- return;
- }
- const newIdentifierName = this.identifierNamesGenerator.generateForGlobalScope();
- if (!this.blockScopesMap.has(lexicalScopeNode)) {
- this.blockScopesMap.set(lexicalScopeNode, new Map());
- }
- const namesMap = this.blockScopesMap.get(lexicalScopeNode);
- namesMap.set(identifierName, newIdentifierName);
- }
- storeLocalName(identifierNode, lexicalScopeNode) {
- const identifierName = identifierNode.name;
- if (this.isReservedName(identifierName)) {
- return;
- }
- const newIdentifierName = this.identifierNamesGenerator.generateForLexicalScope(lexicalScopeNode);
- if (!this.blockScopesMap.has(lexicalScopeNode)) {
- this.blockScopesMap.set(lexicalScopeNode, new Map());
- }
- const namesMap = this.blockScopesMap.get(lexicalScopeNode);
- namesMap.set(identifierName, newIdentifierName);
- }
- preserveName(identifierNode) {
- this.identifierNamesGenerator.preserveName(identifierNode.name);
- }
- preserveNameForLexicalScope(identifierNode, lexicalScopeNode) {
- this.identifierNamesGenerator.preserveNameForLexicalScope(identifierNode.name, lexicalScopeNode);
- }
- isReservedName(name) {
- if (!this.options.reservedNames.length) {
- return false;
- }
- return this.options.reservedNames
- .some((reservedName) => {
- return new RegExp(reservedName, 'g').exec(name) !== null;
- });
- }
- };
- BaseIdentifierObfuscatingReplacer = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var BooleanLiteralObfuscatingReplacer_1, _a;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.BooleanLiteralObfuscatingReplacer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const IOptions_1 = __webpack_require__(/*! ../../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts");
- const NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- let BooleanLiteralObfuscatingReplacer = BooleanLiteralObfuscatingReplacer_1 = class BooleanLiteralObfuscatingReplacer extends AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer {
- constructor(options) {
- super(options);
- }
- static getTrueUnaryExpressionNode() {
- return NodeFactory_1.NodeFactory.unaryExpressionNode('!', BooleanLiteralObfuscatingReplacer_1.getFalseUnaryExpressionNode());
- }
- static getFalseUnaryExpressionNode() {
- return NodeFactory_1.NodeFactory.unaryExpressionNode('!', NodeFactory_1.NodeFactory.arrayExpressionNode());
- }
- replace(literalNode) {
- const literalValue = literalNode.value;
- if (typeof literalValue !== 'boolean') {
- throw new Error('`BooleanLiteralObfuscatingReplacer` should accept only literals with `boolean` value');
- }
- return literalValue
- ? BooleanLiteralObfuscatingReplacer_1.getTrueUnaryExpressionNode()
- : BooleanLiteralObfuscatingReplacer_1.getFalseUnaryExpressionNode();
- }
- };
- BooleanLiteralObfuscatingReplacer = BooleanLiteralObfuscatingReplacer_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _a : 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.NumberLiteralObfuscatingReplacer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const IOptions_1 = __webpack_require__(/*! ../../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts");
- const NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- const NumberUtils_1 = __webpack_require__(/*! ../../../../utils/NumberUtils */ "./src/utils/NumberUtils.ts");
- let NumberLiteralObfuscatingReplacer = class NumberLiteralObfuscatingReplacer extends AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer {
- constructor(options) {
- super(options);
- this.numberLiteralCache = new Map();
- }
- replace(literalNode) {
- const literalValue = literalNode.value;
- if (typeof literalValue !== 'number' && typeof literalValue !== 'bigint') {
- throw new Error('`NumberLiteralObfuscatingReplacer` should accept only literals with `number` and `bigint` value');
- }
- let rawValue;
- if (this.numberLiteralCache.has(literalValue)) {
- rawValue = this.numberLiteralCache.get(literalValue);
- }
- else {
- if (NumberUtils_1.NumberUtils.isCeil(literalValue)) {
- rawValue = NumberUtils_1.NumberUtils.toHex(literalValue);
- }
- else {
- rawValue = String(literalValue);
- }
- this.numberLiteralCache.set(literalValue, rawValue);
- }
- return NodeFactory_1.NodeFactory.literalNode(literalValue, rawValue);
- }
- };
- NumberLiteralObfuscatingReplacer = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _a : 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var StringLiteralObfuscatingReplacer_1, _a, _b, _c;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.StringLiteralObfuscatingReplacer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const IOptions_1 = __webpack_require__(/*! ../../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IStringArrayStorage_1 = __webpack_require__(/*! ../../../../interfaces/storages/string-array-storage/IStringArrayStorage */ "./src/interfaces/storages/string-array-storage/IStringArrayStorage.ts");
- const IStringArrayStorageAnalyzer_1 = __webpack_require__(/*! ../../../../interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer */ "./src/interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer.ts");
- const StringArrayEncoding_1 = __webpack_require__(/*! ../../../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts");
- const AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts");
- const NodeMetadata_1 = __webpack_require__(/*! ../../../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
- const NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- const NumberUtils_1 = __webpack_require__(/*! ../../../../utils/NumberUtils */ "./src/utils/NumberUtils.ts");
- let StringLiteralObfuscatingReplacer = StringLiteralObfuscatingReplacer_1 = class StringLiteralObfuscatingReplacer extends AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer {
- constructor(stringArrayStorage, stringArrayStorageAnalyzer, options) {
- super(options);
- this.nodesCache = new Map();
- this.stringArrayStorage = stringArrayStorage;
- this.stringArrayStorageAnalyzer = stringArrayStorageAnalyzer;
- }
- static getHexadecimalLiteralNode(hexadecimalIndex) {
- const hexadecimalLiteralNode = NodeFactory_1.NodeFactory.literalNode(hexadecimalIndex);
- NodeMetadata_1.NodeMetadata.set(hexadecimalLiteralNode, { replacedLiteral: true });
- return hexadecimalLiteralNode;
- }
- static getRc4KeyLiteralNode(literalValue) {
- const rc4KeyLiteralNode = NodeFactory_1.NodeFactory.literalNode(literalValue);
- NodeMetadata_1.NodeMetadata.set(rc4KeyLiteralNode, { replacedLiteral: true });
- return rc4KeyLiteralNode;
- }
- initialize() {
- if (this.options.shuffleStringArray) {
- this.stringArrayStorage.shuffleStorage();
- }
- if (this.options.rotateStringArray) {
- this.stringArrayStorage.rotateStorage();
- }
- }
- replace(literalNode) {
- const literalValue = literalNode.value;
- if (typeof literalValue !== 'string') {
- throw new Error('`StringLiteralObfuscatingReplacer` should accept only literals with `string` value');
- }
- const stringArrayStorageItemData = this.stringArrayStorageAnalyzer
- .getItemDataForLiteralNode(literalNode);
- const cacheKey = `${literalValue}-${Boolean(stringArrayStorageItemData)}`;
- const useCachedValue = this.nodesCache.has(cacheKey) && this.options.stringArrayEncoding !== StringArrayEncoding_1.StringArrayEncoding.Rc4;
- if (useCachedValue) {
- return this.nodesCache.get(cacheKey);
- }
- const resultNode = stringArrayStorageItemData
- ? this.replaceWithStringArrayCallNode(stringArrayStorageItemData)
- : this.replaceWithLiteralNode(literalValue);
- this.nodesCache.set(cacheKey, resultNode);
- return resultNode;
- }
- replaceWithLiteralNode(value) {
- return NodeFactory_1.NodeFactory.literalNode(value);
- }
- replaceWithStringArrayCallNode(stringArrayStorageItemData) {
- const { index, decodeKey } = stringArrayStorageItemData;
- const hexadecimalIndex = NumberUtils_1.NumberUtils.toHex(index);
- const callExpressionArgs = [
- StringLiteralObfuscatingReplacer_1.getHexadecimalLiteralNode(hexadecimalIndex)
- ];
- if (decodeKey) {
- callExpressionArgs.push(StringLiteralObfuscatingReplacer_1.getRc4KeyLiteralNode(decodeKey));
- }
- const stringArrayIdentifierNode = NodeFactory_1.NodeFactory.identifierNode(this.stringArrayStorage.getStorageCallsWrapperName());
- return NodeFactory_1.NodeFactory.callExpressionNode(stringArrayIdentifierNode, callExpressionArgs);
- }
- };
- __decorate([
- inversify_1.postConstruct(),
- __metadata("design:type", Function),
- __metadata("design:paramtypes", []),
- __metadata("design:returntype", void 0)
- ], StringLiteralObfuscatingReplacer.prototype, "initialize", null);
- StringLiteralObfuscatingReplacer = StringLiteralObfuscatingReplacer_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorageAnalyzer)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _a : Object, typeof (_b = typeof IStringArrayStorageAnalyzer_1.IStringArrayStorageAnalyzer !== "undefined" && IStringArrayStorageAnalyzer_1.IStringArrayStorageAnalyzer) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
- ], StringLiteralObfuscatingReplacer);
- exports.StringLiteralObfuscatingReplacer = StringLiteralObfuscatingReplacer;
- /***/ }),
- /***/ "./src/node-transformers/preparing-transformers/CustomCodeHelpersTransformer.ts":
- /*!**************************************************************************************!*\
- !*** ./src/node-transformers/preparing-transformers/CustomCodeHelpersTransformer.ts ***!
- \**************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d, _e, _f;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.CustomCodeHelpersTransformer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TCustomCodeHelperGroupStorage_1 = __webpack_require__(/*! ../../types/storages/TCustomCodeHelperGroupStorage */ "./src/types/storages/TCustomCodeHelperGroupStorage.ts");
- const IObfuscationEventEmitter_1 = __webpack_require__(/*! ../../interfaces/event-emitters/IObfuscationEventEmitter */ "./src/interfaces/event-emitters/IObfuscationEventEmitter.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const ICallsGraphAnalyzer_1 = __webpack_require__(/*! ../../interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer */ "./src/interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer.ts");
- const IPrevailingKindOfVariablesAnalyzer_1 = __webpack_require__(/*! ../../interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer */ "./src/interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer.ts");
- const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
- const ObfuscationEvent_1 = __webpack_require__(/*! ../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
- const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
- const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- let CustomCodeHelpersTransformer = class CustomCodeHelpersTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
- constructor(callsGraphAnalyzer, prevailingKindOfVariablesAnalyzer, obfuscationEventEmitter, customCodeHelperGroupStorage, randomGenerator, options) {
- super(randomGenerator, options);
- this.runAfter = [
- NodeTransformer_1.NodeTransformer.ParentificationTransformer,
- NodeTransformer_1.NodeTransformer.VariablePreserveTransformer
- ];
- this.callsGraphData = [];
- this.callsGraphAnalyzer = callsGraphAnalyzer;
- this.prevailingKindOfVariablesAnalyzer = prevailingKindOfVariablesAnalyzer;
- this.obfuscationEventEmitter = obfuscationEventEmitter;
- this.customCodeHelperGroupStorage = customCodeHelperGroupStorage;
- }
- getVisitor(nodeTransformationStage) {
- switch (nodeTransformationStage) {
- case NodeTransformationStage_1.NodeTransformationStage.Preparing:
- return {
- leave: (node, parentNode) => {
- if (NodeGuards_1.NodeGuards.isProgramNode(node)) {
- this.analyzeNode(node, parentNode);
- this.appendCustomNodesBeforeObfuscation(node, parentNode);
- return this.transformNode(node, parentNode);
- }
- }
- };
- case NodeTransformationStage_1.NodeTransformationStage.Finalizing:
- return {
- leave: (node, parentNode) => {
- if (NodeGuards_1.NodeGuards.isProgramNode(node)) {
- this.appendCustomNodesAfterObfuscation(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- analyzeNode(node, parentNode) {
- this.callsGraphData = this.callsGraphAnalyzer.analyze(node);
- this.prevailingKindOfVariablesAnalyzer.analyze(node);
- }
- transformNode(node, parentNode) {
- return node;
- }
- appendCustomNodesBeforeObfuscation(node, parentNode) {
- this.customCodeHelperGroupStorage
- .getStorage()
- .forEach((customCodeHelperGroup) => {
- customCodeHelperGroup.initialize();
- this.obfuscationEventEmitter.once(customCodeHelperGroup.getAppendEvent(), customCodeHelperGroup.appendNodes.bind(customCodeHelperGroup));
- });
- this.obfuscationEventEmitter.emit(ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation, node, this.callsGraphData);
- }
- appendCustomNodesAfterObfuscation(node, parentNode) {
- this.obfuscationEventEmitter.emit(ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation, node, this.callsGraphData);
- }
- };
- CustomCodeHelpersTransformer = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICallsGraphAnalyzer)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationEventEmitter)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TCustomNodeGroupStorage)),
- __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof ICallsGraphAnalyzer_1.ICallsGraphAnalyzer !== "undefined" && ICallsGraphAnalyzer_1.ICallsGraphAnalyzer) === "function" ? _a : Object, typeof (_b = typeof IPrevailingKindOfVariablesAnalyzer_1.IPrevailingKindOfVariablesAnalyzer !== "undefined" && IPrevailingKindOfVariablesAnalyzer_1.IPrevailingKindOfVariablesAnalyzer) === "function" ? _b : Object, typeof (_c = typeof IObfuscationEventEmitter_1.IObfuscationEventEmitter !== "undefined" && IObfuscationEventEmitter_1.IObfuscationEventEmitter) === "function" ? _c : Object, typeof (_d = typeof TCustomCodeHelperGroupStorage_1.TCustomCodeHelperGroupStorage !== "undefined" && TCustomCodeHelperGroupStorage_1.TCustomCodeHelperGroupStorage) === "function" ? _d : Object, typeof (_e = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _f : Object])
- ], CustomCodeHelpersTransformer);
- exports.CustomCodeHelpersTransformer = CustomCodeHelpersTransformer;
- /***/ }),
- /***/ "./src/node-transformers/preparing-transformers/EvalCallExpressionTransformer.ts":
- /*!***************************************************************************************!*\
- !*** ./src/node-transformers/preparing-transformers/EvalCallExpressionTransformer.ts ***!
- \***************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- var EvalCallExpressionTransformer_1, _a, _b;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.EvalCallExpressionTransformer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const js_string_escape_1 = __importDefault(__webpack_require__(/*! js-string-escape */ "js-string-escape"));
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
- const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
- const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- let EvalCallExpressionTransformer = EvalCallExpressionTransformer_1 = class EvalCallExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
- constructor(randomGenerator, options) {
- super(randomGenerator, options);
- this.runAfter = [
- NodeTransformer_1.NodeTransformer.ParentificationTransformer,
- NodeTransformer_1.NodeTransformer.VariablePreserveTransformer
- ];
- this.evalRootAstHostNodeSet = new Set();
- }
- static 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;
- }
- static extractEvalStringFromLiteralNode(node) {
- return typeof node.value === 'string' ? node.value : null;
- }
- static extractEvalStringFromTemplateLiteralNode(node) {
- const quasis = node.quasis;
- const allowedQuasisLength = 1;
- if (quasis.length !== allowedQuasisLength || node.expressions.length) {
- return null;
- }
- return quasis[0].value.cooked;
- }
- getVisitor(nodeTransformationStage) {
- switch (nodeTransformationStage) {
- case NodeTransformationStage_1.NodeTransformationStage.Preparing:
- return {
- enter: (node, parentNode) => {
- if (parentNode
- && NodeGuards_1.NodeGuards.isCallExpressionNode(node)
- && NodeGuards_1.NodeGuards.isIdentifierNode(node.callee)
- && node.callee.name === 'eval') {
- return this.transformNode(node, parentNode);
- }
- }
- };
- case NodeTransformationStage_1.NodeTransformationStage.Finalizing:
- if (!this.evalRootAstHostNodeSet.size) {
- return null;
- }
- return {
- leave: (node, parentNode) => {
- if (parentNode && this.isEvalRootAstHostNode(node)) {
- return this.restoreNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- transformNode(callExpressionNode, parentNode) {
- const callExpressionFirstArgument = callExpressionNode.arguments[0];
- if (!callExpressionFirstArgument) {
- return callExpressionNode;
- }
- const evalString = EvalCallExpressionTransformer_1
- .extractEvalStringFromCallExpressionArgument(callExpressionFirstArgument);
- if (!evalString) {
- return callExpressionNode;
- }
- let ast;
- try {
- ast = NodeUtils_1.NodeUtils.convertCodeToStructure(evalString);
- }
- catch (_a) {
- return callExpressionNode;
- }
- const evalRootAstHostNode = NodeFactory_1.NodeFactory
- .functionExpressionNode([], NodeFactory_1.NodeFactory.blockStatementNode(ast));
- NodeUtils_1.NodeUtils.parentizeAst(evalRootAstHostNode);
- NodeUtils_1.NodeUtils.parentizeNode(evalRootAstHostNode, parentNode);
- this.evalRootAstHostNodeSet.add(evalRootAstHostNode);
- return evalRootAstHostNode;
- }
- restoreNode(evalRootAstHostNode, parentNode) {
- const targetAst = evalRootAstHostNode.body.body;
- const 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))
- ]);
- }
- isEvalRootAstHostNode(node) {
- return NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) && this.evalRootAstHostNodeSet.has(node);
- }
- };
- EvalCallExpressionTransformer = EvalCallExpressionTransformer_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.MetadataTransformer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
- const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
- const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
- let MetadataTransformer = class MetadataTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
- constructor(randomGenerator, options) {
- super(randomGenerator, options);
- this.runAfter = [
- NodeTransformer_1.NodeTransformer.ParentificationTransformer,
- NodeTransformer_1.NodeTransformer.VariablePreserveTransformer
- ];
- }
- getVisitor(nodeTransformationStage) {
- switch (nodeTransformationStage) {
- case NodeTransformationStage_1.NodeTransformationStage.Preparing:
- return {
- enter: (node, parentNode) => {
- return this.transformNode(node, parentNode);
- }
- };
- default:
- return null;
- }
- }
- transformNode(node, parentNode) {
- NodeMetadata_1.NodeMetadata.set(node, { ignoredNode: false });
- if (NodeGuards_1.NodeGuards.isLiteralNode(node)) {
- NodeMetadata_1.NodeMetadata.set(node, { replacedLiteral: false });
- }
- return node;
- }
- };
- MetadataTransformer = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var ObfuscatingGuardsTransformer_1, _a, _b, _c;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ObfuscatingGuardsTransformer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TObfuscatingGuardFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TObfuscatingGuardFactory */ "./src/types/container/node-transformers/TObfuscatingGuardFactory.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
- const ObfuscatingGuard_1 = __webpack_require__(/*! ../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard */ "./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts");
- const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
- const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
- let ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer_1 = class ObfuscatingGuardsTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
- constructor(obfuscatingGuardFactory, randomGenerator, options) {
- super(randomGenerator, options);
- this.runAfter = [
- NodeTransformer_1.NodeTransformer.ParentificationTransformer,
- NodeTransformer_1.NodeTransformer.VariablePreserveTransformer
- ];
- this.obfuscatingGuards = ObfuscatingGuardsTransformer_1.obfuscatingGuardsList.map(obfuscatingGuardFactory);
- }
- getVisitor(nodeTransformationStage) {
- switch (nodeTransformationStage) {
- case NodeTransformationStage_1.NodeTransformationStage.Preparing:
- return {
- enter: (node, parentNode) => {
- return this.transformNode(node, parentNode);
- }
- };
- default:
- return null;
- }
- }
- transformNode(node, parentNode) {
- const obfuscationAllowed = this.obfuscatingGuards
- .every((nodeGuard) => nodeGuard.check(node));
- NodeMetadata_1.NodeMetadata.set(node, {
- ignoredNode: !(NodeGuards_1.NodeGuards.isProgramNode(node) || obfuscationAllowed)
- });
- return node;
- }
- };
- ObfuscatingGuardsTransformer.obfuscatingGuardsList = [
- ObfuscatingGuard_1.ObfuscatingGuard.BlackListObfuscatingGuard,
- ObfuscatingGuard_1.ObfuscatingGuard.ConditionalCommentObfuscatingGuard,
- ObfuscatingGuard_1.ObfuscatingGuard.ReservedStringObfuscatingGuard
- ];
- ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeGuard)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TObfuscatingGuardFactory_1.TObfuscatingGuardFactory !== "undefined" && TObfuscatingGuardFactory_1.TObfuscatingGuardFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ParentificationTransformer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
- const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
- let ParentificationTransformer = class ParentificationTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
- constructor(randomGenerator, options) {
- super(randomGenerator, options);
- }
- getVisitor(nodeTransformationStage) {
- switch (nodeTransformationStage) {
- case NodeTransformationStage_1.NodeTransformationStage.Preparing:
- return {
- enter: (node, parentNode) => {
- return this.transformNode(node, parentNode);
- }
- };
- default:
- return null;
- }
- }
- transformNode(node, parentNode) {
- return NodeUtils_1.NodeUtils.parentizeNode(node, parentNode);
- }
- };
- ParentificationTransformer = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c, _d;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.VariablePreserveTransformer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const TIdentifierObfuscatingReplacerFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TIdentifierObfuscatingReplacerFactory */ "./src/types/container/node-transformers/TIdentifierObfuscatingReplacerFactory.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const IScopeIdentifiersTraverser_1 = __webpack_require__(/*! ../../interfaces/node/IScopeIdentifiersTraverser */ "./src/interfaces/node/IScopeIdentifiersTraverser.ts");
- const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
- const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
- const IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- let VariablePreserveTransformer = class VariablePreserveTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
- constructor(identifierObfuscatingReplacerFactory, randomGenerator, options, scopeIdentifiersTraverser) {
- super(randomGenerator, options);
- this.runAfter = [
- NodeTransformer_1.NodeTransformer.ParentificationTransformer
- ];
- this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
- this.scopeIdentifiersTraverser = scopeIdentifiersTraverser;
- this.preserveScopeVariableIdentifiers = this.preserveScopeVariableIdentifiers.bind(this);
- }
- getVisitor(nodeTransformationStage) {
- switch (nodeTransformationStage) {
- case NodeTransformationStage_1.NodeTransformationStage.Preparing:
- case NodeTransformationStage_1.NodeTransformationStage.Converting:
- case NodeTransformationStage_1.NodeTransformationStage.Obfuscating:
- return {
- enter: (node, parentNode) => {
- if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) {
- return this.transformNode(node, parentNode);
- }
- }
- };
- default:
- return null;
- }
- }
- transformNode(programNode, parentNode) {
- this.scopeIdentifiersTraverser.traverse(programNode, parentNode, this.preserveScopeVariableIdentifiers);
- return programNode;
- }
- preserveScopeVariableIdentifiers(data) {
- const { isGlobalDeclaration, isBubblingDeclaration, variable, variableScope } = data;
- for (const identifier of variable.identifiers) {
- if (isGlobalDeclaration || isBubblingDeclaration) {
- this.preserveIdentifierNameForRootLexicalScope(identifier);
- }
- else {
- this.preserveIdentifierNameForLexicalScope(identifier, variableScope);
- }
- }
- }
- preserveIdentifierNameForRootLexicalScope(identifierNode) {
- this.identifierObfuscatingReplacer.preserveName(identifierNode);
- }
- preserveIdentifierNameForLexicalScope(identifierNode, variableScope) {
- const lexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithLexicalScope(variableScope.block)
- ? variableScope.block
- : null;
- if (!lexicalScopeNode) {
- return;
- }
- this.identifierObfuscatingReplacer.preserveNameForLexicalScope(identifierNode, lexicalScopeNode);
- }
- };
- VariablePreserveTransformer = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IScopeIdentifiersTraverser)),
- __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierObfuscatingReplacerFactory_1.TIdentifierObfuscatingReplacerFactory !== "undefined" && TIdentifierObfuscatingReplacerFactory_1.TIdentifierObfuscatingReplacerFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object, typeof (_d = typeof IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser !== "undefined" && IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser) === "function" ? _d : Object])
- ], 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var BlackListObfuscatingGuard_1;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.BlackListObfuscatingGuard = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- let BlackListObfuscatingGuard = BlackListObfuscatingGuard_1 = class BlackListObfuscatingGuard {
- constructor() {
- this.blackListGuardsLength = BlackListObfuscatingGuard_1.blackListGuards.length;
- }
- check(node) {
- for (let i = 0; i < this.blackListGuardsLength; i++) {
- if (BlackListObfuscatingGuard_1.blackListGuards[i](node)) {
- return false;
- }
- }
- return true;
- }
- };
- BlackListObfuscatingGuard.blackListGuards = [
- NodeGuards_1.NodeGuards.isUseStrictOperator
- ];
- BlackListObfuscatingGuard = BlackListObfuscatingGuard_1 = __decorate([
- inversify_1.injectable(),
- __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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var ConditionalCommentObfuscatingGuard_1;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ConditionalCommentObfuscatingGuard = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- let ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard_1 = class ConditionalCommentObfuscatingGuard {
- constructor() {
- this.obfuscationAllowed = true;
- }
- static isConditionalComment(comment) {
- return ConditionalCommentObfuscatingGuard_1.obfuscationEnableCommentRegExp.test(comment.value) ||
- ConditionalCommentObfuscatingGuard_1.obfuscationDisableCommentRegExp.test(comment.value);
- }
- check(node) {
- if (!NodeGuards_1.NodeGuards.isNodeWithComments(node)) {
- return this.obfuscationAllowed;
- }
- const leadingComments = node.leadingComments;
- if (leadingComments) {
- this.obfuscationAllowed = this.checkComments(leadingComments);
- }
- return this.obfuscationAllowed;
- }
- checkComments(comments) {
- const commentsLength = comments.length;
- let obfuscationAllowed = this.obfuscationAllowed;
- for (let i = 0; i < commentsLength; i++) {
- const comment = comments[i];
- if (ConditionalCommentObfuscatingGuard_1.obfuscationEnableCommentRegExp.test(comment.value)) {
- obfuscationAllowed = true;
- continue;
- }
- if (ConditionalCommentObfuscatingGuard_1.obfuscationDisableCommentRegExp.test(comment.value)) {
- obfuscationAllowed = false;
- }
- }
- return obfuscationAllowed;
- }
- };
- ConditionalCommentObfuscatingGuard.obfuscationEnableCommentRegExp = new RegExp('javascript-obfuscator *: *enable');
- ConditionalCommentObfuscatingGuard.obfuscationDisableCommentRegExp = new RegExp('javascript-obfuscator *: *disable');
- ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard_1 = __decorate([
- inversify_1.injectable()
- ], ConditionalCommentObfuscatingGuard);
- exports.ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard;
- /***/ }),
- /***/ "./src/node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard.ts":
- /*!***********************************************************************************************************!*\
- !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard.ts ***!
- \***********************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ReservedStringObfuscatingGuard = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
- let ReservedStringObfuscatingGuard = class ReservedStringObfuscatingGuard {
- constructor(options) {
- this.options = options;
- }
- check(node) {
- if (this.options.reservedStrings.length
- && NodeGuards_1.NodeGuards.isLiteralNode(node)
- && typeof node.value === 'string') {
- return !this.isReservedString(node.value);
- }
- return true;
- }
- isReservedString(value) {
- return this.options.reservedStrings
- .some((reservedString) => {
- return new RegExp(reservedString, 'g').exec(value) !== null;
- });
- }
- };
- ReservedStringObfuscatingGuard = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _a : Object])
- ], ReservedStringObfuscatingGuard);
- exports.ReservedStringObfuscatingGuard = ReservedStringObfuscatingGuard;
- /***/ }),
- /***/ "./src/node/NodeAppender.ts":
- /*!**********************************!*\
- !*** ./src/node/NodeAppender.ts ***!
- \**********************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.NodeAppender = void 0;
- const NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts");
- class NodeAppender {
- static append(nodeWithStatements, statements) {
- statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements);
- NodeAppender.setScopeStatements(nodeWithStatements, [
- ...NodeAppender.getScopeStatements(nodeWithStatements),
- ...statements
- ]);
- }
- static appendToOptimalBlockScope(callsGraphData, nodeWithStatements, bodyStatements, index = 0) {
- const targetBlockScope = callsGraphData.length
- ? NodeAppender.getOptimalBlockScope(callsGraphData, index)
- : nodeWithStatements;
- NodeAppender.prepend(targetBlockScope, bodyStatements);
- }
- static getOptimalBlockScope(callsGraphData, index, deep = Infinity) {
- const firstCall = callsGraphData[index];
- if (deep <= 0) {
- throw new Error('Invalid `deep` argument value. Value should be bigger then 0.');
- }
- if (deep > 1 && firstCall.callsGraph.length) {
- return NodeAppender.getOptimalBlockScope(firstCall.callsGraph, 0, --deep);
- }
- else {
- return firstCall.callee;
- }
- }
- static insertBefore(nodeWithStatements, statements, target) {
- const indexInScopeStatement = NodeAppender
- .getScopeStatements(nodeWithStatements)
- .indexOf(target);
- NodeAppender.insertAtIndex(nodeWithStatements, statements, indexInScopeStatement);
- }
- static insertAfter(nodeWithStatements, statements, target) {
- const indexInScopeStatement = NodeAppender
- .getScopeStatements(nodeWithStatements)
- .indexOf(target);
- NodeAppender.insertAtIndex(nodeWithStatements, statements, indexInScopeStatement + 1);
- }
- static insertAtIndex(nodeWithStatements, statements, index) {
- statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements);
- NodeAppender.setScopeStatements(nodeWithStatements, [
- ...NodeAppender.getScopeStatements(nodeWithStatements).slice(0, index),
- ...statements,
- ...NodeAppender.getScopeStatements(nodeWithStatements).slice(index)
- ]);
- }
- static prepend(nodeWithStatements, statements) {
- statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements);
- NodeAppender.setScopeStatements(nodeWithStatements, [
- ...statements,
- ...NodeAppender.getScopeStatements(nodeWithStatements),
- ]);
- }
- static getScopeStatements(nodeWithStatements) {
- if (NodeGuards_1.NodeGuards.isSwitchCaseNode(nodeWithStatements)) {
- return nodeWithStatements.consequent;
- }
- return nodeWithStatements.body;
- }
- static parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements) {
- statements.forEach((statement) => {
- statement.parentNode = nodeWithStatements;
- });
- return statements;
- }
- static setScopeStatements(nodeWithStatements, statements) {
- if (NodeGuards_1.NodeGuards.isSwitchCaseNode(nodeWithStatements)) {
- nodeWithStatements.consequent = statements;
- return;
- }
- nodeWithStatements.body = statements;
- }
- }
- exports.NodeAppender = NodeAppender;
- /***/ }),
- /***/ "./src/node/NodeFactory.ts":
- /*!*********************************!*\
- !*** ./src/node/NodeFactory.ts ***!
- \*********************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- }));
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- });
- var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.NodeFactory = void 0;
- const escodegen = __importStar(__webpack_require__(/*! escodegen */ "escodegen"));
- const NodeType_1 = __webpack_require__(/*! ../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
- class NodeFactory {
- static programNode(body = []) {
- return {
- type: NodeType_1.NodeType.Program,
- body,
- sourceType: 'script',
- metadata: { ignoredNode: false }
- };
- }
- static arrayExpressionNode(elements = []) {
- return {
- type: NodeType_1.NodeType.ArrayExpression,
- elements,
- metadata: { ignoredNode: false }
- };
- }
- static assignmentExpressionNode(operator, left, right) {
- return {
- type: NodeType_1.NodeType.AssignmentExpression,
- operator,
- left,
- right,
- metadata: { ignoredNode: false }
- };
- }
- static binaryExpressionNode(operator, left, right) {
- return {
- type: NodeType_1.NodeType.BinaryExpression,
- operator,
- left,
- right,
- metadata: { ignoredNode: false }
- };
- }
- static blockStatementNode(body = []) {
- return {
- type: NodeType_1.NodeType.BlockStatement,
- body,
- metadata: { ignoredNode: false }
- };
- }
- static breakStatement(label) {
- return {
- type: NodeType_1.NodeType.BreakStatement,
- label,
- metadata: { ignoredNode: false }
- };
- }
- static callExpressionNode(callee, args = []) {
- return {
- type: NodeType_1.NodeType.CallExpression,
- callee,
- arguments: args,
- metadata: { ignoredNode: false }
- };
- }
- static continueStatement(label) {
- return {
- type: NodeType_1.NodeType.ContinueStatement,
- label,
- metadata: { ignoredNode: false }
- };
- }
- static directiveNode(expression, directive) {
- return {
- type: NodeType_1.NodeType.ExpressionStatement,
- expression,
- directive,
- metadata: { ignoredNode: false }
- };
- }
- static expressionStatementNode(expression) {
- return {
- type: NodeType_1.NodeType.ExpressionStatement,
- expression,
- metadata: { ignoredNode: false }
- };
- }
- static functionDeclarationNode(functionName, params, body) {
- return {
- type: NodeType_1.NodeType.FunctionDeclaration,
- id: NodeFactory.identifierNode(functionName),
- params,
- body,
- generator: false,
- metadata: { ignoredNode: false }
- };
- }
- static functionExpressionNode(params, body) {
- return {
- type: NodeType_1.NodeType.FunctionExpression,
- params,
- body,
- generator: false,
- metadata: { ignoredNode: false }
- };
- }
- static ifStatementNode(test, consequent, alternate) {
- return Object.assign(Object.assign({ type: NodeType_1.NodeType.IfStatement, test,
- consequent }, alternate && { alternate }), { metadata: { ignoredNode: false } });
- }
- static identifierNode(name) {
- return {
- type: NodeType_1.NodeType.Identifier,
- name,
- metadata: { ignoredNode: false }
- };
- }
- static importDeclarationNode(specifiers, source) {
- return {
- type: NodeType_1.NodeType.ImportDeclaration,
- specifiers,
- source,
- metadata: { ignoredNode: false }
- };
- }
- static literalNode(value, raw) {
- raw = raw !== undefined ? raw : `'${value}'`;
- return {
- type: NodeType_1.NodeType.Literal,
- value,
- raw,
- 'x-verbatim-property': {
- content: raw,
- precedence: escodegen.Precedence.Primary
- },
- metadata: { ignoredNode: false }
- };
- }
- static logicalExpressionNode(operator, left, right) {
- return {
- type: NodeType_1.NodeType.LogicalExpression,
- operator,
- left,
- right,
- metadata: { ignoredNode: false }
- };
- }
- static memberExpressionNode(object, property, computed = false) {
- return {
- type: NodeType_1.NodeType.MemberExpression,
- computed,
- object,
- property,
- metadata: { ignoredNode: false }
- };
- }
- static objectExpressionNode(properties) {
- return {
- type: NodeType_1.NodeType.ObjectExpression,
- properties,
- metadata: { ignoredNode: false }
- };
- }
- static propertyNode(key, value, computed = false) {
- return {
- type: NodeType_1.NodeType.Property,
- key,
- value,
- kind: 'init',
- method: false,
- shorthand: false,
- computed,
- metadata: { ignoredNode: false }
- };
- }
- static returnStatementNode(argument) {
- return {
- type: NodeType_1.NodeType.ReturnStatement,
- argument,
- metadata: { ignoredNode: false }
- };
- }
- static switchStatementNode(discriminant, cases) {
- return {
- type: NodeType_1.NodeType.SwitchStatement,
- discriminant,
- cases,
- metadata: { ignoredNode: false }
- };
- }
- static switchCaseNode(test, consequent) {
- return {
- type: NodeType_1.NodeType.SwitchCase,
- test,
- consequent,
- metadata: { ignoredNode: false }
- };
- }
- static unaryExpressionNode(operator, argument, prefix = true) {
- return {
- type: NodeType_1.NodeType.UnaryExpression,
- operator,
- argument,
- prefix,
- metadata: { ignoredNode: false }
- };
- }
- static updateExpressionNode(operator, argumentExpr) {
- return {
- type: NodeType_1.NodeType.UpdateExpression,
- operator,
- argument: argumentExpr,
- prefix: false,
- metadata: { ignoredNode: false }
- };
- }
- static variableDeclarationNode(declarations = [], kind = 'var') {
- return {
- type: NodeType_1.NodeType.VariableDeclaration,
- declarations,
- kind,
- metadata: { ignoredNode: false }
- };
- }
- static variableDeclaratorNode(id, init) {
- return {
- type: NodeType_1.NodeType.VariableDeclarator,
- id,
- init,
- metadata: { ignoredNode: false }
- };
- }
- static whileStatementNode(test, body) {
- return {
- type: NodeType_1.NodeType.WhileStatement,
- test,
- body,
- metadata: { ignoredNode: false }
- };
- }
- }
- exports.NodeFactory = NodeFactory;
- /***/ }),
- /***/ "./src/node/NodeGuards.ts":
- /*!********************************!*\
- !*** ./src/node/NodeGuards.ts ***!
- \********************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.NodeGuards = void 0;
- const NodeType_1 = __webpack_require__(/*! ../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
- class NodeGuards {
- static isArrayPatternNode(node) {
- return node.type === NodeType_1.NodeType.ArrayPattern;
- }
- static isArrowFunctionExpressionNode(node) {
- return node.type === NodeType_1.NodeType.ArrowFunctionExpression;
- }
- static isAssignmentExpressionNode(node) {
- return node.type === NodeType_1.NodeType.AssignmentExpression;
- }
- static isAssignmentPatternNode(node) {
- return node.type === NodeType_1.NodeType.AssignmentPattern;
- }
- static isAwaitExpressionNode(node) {
- return node.type === NodeType_1.NodeType.AwaitExpression;
- }
- static isBigIntLiteralNode(node) {
- return NodeGuards.isLiteralNode(node) && !!node.bigint;
- }
- static isBlockStatementNode(node) {
- return node.type === NodeType_1.NodeType.BlockStatement;
- }
- static isBreakStatementNode(node) {
- return node.type === NodeType_1.NodeType.BreakStatement;
- }
- static isCallExpressionNode(node) {
- return node.type === NodeType_1.NodeType.CallExpression;
- }
- static isClassDeclarationNode(node) {
- return node.type === NodeType_1.NodeType.ClassDeclaration && node.id !== null;
- }
- static isContinueStatementNode(node) {
- return node.type === NodeType_1.NodeType.ContinueStatement;
- }
- static isDirectiveNode(node) {
- return node.type === NodeType_1.NodeType.ExpressionStatement
- && 'directive' in node;
- }
- static isExportNamedDeclarationNode(node) {
- return node.type === NodeType_1.NodeType.ExportNamedDeclaration;
- }
- static isExpressionStatementNode(node) {
- return node.type === NodeType_1.NodeType.ExpressionStatement
- && !('directive' in node);
- }
- static isFunctionNode(node) {
- return NodeGuards.isFunctionDeclarationNode(node) ||
- NodeGuards.isFunctionExpressionNode(node) ||
- NodeGuards.isArrowFunctionExpressionNode(node);
- }
- static isFunctionDeclarationNode(node) {
- return node.type === NodeType_1.NodeType.FunctionDeclaration && node.id !== null;
- }
- static isFunctionExpressionNode(node) {
- return node.type === NodeType_1.NodeType.FunctionExpression;
- }
- static isIdentifierNode(node) {
- return node.type === NodeType_1.NodeType.Identifier;
- }
- static isImportDeclarationNode(node) {
- return node.type === NodeType_1.NodeType.ImportDeclaration;
- }
- static isImportSpecifierNode(node) {
- return node.type === NodeType_1.NodeType.ImportSpecifier;
- }
- static isLabelIdentifierNode(node, parentNode) {
- const parentNodeIsLabeledStatementNode = NodeGuards.isLabeledStatementNode(parentNode) && parentNode.label === node;
- const parentNodeIsContinueStatementNode = NodeGuards.isContinueStatementNode(parentNode) && parentNode.label === node;
- const parentNodeIsBreakStatementNode = NodeGuards.isBreakStatementNode(parentNode) && parentNode.label === node;
- return parentNodeIsLabeledStatementNode || parentNodeIsContinueStatementNode || parentNodeIsBreakStatementNode;
- }
- static isLabeledStatementNode(node) {
- return node.type === NodeType_1.NodeType.LabeledStatement;
- }
- static isLiteralNode(node) {
- return node.type === NodeType_1.NodeType.Literal;
- }
- static isMemberExpressionNode(node) {
- return node.type === NodeType_1.NodeType.MemberExpression;
- }
- static isMethodDefinitionNode(node) {
- return node.type === NodeType_1.NodeType.MethodDefinition;
- }
- static isNode(object) {
- return object && !object.type !== undefined;
- }
- static isNodeWithLexicalScope(node) {
- return NodeGuards.isProgramNode(node) || NodeGuards.isFunctionNode(node);
- }
- static isNodeWithBlockLexicalScope(node) {
- return NodeGuards.isNodeWithLexicalScope(node) || NodeGuards.isBlockStatementNode(node);
- }
- static isNodeWithLexicalScopeStatements(node, parentNode) {
- return NodeGuards.isProgramNode(node)
- || (NodeGuards.isBlockStatementNode(node) && NodeGuards.nodesWithLexicalStatements.includes(parentNode.type));
- }
- static isNodeWithStatements(node) {
- return NodeGuards.isProgramNode(node)
- || NodeGuards.isBlockStatementNode(node)
- || NodeGuards.isSwitchCaseNode(node);
- }
- static isNodeWithComments(node) {
- return Boolean(node.leadingComments) || Boolean(node.trailingComments);
- }
- static isObjectPatternNode(node) {
- return node.type === NodeType_1.NodeType.ObjectPattern;
- }
- static isObjectExpressionNode(node) {
- return node.type === NodeType_1.NodeType.ObjectExpression;
- }
- static isProgramNode(node) {
- return node.type === NodeType_1.NodeType.Program;
- }
- static isPropertyNode(node) {
- return node.type === NodeType_1.NodeType.Property;
- }
- static isRestElementNode(node) {
- return node.type === NodeType_1.NodeType.RestElement;
- }
- static isReturnStatementNode(node) {
- return node.type === NodeType_1.NodeType.ReturnStatement;
- }
- static isSequenceExpressionNode(node) {
- return node.type === NodeType_1.NodeType.SequenceExpression;
- }
- static isSuperNode(node) {
- return node.type === NodeType_1.NodeType.Super;
- }
- static isSwitchCaseNode(node) {
- return node.type === NodeType_1.NodeType.SwitchCase;
- }
- static isTaggedTemplateExpressionNode(node) {
- return node.type === NodeType_1.NodeType.TaggedTemplateExpression;
- }
- static isTemplateLiteralNode(node) {
- return node.type === NodeType_1.NodeType.TemplateLiteral;
- }
- static isUnaryExpressionNode(node) {
- return node.type === NodeType_1.NodeType.UnaryExpression;
- }
- static isUseStrictOperator(node) {
- return NodeGuards.isDirectiveNode(node)
- && node.directive === 'use strict';
- }
- static isVariableDeclarationNode(node) {
- return node.type === NodeType_1.NodeType.VariableDeclaration;
- }
- static isVariableDeclaratorNode(node) {
- return node.type === NodeType_1.NodeType.VariableDeclarator;
- }
- static isWhileStatementNode(node) {
- return node.type === NodeType_1.NodeType.WhileStatement;
- }
- }
- 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";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.NodeLexicalScopeUtils = void 0;
- const NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts");
- class NodeLexicalScopeUtils {
- static getLexicalScope(node) {
- return NodeLexicalScopeUtils.getLexicalScopesRecursive(node, 1)[0];
- }
- static getLexicalScopes(node) {
- return NodeLexicalScopeUtils.getLexicalScopesRecursive(node);
- }
- static getLexicalScopesRecursive(node, maxSize = Infinity, nodesWithLexicalScope = [], depth = 0) {
- if (nodesWithLexicalScope.length >= maxSize) {
- return nodesWithLexicalScope;
- }
- const 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;
- }
- }
- exports.NodeLexicalScopeUtils = NodeLexicalScopeUtils;
- /***/ }),
- /***/ "./src/node/NodeLiteralUtils.ts":
- /*!**************************************!*\
- !*** ./src/node/NodeLiteralUtils.ts ***!
- \**************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.NodeLiteralUtils = void 0;
- const NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts");
- class NodeLiteralUtils {
- static isProhibitedLiteralNode(literalNode, parentNode) {
- if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && !parentNode.computed && parentNode.key === literalNode) {
- return true;
- }
- if (NodeGuards_1.NodeGuards.isImportDeclarationNode(parentNode)) {
- return true;
- }
- return false;
- }
- }
- exports.NodeLiteralUtils = NodeLiteralUtils;
- /***/ }),
- /***/ "./src/node/NodeMetadata.ts":
- /*!**********************************!*\
- !*** ./src/node/NodeMetadata.ts ***!
- \**********************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.NodeMetadata = void 0;
- class NodeMetadata {
- static set(node, metadata) {
- var _a;
- node.metadata = Object.assign((_a = node.metadata) !== null && _a !== void 0 ? _a : {}, metadata);
- }
- static get(node, metadataKey) {
- return node.metadata !== undefined
- ? node.metadata[metadataKey]
- : undefined;
- }
- static isIgnoredNode(node) {
- return NodeMetadata.get(node, 'ignoredNode') === true;
- }
- static isReplacedLiteral(literalNode) {
- return NodeMetadata.get(literalNode, 'replacedLiteral') === true;
- }
- }
- exports.NodeMetadata = NodeMetadata;
- /***/ }),
- /***/ "./src/node/NodeStatementUtils.ts":
- /*!****************************************!*\
- !*** ./src/node/NodeStatementUtils.ts ***!
- \****************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.NodeStatementUtils = void 0;
- const NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts");
- class NodeStatementUtils {
- static getParentNodeWithStatements(node) {
- return NodeStatementUtils.getParentNodesWithStatementsRecursive(node, 1)[0];
- }
- static getParentNodesWithStatements(node) {
- return NodeStatementUtils.getParentNodesWithStatementsRecursive(node);
- }
- static getNextSiblingStatement(statement) {
- return NodeStatementUtils.getSiblingStatementByOffset(statement, 1);
- }
- static getPreviousSiblingStatement(statement) {
- return NodeStatementUtils.getSiblingStatementByOffset(statement, -1);
- }
- static getRootStatementOfNode(node) {
- if (NodeGuards_1.NodeGuards.isProgramNode(node)) {
- throw new Error('Unable to find root statement for `Program` node');
- }
- const 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;
- }
- static getScopeOfNode(node) {
- const 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;
- }
- static getParentNodesWithStatementsRecursive(node, maxSize = Infinity, nodesWithStatements = [], depth = 0) {
- if (nodesWithStatements.length >= maxSize) {
- return nodesWithStatements;
- }
- const 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;
- }
- static getSiblingStatementByOffset(statement, offset) {
- const scopeNode = NodeStatementUtils.getScopeOfNode(statement);
- const scopeBody = !NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode)
- ? scopeNode.body
- : scopeNode.consequent;
- const indexInScope = scopeBody.indexOf(statement);
- return scopeBody[indexInScope + offset] || null;
- }
- }
- exports.NodeStatementUtils = NodeStatementUtils;
- /***/ }),
- /***/ "./src/node/NodeUtils.ts":
- /*!*******************************!*\
- !*** ./src/node/NodeUtils.ts ***!
- \*******************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- }));
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- });
- var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.NodeUtils = void 0;
- const escodegen = __importStar(__webpack_require__(/*! escodegen */ "escodegen"));
- const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse"));
- const EcmaVersion_1 = __webpack_require__(/*! ../constants/EcmaVersion */ "./src/constants/EcmaVersion.ts");
- const ASTParserFacade_1 = __webpack_require__(/*! ../ASTParserFacade */ "./src/ASTParserFacade.ts");
- const NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts");
- const NodeMetadata_1 = __webpack_require__(/*! ./NodeMetadata */ "./src/node/NodeMetadata.ts");
- class NodeUtils {
- static addXVerbatimPropertyTo(literalNode) {
- literalNode['x-verbatim-property'] = {
- content: literalNode.raw,
- precedence: escodegen.Precedence.Primary
- };
- return literalNode;
- }
- static clone(astTree) {
- return NodeUtils.parentizeAst(NodeUtils.cloneRecursive(astTree));
- }
- static convertCodeToStructure(code) {
- const structure = ASTParserFacade_1.ASTParserFacade.parse(code, {
- ecmaVersion: EcmaVersion_1.ecmaVersion,
- sourceType: 'script'
- });
- estraverse.replace(structure, {
- 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;
- }
- static convertStructureToCode(structure) {
- return structure.reduce((code, node) => {
- return code + escodegen.generate(node, {
- sourceMapWithCode: true
- }).code;
- }, '');
- }
- static getUnaryExpressionArgumentNode(unaryExpressionNode) {
- if (NodeGuards_1.NodeGuards.isUnaryExpressionNode(unaryExpressionNode.argument)) {
- return NodeUtils.getUnaryExpressionArgumentNode(unaryExpressionNode.argument);
- }
- return unaryExpressionNode.argument;
- }
- static parentizeAst(astTree) {
- var _a;
- const parentNode = (_a = astTree.parentNode) !== null && _a !== void 0 ? _a : null;
- estraverse.replace(astTree, {
- enter: NodeUtils.parentizeNode
- });
- if (parentNode) {
- astTree.parentNode = parentNode;
- }
- return astTree;
- }
- static parentizeNode(node, parentNode) {
- node.parentNode = parentNode !== null && parentNode !== void 0 ? parentNode : node;
- return node;
- }
- static cloneRecursive(node) {
- if (node === null) {
- return node;
- }
- const copy = {};
- const nodeKeys = Object.keys(node);
- nodeKeys
- .forEach((property) => {
- if (property === 'parentNode') {
- return;
- }
- const value = node[property];
- let clonedValue;
- if (value === null || value instanceof RegExp) {
- clonedValue = value;
- }
- else if (Array.isArray(value)) {
- clonedValue = value.map(NodeUtils.cloneRecursive);
- }
- else if (typeof value === 'object') {
- clonedValue = NodeUtils.cloneRecursive(value);
- }
- else {
- clonedValue = value;
- }
- copy[property] = clonedValue;
- });
- return copy;
- }
- }
- exports.NodeUtils = NodeUtils;
- /***/ }),
- /***/ "./src/node/ScopeIdentifiersTraverser.ts":
- /*!***********************************************!*\
- !*** ./src/node/ScopeIdentifiersTraverser.ts ***!
- \***********************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var ScopeIdentifiersTraverser_1, _a;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ScopeIdentifiersTraverser = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const IScopeAnalyzer_1 = __webpack_require__(/*! ../interfaces/analyzers/scope-analyzer/IScopeAnalyzer */ "./src/interfaces/analyzers/scope-analyzer/IScopeAnalyzer.ts");
- const NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts");
- let ScopeIdentifiersTraverser = ScopeIdentifiersTraverser_1 = class ScopeIdentifiersTraverser {
- constructor(scopeAnalyzer) {
- this.scopeAnalyzer = scopeAnalyzer;
- }
- traverse(programNode, parentNode, callback) {
- this.scopeAnalyzer.analyze(programNode);
- const globalScope = this.scopeAnalyzer.acquireScope(programNode);
- this.traverseScopeVariables(globalScope, globalScope, callback);
- }
- traverseScopeVariables(rootScope, currentScope, callback) {
- const variableScope = currentScope.variableScope;
- const variableLexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithBlockLexicalScope(variableScope.block)
- ? variableScope.block
- : null;
- const isGlobalDeclaration = ScopeIdentifiersTraverser_1.globalScopeNames.includes(variableScope.type);
- if (!variableLexicalScopeNode) {
- return;
- }
- for (const variable of currentScope.variables) {
- if (variable.name === ScopeIdentifiersTraverser_1.argumentsVariableName) {
- continue;
- }
- const isBubblingDeclaration = variable
- .identifiers
- .some((identifier) => identifier.parentNode
- && NodeGuards_1.NodeGuards.isPropertyNode(identifier.parentNode)
- && identifier.parentNode.shorthand);
- callback({
- isGlobalDeclaration,
- isBubblingDeclaration,
- rootScope,
- variable,
- variableScope,
- variableLexicalScopeNode
- });
- }
- for (const childScope of currentScope.childScopes) {
- this.traverseScopeVariables(rootScope, childScope, callback);
- }
- }
- };
- ScopeIdentifiersTraverser.argumentsVariableName = 'arguments';
- ScopeIdentifiersTraverser.globalScopeNames = [
- 'global',
- 'module'
- ];
- ScopeIdentifiersTraverser = ScopeIdentifiersTraverser_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IScopeAnalyzer)),
- __metadata("design:paramtypes", [typeof (_a = typeof IScopeAnalyzer_1.IScopeAnalyzer !== "undefined" && IScopeAnalyzer_1.IScopeAnalyzer) === "function" ? _a : Object])
- ], ScopeIdentifiersTraverser);
- exports.ScopeIdentifiersTraverser = ScopeIdentifiersTraverser;
- /***/ }),
- /***/ "./src/options/Options.ts":
- /*!********************************!*\
- !*** ./src/options/Options.ts ***!
- \********************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var Options_1, _a, _b, _c, _d, _e, _f;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.Options = void 0;
- const tsenum_1 = __webpack_require__(/*! @gradecam/tsenum */ "@gradecam/tsenum");
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const class_validator_1 = __webpack_require__(/*! class-validator */ "class-validator");
- const TInputOptions_1 = __webpack_require__(/*! ../types/options/TInputOptions */ "./src/types/options/TInputOptions.ts");
- const TStringArrayEncoding_1 = __webpack_require__(/*! ../types/options/TStringArrayEncoding */ "./src/types/options/TStringArrayEncoding.ts");
- const IOptionsNormalizer_1 = __webpack_require__(/*! ../interfaces/options/IOptionsNormalizer */ "./src/interfaces/options/IOptionsNormalizer.ts");
- const IdentifierNamesGenerator_1 = __webpack_require__(/*! ../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts");
- const ObfuscationTarget_1 = __webpack_require__(/*! ../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
- const SourceMapMode_1 = __webpack_require__(/*! ../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts");
- const StringArrayEncoding_1 = __webpack_require__(/*! ../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts");
- const Default_1 = __webpack_require__(/*! ./presets/Default */ "./src/options/presets/Default.ts");
- const ValidationErrorsFormatter_1 = __webpack_require__(/*! ./ValidationErrorsFormatter */ "./src/options/ValidationErrorsFormatter.ts");
- const IsAllowedForObfuscationTargets_1 = __webpack_require__(/*! ./validators/IsAllowedForObfuscationTargets */ "./src/options/validators/IsAllowedForObfuscationTargets.ts");
- let Options = Options_1 = class Options {
- constructor(inputOptions, optionsNormalizer) {
- Object.assign(this, Default_1.DEFAULT_PRESET, inputOptions);
- const errors = class_validator_1.validateSync(this, Options_1.validatorOptions);
- if (errors.length) {
- throw new ReferenceError(`Validation failed. errors:\n${ValidationErrorsFormatter_1.ValidationErrorsFormatter.format(errors)}`);
- }
- Object.assign(this, optionsNormalizer.normalize(this));
- }
- };
- Options.validatorOptions = {
- validationError: {
- target: false
- }
- };
- __decorate([
- class_validator_1.IsBoolean(),
- __metadata("design:type", Boolean)
- ], Options.prototype, "compact", void 0);
- __decorate([
- class_validator_1.IsBoolean(),
- __metadata("design:type", Boolean)
- ], Options.prototype, "controlFlowFlattening", void 0);
- __decorate([
- class_validator_1.IsNumber(),
- class_validator_1.Min(0),
- class_validator_1.Max(1),
- __metadata("design:type", Number)
- ], Options.prototype, "controlFlowFlatteningThreshold", void 0);
- __decorate([
- class_validator_1.IsBoolean(),
- __metadata("design:type", Boolean)
- ], Options.prototype, "deadCodeInjection", void 0);
- __decorate([
- class_validator_1.IsNumber(),
- __metadata("design:type", Number)
- ], Options.prototype, "deadCodeInjectionThreshold", void 0);
- __decorate([
- class_validator_1.IsBoolean(),
- __metadata("design:type", Boolean)
- ], Options.prototype, "debugProtection", void 0);
- __decorate([
- class_validator_1.IsBoolean(),
- __metadata("design:type", Boolean)
- ], Options.prototype, "debugProtectionInterval", void 0);
- __decorate([
- class_validator_1.IsBoolean(),
- __metadata("design:type", Boolean)
- ], Options.prototype, "disableConsoleOutput", void 0);
- __decorate([
- class_validator_1.IsArray(),
- class_validator_1.ArrayUnique(),
- class_validator_1.IsString({
- each: true
- }),
- IsAllowedForObfuscationTargets_1.IsAllowedForObfuscationTargets([
- ObfuscationTarget_1.ObfuscationTarget.Browser,
- ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval,
- ]),
- __metadata("design:type", Array)
- ], Options.prototype, "domainLock", void 0);
- __decorate([
- class_validator_1.IsIn([
- IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator,
- IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,
- IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator
- ]),
- __metadata("design:type", typeof (_a = typeof tsenum_1.TypeFromEnum !== "undefined" && tsenum_1.TypeFromEnum) === "function" ? _a : Object)
- ], Options.prototype, "identifierNamesGenerator", void 0);
- __decorate([
- class_validator_1.IsString(),
- __metadata("design:type", String)
- ], Options.prototype, "identifiersPrefix", void 0);
- __decorate([
- class_validator_1.IsArray(),
- class_validator_1.ArrayUnique(),
- class_validator_1.IsString({
- each: true
- }),
- class_validator_1.ValidateIf((options) => options.identifierNamesGenerator === IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator),
- class_validator_1.ArrayNotEmpty(),
- __metadata("design:type", Array)
- ], Options.prototype, "identifiersDictionary", void 0);
- __decorate([
- class_validator_1.IsString(),
- __metadata("design:type", String)
- ], Options.prototype, "inputFileName", void 0);
- __decorate([
- class_validator_1.IsBoolean(),
- __metadata("design:type", Boolean)
- ], Options.prototype, "log", void 0);
- __decorate([
- class_validator_1.IsBoolean(),
- __metadata("design:type", Boolean)
- ], Options.prototype, "renameGlobals", void 0);
- __decorate([
- class_validator_1.IsArray(),
- class_validator_1.ArrayUnique(),
- class_validator_1.IsString({
- each: true
- }),
- __metadata("design:type", Array)
- ], Options.prototype, "reservedNames", void 0);
- __decorate([
- class_validator_1.IsArray(),
- class_validator_1.ArrayUnique(),
- class_validator_1.IsString({
- each: true
- }),
- __metadata("design:type", Array)
- ], Options.prototype, "reservedStrings", void 0);
- __decorate([
- class_validator_1.IsBoolean(),
- __metadata("design:type", Boolean)
- ], Options.prototype, "rotateStringArray", void 0);
- __decorate([
- class_validator_1.IsBoolean(),
- __metadata("design:type", Boolean)
- ], Options.prototype, "selfDefending", void 0);
- __decorate([
- class_validator_1.IsBoolean(),
- __metadata("design:type", Boolean)
- ], Options.prototype, "shuffleStringArray", void 0);
- __decorate([
- class_validator_1.IsBoolean(),
- __metadata("design:type", Boolean)
- ], Options.prototype, "sourceMap", void 0);
- __decorate([
- class_validator_1.IsString(),
- class_validator_1.ValidateIf((options) => Boolean(options.sourceMapBaseUrl)),
- class_validator_1.IsUrl({
- require_protocol: true,
- require_tld: false,
- require_valid_protocol: true
- }),
- __metadata("design:type", String)
- ], Options.prototype, "sourceMapBaseUrl", void 0);
- __decorate([
- class_validator_1.IsString(),
- __metadata("design:type", String)
- ], Options.prototype, "sourceMapFileName", void 0);
- __decorate([
- class_validator_1.IsIn([SourceMapMode_1.SourceMapMode.Inline, SourceMapMode_1.SourceMapMode.Separate]),
- __metadata("design:type", typeof (_b = typeof tsenum_1.TypeFromEnum !== "undefined" && tsenum_1.TypeFromEnum) === "function" ? _b : Object)
- ], Options.prototype, "sourceMapMode", void 0);
- __decorate([
- class_validator_1.IsBoolean(),
- __metadata("design:type", Boolean)
- ], Options.prototype, "splitStrings", void 0);
- __decorate([
- class_validator_1.IsNumber(),
- class_validator_1.ValidateIf((options) => Boolean(options.splitStrings)),
- class_validator_1.Min(1),
- __metadata("design:type", Number)
- ], Options.prototype, "splitStringsChunkLength", void 0);
- __decorate([
- class_validator_1.IsBoolean(),
- __metadata("design:type", Boolean)
- ], Options.prototype, "stringArray", void 0);
- __decorate([
- class_validator_1.IsIn([true, false, StringArrayEncoding_1.StringArrayEncoding.Base64, StringArrayEncoding_1.StringArrayEncoding.Rc4]),
- __metadata("design:type", typeof (_c = typeof TStringArrayEncoding_1.TStringArrayEncoding !== "undefined" && TStringArrayEncoding_1.TStringArrayEncoding) === "function" ? _c : Object)
- ], Options.prototype, "stringArrayEncoding", void 0);
- __decorate([
- class_validator_1.IsNumber(),
- class_validator_1.Min(0),
- class_validator_1.Max(1),
- __metadata("design:type", Number)
- ], Options.prototype, "stringArrayThreshold", void 0);
- __decorate([
- class_validator_1.IsIn([ObfuscationTarget_1.ObfuscationTarget.Browser, ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval, ObfuscationTarget_1.ObfuscationTarget.Node]),
- __metadata("design:type", typeof (_d = typeof tsenum_1.TypeFromEnum !== "undefined" && tsenum_1.TypeFromEnum) === "function" ? _d : Object)
- ], Options.prototype, "target", void 0);
- __decorate([
- class_validator_1.IsBoolean(),
- __metadata("design:type", Boolean)
- ], Options.prototype, "transformObjectKeys", void 0);
- __decorate([
- class_validator_1.IsBoolean(),
- __metadata("design:type", Boolean)
- ], Options.prototype, "unicodeEscapeSequence", void 0);
- Options = Options_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TInputOptions)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptionsNormalizer)),
- __metadata("design:paramtypes", [typeof (_e = typeof TInputOptions_1.TInputOptions !== "undefined" && TInputOptions_1.TInputOptions) === "function" ? _e : Object, typeof (_f = typeof IOptionsNormalizer_1.IOptionsNormalizer !== "undefined" && IOptionsNormalizer_1.IOptionsNormalizer) === "function" ? _f : 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var OptionsNormalizer_1;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.OptionsNormalizer = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ControlFlowFlatteningThresholdRule_1 = __webpack_require__(/*! ./normalizer-rules/ControlFlowFlatteningThresholdRule */ "./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts");
- const DeadCodeInjectionRule_1 = __webpack_require__(/*! ./normalizer-rules/DeadCodeInjectionRule */ "./src/options/normalizer-rules/DeadCodeInjectionRule.ts");
- const DeadCodeInjectionThresholdRule_1 = __webpack_require__(/*! ./normalizer-rules/DeadCodeInjectionThresholdRule */ "./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts");
- const DomainLockRule_1 = __webpack_require__(/*! ./normalizer-rules/DomainLockRule */ "./src/options/normalizer-rules/DomainLockRule.ts");
- const InputFileNameRule_1 = __webpack_require__(/*! ./normalizer-rules/InputFileNameRule */ "./src/options/normalizer-rules/InputFileNameRule.ts");
- const SeedRule_1 = __webpack_require__(/*! ./normalizer-rules/SeedRule */ "./src/options/normalizer-rules/SeedRule.ts");
- const SelfDefendingRule_1 = __webpack_require__(/*! ./normalizer-rules/SelfDefendingRule */ "./src/options/normalizer-rules/SelfDefendingRule.ts");
- const SourceMapBaseUrlRule_1 = __webpack_require__(/*! ./normalizer-rules/SourceMapBaseUrlRule */ "./src/options/normalizer-rules/SourceMapBaseUrlRule.ts");
- const SourceMapFileNameRule_1 = __webpack_require__(/*! ./normalizer-rules/SourceMapFileNameRule */ "./src/options/normalizer-rules/SourceMapFileNameRule.ts");
- const SplitStringsChunkLengthRule_1 = __webpack_require__(/*! ./normalizer-rules/SplitStringsChunkLengthRule */ "./src/options/normalizer-rules/SplitStringsChunkLengthRule.ts");
- const StringArrayRule_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayRule */ "./src/options/normalizer-rules/StringArrayRule.ts");
- const StringArrayEncodingRule_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayEncodingRule */ "./src/options/normalizer-rules/StringArrayEncodingRule.ts");
- const StringArrayThresholdRule_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayThresholdRule */ "./src/options/normalizer-rules/StringArrayThresholdRule.ts");
- let OptionsNormalizer = OptionsNormalizer_1 = class OptionsNormalizer {
- normalize(options) {
- let normalizedOptions = Object.assign({}, options);
- for (const normalizerRule of OptionsNormalizer_1.normalizerRules) {
- normalizedOptions = normalizerRule(normalizedOptions);
- }
- return normalizedOptions;
- }
- };
- OptionsNormalizer.normalizerRules = [
- ControlFlowFlatteningThresholdRule_1.ControlFlowFlatteningThresholdRule,
- DeadCodeInjectionRule_1.DeadCodeInjectionRule,
- DeadCodeInjectionThresholdRule_1.DeadCodeInjectionThresholdRule,
- DomainLockRule_1.DomainLockRule,
- InputFileNameRule_1.InputFileNameRule,
- SeedRule_1.SeedRule,
- SelfDefendingRule_1.SelfDefendingRule,
- SourceMapBaseUrlRule_1.SourceMapBaseUrlRule,
- SourceMapFileNameRule_1.SourceMapFileNameRule,
- SplitStringsChunkLengthRule_1.SplitStringsChunkLengthRule,
- StringArrayRule_1.StringArrayRule,
- StringArrayEncodingRule_1.StringArrayEncodingRule,
- StringArrayThresholdRule_1.StringArrayThresholdRule,
- ];
- OptionsNormalizer = OptionsNormalizer_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";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ValidationErrorsFormatter = void 0;
- class ValidationErrorsFormatter {
- static format(errors) {
- return errors
- .reduce((errorMessages, error) => [
- ...errorMessages,
- ValidationErrorsFormatter.formatWithNestedConstraints(error)
- ], [])
- .join('\n');
- }
- static formatWithNestedConstraints(error) {
- const constraints = error.constraints;
- if (!constraints) {
- return `\`${error.property}\` error\n`;
- }
- const rootError = `\`${error.property}\` errors:\n`;
- const nestedErrors = Object
- .keys(constraints)
- .map((constraint) => ` - ${constraints[constraint]}\n`)
- .join();
- return `${rootError}${nestedErrors}`;
- }
- }
- 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 = void 0;
- exports.ControlFlowFlatteningThresholdRule = (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 });
- exports.DeadCodeInjectionRule = void 0;
- const Default_1 = __webpack_require__(/*! ../presets/Default */ "./src/options/presets/Default.ts");
- exports.DeadCodeInjectionRule = (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 = void 0;
- exports.DeadCodeInjectionThresholdRule = (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 });
- exports.DomainLockRule = void 0;
- const Utils_1 = __webpack_require__(/*! ../../utils/Utils */ "./src/utils/Utils.ts");
- exports.DomainLockRule = (options) => {
- if (options.domainLock.length) {
- const normalizedDomains = [];
- for (const domain of options.domainLock) {
- normalizedDomains.push(Utils_1.Utils.extractDomainFrom(domain));
- }
- 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 = void 0;
- const StringSeparator_1 = __webpack_require__(/*! ../../enums/StringSeparator */ "./src/enums/StringSeparator.ts");
- exports.InputFileNameRule = (options) => {
- let { inputFileName } = options;
- if (inputFileName) {
- inputFileName = inputFileName
- .replace(/^\/+/, '')
- .split(StringSeparator_1.StringSeparator.Dot)
- .slice(0, -1)
- .join(StringSeparator_1.StringSeparator.Dot) || inputFileName;
- options = Object.assign(Object.assign({}, options), { inputFileName: `${inputFileName}.js` });
- }
- return options;
- };
- /***/ }),
- /***/ "./src/options/normalizer-rules/SeedRule.ts":
- /*!**************************************************!*\
- !*** ./src/options/normalizer-rules/SeedRule.ts ***!
- \**************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.SeedRule = void 0;
- exports.SeedRule = (options) => {
- if (options.seed) {
- return Object.assign(Object.assign({}, options), { seed: options.seed });
- }
- const getRandomInteger = (min, max) => {
- return Math.floor(Math.random() * (max - min + 1) + min);
- };
- return Object.assign(Object.assign({}, options), { seed: getRandomInteger(0, 999999999) });
- };
- /***/ }),
- /***/ "./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 = void 0;
- exports.SelfDefendingRule = (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 = void 0;
- exports.SourceMapBaseUrlRule = (options) => {
- const { sourceMapBaseUrl } = options;
- if (!options.sourceMapFileName) {
- options = Object.assign(Object.assign({}, options), { sourceMapBaseUrl: '' });
- return options;
- }
- if (sourceMapBaseUrl && !sourceMapBaseUrl.endsWith('/')) {
- options = Object.assign(Object.assign({}, options), { sourceMapBaseUrl: `${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 = void 0;
- const StringSeparator_1 = __webpack_require__(/*! ../../enums/StringSeparator */ "./src/enums/StringSeparator.ts");
- exports.SourceMapFileNameRule = (options) => {
- let { sourceMapFileName } = options;
- if (sourceMapFileName) {
- sourceMapFileName = sourceMapFileName
- .replace(/^\/+/, '')
- .replace(/(?:\.js)?(?:\.map)?$/, '');
- let sourceMapFileNameParts = sourceMapFileName.split(StringSeparator_1.StringSeparator.Dot);
- const sourceMapFileNamePartsCount = sourceMapFileNameParts.length;
- const lastPart = sourceMapFileNameParts[sourceMapFileNamePartsCount - 1];
- if (sourceMapFileNamePartsCount > 1 && lastPart.length <= 3) {
- sourceMapFileNameParts = sourceMapFileNameParts.slice(0, -1);
- }
- sourceMapFileName = sourceMapFileNameParts.join(StringSeparator_1.StringSeparator.Dot);
- options = Object.assign(Object.assign({}, options), { sourceMapFileName: `${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 = void 0;
- exports.SplitStringsChunkLengthRule = (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 });
- exports.StringArrayEncodingRule = void 0;
- const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts");
- exports.StringArrayEncodingRule = (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 = void 0;
- exports.StringArrayRule = (options) => {
- if (!options.stringArray) {
- options = Object.assign(Object.assign({}, options), { rotateStringArray: false, shuffleStringArray: 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 = void 0;
- exports.StringArrayThresholdRule = (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 });
- exports.DEFAULT_PRESET = void 0;
- const IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts");
- const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
- const 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,
- shuffleStringArray: true,
- 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 });
- exports.NO_ADDITIONAL_NODES_PRESET = void 0;
- const IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts");
- const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
- const 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,
- shuffleStringArray: 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/options/validators/IsAllowedForObfuscationTargets.ts":
- /*!******************************************************************!*\
- !*** ./src/options/validators/IsAllowedForObfuscationTargets.ts ***!
- \******************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.IsAllowedForObfuscationTargets = void 0;
- const class_validator_1 = __webpack_require__(/*! class-validator */ "class-validator");
- const fast_deep_equal_1 = __importDefault(__webpack_require__(/*! fast-deep-equal */ "fast-deep-equal"));
- const StringSeparator_1 = __webpack_require__(/*! ../../enums/StringSeparator */ "./src/enums/StringSeparator.ts");
- const Default_1 = __webpack_require__(/*! ../presets/Default */ "./src/options/presets/Default.ts");
- function IsAllowedForObfuscationTargets(obfuscationTargets, validationOptions) {
- return (optionsObject, propertyName) => {
- class_validator_1.registerDecorator({
- propertyName,
- constraints: [obfuscationTargets],
- name: 'IsAllowedForObfuscationTargets',
- options: validationOptions,
- target: optionsObject.constructor,
- validator: {
- validate(value, validationArguments) {
- const options = validationArguments.object;
- const defaultValue = Default_1.DEFAULT_PRESET[propertyName];
- const isDefaultValue = fast_deep_equal_1.default(value, defaultValue);
- return isDefaultValue || obfuscationTargets.includes(options.target);
- },
- defaultMessage(validationArguments) {
- const requiredObfuscationTargetsString = obfuscationTargets.join(`${StringSeparator_1.StringSeparator.Comma} `);
- return `This option allowed only for obfuscation targets: ${requiredObfuscationTargetsString}`;
- }
- }
- });
- };
- }
- exports.IsAllowedForObfuscationTargets = IsAllowedForObfuscationTargets;
- /***/ }),
- /***/ "./src/source-code/ObfuscatedCode.ts":
- /*!*******************************************!*\
- !*** ./src/source-code/ObfuscatedCode.ts ***!
- \*******************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ObfuscatedCode = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const ICryptUtils_1 = __webpack_require__(/*! ../interfaces/utils/ICryptUtils */ "./src/interfaces/utils/ICryptUtils.ts");
- const Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts");
- const SourceMapMode_1 = __webpack_require__(/*! ../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts");
- const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- let ObfuscatedCode = class ObfuscatedCode {
- constructor(cryptUtils, options) {
- this.cryptUtils = cryptUtils;
- this.options = options;
- }
- initialize(obfuscatedCode, sourceMap) {
- this.obfuscatedCode = obfuscatedCode;
- this.sourceMap = sourceMap;
- }
- getObfuscatedCode() {
- return this.correctObfuscatedCode();
- }
- getSourceMap() {
- return this.sourceMap;
- }
- toString() {
- return this.obfuscatedCode;
- }
- correctObfuscatedCode() {
- if (!this.sourceMap) {
- return this.obfuscatedCode;
- }
- const sourceMapUrl = this.options.sourceMapBaseUrl + this.options.sourceMapFileName;
- let sourceMappingUrl = '//# sourceMappingURL=';
- switch (this.options.sourceMapMode) {
- case SourceMapMode_1.SourceMapMode.Inline:
- sourceMappingUrl += `data:application/json;base64,${this.cryptUtils.btoa(this.sourceMap)}`;
- break;
- case SourceMapMode_1.SourceMapMode.Separate:
- default:
- if (!sourceMapUrl) {
- return this.obfuscatedCode;
- }
- sourceMappingUrl += sourceMapUrl;
- }
- return `${this.obfuscatedCode}\n${sourceMappingUrl}`;
- }
- };
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", String)
- ], ObfuscatedCode.prototype, "obfuscatedCode", void 0);
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", String)
- ], ObfuscatedCode.prototype, "sourceMap", void 0);
- ObfuscatedCode = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof ICryptUtils_1.ICryptUtils !== "undefined" && ICryptUtils_1.ICryptUtils) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : 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";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.SourceCode = void 0;
- class SourceCode {
- constructor(sourceCode, sourceMap) {
- this.sourceCode = sourceCode;
- this.sourceMap = sourceMap;
- }
- getSourceCode() {
- return this.sourceCode;
- }
- getSourceMap() {
- return this.sourceMap;
- }
- toString() {
- return this.sourceCode;
- }
- }
- exports.SourceCode = SourceCode;
- /***/ }),
- /***/ "./src/storages/MapStorage.ts":
- /*!************************************!*\
- !*** ./src/storages/MapStorage.ts ***!
- \************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b, _c;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.MapStorage = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts");
- let MapStorage = class MapStorage {
- constructor(randomGenerator, options) {
- this.randomGenerator = randomGenerator;
- this.options = options;
- }
- initialize() {
- this.storage = new Map();
- this.storageId = this.randomGenerator.getRandomString(6);
- }
- get(key) {
- return this.storage.get(key);
- }
- getOrThrow(key) {
- const value = this.get(key);
- if (!value) {
- throw new Error(`No value found in map storage with key \`${key}\``);
- }
- return value;
- }
- getKeyOf(value) {
- for (const [key, storageValue] of this.storage) {
- if (value === storageValue) {
- return key;
- }
- }
- return null;
- }
- getLength() {
- return this.storage.size;
- }
- getStorage() {
- return this.storage;
- }
- getStorageId() {
- return this.storageId;
- }
- has(key) {
- return this.storage.has(key);
- }
- mergeWith(storage, mergeId = false) {
- this.storage = new Map([...this.storage, ...storage.getStorage()]);
- if (mergeId) {
- this.storageId = storage.getStorageId();
- }
- }
- set(key, value) {
- this.storage.set(key, value);
- }
- };
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", String)
- ], MapStorage.prototype, "storageId", void 0);
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object)
- ], MapStorage.prototype, "storage", void 0);
- __decorate([
- inversify_1.postConstruct(),
- __metadata("design:type", Function),
- __metadata("design:paramtypes", []),
- __metadata("design:returntype", void 0)
- ], MapStorage.prototype, "initialize", null);
- MapStorage = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
- ], MapStorage);
- exports.MapStorage = MapStorage;
- /***/ }),
- /***/ "./src/storages/custom-code-helpers/CustomCodeHelperGroupStorage.ts":
- /*!**************************************************************************!*\
- !*** ./src/storages/custom-code-helpers/CustomCodeHelperGroupStorage.ts ***!
- \**************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var CustomCodeHelperGroupStorage_1, _a, _b, _c;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.CustomCodeHelperGroupStorage = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TCustomCodeHelperGroupFactory_1 = __webpack_require__(/*! ../../types/container/custom-code-helpers/TCustomCodeHelperGroupFactory */ "./src/types/container/custom-code-helpers/TCustomCodeHelperGroupFactory.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const CustomCodeHelperGroup_1 = __webpack_require__(/*! ../../enums/custom-code-helpers/CustomCodeHelperGroup */ "./src/enums/custom-code-helpers/CustomCodeHelperGroup.ts");
- const MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts");
- let CustomCodeHelperGroupStorage = CustomCodeHelperGroupStorage_1 = class CustomCodeHelperGroupStorage extends MapStorage_1.MapStorage {
- constructor(customCodeHelperGroupFactory, randomGenerator, options) {
- super(randomGenerator, options);
- this.customCodeHelperGroupFactory = customCodeHelperGroupFactory;
- }
- initialize() {
- super.initialize();
- CustomCodeHelperGroupStorage_1.customCodeHelperGroupsList.forEach((customCodeHelperGroupName) => {
- const customCodeHelperGroup = this.customCodeHelperGroupFactory(customCodeHelperGroupName);
- this.storage.set(customCodeHelperGroupName, customCodeHelperGroup);
- });
- }
- };
- CustomCodeHelperGroupStorage.customCodeHelperGroupsList = [
- CustomCodeHelperGroup_1.CustomCodeHelperGroup.ConsoleOutput,
- CustomCodeHelperGroup_1.CustomCodeHelperGroup.DebugProtection,
- CustomCodeHelperGroup_1.CustomCodeHelperGroup.DomainLock,
- CustomCodeHelperGroup_1.CustomCodeHelperGroup.SelfDefending,
- CustomCodeHelperGroup_1.CustomCodeHelperGroup.StringArray
- ];
- __decorate([
- inversify_1.postConstruct(),
- __metadata("design:type", Function),
- __metadata("design:paramtypes", []),
- __metadata("design:returntype", void 0)
- ], CustomCodeHelperGroupStorage.prototype, "initialize", null);
- CustomCodeHelperGroupStorage = CustomCodeHelperGroupStorage_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelperGroup)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof TCustomCodeHelperGroupFactory_1.TCustomCodeHelperGroupFactory !== "undefined" && TCustomCodeHelperGroupFactory_1.TCustomCodeHelperGroupFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
- ], CustomCodeHelperGroupStorage);
- exports.CustomCodeHelperGroupStorage = CustomCodeHelperGroupStorage;
- /***/ }),
- /***/ "./src/storages/custom-nodes/ControlFlowStorage.ts":
- /*!*********************************************************!*\
- !*** ./src/storages/custom-nodes/ControlFlowStorage.ts ***!
- \*********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a, _b;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ControlFlowStorage = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts");
- let ControlFlowStorage = class ControlFlowStorage extends MapStorage_1.MapStorage {
- constructor(randomGenerator, options) {
- super(randomGenerator, options);
- }
- };
- ControlFlowStorage = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
- ], ControlFlowStorage);
- exports.ControlFlowStorage = ControlFlowStorage;
- /***/ }),
- /***/ "./src/storages/string-array/StringArrayStorage.ts":
- /*!*********************************************************!*\
- !*** ./src/storages/string-array/StringArrayStorage.ts ***!
- \*********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var StringArrayStorage_1, _a, _b, _c, _d, _e, _f;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.StringArrayStorage = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
- const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.ts");
- const ICryptUtils_1 = __webpack_require__(/*! ../../interfaces/utils/ICryptUtils */ "./src/interfaces/utils/ICryptUtils.ts");
- const IEscapeSequenceEncoder_1 = __webpack_require__(/*! ../../interfaces/utils/IEscapeSequenceEncoder */ "./src/interfaces/utils/IEscapeSequenceEncoder.ts");
- const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts");
- const MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts");
- let StringArrayStorage = StringArrayStorage_1 = class StringArrayStorage extends MapStorage_1.MapStorage {
- constructor(identifierNamesGeneratorFactory, arrayUtils, randomGenerator, options, cryptUtils, escapeSequenceEncoder) {
- super(randomGenerator, options);
- this.rc4EncodedValuesSourcesCache = new Map();
- this.rotationAmount = 0;
- this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
- this.arrayUtils = arrayUtils;
- this.cryptUtils = cryptUtils;
- this.escapeSequenceEncoder = escapeSequenceEncoder;
- this.rc4Keys = this.randomGenerator.getRandomGenerator()
- .n(() => this.randomGenerator.getRandomGenerator().string({
- length: StringArrayStorage_1.rc4KeyLength
- }), StringArrayStorage_1.rc4KeysCount);
- }
- initialize() {
- super.initialize();
- this.rotationAmount = this.options.rotateStringArray
- ? this.randomGenerator.getRandomInteger(StringArrayStorage_1.minimumRotationAmount, StringArrayStorage_1.maximumRotationAmount)
- : 0;
- }
- get(value) {
- return this.getOrSetIfDoesNotExist(value);
- }
- getRotationAmount() {
- return this.rotationAmount;
- }
- getStorageName() {
- return this.getStorageId();
- }
- getStorageId() {
- if (!this.stringArrayStorageName) {
- this.stringArrayStorageName = this.identifierNamesGenerator
- .generateForGlobalScope(StringArrayStorage_1.stringArrayNameLength);
- }
- return this.stringArrayStorageName;
- }
- getStorageCallsWrapperName() {
- if (!this.stringArrayStorageCallsWrapperName) {
- this.stringArrayStorageCallsWrapperName = this.identifierNamesGenerator
- .generateForGlobalScope(StringArrayStorage_1.stringArrayNameLength);
- }
- return this.stringArrayStorageCallsWrapperName;
- }
- rotateStorage() {
- if (!this.getLength()) {
- return;
- }
- this.storage = new Map(this.arrayUtils.rotate(Array.from(this.storage.entries()), this.rotationAmount));
- }
- shuffleStorage() {
- this.storage = new Map(this.arrayUtils
- .shuffle(Array.from(this.storage.entries()))
- .map(([value, stringArrayStorageItemData], index) => {
- stringArrayStorageItemData.index = index;
- return [value, stringArrayStorageItemData];
- })
- .sort(([, stringArrayStorageItemDataA], [, stringArrayStorageItemDataB]) => stringArrayStorageItemDataA.index - stringArrayStorageItemDataB.index));
- }
- toString() {
- return Array
- .from(this.storage.values())
- .map((stringArrayStorageItemData) => {
- return `'${this.escapeSequenceEncoder.encode(stringArrayStorageItemData.encodedValue, this.options.unicodeEscapeSequence)}'`;
- }).toString();
- }
- getOrSetIfDoesNotExist(value) {
- const { encodedValue, decodeKey } = this.getEncodedValue(value);
- const storedStringArrayStorageItemData = this.storage.get(encodedValue);
- if (storedStringArrayStorageItemData) {
- return storedStringArrayStorageItemData;
- }
- const stringArrayStorageItemData = {
- encodedValue,
- decodeKey,
- value,
- index: this.getLength()
- };
- this.storage.set(encodedValue, stringArrayStorageItemData);
- return stringArrayStorageItemData;
- }
- getEncodedValue(value) {
- var _a;
- switch (this.options.stringArrayEncoding) {
- case StringArrayEncoding_1.StringArrayEncoding.Rc4: {
- const decodeKey = this.randomGenerator.getRandomGenerator().pickone(this.rc4Keys);
- const encodedValue = this.cryptUtils.btoa(this.cryptUtils.rc4(value, decodeKey));
- const encodedValueSources = (_a = this.rc4EncodedValuesSourcesCache.get(encodedValue)) !== null && _a !== void 0 ? _a : [];
- let encodedValueSourcesLength = encodedValueSources.length;
- const shouldAddValueToSourcesCache = !encodedValueSourcesLength || !encodedValueSources.includes(value);
- if (shouldAddValueToSourcesCache) {
- encodedValueSources.push(value);
- encodedValueSourcesLength++;
- }
- this.rc4EncodedValuesSourcesCache.set(encodedValue, encodedValueSources);
- if (encodedValueSourcesLength > 1) {
- return this.getEncodedValue(value);
- }
- return { encodedValue, decodeKey };
- }
- case StringArrayEncoding_1.StringArrayEncoding.Base64: {
- const decodeKey = null;
- const encodedValue = this.cryptUtils.btoa(value);
- return { encodedValue, decodeKey };
- }
- default: {
- const decodeKey = null;
- const encodedValue = value;
- return { encodedValue, decodeKey };
- }
- }
- }
- };
- StringArrayStorage.minimumRotationAmount = 100;
- StringArrayStorage.maximumRotationAmount = 500;
- StringArrayStorage.rc4KeyLength = 4;
- StringArrayStorage.rc4KeysCount = 50;
- StringArrayStorage.stringArrayNameLength = 4;
- __decorate([
- inversify_1.postConstruct(),
- __metadata("design:type", Function),
- __metadata("design:paramtypes", []),
- __metadata("design:returntype", void 0)
- ], StringArrayStorage.prototype, "initialize", null);
- StringArrayStorage = StringArrayStorage_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),
- __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)),
- __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)),
- __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object, typeof (_e = typeof ICryptUtils_1.ICryptUtils !== "undefined" && ICryptUtils_1.ICryptUtils) === "function" ? _e : Object, typeof (_f = typeof IEscapeSequenceEncoder_1.IEscapeSequenceEncoder !== "undefined" && IEscapeSequenceEncoder_1.IEscapeSequenceEncoder) === "function" ? _f : Object])
- ], StringArrayStorage);
- exports.StringArrayStorage = StringArrayStorage;
- /***/ }),
- /***/ "./src/types/container/calls-graph-analyzer/TCalleeDataExtractorFactory.ts":
- /*!*********************************************************************************!*\
- !*** ./src/types/container/calls-graph-analyzer/TCalleeDataExtractorFactory.ts ***!
- \*********************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/types/container/code-transformers/TCodeTransformerFactory.ts":
- /*!**************************************************************************!*\
- !*** ./src/types/container/code-transformers/TCodeTransformerFactory.ts ***!
- \**************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts":
- /*!*****************************************************************************!*\
- !*** ./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts ***!
- \*****************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/types/container/custom-code-helpers/TCustomCodeHelperGroupFactory.ts":
- /*!**********************************************************************************!*\
- !*** ./src/types/container/custom-code-helpers/TCustomCodeHelperGroupFactory.ts ***!
- \**********************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts":
- /*!***************************************************************************!*\
- !*** ./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts ***!
- \***************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory.ts":
- /*!*********************************************************************************!*\
- !*** ./src/types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory.ts ***!
- \*********************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory.ts":
- /*!***********************************************************************************************!*\
- !*** ./src/types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory.ts ***!
- \***********************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts":
- /*!****************************************************************************!*\
- !*** ./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts ***!
- \****************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/types/container/node-transformers/TControlFlowReplacerFactory.ts":
- /*!******************************************************************************!*\
- !*** ./src/types/container/node-transformers/TControlFlowReplacerFactory.ts ***!
- \******************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/types/container/node-transformers/TControlFlowStorageFactory.ts":
- /*!*****************************************************************************!*\
- !*** ./src/types/container/node-transformers/TControlFlowStorageFactory.ts ***!
- \*****************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/types/container/node-transformers/TIdentifierObfuscatingReplacerFactory.ts":
- /*!****************************************************************************************!*\
- !*** ./src/types/container/node-transformers/TIdentifierObfuscatingReplacerFactory.ts ***!
- \****************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/types/container/node-transformers/TLiteralObfuscatingReplacerFactory.ts":
- /*!*************************************************************************************!*\
- !*** ./src/types/container/node-transformers/TLiteralObfuscatingReplacerFactory.ts ***!
- \*************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/types/container/node-transformers/TNodeTransformerFactory.ts":
- /*!**************************************************************************!*\
- !*** ./src/types/container/node-transformers/TNodeTransformerFactory.ts ***!
- \**************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/types/container/node-transformers/TObfuscatingGuardFactory.ts":
- /*!***************************************************************************!*\
- !*** ./src/types/container/node-transformers/TObfuscatingGuardFactory.ts ***!
- \***************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/types/container/node-transformers/TObjectExpressionExtractorFactory.ts":
- /*!************************************************************************************!*\
- !*** ./src/types/container/node-transformers/TObjectExpressionExtractorFactory.ts ***!
- \************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/types/container/source-code/TObfuscatedCodeFactory.ts":
- /*!*******************************************************************!*\
- !*** ./src/types/container/source-code/TObfuscatedCodeFactory.ts ***!
- \*******************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/types/options/TInputCLIOptions.ts":
- /*!***********************************************!*\
- !*** ./src/types/options/TInputCLIOptions.ts ***!
- \***********************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/types/options/TInputOptions.ts":
- /*!********************************************!*\
- !*** ./src/types/options/TInputOptions.ts ***!
- \********************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/types/options/TStringArrayEncoding.ts":
- /*!***************************************************!*\
- !*** ./src/types/options/TStringArrayEncoding.ts ***!
- \***************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/types/storages/TControlFlowStorage.ts":
- /*!***************************************************!*\
- !*** ./src/types/storages/TControlFlowStorage.ts ***!
- \***************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/types/storages/TCustomCodeHelperGroupStorage.ts":
- /*!*************************************************************!*\
- !*** ./src/types/storages/TCustomCodeHelperGroupStorage.ts ***!
- \*************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /***/ }),
- /***/ "./src/utils/AbstractTransformerNamesGroupsBuilder.ts":
- /*!************************************************************!*\
- !*** ./src/utils/AbstractTransformerNamesGroupsBuilder.ts ***!
- \************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.AbstractTransformerNamesGroupsBuilder = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const ILevelledTopologicalSorter_1 = __webpack_require__(/*! ../interfaces/utils/ILevelledTopologicalSorter */ "./src/interfaces/utils/ILevelledTopologicalSorter.ts");
- let AbstractTransformerNamesGroupsBuilder = class AbstractTransformerNamesGroupsBuilder {
- constructor(levelledTopologicalSorter) {
- this.levelledTopologicalSorter = levelledTopologicalSorter;
- }
- build(normalizedTransformers) {
- const transformerNames = Object.keys(normalizedTransformers);
- const relationEdges = this.buildTransformersRelationEdges(transformerNames, normalizedTransformers);
- for (const [precedent, consequent] of relationEdges) {
- this.levelledTopologicalSorter.add(precedent, consequent);
- }
- return this.levelledTopologicalSorter.sortByGroups();
- }
- buildTransformersRelationEdges(transformerNames, normalizedTransformers) {
- const relationEdges = [];
- for (const transformerName of transformerNames) {
- const transformer = normalizedTransformers[transformerName];
- const runAfterRelations = transformer.runAfter;
- if (!runAfterRelations || !runAfterRelations.length) {
- relationEdges.push([transformerName, null]);
- continue;
- }
- for (const runAfterRelation of runAfterRelations) {
- const isUnknownRelation = normalizedTransformers[runAfterRelation] === undefined;
- if (isUnknownRelation) {
- relationEdges.push([transformerName, null]);
- continue;
- }
- relationEdges.push([runAfterRelation, transformerName]);
- }
- }
- return relationEdges;
- }
- };
- AbstractTransformerNamesGroupsBuilder = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ILevelledTopologicalSorter)),
- __metadata("design:paramtypes", [typeof (_a = typeof ILevelledTopologicalSorter_1.ILevelledTopologicalSorter !== "undefined" && ILevelledTopologicalSorter_1.ILevelledTopologicalSorter) === "function" ? _a : Object])
- ], AbstractTransformerNamesGroupsBuilder);
- exports.AbstractTransformerNamesGroupsBuilder = AbstractTransformerNamesGroupsBuilder;
- /***/ }),
- /***/ "./src/utils/ArrayUtils.ts":
- /*!*********************************!*\
- !*** ./src/utils/ArrayUtils.ts ***!
- \*********************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ArrayUtils = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- let ArrayUtils = class ArrayUtils {
- constructor(randomGenerator) {
- this.randomGenerator = randomGenerator;
- }
- createWithRange(length) {
- const range = [];
- for (let i = 0; i < length; i++) {
- range.push(i);
- }
- return range;
- }
- findMostOccurringElement(array) {
- var _a;
- const arrayLength = array.length;
- if (!arrayLength) {
- return null;
- }
- const elementsMap = {};
- let mostOccurringElement = array[0];
- let mostOccurringElementCount = 1;
- for (const element of array) {
- const currentElementCount = (_a = elementsMap[element]) !== null && _a !== void 0 ? _a : 0;
- const updatedElementCount = currentElementCount + 1;
- if (updatedElementCount > mostOccurringElementCount) {
- mostOccurringElement = element;
- mostOccurringElementCount = updatedElementCount;
- }
- elementsMap[element] = updatedElementCount;
- }
- return mostOccurringElement;
- }
- rotate(array, times) {
- if (!array.length) {
- throw new ReferenceError('Cannot rotate empty array.');
- }
- if (times <= 0) {
- return array;
- }
- const newArray = array;
- let temp;
- while (times--) {
- temp = newArray.pop();
- if (temp) {
- newArray.unshift(temp);
- }
- }
- return newArray;
- }
- shuffle(array) {
- const shuffledArray = [...array];
- for (let i = shuffledArray.length; i; i--) {
- const j = Math.floor(this.randomGenerator.getMathRandom() * i);
- [shuffledArray[i - 1], shuffledArray[j]] = [shuffledArray[j], shuffledArray[i - 1]];
- }
- return shuffledArray;
- }
- };
- ArrayUtils = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var _a;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.CryptUtils = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
- const RandomGenerator_1 = __webpack_require__(/*! ./RandomGenerator */ "./src/utils/RandomGenerator.ts");
- const Utils_1 = __webpack_require__(/*! ./Utils */ "./src/utils/Utils.ts");
- let CryptUtils = class CryptUtils {
- constructor(randomGenerator) {
- this.randomGenerator = randomGenerator;
- }
- btoa(string) {
- const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
- let output = '';
- string = encodeURIComponent(string).replace(/%([0-9A-F]{2})/g, (match, p1) => {
- return String.fromCharCode(parseInt(`${Utils_1.Utils.hexadecimalPrefix}${p1}`, 16));
- });
- for (let 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;
- }
- hideString(str, length) {
- const escapeRegExp = (s) => s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
- const randomMerge = (s1, s2) => {
- let i1 = -1;
- let i2 = -1;
- let 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;
- };
- const randomString = this.randomGenerator.getRandomGenerator().string({
- length: length,
- pool: RandomGenerator_1.RandomGenerator.randomGeneratorPool
- });
- let randomStringDiff = randomString.replace(new RegExp(`[${escapeRegExp(str)}]`, 'g'), '');
- const randomStringDiffArray = randomStringDiff.split('');
- this.randomGenerator.getRandomGenerator().shuffle(randomStringDiffArray);
- randomStringDiff = randomStringDiffArray.join('');
- return [randomMerge(str, randomStringDiff), randomStringDiff];
- }
- rc4(string, key) {
- const s = [];
- let j = 0;
- let x;
- let 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 (let 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;
- }
- };
- CryptUtils = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
- __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : 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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.EscapeSequenceEncoder = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- let EscapeSequenceEncoder = class EscapeSequenceEncoder {
- constructor() {
- this.stringsCache = new Map();
- }
- encode(string, encodeAllSymbols) {
- const cacheKey = `${string}-${String(encodeAllSymbols)}`;
- if (this.stringsCache.has(cacheKey)) {
- return this.stringsCache.get(cacheKey);
- }
- const radix = 16;
- const replaceRegExp = new RegExp('[\\s\\S]', 'g');
- const escapeSequenceRegExp = new RegExp('[\'\"\\\\\\s]');
- const regExp = new RegExp('[\\x00-\\x7F]');
- let prefix;
- let template;
- const result = string.replace(replaceRegExp, (character) => {
- if (!encodeAllSymbols && !escapeSequenceRegExp.exec(character)) {
- return character;
- }
- if (regExp.exec(character)) {
- prefix = '\\x';
- template = '00';
- }
- else {
- prefix = '\\u';
- template = '0000';
- }
- return `${prefix}${(template + character.charCodeAt(0).toString(radix)).slice(-template.length)}`;
- });
- this.stringsCache.set(cacheKey, result);
- this.stringsCache.set(`${result}-${String(encodeAllSymbols)}`, result);
- return result;
- }
- };
- EscapeSequenceEncoder = __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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.LevelledTopologicalSorter = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- let LevelledTopologicalSorter = class LevelledTopologicalSorter {
- constructor() {
- this.graph = new Map();
- }
- add(precedent, consequent = null) {
- if (consequent !== null) {
- return this.link(precedent, consequent);
- }
- return this.register(precedent);
- }
- sort() {
- const consequents = Array.from(this.graph.keys());
- const results = [];
- const marks = {};
- for (const consequent of consequents) {
- if (marks[consequent] !== undefined) {
- continue;
- }
- this.visit(results, marks, consequent);
- }
- return results;
- }
- sortByGroups() {
- this.sort();
- const resultItemsGroups = [];
- while (this.hasNodes()) {
- const rootNodes = this.findRootNodes();
- resultItemsGroups.push(rootNodes);
- for (const rootNode of rootNodes) {
- this.delete(rootNode);
- }
- }
- return resultItemsGroups;
- }
- delete(consequent) {
- const precedents = this.getPrecedents(consequent);
- if (precedents.length) {
- throw new Error(`Unable to remove non-root node: ${consequent}`);
- }
- this.graph.delete(consequent);
- const precedentsGroups = Array.from(this.graph.values());
- for (const precedentsGroup of precedentsGroups) {
- const precedentsCount = precedentsGroup.length - 1;
- for (let index = precedentsCount; index >= 0; index = index - 1) {
- if (precedentsGroup[index] !== consequent) {
- continue;
- }
- precedentsGroup.splice(index, 1);
- }
- }
- }
- findRootNodes() {
- const consequents = Array.from(this.graph.keys());
- const rootNodes = [];
- for (const consequent of consequents) {
- if (!this.hasPrecedents(consequent)) {
- rootNodes.push(consequent);
- }
- }
- return rootNodes;
- }
- getPrecedents(consequent) {
- const precedents = this.graph.get(consequent);
- if (!precedents) {
- throw new Error(`Unknown node: ${consequent}`);
- }
- return precedents;
- }
- hasNodes() {
- return this.graph.size > 0;
- }
- hasPrecedents(consequent) {
- return this.getPrecedents(consequent).length > 0;
- }
- link(precedent, consequent) {
- this.register(precedent);
- this.register(consequent);
- const target = this.graph.get(consequent);
- if (target && !target.includes(precedent)) {
- target.push(precedent);
- }
- return this;
- }
- register(name) {
- if (!this.graph.has(name)) {
- this.graph.set(name, []);
- }
- return this;
- }
- visit(results, marks, name) {
- const mark = marks[name];
- if (mark === 'visiting') {
- throw new Error(`Detected cycle involving node: ${name}`);
- }
- if (mark) {
- return;
- }
- marks[name] = 'visiting';
- const precedents = this.getPrecedents(name);
- for (const precedent of precedents) {
- this.visit(results, marks, precedent);
- }
- marks[name] = 'ok';
- results.push(name);
- return;
- }
- };
- LevelledTopologicalSorter = __decorate([
- inversify_1.injectable()
- ], LevelledTopologicalSorter);
- exports.LevelledTopologicalSorter = LevelledTopologicalSorter;
- /***/ }),
- /***/ "./src/utils/NumberUtils.ts":
- /*!**********************************!*\
- !*** ./src/utils/NumberUtils.ts ***!
- \**********************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.NumberUtils = void 0;
- const Utils_1 = __webpack_require__(/*! ./Utils */ "./src/utils/Utils.ts");
- class NumberUtils {
- static toHex(number) {
- const radix = 16;
- const basePart = typeof number === 'number'
- ? number.toString(radix)
- : `${number.toString(radix)}n`;
- return `${Utils_1.Utils.hexadecimalPrefix}${basePart}`;
- }
- static isCeil(number) {
- return typeof number === 'number'
- ? number % 1 === 0
- : true;
- }
- }
- exports.NumberUtils = NumberUtils;
- /***/ }),
- /***/ "./src/utils/RandomGenerator.ts":
- /*!**************************************!*\
- !*** ./src/utils/RandomGenerator.ts ***!
- \**************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
- };
- var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
- };
- var __param = (this && this.__param) || function (paramIndex, decorator) {
- return function (target, key) { decorator(target, key, paramIndex); }
- };
- var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- var RandomGenerator_1, _a, _b, _c;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.RandomGenerator = void 0;
- const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
- const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
- const md5_1 = __importDefault(__webpack_require__(/*! md5 */ "md5"));
- const chance_1 = __webpack_require__(/*! chance */ "chance");
- const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
- const ISourceCode_1 = __webpack_require__(/*! ../interfaces/source-code/ISourceCode */ "./src/interfaces/source-code/ISourceCode.ts");
- const Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts");
- let RandomGenerator = RandomGenerator_1 = class RandomGenerator {
- constructor(sourceCode, options) {
- this.sourceCode = sourceCode;
- this.options = options;
- }
- initialize() {
- this.randomGenerator = new chance_1.Chance(this.getRawSeed());
- }
- getMathRandom() {
- return this.getRandomInteger(0, 99999) / 100000;
- }
- getRandomGenerator() {
- return this.randomGenerator;
- }
- getRandomInteger(min, max) {
- return this.getRandomGenerator().integer({
- min: min,
- max: max
- });
- }
- getRandomString(length, pool = RandomGenerator_1.randomGeneratorPool) {
- return this.getRandomGenerator().string({ length, pool });
- }
- getInputSeed() {
- return this.options.seed.toString();
- }
- getRawSeed() {
- const inputSeed = this.getInputSeed();
- const inputSeedParts = `${inputSeed}`.split('|');
- if (inputSeedParts.length > 1) {
- return inputSeed;
- }
- const sourceCodeMD5Hash = md5_1.default(this.sourceCode.getSourceCode());
- return `${inputSeed}|${sourceCodeMD5Hash}`;
- }
- };
- RandomGenerator.randomGeneratorPool = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
- __decorate([
- Initializable_1.initializable(),
- __metadata("design:type", typeof (_a = typeof chance_1.Chance !== "undefined" && chance_1.Chance.Chance) === "function" ? _a : Object)
- ], RandomGenerator.prototype, "randomGenerator", void 0);
- __decorate([
- inversify_1.postConstruct(),
- __metadata("design:type", Function),
- __metadata("design:paramtypes", []),
- __metadata("design:returntype", void 0)
- ], RandomGenerator.prototype, "initialize", null);
- RandomGenerator = RandomGenerator_1 = __decorate([
- inversify_1.injectable(),
- __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ISourceCode)),
- __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
- __metadata("design:paramtypes", [typeof (_b = typeof ISourceCode_1.ISourceCode !== "undefined" && ISourceCode_1.ISourceCode) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
- ], RandomGenerator);
- exports.RandomGenerator = RandomGenerator;
- /***/ }),
- /***/ "./src/utils/Utils.ts":
- /*!****************************!*\
- !*** ./src/utils/Utils.ts ***!
- \****************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.Utils = void 0;
- class Utils {
- static buildVersionMessage(version, buildTimestamp) {
- if (!version || !buildTimestamp) {
- return 'unknown';
- }
- const buildDate = new Date(parseInt(buildTimestamp, 10)).toISOString();
- return `${version}_${buildDate}`;
- }
- static extractDomainFrom(url) {
- let domain;
- if (url.includes('://') || url.indexOf('//') === 0) {
- domain = url.split('/')[2];
- }
- else {
- domain = url.split('/')[0];
- }
- domain = domain.split(':')[0];
- return domain;
- }
- static getIdentifiersPrefixForMultipleSources(identifiersPrefix, sourceCodeIndex) {
- const baseIdentifiersPrefix = !!identifiersPrefix
- ? identifiersPrefix
- : Utils.baseMultipleSourcesIdentifiersPrefix;
- return `${baseIdentifiersPrefix}${sourceCodeIndex}`;
- }
- }
- exports.Utils = Utils;
- Utils.baseMultipleSourcesIdentifiersPrefix = 'a';
- Utils.hexadecimalPrefix = '0x';
- /***/ }),
- /***/ "@gradecam/tsenum":
- /*!***********************************!*\
- !*** external "@gradecam/tsenum" ***!
- \***********************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("@gradecam/tsenum");
- /***/ }),
- /***/ "acorn":
- /*!************************!*\
- !*** external "acorn" ***!
- \************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("acorn");
- /***/ }),
- /***/ "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");
- /***/ }),
- /***/ "commander":
- /*!****************************!*\
- !*** external "commander" ***!
- \****************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("commander");
- /***/ }),
- /***/ "escodegen":
- /*!****************************!*\
- !*** external "escodegen" ***!
- \****************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("escodegen");
- /***/ }),
- /***/ "eslint-scope":
- /*!*******************************!*\
- !*** external "eslint-scope" ***!
- \*******************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("eslint-scope");
- /***/ }),
- /***/ "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");
- /***/ }),
- /***/ "fast-deep-equal":
- /*!**********************************!*\
- !*** external "fast-deep-equal" ***!
- \**********************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("fast-deep-equal");
- /***/ }),
- /***/ "fs":
- /*!*********************!*\
- !*** external "fs" ***!
- \*********************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("fs");
- /***/ }),
- /***/ "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");
- /***/ }),
- /***/ "mkdirp":
- /*!*************************!*\
- !*** external "mkdirp" ***!
- \*************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("mkdirp");
- /***/ }),
- /***/ "multimatch":
- /*!*****************************!*\
- !*** external "multimatch" ***!
- \*****************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("multimatch");
- /***/ }),
- /***/ "path":
- /*!***********************!*\
- !*** external "path" ***!
- \***********************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = require("path");
- /***/ }),
- /***/ "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");
- /***/ })
- /******/ });
- //# sourceMappingURL=index.cli.js.map
|