@loxia-labs/loxia-autopilot-one 1.0.7 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/bin/cli.js +1 -1
- package/bin/loxia-terminal-v2.js +1 -1
- package/bin/loxia-terminal.js +1 -1
- package/bin/start-with-terminal.js +1 -1
- package/package.json +1 -1
- package/scripts/install-scanners.js +1 -1
- package/src/analyzers/CSSAnalyzer.js +1 -1
- package/src/analyzers/ConfigValidator.js +1 -1
- package/src/analyzers/ESLintAnalyzer.js +1 -1
- package/src/analyzers/JavaScriptAnalyzer.js +1 -1
- package/src/analyzers/PrettierFormatter.js +1 -1
- package/src/analyzers/PythonAnalyzer.js +1 -1
- package/src/analyzers/SecurityAnalyzer.js +1 -1
- package/src/analyzers/TypeScriptAnalyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/detector.js +1 -1
- package/src/analyzers/codeCloneDetector/index.js +1 -1
- package/src/analyzers/codeCloneDetector/parser.js +1 -1
- package/src/analyzers/codeCloneDetector/reporter.js +1 -1
- package/src/analyzers/codeCloneDetector/scanner.js +1 -1
- package/src/core/agentPool.js +1 -1
- package/src/core/agentScheduler.js +1 -1
- package/src/core/contextManager.js +1 -1
- package/src/core/messageProcessor.js +1 -1
- package/src/core/orchestrator.js +1 -1
- package/src/core/stateManager.js +1 -1
- package/src/index.js +1 -1
- package/src/interfaces/cli.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
- package/src/interfaces/terminal/api/apiClient.js +1 -1
- package/src/interfaces/terminal/api/messageRouter.js +1 -1
- package/src/interfaces/terminal/api/session.js +1 -1
- package/src/interfaces/terminal/api/websocket.js +1 -1
- package/src/interfaces/terminal/components/AgentCreator.js +1 -1
- package/src/interfaces/terminal/components/AgentEditor.js +1 -1
- package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
- package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
- package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
- package/src/interfaces/terminal/components/Header.js +1 -1
- package/src/interfaces/terminal/components/HelpPanel.js +1 -1
- package/src/interfaces/terminal/components/InputBox.js +1 -1
- package/src/interfaces/terminal/components/Layout.js +1 -1
- package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
- package/src/interfaces/terminal/components/MessageList.js +1 -1
- package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
- package/src/interfaces/terminal/components/SearchPanel.js +1 -1
- package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
- package/src/interfaces/terminal/components/StatusBar.js +1 -1
- package/src/interfaces/terminal/components/TextInput.js +1 -1
- package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
- package/src/interfaces/terminal/config/constants.js +1 -1
- package/src/interfaces/terminal/index.js +1 -1
- package/src/interfaces/terminal/state/useAgentControl.js +1 -1
- package/src/interfaces/terminal/state/useAgents.js +1 -1
- package/src/interfaces/terminal/state/useConnection.js +1 -1
- package/src/interfaces/terminal/state/useMessages.js +1 -1
- package/src/interfaces/terminal/state/useTools.js +1 -1
- package/src/interfaces/terminal/utils/debugLogger.js +1 -1
- package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
- package/src/interfaces/terminal/utils/theme.js +1 -1
- package/src/interfaces/webServer.js +1 -1
- package/src/modules/fileExplorer/controller.js +1 -1
- package/src/modules/fileExplorer/index.js +1 -1
- package/src/modules/fileExplorer/middleware.js +1 -1
- package/src/modules/fileExplorer/routes.js +1 -1
- package/src/services/aiService.js +1 -1
- package/src/services/apiKeyManager.js +1 -1
- package/src/services/benchmarkService.js +1 -1
- package/src/services/budgetService.js +1 -1
- package/src/services/contextInjectionService.js +1 -1
- package/src/services/conversationCompactionService.js +1 -1
- package/src/services/errorHandler.js +1 -1
- package/src/services/fileAttachmentService.js +1 -1
- package/src/services/modelRouterService.js +1 -1
- package/src/services/modelsService.js +1 -1
- package/src/services/qualityInspector.js +1 -1
- package/src/services/tokenCountingService.js +1 -1
- package/src/tools/agentCommunicationTool.js +1 -1
- package/src/tools/agentDelayTool.js +1 -1
- package/src/tools/asyncToolManager.js +1 -1
- package/src/tools/baseTool.js +1 -1
- package/src/tools/browserTool.js +1 -1
- package/src/tools/cloneDetectionTool.js +1 -1
- package/src/tools/dependencyResolverTool.js +1 -1
- package/src/tools/fileContentReplaceTool.js +1 -1
- package/src/tools/fileSystemTool.js +1 -1
- package/src/tools/fileTreeTool.js +1 -1
- package/src/tools/imageTool.js +1 -1
- package/src/tools/importAnalyzerTool.js +1 -1
- package/src/tools/jobDoneTool.js +1 -1
- package/src/tools/seekTool.js +1 -1
- package/src/tools/staticAnalysisTool.js +1 -1
- package/src/tools/taskManagerTool.js +1 -1
- package/src/tools/terminalTool.js +1 -1
- package/src/tools/webTool.js +1 -1
- package/src/types/agent.js +1 -1
- package/src/types/contextReference.js +1 -1
- package/src/types/conversation.js +1 -1
- package/src/types/toolCommand.js +1 -1
- package/src/utilities/attachmentValidator.js +1 -1
- package/src/utilities/configManager.js +1 -1
- package/src/utilities/constants.js +1 -1
- package/src/utilities/directoryAccessManager.js +1 -1
- package/src/utilities/fileProcessor.js +1 -1
- package/src/utilities/logger.js +1 -1
- package/src/utilities/tagParser.js +1 -1
- package/src/utilities/toolConstants.js +1 -1
- package/web-ui/build/index.html +2 -2
- package/web-ui/build/static/{index-BVF_10a5.css → index-BmKxmRe3.css} +1 -1
- package/web-ui/build/static/{index-DE5VFS1q.js → index-BzXbDs8z.js} +63 -63
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x483976=a0_0x2ee9;(function(_0x526c48,_0x188503){const _0x3b1439=a0_0x2ee9,_0x332a2b=_0x526c48();while(!![]){try{const _0x4f98c6=parseInt(_0x3b1439(0x183))/0x1+-parseInt(_0x3b1439(0x169))/0x2+parseInt(_0x3b1439(0x16c))/0x3*(-parseInt(_0x3b1439(0x17c))/0x4)+-parseInt(_0x3b1439(0x15e))/0x5+parseInt(_0x3b1439(0x173))/0x6+-parseInt(_0x3b1439(0x176))/0x7*(-parseInt(_0x3b1439(0x17e))/0x8)+parseInt(_0x3b1439(0x157))/0x9;if(_0x4f98c6===_0x188503)break;else _0x332a2b['push'](_0x332a2b['shift']());}catch(_0x560c57){_0x332a2b['push'](_0x332a2b['shift']());}}}(a0_0x4031,0xc82cd));import a0_0x39aa88 from'typescript';import a0_0x4ec588 from'path';import{STATIC_ANALYSIS}from'../utilities/constants.js';function a0_0x2ee9(_0x28550c,_0xa450e6){_0x28550c=_0x28550c-0x14f;const _0x403126=a0_0x4031();let _0x2ee934=_0x403126[_0x28550c];if(a0_0x2ee9['krQnhB']===undefined){var _0x20dfcd=function(_0x48dc11){const _0x36437b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x39aa88='',_0x4ec588='';for(let _0xe75453=0x0,_0x6d6027,_0x150fbc,_0x35182e=0x0;_0x150fbc=_0x48dc11['charAt'](_0x35182e++);~_0x150fbc&&(_0x6d6027=_0xe75453%0x4?_0x6d6027*0x40+_0x150fbc:_0x150fbc,_0xe75453++%0x4)?_0x39aa88+=String['fromCharCode'](0xff&_0x6d6027>>(-0x2*_0xe75453&0x6)):0x0){_0x150fbc=_0x36437b['indexOf'](_0x150fbc);}for(let _0x1e2a6d=0x0,_0x4fcd0c=_0x39aa88['length'];_0x1e2a6d<_0x4fcd0c;_0x1e2a6d++){_0x4ec588+='%'+('00'+_0x39aa88['charCodeAt'](_0x1e2a6d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4ec588);};a0_0x2ee9['DZxqYh']=_0x20dfcd,a0_0x2ee9['jJTTgC']={},a0_0x2ee9['krQnhB']=!![];}const _0xbd9b83=_0x403126[0x0],_0x3a9aee=_0x28550c+_0xbd9b83,_0x59b7a0=a0_0x2ee9['jJTTgC'][_0x3a9aee];return!_0x59b7a0?(_0x2ee934=a0_0x2ee9['DZxqYh'](_0x2ee934),a0_0x2ee9['jJTTgC'][_0x3a9aee]=_0x2ee934):_0x2ee934=_0x59b7a0,_0x2ee934;}function a0_0x4031(){const _0x462cf7=['mtK1ntC1ndLZqNv5BLC','BwvZC2fNzq','BgLIlMqUDhm','zgvIDwC','Bg9Nz2vY','zMXHDhrLBKrPywDUB3n0AwnnzxnZywDLvgv4Da','rvjst1i','oda0mZK4nw9NCNPSqG','A2LUza','zMLSzq','y3jLyxrLuhjVz3jHBq','z2v0tgLUzufUzenOyxjHy3rLCK9Mug9ZAxrPB24','y2HHCMfJDgvY','tw9KDwXLuMvZB2X1DgLVBKTPBMq','u3LUDgf4igvYCM9Y','y2fUBM90igzPBMqGBw9KDwXL','zM9YBwf0rgLHz25VC3rPyW','C3LUDgf4lwvYCM9Y','mtm0ndyXmNL0uLH2Dq','y29TCgLSzxjpChrPB25Z','C3rHCNq','otG3svzTAe16','y2f0zwDVCNK','zxjYB3i','rgLHz25VC3rPy0nHDgvNB3j5','vfLqrq','rvnozxH0','u2nYAxb0vgfYz2v0','mZy1ntyWofrQs0T0yW','zgLYBMfTzq','u2vTyw50AwmGyw5HBhLZAxmGC2TPChbLza','mte5De5LAwnM','u0vwrvjjvfK','rxjYB3i','yw5HBhL6zq','uMvHy3q','z2v0u2vTyw50AwneAwfNBM9ZDgLJCW','mtC4otzKvurwBuW','qw5HBhLZAxmGzMfPBgvKoIa','nJq4nta0sxnfwwLt','Aw5JBhvKzxm','q0furuDpuLK','sMf2yvnJCMLWDcbHBMfSExnPCYbJB21WBgv0zwq','twvZC2fNzq','ndeYnty2vg1hAuvX','BgLUzq','ChvZAa','yw5HBhL6zxiTzxjYB3i','BgvUz3rO','C2v2zxjPDhK','v0fstKLorW','u3vNz2vZDgLVBG','z2v0u3rHCNq','u1Lovefy'];a0_0x4031=function(){return _0x462cf7;};return a0_0x4031();}class JavaScriptAnalyzer{constructor(_0xe75453=null){const _0x2e8a8a=a0_0x2ee9;this['logger']=_0xe75453,this[_0x2e8a8a(0x16a)]={'allowJs':!![],'checkJs':!![],'noEmit':!![],'jsx':a0_0x39aa88['JsxEmit'][_0x2e8a8a(0x17a)],'target':a0_0x39aa88[_0x2e8a8a(0x172)]['Latest'],'module':a0_0x39aa88['ModuleKind'][_0x2e8a8a(0x171)],'moduleResolution':a0_0x39aa88[_0x2e8a8a(0x164)]['NodeJs'],'esModuleInterop':!![],'skipLibCheck':!![],'strict':![],'noImplicitAny':![]};}async[a0_0x483976(0x179)](_0x6d6027,_0x150fbc,_0x35182e={}){const _0x19fb07=a0_0x483976;try{const _0x1e2a6d=[],_0x4fcd0c=a0_0x39aa88['createSourceFile'](_0x6d6027,_0x150fbc,a0_0x39aa88['ScriptTarget']['Latest'],!![]),_0x9a33b9=this['getSyntacticDiagnostics'](_0x4fcd0c);_0x1e2a6d['push'](..._0x9a33b9);const _0x4997c3=await this['getSemanticDiagnostics'](_0x6d6027,_0x150fbc);return _0x1e2a6d['push'](..._0x4997c3),this['logger']?.[_0x19fb07(0x15a)](_0x19fb07(0x181),{'file':_0x6d6027,'totalDiagnostics':_0x1e2a6d['length'],'errors':_0x1e2a6d['filter'](_0x38d46a=>_0x38d46a[_0x19fb07(0x152)]===STATIC_ANALYSIS['SEVERITY'][_0x19fb07(0x15d)])['length'],'warnings':_0x1e2a6d['filter'](_0x1d983d=>_0x1d983d['severity']===STATIC_ANALYSIS[_0x19fb07(0x177)]['WARNING'])[_0x19fb07(0x151)]}),_0x1e2a6d;}catch(_0xd432f3){return this['logger']?.[_0x19fb07(0x16e)]('JavaScript\x20analysis\x20failed',{'file':_0x6d6027,'error':_0xd432f3['message']}),[{'file':_0x6d6027,'line':0x0,'column':0x0,'severity':STATIC_ANALYSIS[_0x19fb07(0x177)][_0x19fb07(0x15d)],'rule':_0x19fb07(0x150),'message':_0x19fb07(0x17d)+_0xd432f3[_0x19fb07(0x158)],'category':STATIC_ANALYSIS[_0x19fb07(0x180)][_0x19fb07(0x156)]}];}}['getSyntacticDiagnostics'](_0x2f4eba){const _0x332da3=a0_0x483976,_0x20a540=[],_0x462cf6=_0x1fcb67=>{const _0x36c1de=a0_0x2ee9;if(_0x1fcb67[_0x36c1de(0x15f)]===a0_0x39aa88['SyntaxKind']['Unknown']){const _0x29ca9f=_0x2f4eba[_0x36c1de(0x162)](_0x1fcb67[_0x36c1de(0x155)]());_0x20a540['push']({'file':_0x2f4eba['fileName'],'line':_0x29ca9f['line']+0x1,'column':_0x29ca9f[_0x36c1de(0x163)]+0x1,'severity':STATIC_ANALYSIS['SEVERITY']['ERROR'],'rule':_0x36c1de(0x168),'message':_0x36c1de(0x165),'category':STATIC_ANALYSIS['CATEGORY']['SYNTAX'],'fixable':![]});}a0_0x39aa88['forEachChild'](_0x1fcb67,_0x462cf6);};_0x462cf6(_0x2f4eba);if(_0x2f4eba['parseDiagnostics']&&_0x2f4eba['parseDiagnostics'][_0x332da3(0x151)]>0x0)for(const _0x2bc4b0 of _0x2f4eba['parseDiagnostics']){_0x20a540[_0x332da3(0x14f)](this[_0x332da3(0x167)](_0x2bc4b0,_0x2f4eba));}return _0x20a540;}async[a0_0x483976(0x17b)](_0x3ec075,_0x3c4851){const _0x2f0e12=a0_0x483976,_0x43504d=[];try{const _0x1f5bbc=a0_0x39aa88['createSourceFile'](_0x3ec075,_0x3c4851,a0_0x39aa88[_0x2f0e12(0x172)]['Latest'],!![]),_0x2457aa={'getSourceFile':_0x562bd4=>{if(_0x562bd4===_0x3ec075)return _0x1f5bbc;return undefined;},'getDefaultLibFileName':()=>_0x2f0e12(0x159),'writeFile':()=>{},'getCurrentDirectory':()=>a0_0x4ec588[_0x2f0e12(0x174)](_0x3ec075),'getDirectories':()=>[],'fileExists':_0x33070a=>_0x33070a===_0x3ec075,'readFile':_0x2280dc=>{if(_0x2280dc===_0x3ec075)return _0x3c4851;return undefined;},'getCanonicalFileName':_0x4d2205=>_0x4d2205,'useCaseSensitiveFileNames':()=>!![],'getNewLine':()=>'\x0a'},_0x206bb3=a0_0x39aa88[_0x2f0e12(0x161)]({'rootNames':[_0x3ec075],'options':this[_0x2f0e12(0x16a)],'host':_0x2457aa}),_0x51e719=_0x206bb3[_0x2f0e12(0x17b)](_0x1f5bbc);for(const _0x5c3e97 of _0x51e719){_0x43504d['push'](this[_0x2f0e12(0x167)](_0x5c3e97,_0x1f5bbc));}}catch(_0x4c30fd){this[_0x2f0e12(0x15b)]?.['debug'](_0x2f0e12(0x175),{'file':_0x3ec075,'reason':_0x4c30fd[_0x2f0e12(0x158)]});}return _0x43504d;}['formatDiagnostic'](_0x4a0c23,_0x591219){const _0x41ac03=a0_0x483976;let _0x860659=0x0,_0x5e4950=0x0;if(_0x4a0c23[_0x41ac03(0x160)]&&_0x4a0c23[_0x41ac03(0x16b)]!==undefined){const _0x3a4f3b=_0x4a0c23[_0x41ac03(0x160)][_0x41ac03(0x162)](_0x4a0c23['start']);_0x860659=_0x3a4f3b[_0x41ac03(0x184)]+0x1,_0x5e4950=_0x3a4f3b[_0x41ac03(0x163)]+0x1;}else{if(_0x591219&&_0x4a0c23[_0x41ac03(0x16b)]!==undefined){const _0x46d17a=_0x591219['getLineAndCharacterOfPosition'](_0x4a0c23[_0x41ac03(0x16b)]);_0x860659=_0x46d17a['line']+0x1,_0x5e4950=_0x46d17a[_0x41ac03(0x163)]+0x1;}}const _0x43e5d0=a0_0x39aa88[_0x41ac03(0x15c)](_0x4a0c23['messageText'],'\x0a');let _0x1b6080;switch(_0x4a0c23[_0x41ac03(0x16d)]){case a0_0x39aa88['DiagnosticCategory'][_0x41ac03(0x178)]:_0x1b6080=STATIC_ANALYSIS[_0x41ac03(0x177)]['ERROR'];break;case a0_0x39aa88[_0x41ac03(0x16f)]['Warning']:_0x1b6080=STATIC_ANALYSIS[_0x41ac03(0x177)][_0x41ac03(0x153)];break;case a0_0x39aa88['DiagnosticCategory'][_0x41ac03(0x182)]:case a0_0x39aa88[_0x41ac03(0x16f)][_0x41ac03(0x154)]:_0x1b6080=STATIC_ANALYSIS[_0x41ac03(0x177)]['INFO'];break;default:_0x1b6080=STATIC_ANALYSIS[_0x41ac03(0x177)][_0x41ac03(0x15d)];}let _0x39f243=STATIC_ANALYSIS[_0x41ac03(0x180)]['SYNTAX'];const _0x4814c1=_0x4a0c23['code'];if(_0x4814c1>=0x7d0&&_0x4814c1<0xbb8)_0x39f243=STATIC_ANALYSIS[_0x41ac03(0x180)][_0x41ac03(0x170)];else{if(_0x4814c1>=0x3e8&&_0x4814c1<0x7d0)_0x39f243=STATIC_ANALYSIS['CATEGORY'][_0x41ac03(0x156)];else _0x4814c1>=0x8fc&&_0x4814c1<0x960&&(_0x39f243=STATIC_ANALYSIS['CATEGORY']['IMPORT']);}return(_0x43e5d0['toLowerCase']()[_0x41ac03(0x17f)](_0x41ac03(0x166))||_0x43e5d0['toLowerCase']()[_0x41ac03(0x17f)]('import'))&&(_0x39f243=STATIC_ANALYSIS[_0x41ac03(0x180)]['IMPORT']),{'file':_0x4a0c23[_0x41ac03(0x160)]?.['fileName']||_0x591219?.['fileName']||'unknown','line':_0x860659,'column':_0x5e4950,'severity':_0x1b6080,'rule':'TS'+_0x4814c1,'message':_0x43e5d0,'category':_0x39f243,'fixable':![],'code':_0x4a0c23['code']};}}export default JavaScriptAnalyzer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
const a0_0x41737c=a0_0x21ff;(function(_0x16f3b1,_0x23148a){const _0x3330f2=a0_0x21ff,_0x5c8e17=_0x16f3b1();while(!![]){try{const _0x148c15=parseInt(_0x3330f2(0x137))/0x1*(parseInt(_0x3330f2(0x142))/0x2)+parseInt(_0x3330f2(0x162))/0x3+-parseInt(_0x3330f2(0x15b))/0x4*(-parseInt(_0x3330f2(0x13f))/0x5)+-parseInt(_0x3330f2(0x14b))/0x6*(parseInt(_0x3330f2(0x131))/0x7)+-parseInt(_0x3330f2(0x12a))/0x8+-parseInt(_0x3330f2(0x12f))/0x9*(parseInt(_0x3330f2(0x12e))/0xa)+-parseInt(_0x3330f2(0x14e))/0xb*(-parseInt(_0x3330f2(0x146))/0xc);if(_0x148c15===_0x23148a)break;else _0x5c8e17['push'](_0x5c8e17['shift']());}catch(_0x2b0edf){_0x5c8e17['push'](_0x5c8e17['shift']());}}}(a0_0x104f,0x322e1));import a0_0x356653 from'prettier';import a0_0x56ca2f from'path';import a0_0x6e1b75 from'fs/promises';function a0_0x21ff(_0x4383ce,_0xe000a1){_0x4383ce=_0x4383ce-0x12a;const _0x104f91=a0_0x104f();let _0x21ff7d=_0x104f91[_0x4383ce];if(a0_0x21ff['OvYcMy']===undefined){var _0x429127=function(_0x3b0e10){const _0x2d136d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x356653='',_0x56ca2f='';for(let _0x6e1b75=0x0,_0x4429a7,_0xa81bca,_0x1a5f42=0x0;_0xa81bca=_0x3b0e10['charAt'](_0x1a5f42++);~_0xa81bca&&(_0x4429a7=_0x6e1b75%0x4?_0x4429a7*0x40+_0xa81bca:_0xa81bca,_0x6e1b75++%0x4)?_0x356653+=String['fromCharCode'](0xff&_0x4429a7>>(-0x2*_0x6e1b75&0x6)):0x0){_0xa81bca=_0x2d136d['indexOf'](_0xa81bca);}for(let _0x3c7bdf=0x0,_0x1b73a6=_0x356653['length'];_0x3c7bdf<_0x1b73a6;_0x3c7bdf++){_0x56ca2f+='%'+('00'+_0x356653['charCodeAt'](_0x3c7bdf)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x56ca2f);};a0_0x21ff['CEnRAs']=_0x429127,a0_0x21ff['nIxZNG']={},a0_0x21ff['OvYcMy']=!![];}const _0xf0f46=_0x104f91[0x0],_0x420608=_0x4383ce+_0xf0f46,_0x10440c=a0_0x21ff['nIxZNG'][_0x420608];return!_0x10440c?(_0x21ff7d=a0_0x21ff['CEnRAs'](_0x21ff7d),a0_0x21ff['nIxZNG'][_0x420608]=_0x21ff7d):_0x21ff7d=_0x10440c,_0x21ff7d;}class PrettierFormatter{constructor(_0x4429a7=null){const _0x3cb21b=a0_0x21ff;this['logger']=_0x4429a7,this[_0x3cb21b(0x138)]=new Map();}async[a0_0x41737c(0x155)](_0xa81bca,_0x1a5f42,_0x3c7bdf={}){const _0x568066=a0_0x41737c;try{const _0x1b73a6=await this['getPrettierConfig'](_0xa81bca,_0x3c7bdf['workingDir']),_0x11d747=this['getParser'](_0xa81bca),_0x2a8f56=await a0_0x356653[_0x568066(0x155)](_0x1a5f42,{..._0x1b73a6,'filepath':_0xa81bca,'parser':_0x11d747}),_0x5f297f=_0x2a8f56!==_0x1a5f42;return{'formatted':_0x5f297f,'content':_0x2a8f56,'original':_0x1a5f42,'changes':_0x5f297f?this['describeChanges'](_0x1a5f42,_0x2a8f56):[],'linesChanged':_0x5f297f?this[_0x568066(0x158)](_0x1a5f42,_0x2a8f56):0x0};}catch(_0x14d07f){this['logger']?.[_0x568066(0x148)](_0x568066(0x14c),{'file':_0xa81bca,'error':_0x14d07f['message']});throw new Error(_0x568066(0x149)+_0x14d07f['message']);}}async['check'](_0x38cef4,_0x306aaf,_0x1cd195={}){const _0x3699d9=a0_0x41737c;try{const _0xa0c242=await this['getPrettierConfig'](_0x38cef4,_0x1cd195[_0x3699d9(0x13e)]),_0x2c67cf=this[_0x3699d9(0x135)](_0x38cef4),_0x4f01e1=await a0_0x356653['format'](_0x306aaf,{..._0xa0c242,'filepath':_0x38cef4,'parser':_0x2c67cf});return _0x4f01e1!==_0x306aaf;}catch(_0x5878bf){return this['logger']?.['warn']('Prettier\x20check\x20failed',{'file':_0x38cef4,'error':_0x5878bf['message']}),![];}}async[a0_0x41737c(0x144)](_0x155fb3,_0x5be4b4){const _0x136793=a0_0x41737c,_0x5d4335=_0x5be4b4||a0_0x56ca2f[_0x136793(0x15c)](_0x155fb3);if(this[_0x136793(0x138)]['has'](_0x5d4335))return this['configCache']['get'](_0x5d4335);let _0x3d2b94={};if(_0x5be4b4)try{const _0x146b06=await a0_0x356653[_0x136793(0x15a)](_0x155fb3,{'config':_0x5be4b4});_0x146b06&&(this['logger']?.[_0x136793(0x136)]('Found\x20Prettier\x20config',{'workingDir':_0x5be4b4}),_0x3d2b94=_0x146b06);}catch(_0x302332){this[_0x136793(0x14a)]?.[_0x136793(0x136)]('No Prettier config found, using defaults');}const defaultConfig={'semi':!![],'singleQuote':!![],'tabWidth':0x2,'trailingComma':_0x136793(0x15d),'printWidth':0x64,'arrowParens':_0x136793(0x159),'endOfLine':'lf',..._0x3d2b94};return this[_0x136793(0x138)][_0x136793(0x156)](_0x5d4335,defaultConfig),defaultConfig;}[a0_0x41737c(0x135)](_0x4f9328){const _0x47cf0b=a0_0x41737c,_0x37da40=a0_0x56ca2f['extname'](_0x4f9328)['toLowerCase'](),_0xb6df3c={'.js':_0x47cf0b(0x12b),'.jsx':'babel','.mjs':'babel','.cjs':'babel','.ts':'typescript','.tsx':'typescript','.json':'json','.json5':_0x47cf0b(0x15e),'.css':_0x47cf0b(0x130),'.scss':_0x47cf0b(0x15f),'.less':'less','.html':_0x47cf0b(0x160),'.vue':_0x47cf0b(0x12c),'.md':_0x47cf0b(0x157),'.yaml':'yaml','.yml':_0x47cf0b(0x133)};return _0xb6df3c[_0x37da40]||'babel';}[a0_0x41737c(0x13c)](_0x215b60,_0x23534e){const _0x13810f=a0_0x41737c,_0x271776=[],_0xdeb847=_0x215b60['split']('\x0a'),_0x20f6ba=_0x23534e['split']('\x0a'),_0x36f0d0=Math['max'](_0xdeb847[_0x13810f(0x141)],_0x20f6ba['length']);for(let _0x1ea02b=0x0;_0x1ea02b<_0x36f0d0;_0x1ea02b++){const _0x54a17b=_0xdeb847[_0x1ea02b],_0x278556=_0x20f6ba[_0x1ea02b];_0x54a17b!==_0x278556&&_0x271776[_0x13810f(0x154)]({'line':_0x1ea02b+0x1,'type':_0x54a17b!==undefined&&_0x278556!==undefined?_0x13810f(0x153):_0x54a17b!==undefined?'removed':_0x13810f(0x147),'original':_0x54a17b||'','formatted':_0x278556||''});}return _0x271776;}[a0_0x41737c(0x158)](_0x4841cf,_0x3de002){const _0x2f2514=a0_0x41737c,_0x20ca2f=_0x4841cf[_0x2f2514(0x13a)]('\x0a'),_0x4fbc81=_0x3de002[_0x2f2514(0x13a)]('\x0a');let _0x803e95=0x0;const _0xbe7143=Math[_0x2f2514(0x145)](_0x20ca2f['length'],_0x4fbc81[_0x2f2514(0x141)]);for(let _0x1f8861=0x0;_0x1f8861<_0xbe7143;_0x1f8861++){_0x20ca2f[_0x1f8861]!==_0x4fbc81[_0x1f8861]&&_0x803e95++;}return _0x803e95;}['getSupportedExtensions'](){const _0x20820d=a0_0x41737c;return[_0x20820d(0x152),'.jsx','.mjs','.cjs',_0x20820d(0x12d),_0x20820d(0x14d),_0x20820d(0x140),_0x20820d(0x150),_0x20820d(0x134),_0x20820d(0x13d),_0x20820d(0x151),'.html',_0x20820d(0x143),'.md',_0x20820d(0x161),_0x20820d(0x14f)];}[a0_0x41737c(0x132)](_0x5c09f4){const _0x2dbe2f=a0_0x41737c,_0x32041e=a0_0x56ca2f['extname'](_0x5c09f4)[_0x2dbe2f(0x13b)]();return this['getSupportedExtensions']()[_0x2dbe2f(0x139)](_0x32041e);}}export default PrettierFormatter;function a0_0x104f(){const _0x33ef41=['C3bSAxq','Dg9mB3DLCKnHC2u','zgvZy3jPyMvdAgfUz2vZ','lNnJC3m','D29YA2LUz0rPCG','mte5mtqWr05xsMPq','lMPZB24','BgvUz3rO','ndeXmhbWt3bKCG','lNz1zq','z2v0uhjLDhrPzxjdB25MAwC','Bwf4','mtj5B1Dfz0y','ywrKzwq','zxjYB3i','uhjLDhrPzxiGzM9YBwf0DgLUzYbMywLSzwq6ia','Bg9Nz2vY','nNrnsxPzsW','uhjLDhrPzxiGzM9YBwf0DgLUzYbMywLSzwq','lNrZEa','mZuZnZCYmvPvz09sAa','lNLTBa','lMPZB241','lMXLC3m','lMPZ','Bw9KAwzPzwq','ChvZAa','zM9YBwf0','C2v0','BwfYA2rVD24','y291BNrdAgfUz2vKtgLUzxm','yxzVAwq','CMvZB2X2zunVBMzPzW','nhbQC29rta','zgLYBMfTzq','zxm1','ANnVBJu','C2nZCW','AhrTBa','lNLHBwW','nZq0mdq1DMf5wfDP','mtaWotiWmhHgvfHpAG','yMfIzwW','DNvL','lNrZ','mtbTy2z3Bee','mZi5nZq0n2jNyu50qq','y3nZ','mZe3nZKZwxzTDLfJ','AxntDxbWB3j0zwq','EwfTBa','lMnZCW','z2v0ugfYC2vY','zgvIDwC','nZnmr1fJsuK','y29UzMLNq2fJAgu','Aw5JBhvKzxm'];a0_0x104f=function(){return _0x33ef41;};return a0_0x104f();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x1e5e77=a0_0x1bbd;(function(_0x479640,_0x5917b8){const _0x3b952b=a0_0x1bbd,_0x101411=_0x479640();while(!![]){try{const _0xaa679d=parseInt(_0x3b952b(0xe6))/0x1*(parseInt(_0x3b952b(0xf0))/0x2)+parseInt(_0x3b952b(0xf2))/0x3+-parseInt(_0x3b952b(0xf1))/0x4+parseInt(_0x3b952b(0xda))/0x5*(parseInt(_0x3b952b(0xd7))/0x6)+-parseInt(_0x3b952b(0xd6))/0x7*(-parseInt(_0x3b952b(0xd5))/0x8)+parseInt(_0x3b952b(0xee))/0x9*(-parseInt(_0x3b952b(0xea))/0xa)+parseInt(_0x3b952b(0xde))/0xb*(-parseInt(_0x3b952b(0xf3))/0xc);if(_0xaa679d===_0x5917b8)break;else _0x101411['push'](_0x101411['shift']());}catch(_0x271454){_0x101411['push'](_0x101411['shift']());}}}(a0_0x1c29,0xa26b0));function a0_0x1c29(){const _0x52473e=['q0furuDpuLK','DxrMltG','z2v0uhL0Ag9Uq29TBwfUza','Dg9tDhjPBMC','q29TBwfUzcb0Aw1LB3v0','u1Lovefy','mZyWmJa1suDjsNzc','CNvUq29TBwfUza','zxjYB3jZ','C3rKzxjY','mZboDePly3a','lNb5','BgvUz3rO','ChvZAa','mZaWnJLoBMHzuLK','zgvIDwC','mNz2twjJAW','ndy5mdC4ohH1s3jdra','mtKZnZiXmvHrzwXtqG','mJG4mJq2mgjmvfP2AG','uhL0Ag9UigfUywX5C2LZignVBxbSzxrLza','y2HLy2TtEw50yxG','u0vwrvjjvfK','v0fstKLorW','C2v2zxjPDhK','AM9PBG','BwvZC2fNzq','Dw5SAw5R','zxjYB3i','cMLTCg9YDcbHC3qkAw1WB3j0ihn5CWPPBxbVCNqGANnVBGOkzgvMignOzwnRx3n5BNrHEcHMAwXLCgf0AcK6cIaGicb0CNK6cIaGicaGicaGD2L0AcbVCgvUkgzPBgvWyxrOlcaNCICSigvUy29KAw5NpsD1DgyTocCPigfZigy6cIaGicaGicaGicaGihnVDxjJzsa9igyUCMvHzcGPcGOGicaGicaGicmGvhj5ihrVihbHCNnLihrOzsbMAwXLcIaGicaGicaGyxn0lNbHCNnLkhnVDxjJzsWGzMLSzw5HBwu9zMLSzxbHDgGPcGOGicaGicaGicmGswyGC3vJy2vZC2z1BcWGBM8GzxjYB3jZcIaGicaGicaGChjPBNqOANnVBI5KDw1WCYH7iNn1y2nLC3mIoIbuCNvLlcaIzxjYB3jZiJOGw119ksKkcIaGicbLEgnLChqGu3LUDgf4rxjYB3iGyxmGztOkicaGicaGicbLCNjVCIa9ihSkicaGicaGicaGicaGiMzPBguIoIbMAwXLCgf0AcWkicaGicaGicaGicaGiMXPBMuIoIbLlMXPBMvUBYbVCIaXlaOGicaGicaGicaGicaIy29SDw1UiJOGzs5VzMzZzxqGB3iGmsWkicaGicaGicaGicaGiM1LC3nHz2uIoIbZDhiOzs5TC2CPlaOGicaGicaGicaGicaIDgv4Dci6iguUDgv4Dc5ZDhjPCcGPigLMiguUDgv4DcbLBhnLiciIcIaGicaGicaGFqOGicaGicaGihbYAw50kgPZB24UzhvTChmOEYjZDwnJzxnZiJOGrMfSC2uSicjLCNjVCNmIoIbBzxjYB3jDFsKPcGOGicaGzxHJzxb0iev4y2vWDgLVBIbHCYbLoGOGicaGicaGigvYCM9Yid0GEWOGicaGicaGicaGicaIzMLSzsi6igzPBgvWyxrOlaOGicaGicaGicaGicaIBgLUzsi6ideScIaGicaGicaGicaGicjJB2X1Bw4IoIaXlaOGicaGicaGicaGicaIBwvZC2fNzsi6ihn0CIHLksWkicaGicaGicaGicaGiNrLEhqIoIaIiGOGicaGicaGih0kicaGicaGicbWCMLUDcHQC29UlMr1BxbZkhSIC3vJy2vZCYi6iezHBhnLlcaIzxjYB3jZiJOGw2vYCM9Yxx0PkqOkAwyGx19Uyw1Lx18Gpt0GiL9FBwfPBL9FiJOkicaGigLMigXLBIHZExmUyxjNDIKGpIaXoGOGicaGicaGignOzwnRx3n5BNrHEcHZExmUyxjNDLSXxsKkicaGigvSC2u6cIaGicaGicaGChjPBNqOANnVBI5KDw1WCYH7iNn1y2nLC3mIoIbgywXZzsWGiMvYCM9YCYi6ifT7iM1LC3nHz2uIoIaItM8GzMLSzsbZCgvJAwzPzwqIFv19ksKk','ChL0Ag9Uq29TBwfUza','rvjst1i','D3jPDgvgAwXL','zgf0yq','CgfYC2u','uhL0Ag9Uig5VDcbHDMfPBgfIBguSihnRAxbWAw5NigfUywX5C2LZ','ChL0Ag9U','CNvUuhL0Ag9Uu2nYAxb0','BM93','DgfYz2v0xW','mtztsK5WDxO','mtK2mda5mwrRs0LxDW','nJuZnta4ENfbvNnl','C3rKB3v0','Bg9Nz2vY','mZvWCejRsui','C3vJy2vZCW','zMLSDgvY','uhL0Ag9UigfUywX5C2LZigzHAwXLza','mJjUzwTXzMq','z2v0u3vWCg9YDgvKrxH0zw5ZAw9UCW'];a0_0x1c29=function(){return _0x52473e;};return a0_0x1c29();}import{spawn}from'child_process';function a0_0x1bbd(_0x4aae9f,_0x431cb3){_0x4aae9f=_0x4aae9f-0xc3;const _0x1c29bd=a0_0x1c29();let _0x1bbd24=_0x1c29bd[_0x4aae9f];if(a0_0x1bbd['cXdeLz']===undefined){var _0x23a98c=function(_0x42cd41){const _0x592e31='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x58c1a2='',_0x28d809='';for(let _0x5dad46=0x0,_0x12d0c4,_0x48a8fa,_0x5d82cf=0x0;_0x48a8fa=_0x42cd41['charAt'](_0x5d82cf++);~_0x48a8fa&&(_0x12d0c4=_0x5dad46%0x4?_0x12d0c4*0x40+_0x48a8fa:_0x48a8fa,_0x5dad46++%0x4)?_0x58c1a2+=String['fromCharCode'](0xff&_0x12d0c4>>(-0x2*_0x5dad46&0x6)):0x0){_0x48a8fa=_0x592e31['indexOf'](_0x48a8fa);}for(let _0x22d0ca=0x0,_0x45c4e0=_0x58c1a2['length'];_0x22d0ca<_0x45c4e0;_0x22d0ca++){_0x28d809+='%'+('00'+_0x58c1a2['charCodeAt'](_0x22d0ca)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x28d809);};a0_0x1bbd['ixvgeu']=_0x23a98c,a0_0x1bbd['JQMPKb']={},a0_0x1bbd['cXdeLz']=!![];}const _0x29eb60=_0x1c29bd[0x0],_0x1dd4c7=_0x4aae9f+_0x29eb60,_0x1070a4=a0_0x1bbd['JQMPKb'][_0x1dd4c7];return!_0x1070a4?(_0x1bbd24=a0_0x1bbd['ixvgeu'](_0x1bbd24),a0_0x1bbd['JQMPKb'][_0x1dd4c7]=_0x1bbd24):_0x1bbd24=_0x1070a4,_0x1bbd24;}import{STATIC_ANALYSIS}from'../utilities/constants.js';import a0_0x58c1a2 from'fs/promises';import a0_0x28d809 from'path';import a0_0x5dad46 from'os';class PythonAnalyzer{constructor(_0x12d0c4=null){const _0x5cdc44=a0_0x1bbd;this[_0x5cdc44(0xd9)]=_0x12d0c4,this[_0x5cdc44(0xcb)]=null;}async['analyze'](_0x48a8fa,_0x5d82cf,_0x22d0ca={}){const _0x557752=a0_0x1bbd;try{const _0x45c4e0=[],_0x13da85=await this[_0x557752(0xe2)]();if(!_0x13da85)return this[_0x557752(0xd9)]?.['warn'](_0x557752(0xd0)),[];const _0x4e2d8a=await this[_0x557752(0xf5)](_0x48a8fa,_0x5d82cf,_0x13da85);return _0x45c4e0[_0x557752(0xed)](..._0x4e2d8a),this['logger']?.[_0x557752(0xef)](_0x557752(0xf4),{'file':_0x48a8fa,'totalDiagnostics':_0x45c4e0[_0x557752(0xec)],'errors':_0x45c4e0[_0x557752(0xdc)](_0xe3eab=>_0xe3eab[_0x557752(0xc5)]===STATIC_ANALYSIS['SEVERITY']['ERROR'])[_0x557752(0xec)],'warnings':_0x45c4e0['filter'](_0x4e48de=>_0x4e48de[_0x557752(0xc5)]===STATIC_ANALYSIS['SEVERITY'][_0x557752(0xc4)])['length']}),_0x45c4e0;}catch(_0x419b07){return this[_0x557752(0xd9)]?.['error'](_0x557752(0xdd),{'file':_0x48a8fa,'error':_0x419b07[_0x557752(0xc7)]}),[];}}async['checkSyntax'](_0x1eee06,_0x28b8d8,_0x490a32){const _0x392ace=a0_0x1bbd,_0x16ca63=[],_0x2cd199=a0_0x5dad46['tmpdir'](),_0x3f04cb=a0_0x28d809['join'](_0x2cd199,'syntax_check_'+Date['now']()+'.py'),_0x1b4a4d=a0_0x28d809[_0x392ace(0xc6)](_0x2cd199,_0x392ace(0xd4)+Date[_0x392ace(0xd3)]()+_0x392ace(0xeb));try{await a0_0x58c1a2[_0x392ace(0xcd)](_0x1b4a4d,_0x28b8d8,_0x392ace(0xe1));const _0x4ab131=_0x392ace(0xca);await a0_0x58c1a2[_0x392ace(0xcd)](_0x3f04cb,_0x4ab131,_0x392ace(0xe1));const _0x19d18a=await this['runPythonScript'](_0x490a32,_0x3f04cb,[_0x1b4a4d]);try{const _0x5c4f8d=JSON[_0x392ace(0xcf)](_0x19d18a[_0x392ace(0xd8)]);if(!_0x5c4f8d[_0x392ace(0xdb)]&&_0x5c4f8d[_0x392ace(0xe8)])for(const _0x54de27 of _0x5c4f8d[_0x392ace(0xe8)]){_0x16ca63['push']({'file':_0x1eee06,'line':_0x54de27['line']||0x1,'column':_0x54de27['column']||0x1,'severity':STATIC_ANALYSIS[_0x392ace(0xc3)][_0x392ace(0xcc)],'rule':'SyntaxError','message':_0x54de27['message'],'category':STATIC_ANALYSIS[_0x392ace(0xe0)][_0x392ace(0xe5)],'fixable':![],'source':'python-ast','code':_0x54de27['text']||undefined});}}catch(_0x5b959b){this[_0x392ace(0xd9)]?.['warn']('Failed\x20to\x20parse\x20Python\x20syntax\x20check\x20result',{'error':_0x5b959b['message'],'stdout':_0x19d18a[_0x392ace(0xd8)]});}}finally{try{await a0_0x58c1a2[_0x392ace(0xc8)](_0x3f04cb),await a0_0x58c1a2['unlink'](_0x1b4a4d);}catch{}}return _0x16ca63;}async['getPythonCommand'](){const _0x2b2b21=a0_0x1bbd;if(this['pythonCommand'])return this['pythonCommand'];const _0x40b7cf=['python3',_0x2b2b21(0xd1)];for(const _0x114e9a of _0x40b7cf){try{const _0x3190b4=await this['runCommand'](_0x114e9a,['--version']);if(_0x3190b4['success'])return this['pythonCommand']=_0x114e9a,this['logger']?.['debug']('Found\x20Python\x20command',{'command':_0x114e9a,'version':_0x3190b4[_0x2b2b21(0xd8)]['trim']()}),_0x114e9a;}catch{}}return null;}async[a0_0x1e5e77(0xd2)](_0x30fa77,_0x1b42dc,_0x1aab01=[]){const _0x2d5034=a0_0x1e5e77;return this[_0x2d5034(0xe7)](_0x30fa77,[_0x1b42dc,..._0x1aab01]);}async[a0_0x1e5e77(0xe7)](_0x423b3c,_0x36c8e7=[],_0x7ec179={}){return new Promise((_0x1280d9,_0x6999ae)=>{const _0x57a459=a0_0x1bbd,_0x4b6a99=spawn(_0x423b3c,_0x36c8e7,{..._0x7ec179,'shell':!![]});let _0x8e1caf='',_0x3ac38e='';_0x4b6a99['stdout']?.['on'](_0x57a459(0xce),_0x4c98aa=>{_0x8e1caf+=_0x4c98aa['toString']();}),_0x4b6a99[_0x57a459(0xe9)]?.['on'](_0x57a459(0xce),_0xabd54f=>{const _0x3d91df=_0x57a459;_0x3ac38e+=_0xabd54f[_0x3d91df(0xe3)]();}),_0x4b6a99['on'](_0x57a459(0xc9),_0x4b1140=>{_0x6999ae(_0x4b1140);}),_0x4b6a99['on']('close',_0x576a38=>{_0x1280d9({'success':_0x576a38===0x0,'code':_0x576a38,'stdout':_0x8e1caf,'stderr':_0x3ac38e});}),setTimeout(()=>{const _0x1a4848=_0x57a459;_0x4b6a99['kill'](),_0x6999ae(new Error(_0x1a4848(0xe4)));},0x2710);});}[a0_0x1e5e77(0xdf)](){return['.py'];}['supportsAutoFix'](){return![];}}export default PythonAnalyzer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x49eb50=a0_0x4cd6;(function(_0x253ade,_0x1cf3a3){const _0x477b75=a0_0x4cd6,_0x552cdd=_0x253ade();while(!![]){try{const _0x2eb4b3=parseInt(_0x477b75(0xed))/0x1*(-parseInt(_0x477b75(0x153))/0x2)+parseInt(_0x477b75(0x137))/0x3*(-parseInt(_0x477b75(0x13c))/0x4)+-parseInt(_0x477b75(0x12b))/0x5+parseInt(_0x477b75(0xfb))/0x6*(parseInt(_0x477b75(0x147))/0x7)+-parseInt(_0x477b75(0x162))/0x8*(-parseInt(_0x477b75(0x130))/0x9)+-parseInt(_0x477b75(0x126))/0xa*(parseInt(_0x477b75(0x12a))/0xb)+parseInt(_0x477b75(0x145))/0xc;if(_0x2eb4b3===_0x1cf3a3)break;else _0x552cdd['push'](_0x552cdd['shift']());}catch(_0x2597b8){_0x552cdd['push'](_0x552cdd['shift']());}}}(a0_0x21e6,0x4ce9f));import{exec}from'child_process';import{promisify}from'util';import a0_0x2d46a7 from'path';import a0_0x44e6b4 from'fs/promises';function a0_0x4cd6(_0x1042bd,_0x55dcb3){_0x1042bd=_0x1042bd-0xe4;const _0x21e602=a0_0x21e6();let _0x4cd6c3=_0x21e602[_0x1042bd];if(a0_0x4cd6['vMaRbT']===undefined){var _0xf807b1=function(_0x482685){const _0x183649='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2d46a7='',_0x44e6b4='';for(let _0x1c7a38=0x0,_0x3009fb,_0x3edad0,_0x111a4d=0x0;_0x3edad0=_0x482685['charAt'](_0x111a4d++);~_0x3edad0&&(_0x3009fb=_0x1c7a38%0x4?_0x3009fb*0x40+_0x3edad0:_0x3edad0,_0x1c7a38++%0x4)?_0x2d46a7+=String['fromCharCode'](0xff&_0x3009fb>>(-0x2*_0x1c7a38&0x6)):0x0){_0x3edad0=_0x183649['indexOf'](_0x3edad0);}for(let _0x7ebf0=0x0,_0x53a628=_0x2d46a7['length'];_0x7ebf0<_0x53a628;_0x7ebf0++){_0x44e6b4+='%'+('00'+_0x2d46a7['charCodeAt'](_0x7ebf0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x44e6b4);};a0_0x4cd6['lzxKXm']=_0xf807b1,a0_0x4cd6['oTZpxj']={},a0_0x4cd6['vMaRbT']=!![];}const _0x1ef6c9=_0x21e602[0x0],_0x409c77=_0x1042bd+_0x1ef6c9,_0x3227ab=a0_0x4cd6['oTZpxj'][_0x409c77];return!_0x3227ab?(_0x4cd6c3=a0_0x4cd6['lzxKXm'](_0x4cd6c3),a0_0x4cd6['oTZpxj'][_0x409c77]=_0x4cd6c3):_0x4cd6c3=_0x3227ab,_0x4cd6c3;}import{STATIC_ANALYSIS}from'../utilities/constants.js';const execAsync=promisify(exec);class SecurityAnalyzer{constructor(_0x1c7a38=null){const _0xb8412b=a0_0x4cd6;this[_0xb8412b(0x142)]=_0x1c7a38,this['availableScanners']=null,this['scannerCache']=new Map(),this[_0xb8412b(0x150)]=a0_0x2d46a7[_0xb8412b(0x10d)](process[_0xb8412b(0xf6)](),_0xb8412b(0x108),'.scanners');}async[a0_0x49eb50(0xfc)](){const _0x2f8f83=a0_0x49eb50;if(this[_0x2f8f83(0x14d)]!==null)return this['availableScanners'];const _0x3009fb={'semgrep':![],'bandit':![],'npmAudit':![],'pipAudit':![],'eslintSecurity':![]};try{const _0x3edad0=a0_0x2d46a7[_0x2f8f83(0x10d)](this['localScannerDir'],_0x2f8f83(0x11b));try{await a0_0x44e6b4['access'](_0x3edad0),_0x3009fb['semgrep']=!![],this[_0x2f8f83(0x142)]?.['debug'](_0x2f8f83(0x116));}catch{await execAsync('semgrep\x20--version',{'timeout':0x1388}),_0x3009fb[_0x2f8f83(0x11b)]=!![],this[_0x2f8f83(0x142)]?.[_0x2f8f83(0x122)](_0x2f8f83(0xf8));}}catch(_0x111a4d){this[_0x2f8f83(0x142)]?.[_0x2f8f83(0x122)]('Semgrep\x20not\x20available',{'error':_0x111a4d[_0x2f8f83(0xf4)]});}try{await execAsync(_0x2f8f83(0x114),{'timeout':0x1388}),_0x3009fb[_0x2f8f83(0x158)]=!![],this['logger']?.['debug'](_0x2f8f83(0xff));}catch(_0x7ebf0){this['logger']?.[_0x2f8f83(0x122)](_0x2f8f83(0x149),{'error':_0x7ebf0['message']});}try{await execAsync(_0x2f8f83(0x132),{'timeout':0x1388}),_0x3009fb[_0x2f8f83(0x102)]=!![],this['logger']?.['debug'](_0x2f8f83(0x104));}catch(_0x53a628){this[_0x2f8f83(0x142)]?.[_0x2f8f83(0x122)]('npm\x20not\x20available',{'error':_0x53a628['message']});}try{await execAsync(_0x2f8f83(0x119),{'timeout':0x1388}),_0x3009fb['pipAudit']=!![],this['logger']?.[_0x2f8f83(0x122)](_0x2f8f83(0x13d));}catch(_0x5c1c58){this['logger']?.[_0x2f8f83(0x122)]('pip-audit\x20not\x20available',{'error':_0x5c1c58[_0x2f8f83(0xf4)]});}try{const _0x341126=await execAsync('npm\x20list\x20eslint-plugin-security\x20--depth=0\x20--json',{'timeout':0x1388,'cwd':process['cwd']()}),_0xeb6367=JSON[_0x2f8f83(0x123)](_0x341126['stdout']);_0xeb6367['dependencies']&&_0xeb6367[_0x2f8f83(0x165)][_0x2f8f83(0x14e)]&&(_0x3009fb[_0x2f8f83(0x115)]=!![],this[_0x2f8f83(0x142)]?.[_0x2f8f83(0x122)](_0x2f8f83(0x112)));}catch(_0x15798c){this['logger']?.['debug'](_0x2f8f83(0xf3),{'error':_0x15798c['message']});}return this[_0x2f8f83(0x14d)]=_0x3009fb,_0x3009fb;}async[a0_0x49eb50(0x146)](_0x5dfe91,_0x323ff2,_0x3e6ef8={}){const _0x48f572=a0_0x49eb50,_0x134786=[],_0xc78cd2=await this['detectAvailableScanners'](),_0x15ac17=this['detectLanguage'](_0x5dfe91);if(_0x3e6ef8[_0x48f572(0x151)]!==![]&&this[_0x48f572(0x144)](_0x5dfe91))return this['logger']?.['debug'](_0x48f572(0x11a),{'filePath':_0x5dfe91}),[];if(_0x15ac17==='javascript'||_0x15ac17===_0x48f572(0x12c)){if(_0xc78cd2['semgrep']){const _0x44f31=await this[_0x48f572(0x11c)](_0x5dfe91,[_0x15ac17],_0x3e6ef8);_0x134786['push'](..._0x44f31);}if(_0xc78cd2['eslintSecurity']){const _0x38ec9c=await this['runESLintSecurity'](_0x5dfe91,_0x323ff2,_0x3e6ef8);_0x134786['push'](..._0x38ec9c);}}if(_0x15ac17==='python'){if(_0xc78cd2['bandit']){const _0x157d8e=await this['runBandit'](_0x5dfe91,_0x3e6ef8);_0x134786[_0x48f572(0x111)](..._0x157d8e);}if(_0xc78cd2[_0x48f572(0x11b)]){const _0x7051aa=await this[_0x48f572(0x11c)](_0x5dfe91,[_0x15ac17],_0x3e6ef8);_0x134786['push'](..._0x7051aa);}}return _0x134786['length']===0x0&&!this['hasScannersForLanguage'](_0xc78cd2,_0x15ac17)&&this['logger']?.['warn'](_0x48f572(0x113),{'language':_0x15ac17,'filePath':_0x5dfe91}),this['normalizeResults'](_0x134786);}async['analyzeProject'](_0x3d15b3,_0x3268fb,_0x1f635d={}){const _0x21682b=a0_0x49eb50,_0x46f21c=[],_0x5e2a7f=await this[_0x21682b(0xfc)]();if(_0x3268fb===_0x21682b(0xeb)||_0x3268fb==='typescript'){if(_0x5e2a7f['npmAudit']){const _0x52eff2=await this['runNpmAudit'](_0x3d15b3,_0x1f635d);_0x46f21c[_0x21682b(0x111)](..._0x52eff2);}}if(_0x3268fb===_0x21682b(0x134)){if(_0x5e2a7f[_0x21682b(0x10f)]){const _0x190f21=await this['runPipAudit'](_0x3d15b3,_0x1f635d);_0x46f21c['push'](..._0x190f21);}}return this['normalizeResults'](_0x46f21c);}async[a0_0x49eb50(0x11c)](_0x29ba33,_0x383e2e,_0x5c07c1={}){const _0x4fddde=a0_0x49eb50;try{const _0x251f14=a0_0x2d46a7['dirname'](_0x29ba33),_0xbc20ec=await execAsync(_0x4fddde(0x13b)+_0x29ba33+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530,'cwd':_0x251f14}),_0x29697f=JSON['parse'](_0xbc20ec[_0x4fddde(0x100)]);return this['parseSemgrepResults'](_0x29697f);}catch(_0x3359f5){if(_0x3359f5[_0x4fddde(0x100)])try{const _0x39a6ef=JSON['parse'](_0x3359f5['stdout']);return this[_0x4fddde(0xf9)](_0x39a6ef);}catch(_0x42a1c0){this[_0x4fddde(0x142)]?.[_0x4fddde(0x109)](_0x4fddde(0xee),{'error':_0x42a1c0[_0x4fddde(0xf4)],'stdout':_0x3359f5['stdout']});}return this['logger']?.['error']('Semgrep\x20scan\x20failed',{'error':_0x3359f5['message']}),[];}}[a0_0x49eb50(0xf9)](_0x2531f7){const _0x376a97=a0_0x49eb50,_0x44482a=[];if(_0x2531f7[_0x376a97(0x12f)]&&Array[_0x376a97(0x141)](_0x2531f7['results']))for(const _0x40135c of _0x2531f7[_0x376a97(0x12f)]){_0x44482a['push']({'file':_0x40135c[_0x376a97(0x13f)],'line':_0x40135c['start']?.[_0x376a97(0x107)]||0x1,'column':_0x40135c[_0x376a97(0x15c)]?.['col']||0x1,'severity':this[_0x376a97(0x135)](_0x40135c['extra']?.['severity']),'rule':_0x40135c[_0x376a97(0xfd)],'message':_0x40135c['extra']?.[_0x376a97(0xf4)]||_0x40135c[_0x376a97(0x101)]?.[_0x376a97(0xf5)]||'Security\x20issue\x20detected','category':'security','scanner':_0x376a97(0x11b),'cwe':_0x40135c['extra']?.['metadata']?.[_0x376a97(0xe8)],'owasp':_0x40135c['extra']?.[_0x376a97(0xe5)]?.['owasp'],'confidence':_0x40135c['extra']?.[_0x376a97(0xe5)]?.[_0x376a97(0x156)],'references':_0x40135c['extra']?.['metadata']?.['references']});}return _0x44482a;}async['runBandit'](_0x54f09a,_0x528d0f={}){const _0x332bed=a0_0x49eb50;try{const _0x57e29f=await execAsync('bandit\x20-f\x20json\x20\x22'+_0x54f09a+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530}),_0x482aaa=JSON[_0x332bed(0x123)](_0x57e29f[_0x332bed(0x100)]);return this['parseBanditResults'](_0x482aaa);}catch(_0x4a753d){if(_0x4a753d['stdout'])try{const _0x2fb34c=JSON['parse'](_0x4a753d['stdout']);return this['parseBanditResults'](_0x2fb34c);}catch(_0x505fc9){this['logger']?.[_0x332bed(0x109)]('Failed\x20to\x20parse\x20Bandit\x20output',{'error':_0x505fc9['message']});}return this['logger']?.[_0x332bed(0x109)]('Bandit\x20scan\x20failed',{'error':_0x4a753d[_0x332bed(0xf4)]}),[];}}['parseBanditResults'](_0x235045){const _0xd05e74=a0_0x49eb50,_0x164bc8=[];if(_0x235045[_0xd05e74(0x12f)]&&Array['isArray'](_0x235045[_0xd05e74(0x12f)]))for(const _0x15b725 of _0x235045['results']){_0x164bc8[_0xd05e74(0x111)]({'file':_0x15b725[_0xd05e74(0x11e)],'line':_0x15b725['line_number']||0x1,'column':_0x15b725['col_offset']||0x1,'severity':this[_0xd05e74(0x10e)](_0x15b725[_0xd05e74(0x13e)]),'rule':_0x15b725['test_id'],'message':_0x15b725[_0xd05e74(0x159)],'category':_0xd05e74(0x15a),'scanner':'bandit','cwe':_0x15b725[_0xd05e74(0x11f)]?.['id']?'CWE-'+_0x15b725[_0xd05e74(0x11f)]['id']:null,'confidence':_0x15b725[_0xd05e74(0x152)],'moreInfo':_0x15b725['more_info']});}return _0x164bc8;}async[a0_0x49eb50(0xe9)](_0x235aeb,_0x3bab8e,_0x2f9071={}){const _0x4ae260=a0_0x49eb50;try{const {ESLint:_0x1724d9}=await import('eslint'),_0x4578d2=new _0x1724d9({'overrideConfig':{'plugins':[_0x4ae260(0x15a)],'extends':['plugin:security/recommended'],'parserOptions':{'ecmaVersion':'latest','sourceType':_0x4ae260(0x120)}},'useEslintrc':![]}),_0x46ce5c=await _0x4578d2[_0x4ae260(0xe6)](_0x3bab8e,{'filePath':_0x235aeb});return this['parseESLintResults'](_0x46ce5c,_0x235aeb);}catch(_0x4cc105){return this[_0x4ae260(0x142)]?.['error']('ESLint\x20security\x20scan\x20failed',{'error':_0x4cc105[_0x4ae260(0xf4)],'filePath':_0x235aeb}),[];}}['parseESLintResults'](_0x3ce353,_0x29a28f){const _0x1ce082=a0_0x49eb50,_0xcb78f5=[];for(const _0x4fab7d of _0x3ce353){if(_0x4fab7d['messages']&&Array['isArray'](_0x4fab7d['messages']))for(const _0x31b7a7 of _0x4fab7d[_0x1ce082(0xef)]){_0x31b7a7['ruleId']&&_0x31b7a7[_0x1ce082(0x124)]['startsWith'](_0x1ce082(0x161))&&_0xcb78f5[_0x1ce082(0x111)]({'file':_0x29a28f,'line':_0x31b7a7['line']||0x1,'column':_0x31b7a7[_0x1ce082(0x148)]||0x1,'severity':this['mapESLintSeverity'](_0x31b7a7['severity']),'rule':_0x31b7a7[_0x1ce082(0x124)],'message':_0x31b7a7['message'],'category':'security','scanner':'eslint-security','fixable':_0x31b7a7[_0x1ce082(0x10c)]!==undefined});}}return _0xcb78f5;}async[a0_0x49eb50(0xf2)](_0x4b66e3,_0x51c25c={}){const _0x14c6bb=a0_0x49eb50;try{const _0x434841=a0_0x2d46a7['join'](_0x4b66e3,_0x14c6bb(0x14b));try{await a0_0x44e6b4['access'](_0x434841);}catch{return this[_0x14c6bb(0x142)]?.['debug'](_0x14c6bb(0x15f)),[];}const _0x11ddef=await execAsync(_0x14c6bb(0xfe),{'cwd':_0x4b66e3,'maxBuffer':0xa*0x400*0x400,'timeout':0xea60}),_0x4b3b5a=JSON['parse'](_0x11ddef[_0x14c6bb(0x100)]);return this[_0x14c6bb(0x11d)](_0x4b3b5a);}catch(_0x386a51){if(_0x386a51['stdout'])try{const _0x2d4800=JSON['parse'](_0x386a51['stdout']);return this[_0x14c6bb(0x11d)](_0x2d4800);}catch(_0x21e2f5){this['logger']?.[_0x14c6bb(0x109)]('Failed\x20to\x20parse\x20npm\x20audit\x20output',{'error':_0x21e2f5['message']});}return[];}}['parseNpmAuditResults'](_0x19943a){const _0x5cb4c6=a0_0x49eb50,_0x4f2407=[];if(_0x19943a[_0x5cb4c6(0x14a)])for(const [_0x243b8f,_0x3ffa8]of Object[_0x5cb4c6(0x15d)](_0x19943a[_0x5cb4c6(0x14a)])){_0x4f2407['push']({'file':'package.json','line':0x1,'column':0x1,'severity':this[_0x5cb4c6(0xf0)](_0x3ffa8[_0x5cb4c6(0x128)]),'rule':_0x5cb4c6(0x14f)+(_0x3ffa8['via'][0x0]?.[_0x5cb4c6(0xe7)]||_0x5cb4c6(0xf7)),'message':_0x243b8f+':\x20'+(_0x3ffa8[_0x5cb4c6(0x155)][0x0]?.[_0x5cb4c6(0x10b)]||'Security\x20vulnerability'),'category':'security','scanner':'npm-audit','package':_0x243b8f,'vulnerableVersions':_0x3ffa8['range'],'patchedVersions':_0x3ffa8[_0x5cb4c6(0x129)]?_0x5cb4c6(0x110):'None','cve':_0x3ffa8[_0x5cb4c6(0x155)][0x0]?.['cve'],'cvss':_0x3ffa8['via'][0x0]?.['cvss'],'references':_0x3ffa8[_0x5cb4c6(0x155)][0x0]?.['url']?[_0x3ffa8[_0x5cb4c6(0x155)][0x0][_0x5cb4c6(0xe4)]]:[]});}return _0x4f2407;}async[a0_0x49eb50(0x143)](_0x1f4436,_0x4f79b1={}){const _0x53cf26=a0_0x49eb50;try{const requirementsPath=a0_0x2d46a7[_0x53cf26(0x10d)](_0x1f4436,'requirements.txt');try{await a0_0x44e6b4[_0x53cf26(0x12d)](requirementsPath);}catch{return this['logger']?.['debug'](_0x53cf26(0x125)),[];}const _0x1a080f=await execAsync('pip-audit\x20--format\x20json',{'cwd':_0x1f4436,'maxBuffer':0xa*0x400*0x400,'timeout':0xea60}),_0x375122=JSON[_0x53cf26(0x123)](_0x1a080f['stdout']);return this['parsePipAuditResults'](_0x375122);}catch(_0x1dc806){if(_0x1dc806['stdout'])try{const _0x4210ec=JSON['parse'](_0x1dc806['stdout']);return this['parsePipAuditResults'](_0x4210ec);}catch(_0x49899f){this['logger']?.[_0x53cf26(0x109)](_0x53cf26(0x106),{'error':_0x49899f[_0x53cf26(0xf4)]});}return[];}}['parsePipAuditResults'](_0x17daf2){const _0x3493c3=a0_0x49eb50,_0x2d4497=[];if(_0x17daf2['dependencies']&&Array['isArray'](_0x17daf2[_0x3493c3(0x165)]))for(const _0x453110 of _0x17daf2['dependencies']){if(_0x453110[_0x3493c3(0x138)]&&Array['isArray'](_0x453110['vulns']))for(const _0x53b5c1 of _0x453110[_0x3493c3(0x138)]){_0x2d4497[_0x3493c3(0x111)]({'file':'requirements.txt','line':0x1,'column':0x1,'severity':this['mapPipAuditSeverity'](_0x53b5c1['severity']),'rule':_0x53b5c1['id'],'message':_0x453110['name']+':\x20'+(_0x53b5c1['description']||_0x3493c3(0x131)),'category':'security','scanner':_0x3493c3(0x14c),'package':_0x453110[_0x3493c3(0xfa)],'vulnerableVersion':_0x453110[_0x3493c3(0x118)],'fixedVersions':_0x53b5c1['fix_versions'],'references':_0x53b5c1['aliases']||[]});}}return _0x2d4497;}['detectLanguage'](_0x672e3f){const _0x79eb12=a0_0x49eb50,_0x88f4c7=a0_0x2d46a7['extname'](_0x672e3f)[_0x79eb12(0x163)](),_0x3f75f8={'.js':'javascript','.jsx':_0x79eb12(0xeb),'.mjs':_0x79eb12(0xeb),'.cjs':_0x79eb12(0xeb),'.ts':'typescript','.tsx':'typescript','.py':_0x79eb12(0x134)};return _0x3f75f8[_0x88f4c7]||null;}['isTestFile'](_0x3f8277){const _0x48cbb4=a0_0x49eb50,_0x39452f=[/\.test\./,/\.spec\./,/__tests__\//,/\/tests?\//,/\.test$/,/\.spec$/];return _0x39452f[_0x48cbb4(0x103)](_0x3afcf8=>_0x3afcf8[_0x48cbb4(0x105)](_0x3f8277));}['hasScannersForLanguage'](_0x1792c5,_0x3ad983){const _0x4fb88e=a0_0x49eb50;if(_0x3ad983===_0x4fb88e(0xeb)||_0x3ad983==='typescript')return _0x1792c5['semgrep']||_0x1792c5[_0x4fb88e(0x115)];if(_0x3ad983==='python')return _0x1792c5[_0x4fb88e(0x158)]||_0x1792c5[_0x4fb88e(0x11b)];return![];}[a0_0x49eb50(0x160)](_0x349097){const _0x41f1be=a0_0x49eb50;return _0x349097['map'](_0x225ab4=>({'file':_0x225ab4['file'],'line':_0x225ab4[_0x41f1be(0x107)]||0x1,'column':_0x225ab4[_0x41f1be(0x148)]||0x1,'severity':_0x225ab4['severity']||STATIC_ANALYSIS[_0x41f1be(0x154)]['WARNING'],'rule':_0x225ab4['rule']||_0x41f1be(0xec),'message':_0x225ab4[_0x41f1be(0xf4)]||_0x41f1be(0x166),'category':_0x41f1be(0x15a),'scanner':_0x225ab4[_0x41f1be(0x13a)],'cwe':_0x225ab4[_0x41f1be(0xe8)]||null,'owasp':_0x225ab4[_0x41f1be(0x133)]||null,'confidence':_0x225ab4['confidence']||null,'fixable':_0x225ab4['fixable']||![],'remediation':_0x225ab4[_0x41f1be(0x127)]||_0x225ab4['moreInfo']||null,'references':_0x225ab4['references']||[],'package':_0x225ab4[_0x41f1be(0x12e)]||null}));}[a0_0x49eb50(0x135)](_0x49bb3d){const _0x1344fd=a0_0x49eb50,_0x334cca={'ERROR':STATIC_ANALYSIS[_0x1344fd(0x154)][_0x1344fd(0x140)],'WARNING':STATIC_ANALYSIS['SEVERITY'][_0x1344fd(0x164)],'INFO':STATIC_ANALYSIS['SEVERITY'][_0x1344fd(0x10a)]};return _0x334cca[_0x49bb3d?.[_0x1344fd(0xf1)]()]||STATIC_ANALYSIS['SEVERITY'][_0x1344fd(0x10a)];}['mapBanditSeverity'](_0x4b52e3){const _0x1fdf0c=a0_0x49eb50,_0x309aaf={'HIGH':STATIC_ANALYSIS['SEVERITY'][_0x1fdf0c(0x140)],'MEDIUM':STATIC_ANALYSIS['SEVERITY'][_0x1fdf0c(0x164)],'LOW':STATIC_ANALYSIS[_0x1fdf0c(0x154)][_0x1fdf0c(0x10a)]};return _0x309aaf[_0x4b52e3?.[_0x1fdf0c(0xf1)]()]||STATIC_ANALYSIS['SEVERITY']['WARNING'];}[a0_0x49eb50(0x157)](_0x4386e9){const _0x1b7d16=a0_0x49eb50;return _0x4386e9===0x2?STATIC_ANALYSIS['SEVERITY'][_0x1b7d16(0x164)]:STATIC_ANALYSIS[_0x1b7d16(0x154)][_0x1b7d16(0x10a)];}['mapNpmSeverity'](_0x21acf2){const _0x23a22a=a0_0x49eb50,_0x4119c4={'critical':STATIC_ANALYSIS[_0x23a22a(0x154)][_0x23a22a(0x140)],'high':STATIC_ANALYSIS['SEVERITY'][_0x23a22a(0x140)],'moderate':STATIC_ANALYSIS['SEVERITY'][_0x23a22a(0x164)],'low':STATIC_ANALYSIS[_0x23a22a(0x154)]['WARNING'],'info':STATIC_ANALYSIS['SEVERITY'][_0x23a22a(0x117)]};return _0x4119c4[_0x21acf2?.[_0x23a22a(0x163)]()]||STATIC_ANALYSIS[_0x23a22a(0x154)]['WARNING'];}[a0_0x49eb50(0xea)](_0x17c056){const _0x52350c=a0_0x49eb50;if(!_0x17c056)return STATIC_ANALYSIS[_0x52350c(0x154)][_0x52350c(0x164)];const _0x2d9367={'critical':STATIC_ANALYSIS[_0x52350c(0x154)][_0x52350c(0x140)],'high':STATIC_ANALYSIS['SEVERITY'][_0x52350c(0x140)],'medium':STATIC_ANALYSIS[_0x52350c(0x154)][_0x52350c(0x164)],'low':STATIC_ANALYSIS['SEVERITY'][_0x52350c(0x10a)]};return _0x2d9367[_0x17c056?.['toLowerCase']()]||STATIC_ANALYSIS[_0x52350c(0x154)][_0x52350c(0x164)];}async[a0_0x49eb50(0x139)](){const _0x4e83b9=a0_0x49eb50,_0x2de003=await this['detectAvailableScanners']();return{'scanners':_0x2de003,'recommendations':this[_0x4e83b9(0x136)](_0x2de003)};}['getInstallRecommendations'](_0x4fa6fe){const _0xacfe17=a0_0x49eb50,_0x9dca8c=[];return!_0x4fa6fe[_0xacfe17(0x11b)]&&_0x9dca8c['push']({'scanner':_0xacfe17(0x15e),'reason':'Multi-language\x20SAST\x20with\x20extensive\x20security\x20rules','install':'pip\x20install\x20semgrep\x20OR\x20use\x20Docker:\x20docker\x20pull\x20returntocorp/semgrep','priority':'high'}),!_0x4fa6fe[_0xacfe17(0x158)]&&_0x9dca8c['push']({'scanner':'Bandit','reason':'Python\x20security\x20scanner','install':'pip\x20install\x20bandit','priority':'medium'}),!_0x4fa6fe[_0xacfe17(0x115)]&&_0x9dca8c['push']({'scanner':'eslint-plugin-security','reason':'JavaScript/TypeScript\x20security\x20rules','install':_0xacfe17(0x121),'priority':'medium'}),!_0x4fa6fe[_0xacfe17(0x10f)]&&_0x9dca8c[_0xacfe17(0x111)]({'scanner':'pip-audit','reason':_0xacfe17(0x15b),'install':'pip\x20install\x20pip-audit','priority':'low'}),_0x9dca8c;}}function a0_0x21e6(){const _0x41a6fd=['y2HLy2TFAwq','BNbTigf1zgL0ic0TANnVBG','qMfUzgL0ihnJyw5UzxiGzgv0zwn0zwq','C3rKB3v0','zxH0CMe','BNbTqxvKAxq','C29Tzq','BNbTigf1zgL0igf2ywLSywjSzq','DgvZDa','rMfPBgvKihrVihbHCNnLihbPCc1HDwrPDcbVDxrWDxq','BgLUzq','BM9Kzv9TB2r1BgvZ','zxjYB3i','v0fstKLorW','DgL0Bgu','zML4','AM9PBG','BwfWqMfUzgL0u2v2zxjPDhK','CgLWqxvKAxq','qxzHAwXHyMXL','ChvZAa','zxnSAw50lxbSDwDPBI1Zzwn1CML0EsbKzxrLy3rLza','tM8GC2vJDxjPDhKGC2nHBM5LCNmGyxzHAwXHyMXLigzVCIbSyw5NDwfNzq','yMfUzgL0ic0TDMvYC2LVBG','zxnSAw50u2vJDxjPDhK','u2vTz3jLCcbZy2fUBMvYigrLDgvJDgvKicHSB2nHBcK','su5gtW','DMvYC2LVBG','CgLWlwf1zgL0ic0TDMvYC2LVBG','u2TPChbPBMCGDgvZDcbMAwXLigzVCIbZzwn1CML0EsbZy2fU','C2vTz3jLCa','CNvUu2vTz3jLCa','CgfYC2voCg1bDwrPDfjLC3vSDhm','zMLSzw5HBwu','AxnZDwvFy3DL','Bw9KDwXL','BNbTigLUC3rHBgWGls1ZyxzLlwrLDIbLC2XPBNqTCgX1z2LUlxnLy3vYAxr5','zgvIDwC','CgfYC2u','CNvSzuLK','tM8GCMvXDwLYzw1LBNrZlNr4DcbMB3vUzcWGC2TPChbPBMCGCgLWlwf1zgL0','mJi1otbMA1vuuum','CMvTzwrPyxrPB24','C2v2zxjPDhK','zML4qxzHAwXHyMXL','mZmWz21izfvZ','mJm3ndiXnvfTtgfWrW','DhLWzxnJCMLWDa','ywnJzxnZ','CgfJA2fNzq','CMvZDwX0CW','ndvLv0z3s0e','u2vJDxjPDhKGDNvSBMvYywjPBgL0Eq','BNbTic0TDMvYC2LVBG','B3DHC3a','ChL0Ag9U','BwfWu2vTz3jLCfnLDMvYAxr5','z2v0sw5ZDgfSBfjLy29TBwvUzgf0Aw9UCW','mtG1mtaYmuznqLrJAG','DNvSBNm','z2v0u2nHBM5LCLn0yxr1CW','C2nHBM5LCG','C2vTz3jLCcaTlwnVBMzPzZ1HDxrVic0TANnVBIaI','ngDZtKriyG','CgLWlwf1zgL0igrLDgvJDgvK','AxnZDwvFC2v2zxjPDhK','Cgf0Aa','q1jjveLdquW','AxnbCNjHEq','Bg9Nz2vY','CNvUugLWqxvKAxq','Axnuzxn0rMLSzq','mte3mZG3mJrKvhvcDM0','yw5HBhL6zq','mZm5nuncD2D1Dq','y29SDw1U','qMfUzgL0ig5VDcbHDMfPBgfIBgu','DNvSBMvYywjPBgL0AwvZ','CgfJA2fNzs5QC29U','CgLWlwf1zgL0','yxzHAwXHyMXLu2nHBM5LCNm','zxnSAw50lxbSDwDPBI1Zzwn1CML0Eq','BNbTlq','Bg9JywXty2fUBMvYrgLY','C2TPCfrLC3rgAwXLCW','AxnZDwvFy29UzMLKzw5Jzq','mtK2C3PzBe9U','u0vwrvjjvfK','DMLH','y29UzMLKzw5Jzq','BwfWrvnmAw50u2v2zxjPDhK','yMfUzgL0','AxnZDwvFDgv4Da','C2vJDxjPDhK','uhL0Ag9UigrLCgvUzgvUy3KGDNvSBMvYywjPBgL0EsbZy2fUBMvY','C3rHCNq','zw50CMLLCW','u2vTz3jLCa','tM8GCgfJA2fNzs5QC29UigzVDw5KlcbZA2LWCgLUzYbUCg0GyxvKAxq','BM9YBwfSAxPLuMvZDwX0CW','C2vJDxjPDhKV','nJGZmdGWrePbsvPb','Dg9mB3DLCKnHC2u','rvjst1i','zgvWzw5Kzw5JAwvZ','u2vJDxjPDhKGAxnZDwuGzgv0zwn0zwq','DxjS','Bwv0ywrHDge','BgLUDfrLEhq','C291CMnL','y3DL','CNvUrvnmAw50u2vJDxjPDhK','BwfWugLWqxvKAxrtzxzLCML0Eq','AMf2yxnJCMLWDa','Dw5RBM93BG','mJm2rejnrg5d','rMfPBgvKihrVihbHCNnLifnLBwDYzxaGB3v0Chv0','BwvZC2fNzxm','BwfWtNbTu2v2zxjPDhK','Dg9vChbLCKnHC2u','CNvUtNbTqxvKAxq','zxnSAw50lxbSDwDPBI1Zzwn1CML0EsbUB3qGyxzHAwXHyMXL','BwvZC2fNzq','BgLUzxm','y3DK','ywr2AxnVCNK','u2vTz3jLCcbZy2fUBMvYigrLDgvJDgvKicHZExn0zw0P','CgfYC2vtzw1NCMvWuMvZDwX0CW','BMfTzq','mte0nNvkD090sW','zgv0zwn0qxzHAwXHyMXLu2nHBM5LCNm'];a0_0x21e6=function(){return _0x41a6fd;};return a0_0x21e6();}export default SecurityAnalyzer;
|
|
1
|
+
const a0_0x1ae54b=a0_0x588c;(function(_0x12fed5,_0x5312c9){const _0x13f184=a0_0x588c,_0x432c3a=_0x12fed5();while(!![]){try{const _0x3d15e3=-parseInt(_0x13f184(0x10a))/0x1*(parseInt(_0x13f184(0x174))/0x2)+-parseInt(_0x13f184(0x145))/0x3+parseInt(_0x13f184(0x183))/0x4*(parseInt(_0x13f184(0x133))/0x5)+parseInt(_0x13f184(0x109))/0x6*(parseInt(_0x13f184(0x142))/0x7)+parseInt(_0x13f184(0x156))/0x8*(-parseInt(_0x13f184(0x148))/0x9)+parseInt(_0x13f184(0x161))/0xa*(-parseInt(_0x13f184(0x14b))/0xb)+parseInt(_0x13f184(0x139))/0xc;if(_0x3d15e3===_0x5312c9)break;else _0x432c3a['push'](_0x432c3a['shift']());}catch(_0xb0d7a3){_0x432c3a['push'](_0x432c3a['shift']());}}}(a0_0x45e0,0x264ab));import{exec}from'child_process';import{promisify}from'util';import a0_0x664f10 from'path';import a0_0x5c641a from'fs/promises';import{STATIC_ANALYSIS}from'../utilities/constants.js';const execAsync=promisify(exec);class SecurityAnalyzer{constructor(_0x141cd3=null){const _0x108cb2=a0_0x588c;this[_0x108cb2(0x130)]=_0x141cd3,this[_0x108cb2(0x153)]=null,this['scannerCache']=new Map(),this[_0x108cb2(0x144)]=a0_0x664f10[_0x108cb2(0x117)](process[_0x108cb2(0x16c)](),'node_modules',_0x108cb2(0x112));}async['detectAvailableScanners'](){const _0x284dc3=a0_0x588c;if(this[_0x284dc3(0x153)]!==null)return this['availableScanners'];const _0xd7e29c={'semgrep':![],'bandit':![],'npmAudit':![],'pipAudit':![],'eslintSecurity':![]};try{const _0x549776=a0_0x664f10['join'](this[_0x284dc3(0x144)],'semgrep');try{await a0_0x5c641a[_0x284dc3(0x17e)](_0x549776),_0xd7e29c[_0x284dc3(0x177)]=!![],this['logger']?.[_0x284dc3(0x128)](_0x284dc3(0x140));}catch{await execAsync('semgrep\x20--version',{'timeout':0x1388}),_0xd7e29c[_0x284dc3(0x177)]=!![],this[_0x284dc3(0x130)]?.[_0x284dc3(0x128)]('Semgrep\x20scanner\x20detected\x20(system)');}}catch(_0x340495){this[_0x284dc3(0x130)]?.[_0x284dc3(0x128)]('Semgrep\x20not\x20available',{'error':_0x340495['message']});}try{await execAsync(_0x284dc3(0x182),{'timeout':0x1388}),_0xd7e29c['bandit']=!![],this[_0x284dc3(0x130)]?.['debug']('Bandit\x20scanner\x20detected');}catch(_0x2f3203){this[_0x284dc3(0x130)]?.['debug'](_0x284dc3(0x10e),{'error':_0x2f3203[_0x284dc3(0x125)]});}try{await execAsync('npm\x20--version',{'timeout':0x1388}),_0xd7e29c['npmAudit']=!![],this[_0x284dc3(0x130)]?.['debug']('npm\x20audit\x20available');}catch(_0x7fbe34){this[_0x284dc3(0x130)]?.[_0x284dc3(0x128)](_0x284dc3(0x172),{'error':_0x7fbe34['message']});}try{await execAsync(_0x284dc3(0x13b),{'timeout':0x1388}),_0xd7e29c['pipAudit']=!![],this['logger']?.[_0x284dc3(0x128)](_0x284dc3(0x16e));}catch(_0x5d03e5){this[_0x284dc3(0x130)]?.[_0x284dc3(0x128)](_0x284dc3(0x14f),{'error':_0x5d03e5[_0x284dc3(0x125)]});}try{const _0x1dc0eb=await execAsync(_0x284dc3(0x159),{'timeout':0x1388,'cwd':process[_0x284dc3(0x16c)]()}),_0x5058f=JSON[_0x284dc3(0x152)](_0x1dc0eb[_0x284dc3(0x12f)]);_0x5058f[_0x284dc3(0x11a)]&&_0x5058f['dependencies'][_0x284dc3(0x180)]&&(_0xd7e29c['eslintSecurity']=!![],this['logger']?.['debug']('eslint-plugin-security\x20detected'));}catch(_0x18fd8f){this[_0x284dc3(0x130)]?.[_0x284dc3(0x128)](_0x284dc3(0x17b),{'error':_0x18fd8f[_0x284dc3(0x125)]});}return this['availableScanners']=_0xd7e29c,_0xd7e29c;}async[a0_0x1ae54b(0x146)](_0x5adc5f,_0x2d57ef,_0x1bb6c6={}){const _0x5d26f0=a0_0x1ae54b,_0x553fd6=[],_0x1e4f1c=await this['detectAvailableScanners'](),_0x496b11=this['detectLanguage'](_0x5adc5f);if(_0x1bb6c6[_0x5d26f0(0x158)]!==![]&&this['isTestFile'](_0x5adc5f))return this['logger']?.['debug']('Skipping\x20test\x20file\x20for\x20security\x20scan',{'filePath':_0x5adc5f}),[];if(_0x496b11==='javascript'||_0x496b11==='typescript'){if(_0x1e4f1c['semgrep']){const _0x5b2d19=await this[_0x5d26f0(0x164)](_0x5adc5f,[_0x496b11],_0x1bb6c6);_0x553fd6['push'](..._0x5b2d19);}if(_0x1e4f1c['eslintSecurity']){const _0x114ab8=await this['runESLintSecurity'](_0x5adc5f,_0x2d57ef,_0x1bb6c6);_0x553fd6['push'](..._0x114ab8);}}if(_0x496b11==='python'){if(_0x1e4f1c['bandit']){const _0x27f0d8=await this['runBandit'](_0x5adc5f,_0x1bb6c6);_0x553fd6['push'](..._0x27f0d8);}if(_0x1e4f1c['semgrep']){const _0x2ce051=await this['runSemgrep'](_0x5adc5f,[_0x496b11],_0x1bb6c6);_0x553fd6[_0x5d26f0(0x16b)](..._0x2ce051);}}return _0x553fd6['length']===0x0&&!this[_0x5d26f0(0x12a)](_0x1e4f1c,_0x496b11)&&this['logger']?.[_0x5d26f0(0x17c)]('No\x20security\x20scanners\x20available\x20for\x20language',{'language':_0x496b11,'filePath':_0x5adc5f}),this[_0x5d26f0(0x12e)](_0x553fd6);}async[a0_0x1ae54b(0x12d)](_0x43cef9,_0x329375,_0xb21fae={}){const _0x4bf38f=a0_0x1ae54b,_0x58c3f6=[],_0x97fdb9=await this[_0x4bf38f(0x151)]();if(_0x329375==='javascript'||_0x329375===_0x4bf38f(0x127)){if(_0x97fdb9[_0x4bf38f(0x111)]){const _0x4b391c=await this['runNpmAudit'](_0x43cef9,_0xb21fae);_0x58c3f6['push'](..._0x4b391c);}}if(_0x329375==='python'){if(_0x97fdb9['pipAudit']){const _0x1485f2=await this['runPipAudit'](_0x43cef9,_0xb21fae);_0x58c3f6[_0x4bf38f(0x16b)](..._0x1485f2);}}return this['normalizeResults'](_0x58c3f6);}async[a0_0x1ae54b(0x164)](_0x4519d8,_0x43e6bc,_0x21cc4c={}){const _0x532499=a0_0x1ae54b;try{const _0x15de34=a0_0x664f10[_0x532499(0x16f)](_0x4519d8),_0xf7cf73=await execAsync(_0x532499(0x135)+_0x4519d8+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530,'cwd':_0x15de34}),_0x7de33e=JSON[_0x532499(0x152)](_0xf7cf73[_0x532499(0x12f)]);return this[_0x532499(0x11b)](_0x7de33e);}catch(_0x5bf67f){if(_0x5bf67f[_0x532499(0x12f)])try{const _0x200fe0=JSON[_0x532499(0x152)](_0x5bf67f['stdout']);return this['parseSemgrepResults'](_0x200fe0);}catch(_0xfa62d3){this['logger']?.['error']('Failed\x20to\x20parse\x20Semgrep\x20output',{'error':_0xfa62d3[_0x532499(0x125)],'stdout':_0x5bf67f[_0x532499(0x12f)]});}return this[_0x532499(0x130)]?.[_0x532499(0x181)]('Semgrep\x20scan\x20failed',{'error':_0x5bf67f['message']}),[];}}[a0_0x1ae54b(0x11b)](_0x3c5008){const _0x1d709a=a0_0x1ae54b,_0x580ff4=[];if(_0x3c5008[_0x1d709a(0x13c)]&&Array['isArray'](_0x3c5008['results']))for(const _0x39e01d of _0x3c5008['results']){_0x580ff4['push']({'file':_0x39e01d['path'],'line':_0x39e01d[_0x1d709a(0x175)]?.['line']||0x1,'column':_0x39e01d[_0x1d709a(0x175)]?.['col']||0x1,'severity':this['mapSemgrepSeverity'](_0x39e01d['extra']?.['severity']),'rule':_0x39e01d['check_id'],'message':_0x39e01d[_0x1d709a(0x12b)]?.['message']||_0x39e01d[_0x1d709a(0x12b)]?.['lines']||'Security\x20issue\x20detected','category':'security','scanner':'semgrep','cwe':_0x39e01d['extra']?.['metadata']?.[_0x1d709a(0x15b)],'owasp':_0x39e01d['extra']?.['metadata']?.[_0x1d709a(0x168)],'confidence':_0x39e01d[_0x1d709a(0x12b)]?.[_0x1d709a(0x15d)]?.[_0x1d709a(0x17f)],'references':_0x39e01d['extra']?.['metadata']?.['references']});}return _0x580ff4;}async['runBandit'](_0x53c0cb,_0x12c6bd={}){const _0x421bcd=a0_0x1ae54b;try{const _0x288ac0=await execAsync(_0x421bcd(0x126)+_0x53c0cb+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530}),_0xd1034c=JSON['parse'](_0x288ac0[_0x421bcd(0x12f)]);return this['parseBanditResults'](_0xd1034c);}catch(_0x4e7479){if(_0x4e7479[_0x421bcd(0x12f)])try{const _0x29caac=JSON['parse'](_0x4e7479[_0x421bcd(0x12f)]);return this['parseBanditResults'](_0x29caac);}catch(_0x6edba7){this[_0x421bcd(0x130)]?.['error'](_0x421bcd(0x15e),{'error':_0x6edba7[_0x421bcd(0x125)]});}return this[_0x421bcd(0x130)]?.[_0x421bcd(0x181)]('Bandit\x20scan\x20failed',{'error':_0x4e7479[_0x421bcd(0x125)]}),[];}}['parseBanditResults'](_0x1135fe){const _0x6b171=a0_0x1ae54b,_0x4b9a45=[];if(_0x1135fe[_0x6b171(0x13c)]&&Array[_0x6b171(0x179)](_0x1135fe[_0x6b171(0x13c)]))for(const _0x1a71b8 of _0x1135fe[_0x6b171(0x13c)]){_0x4b9a45[_0x6b171(0x16b)]({'file':_0x1a71b8['filename'],'line':_0x1a71b8['line_number']||0x1,'column':_0x1a71b8['col_offset']||0x1,'severity':this['mapBanditSeverity'](_0x1a71b8[_0x6b171(0x116)]),'rule':_0x1a71b8[_0x6b171(0x169)],'message':_0x1a71b8['issue_text'],'category':_0x6b171(0x154),'scanner':_0x6b171(0x108),'cwe':_0x1a71b8[_0x6b171(0x15f)]?.['id']?'CWE-'+_0x1a71b8['issue_cwe']['id']:null,'confidence':_0x1a71b8[_0x6b171(0x110)],'moreInfo':_0x1a71b8[_0x6b171(0x10b)]});}return _0x4b9a45;}async['runESLintSecurity'](_0x40c2af,_0x3280f6,_0x2c27be={}){const _0x5152fa=a0_0x1ae54b;try{const {ESLint:_0x427dd8}=await import('eslint'),_0xcbff8c=new _0x427dd8({'overrideConfig':{'plugins':[_0x5152fa(0x154)],'extends':['plugin:security/recommended'],'parserOptions':{'ecmaVersion':'latest','sourceType':'module'}},'useEslintrc':![]}),_0x1ddc76=await _0xcbff8c[_0x5152fa(0x17a)](_0x3280f6,{'filePath':_0x40c2af});return this[_0x5152fa(0x115)](_0x1ddc76,_0x40c2af);}catch(_0x12707c){return this[_0x5152fa(0x130)]?.['error'](_0x5152fa(0x173),{'error':_0x12707c[_0x5152fa(0x125)],'filePath':_0x40c2af}),[];}}[a0_0x1ae54b(0x115)](_0x4b1ded,_0x2df975){const _0x2acbca=a0_0x1ae54b,_0x1ee174=[];for(const _0x3154ff of _0x4b1ded){if(_0x3154ff[_0x2acbca(0x12c)]&&Array[_0x2acbca(0x179)](_0x3154ff['messages']))for(const _0x274fe7 of _0x3154ff[_0x2acbca(0x12c)]){_0x274fe7['ruleId']&&_0x274fe7['ruleId']['startsWith']('security/')&&_0x1ee174[_0x2acbca(0x16b)]({'file':_0x2df975,'line':_0x274fe7[_0x2acbca(0x132)]||0x1,'column':_0x274fe7[_0x2acbca(0x166)]||0x1,'severity':this['mapESLintSeverity'](_0x274fe7[_0x2acbca(0x124)]),'rule':_0x274fe7[_0x2acbca(0x157)],'message':_0x274fe7[_0x2acbca(0x125)],'category':'security','scanner':'eslint-security','fixable':_0x274fe7['fix']!==undefined});}}return _0x1ee174;}async['runNpmAudit'](_0x1f098c,_0x2ad1fe={}){const _0x8c1b19=a0_0x1ae54b;try{const _0x15e2de=a0_0x664f10[_0x8c1b19(0x117)](_0x1f098c,_0x8c1b19(0x14e));try{await a0_0x5c641a[_0x8c1b19(0x17e)](_0x15e2de);}catch{return this['logger']?.[_0x8c1b19(0x128)]('No\x20package.json\x20found,\x20skipping\x20npm\x20audit'),[];}const _0xc5c328=await execAsync(_0x8c1b19(0x10c),{'cwd':_0x1f098c,'maxBuffer':0xa*0x400*0x400,'timeout':0xea60}),_0x51e947=JSON[_0x8c1b19(0x152)](_0xc5c328[_0x8c1b19(0x12f)]);return this['parseNpmAuditResults'](_0x51e947);}catch(_0x27ca7b){if(_0x27ca7b['stdout'])try{const _0x5de240=JSON[_0x8c1b19(0x152)](_0x27ca7b['stdout']);return this[_0x8c1b19(0x160)](_0x5de240);}catch(_0x4e0162){this['logger']?.[_0x8c1b19(0x181)]('Failed\x20to\x20parse\x20npm\x20audit\x20output',{'error':_0x4e0162[_0x8c1b19(0x125)]});}return[];}}[a0_0x1ae54b(0x160)](_0x394d10){const _0x2b088d=a0_0x1ae54b,_0x31c546=[];if(_0x394d10['vulnerabilities'])for(const [_0x556519,_0x5263df]of Object[_0x2b088d(0x15c)](_0x394d10[_0x2b088d(0x113)])){_0x31c546['push']({'file':'package.json','line':0x1,'column':0x1,'severity':this['mapNpmSeverity'](_0x5263df[_0x2b088d(0x124)]),'rule':_0x2b088d(0x171)+(_0x5263df[_0x2b088d(0x14a)][0x0]?.[_0x2b088d(0x122)]||'advisory'),'message':_0x556519+':\x20'+(_0x5263df['via'][0x0]?.['title']||_0x2b088d(0x11c)),'category':_0x2b088d(0x154),'scanner':_0x2b088d(0x11e),'package':_0x556519,'vulnerableVersions':_0x5263df['range'],'patchedVersions':_0x5263df[_0x2b088d(0x114)]?_0x2b088d(0x17d):_0x2b088d(0x121),'cve':_0x5263df['via'][0x0]?.[_0x2b088d(0x136)],'cvss':_0x5263df[_0x2b088d(0x14a)][0x0]?.[_0x2b088d(0x178)],'references':_0x5263df['via'][0x0]?.['url']?[_0x5263df['via'][0x0]['url']]:[]});}return _0x31c546;}async[a0_0x1ae54b(0x11f)](_0x356573,_0x147cd8={}){const _0x233245=a0_0x1ae54b;try{const requirementsPath=a0_0x664f10['join'](_0x356573,_0x233245(0x14d));try{await a0_0x5c641a['access'](requirementsPath);}catch{return this[_0x233245(0x130)]?.['debug']('No\x20requirements.txt\x20found,\x20skipping\x20pip-audit'),[];}const _0x1e0617=await execAsync(_0x233245(0x13a),{'cwd':_0x356573,'maxBuffer':0xa*0x400*0x400,'timeout':0xea60}),_0x5d5302=JSON['parse'](_0x1e0617['stdout']);return this['parsePipAuditResults'](_0x5d5302);}catch(_0x125ade){if(_0x125ade['stdout'])try{const _0x5c21a1=JSON['parse'](_0x125ade[_0x233245(0x12f)]);return this[_0x233245(0x165)](_0x5c21a1);}catch(_0x3626a9){this['logger']?.[_0x233245(0x181)](_0x233245(0x13f),{'error':_0x3626a9['message']});}return[];}}['parsePipAuditResults'](_0x5db46a){const _0x24ceeb=a0_0x1ae54b,_0x1b0549=[];if(_0x5db46a['dependencies']&&Array['isArray'](_0x5db46a[_0x24ceeb(0x11a)]))for(const _0x4ee70c of _0x5db46a[_0x24ceeb(0x11a)]){if(_0x4ee70c['vulns']&&Array[_0x24ceeb(0x179)](_0x4ee70c['vulns']))for(const _0x477bd0 of _0x4ee70c['vulns']){_0x1b0549['push']({'file':'requirements.txt','line':0x1,'column':0x1,'severity':this[_0x24ceeb(0x16a)](_0x477bd0[_0x24ceeb(0x124)]),'rule':_0x477bd0['id'],'message':_0x4ee70c[_0x24ceeb(0x143)]+':\x20'+(_0x477bd0[_0x24ceeb(0x137)]||'Security\x20vulnerability'),'category':_0x24ceeb(0x154),'scanner':_0x24ceeb(0x11d),'package':_0x4ee70c['name'],'vulnerableVersion':_0x4ee70c[_0x24ceeb(0x16d)],'fixedVersions':_0x477bd0['fix_versions'],'references':_0x477bd0['aliases']||[]});}}return _0x1b0549;}[a0_0x1ae54b(0x120)](_0xe47f0c){const _0x4e6dee=a0_0x1ae54b,_0x527c0d=a0_0x664f10['extname'](_0xe47f0c)[_0x4e6dee(0x131)](),_0x45fc01={'.js':_0x4e6dee(0x150),'.jsx':'javascript','.mjs':'javascript','.cjs':_0x4e6dee(0x150),'.ts':_0x4e6dee(0x127),'.tsx':'typescript','.py':'python'};return _0x45fc01[_0x527c0d]||null;}['isTestFile'](_0x1e1ff7){const _0x5e78e0=a0_0x1ae54b,_0x17b01b=[/\.test\./,/\.spec\./,/__tests__\//,/\/tests?\//,/\.test$/,/\.spec$/];return _0x17b01b[_0x5e78e0(0x10f)](_0x1b5d01=>_0x1b5d01[_0x5e78e0(0x138)](_0x1e1ff7));}[a0_0x1ae54b(0x12a)](_0x24dcf1,_0x519cc3){const _0x3074a8=a0_0x1ae54b;if(_0x519cc3==='javascript'||_0x519cc3==='typescript')return _0x24dcf1['semgrep']||_0x24dcf1[_0x3074a8(0x118)];if(_0x519cc3===_0x3074a8(0x13d))return _0x24dcf1['bandit']||_0x24dcf1['semgrep'];return![];}[a0_0x1ae54b(0x12e)](_0x455998){const _0x113c4e=a0_0x1ae54b;return _0x455998['map'](_0x10b058=>({'file':_0x10b058['file'],'line':_0x10b058['line']||0x1,'column':_0x10b058[_0x113c4e(0x166)]||0x1,'severity':_0x10b058['severity']||STATIC_ANALYSIS['SEVERITY']['WARNING'],'rule':_0x10b058['rule']||'unknown','message':_0x10b058['message']||_0x113c4e(0x167),'category':'security','scanner':_0x10b058['scanner'],'cwe':_0x10b058['cwe']||null,'owasp':_0x10b058['owasp']||null,'confidence':_0x10b058[_0x113c4e(0x17f)]||null,'fixable':_0x10b058[_0x113c4e(0x107)]||![],'remediation':_0x10b058['remediation']||_0x10b058['moreInfo']||null,'references':_0x10b058[_0x113c4e(0x176)]||[],'package':_0x10b058[_0x113c4e(0x14c)]||null}));}['mapSemgrepSeverity'](_0x190a1d){const _0x57aadd=a0_0x1ae54b,_0x326c68={'ERROR':STATIC_ANALYSIS['SEVERITY']['CRITICAL'],'WARNING':STATIC_ANALYSIS['SEVERITY'][_0x57aadd(0x129)],'INFO':STATIC_ANALYSIS['SEVERITY']['WARNING']};return _0x326c68[_0x190a1d?.['toUpperCase']()]||STATIC_ANALYSIS['SEVERITY']['WARNING'];}['mapBanditSeverity'](_0x176442){const _0x58f4f6=a0_0x1ae54b,_0x208303={'HIGH':STATIC_ANALYSIS['SEVERITY'][_0x58f4f6(0x162)],'MEDIUM':STATIC_ANALYSIS[_0x58f4f6(0x134)][_0x58f4f6(0x129)],'LOW':STATIC_ANALYSIS[_0x58f4f6(0x134)]['WARNING']};return _0x208303[_0x176442?.['toUpperCase']()]||STATIC_ANALYSIS['SEVERITY'][_0x58f4f6(0x13e)];}[a0_0x1ae54b(0x10d)](_0x490d94){const _0x4d2195=a0_0x1ae54b;return _0x490d94===0x2?STATIC_ANALYSIS['SEVERITY']['ERROR']:STATIC_ANALYSIS[_0x4d2195(0x134)][_0x4d2195(0x13e)];}['mapNpmSeverity'](_0x3a2f7d){const _0x120cfa=a0_0x1ae54b,_0x35fb9e={'critical':STATIC_ANALYSIS[_0x120cfa(0x134)][_0x120cfa(0x162)],'high':STATIC_ANALYSIS[_0x120cfa(0x134)][_0x120cfa(0x162)],'moderate':STATIC_ANALYSIS[_0x120cfa(0x134)]['ERROR'],'low':STATIC_ANALYSIS[_0x120cfa(0x134)]['WARNING'],'info':STATIC_ANALYSIS[_0x120cfa(0x134)]['INFO']};return _0x35fb9e[_0x3a2f7d?.['toLowerCase']()]||STATIC_ANALYSIS['SEVERITY']['WARNING'];}[a0_0x1ae54b(0x16a)](_0x1683e7){const _0x3e8a09=a0_0x1ae54b;if(!_0x1683e7)return STATIC_ANALYSIS['SEVERITY']['ERROR'];const _0x30fb07={'critical':STATIC_ANALYSIS['SEVERITY'][_0x3e8a09(0x162)],'high':STATIC_ANALYSIS[_0x3e8a09(0x134)]['CRITICAL'],'medium':STATIC_ANALYSIS[_0x3e8a09(0x134)][_0x3e8a09(0x129)],'low':STATIC_ANALYSIS[_0x3e8a09(0x134)]['WARNING']};return _0x30fb07[_0x1683e7?.['toLowerCase']()]||STATIC_ANALYSIS['SEVERITY']['ERROR'];}async[a0_0x1ae54b(0x123)](){const _0x60f82d=a0_0x1ae54b,_0x4f64a0=await this[_0x60f82d(0x151)]();return{'scanners':_0x4f64a0,'recommendations':this['getInstallRecommendations'](_0x4f64a0)};}['getInstallRecommendations'](_0x40c07e){const _0x2626bd=a0_0x1ae54b,_0x528d46=[];return!_0x40c07e['semgrep']&&_0x528d46[_0x2626bd(0x16b)]({'scanner':'Semgrep','reason':_0x2626bd(0x15a),'install':_0x2626bd(0x147),'priority':'high'}),!_0x40c07e['bandit']&&_0x528d46['push']({'scanner':_0x2626bd(0x163),'reason':'Python\x20security\x20scanner','install':_0x2626bd(0x170),'priority':'medium'}),!_0x40c07e['eslintSecurity']&&_0x528d46[_0x2626bd(0x16b)]({'scanner':'eslint-plugin-security','reason':'JavaScript/TypeScript\x20security\x20rules','install':_0x2626bd(0x149),'priority':'medium'}),!_0x40c07e[_0x2626bd(0x155)]&&_0x528d46['push']({'scanner':_0x2626bd(0x11d),'reason':_0x2626bd(0x141),'install':'pip\x20install\x20pip-audit','priority':_0x2626bd(0x119)}),_0x528d46;}}function a0_0x588c(_0x14a8c1,_0xa97df){_0x14a8c1=_0x14a8c1-0x107;const _0x45e058=a0_0x45e0();let _0x588c38=_0x45e058[_0x14a8c1];if(a0_0x588c['zXuAiL']===undefined){var _0x1e8c5d=function(_0x2a5d7b){const _0x5465bc='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x664f10='',_0x5c641a='';for(let _0x141cd3=0x0,_0xd7e29c,_0x549776,_0x340495=0x0;_0x549776=_0x2a5d7b['charAt'](_0x340495++);~_0x549776&&(_0xd7e29c=_0x141cd3%0x4?_0xd7e29c*0x40+_0x549776:_0x549776,_0x141cd3++%0x4)?_0x664f10+=String['fromCharCode'](0xff&_0xd7e29c>>(-0x2*_0x141cd3&0x6)):0x0){_0x549776=_0x5465bc['indexOf'](_0x549776);}for(let _0x2f3203=0x0,_0x7fbe34=_0x664f10['length'];_0x2f3203<_0x7fbe34;_0x2f3203++){_0x5c641a+='%'+('00'+_0x664f10['charCodeAt'](_0x2f3203)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5c641a);};a0_0x588c['qeMDtW']=_0x1e8c5d,a0_0x588c['nypAvT']={},a0_0x588c['zXuAiL']=!![];}const _0xd13380=_0x45e058[0x0],_0x169fab=_0x14a8c1+_0xd13380,_0x4af866=a0_0x588c['nypAvT'][_0x169fab];return!_0x4af866?(_0x588c38=a0_0x588c['qeMDtW'](_0x588c38),a0_0x588c['nypAvT'][_0x169fab]=_0x588c38):_0x588c38=_0x4af866,_0x588c38;}export default SecurityAnalyzer;function a0_0x45e0(){const _0x181a38=['qMfUzgL0','CNvUu2vTz3jLCa','CgfYC2vqAxbbDwrPDfjLC3vSDhm','y29SDw1U','u2vJDxjPDhKGAxnZDwuGzgv0zwn0zwq','B3DHC3a','DgvZDf9Pza','BwfWugLWqxvKAxrtzxzLCML0Eq','ChvZAa','y3DK','DMvYC2LVBG','CgLWlwf1zgL0igrLDgvJDgvK','zgLYBMfTzq','CgLWigLUC3rHBgWGyMfUzgL0','BNbTlq','BNbTig5VDcbHDMfPBgfIBgu','rvnmAw50ihnLy3vYAxr5ihnJyw4GzMfPBgvK','mteZmZi2BgnxsM1Z','C3rHCNq','CMvMzxjLBMnLCW','C2vTz3jLCa','y3zZCW','AxnbCNjHEq','BgLUDfrLEhq','zxnSAw50lxbSDwDPBI1Zzwn1CML0EsbUB3qGyxzHAwXHyMXL','D2fYBG','qxzHAwXHyMXL','ywnJzxnZ','y29UzMLKzw5Jzq','zxnSAw50lxbSDwDPBI1Zzwn1CML0Eq','zxjYB3i','yMfUzgL0ic0TDMvYC2LVBG','mZu4ndyWu1L5Dgrz','zML4ywjSzq','yMfUzgL0','ntC1mdu4sw5fwxfM','mxvyB05ZCq','Bw9Yzv9PBMzV','BNbTigf1zgL0ic0TANnVBG','BwfWrvnmAw50u2v2zxjPDhK','qMfUzgL0ig5VDcbHDMfPBgfIBgu','C29Tzq','AxnZDwvFy29UzMLKzw5Jzq','BNbTqxvKAxq','lNnJyw5UzxjZ','DNvSBMvYywjPBgL0AwvZ','zML4qxzHAwXHyMXL','CgfYC2vfu0XPBNrszxn1BhrZ','AxnZDwvFC2v2zxjPDhK','AM9PBG','zxnSAw50u2vJDxjPDhK','Bg93','zgvWzw5Kzw5JAwvZ','CgfYC2vtzw1NCMvWuMvZDwX0CW','u2vJDxjPDhKGDNvSBMvYywjPBgL0Eq','CgLWlwf1zgL0','BNbTlwf1zgL0','CNvUugLWqxvKAxq','zgv0zwn0tgfUz3vHz2u','tM9Uzq','C291CMnL','z2v0u2nHBM5LCLn0yxr1CW','C2v2zxjPDhK','BwvZC2fNzq','yMfUzgL0ic1MigPZB24GiG','DhLWzxnJCMLWDa','zgvIDwC','rvjst1i','AgfZu2nHBM5LCNngB3jmyw5NDwfNzq','zxH0CMe','BwvZC2fNzxm','yw5HBhL6zvbYB2PLy3q','BM9YBwfSAxPLuMvZDwX0CW','C3rKB3v0','Bg9Nz2vY','Dg9mB3DLCKnHC2u','BgLUzq','mtb6swD4uuq','u0vwrvjjvfK','C2vTz3jLCcaTlwnVBMzPzZ1HDxrVic0TANnVBIaI','y3zL','zgvZy3jPChrPB24','DgvZDa','ntu1ode5nK1otKzAsq','CgLWlwf1zgL0ic0TzM9YBwf0igPZB24','CgLWlwf1zgL0ic0TDMvYC2LVBG','CMvZDwX0CW','ChL0Ag9U','v0fstKLorW','rMfPBgvKihrVihbHCNnLihbPCc1HDwrPDcbVDxrWDxq','u2vTz3jLCcbZy2fUBMvYigrLDgvJDgvKicHSB2nHBcK','uhL0Ag9UigrLCgvUzgvUy3KGDNvSBMvYywjPBgL0EsbZy2fUBMvY','n3rkALLqqq','BMfTzq','Bg9JywXty2fUBMvYrgLY','nJa3nZKXB29Kvenu','yw5HBhL6zq','CgLWigLUC3rHBgWGC2vTz3jLCcbpuIb1C2uGrg9JA2vYoIbKB2nRzxiGChvSBcbYzxr1CM50B2nVCNaVC2vTz3jLCa','oxrKvfjluq','BNbTigLUC3rHBgWGls1ZyxzLlwrLDIbLC2XPBNqTCgX1z2LUlxnLy3vYAxr5','DMLH','mJC1Ee14vNzh','CgfJA2fNzq','CMvXDwLYzw1LBNrZlNr4Da','CgfJA2fNzs5QC29U','CgLWlwf1zgL0ig5VDcbHDMfPBgfIBgu','AMf2yxnJCMLWDa','zgv0zwn0qxzHAwXHyMXLu2nHBM5LCNm','CgfYC2u','yxzHAwXHyMXLu2nHBM5LCNm','C2vJDxjPDhK','CgLWqxvKAxq','mtiYotGYnfnLu2DtsG','CNvSzuLK','C2TPCfrLC3rgAwXLCW','BNbTigXPC3qGzxnSAw50lxbSDwDPBI1Zzwn1CML0EsaTlwrLChrOptaGls1QC29U','txvSDgKTBgfUz3vHz2uGu0ftvcb3AxrOigv4DgvUC2L2zsbZzwn1CML0EsbYDwXLCW','y3DL','zw50CMLLCW','Bwv0ywrHDge','rMfPBgvKihrVihbHCNnLiejHBMrPDcbVDxrWDxq','AxnZDwvFy3DL','CgfYC2voCg1bDwrPDfjLC3vSDhm','nJCZnZbLCMrYrMO','q1jjveLdquW'];a0_0x45e0=function(){return _0x181a38;};return a0_0x45e0();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
const a0_0x41462f=a0_0x2a68;(function(_0x4f9e42,_0xe1f307){const _0x75f95a=a0_0x2a68,_0x1021d9=_0x4f9e42();while(!![]){try{const _0x2baf16=parseInt(_0x75f95a(0x170))/0x1+-parseInt(_0x75f95a(0x165))/0x2*(parseInt(_0x75f95a(0x17a))/0x3)+-parseInt(_0x75f95a(0x186))/0x4+parseInt(_0x75f95a(0x182))/0x5*(parseInt(_0x75f95a(0x185))/0x6)+parseInt(_0x75f95a(0x15f))/0x7+parseInt(_0x75f95a(0x188))/0x8+-parseInt(_0x75f95a(0x184))/0x9;if(_0x2baf16===_0xe1f307)break;else _0x1021d9['push'](_0x1021d9['shift']());}catch(_0x435f6a){_0x1021d9['push'](_0x1021d9['shift']());}}}(a0_0x3864,0xcb99c));import a0_0x4f7d1d from'typescript';import a0_0x177896 from'path';function a0_0x3864(){const _0x2b77c5=['zMLSDgvY','vfLqrq','ChvZAa','q0furuDpuLK','rxjYB3i','nJyZndeWtNnUqvHJ','tgf0zxn0','u0vwrvjjvfK','z2v0u3LUDgfJDgLJrgLHz25VC3rPy3m','BwvZC2fNzq','y2f0zwDVCNK','vhLWzvnJCMLWDcbHBMfSExnPCYbJB21WBgv0zwq','rvnozxH0','BgLIlMqUDhm','tM9KzuPZ','nduXmZHSvgDRq3G','y2fUBM90igzPBMqGBw9KDwXL','CgfYC2veAwfNBM9ZDgLJCW','zMLSzu5HBwu','u3vNz2vZDgLVBG','yw5HBhL6zxiTzxjYB3i','C2v2zxjPDhK','Aw50zxjMywnL','ntv1Efn2CMS','tw9KDwXLs2LUza','mtK2nZq4mufKD0ffzW','mZe1nJC4D1DMzhfk','oti0mZiWs2L4s2fX','v2fYBMLUzW','nZu5otyWmfLYsKXOqW','zgvIDwC','tw9KDwXLuMvZB2X1DgLVBKTPBMq','BgvUz3rO','su1qt1ju','twvZC2fNzq','u1Lovefy','u2nYAxb0vgfYz2v0','BgLUzq','Bg9Nz2vY','z2v0tgLUzufUzenOyxjHy3rLCK9Mug9ZAxrPB24','zgLYBMfTzq','mZK2mJi5ngnnB3fpAq','zxjYB3i','z2v0u2vTyw50AwneAwfNBM9ZDgLJCW','v0fstKLorW','y3jLyxrLu291CMnLrMLSzq','zMLSzq','mtK2DwrYsM95','Aw5JBhvKzxm','C3rHCNq','rgLHz25VC3rPy0nHDgvNB3j5','rvjst1i','zM9YBwf0rgLHz25VC3rPyW'];a0_0x3864=function(){return _0x2b77c5;};return a0_0x3864();}function a0_0x2a68(_0x2aa420,_0x214298){_0x2aa420=_0x2aa420-0x15c;const _0x386466=a0_0x3864();let _0x2a686b=_0x386466[_0x2aa420];if(a0_0x2a68['OQrwHg']===undefined){var _0x2c784a=function(_0x58330a){const _0x1a25ba='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4f7d1d='',_0x177896='';for(let _0x35755b=0x0,_0x523e35,_0x51f1e4,_0x19d708=0x0;_0x51f1e4=_0x58330a['charAt'](_0x19d708++);~_0x51f1e4&&(_0x523e35=_0x35755b%0x4?_0x523e35*0x40+_0x51f1e4:_0x51f1e4,_0x35755b++%0x4)?_0x4f7d1d+=String['fromCharCode'](0xff&_0x523e35>>(-0x2*_0x35755b&0x6)):0x0){_0x51f1e4=_0x1a25ba['indexOf'](_0x51f1e4);}for(let _0x5b9ca5=0x0,_0x4db9ed=_0x4f7d1d['length'];_0x5b9ca5<_0x4db9ed;_0x5b9ca5++){_0x177896+='%'+('00'+_0x4f7d1d['charCodeAt'](_0x5b9ca5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x177896);};a0_0x2a68['NhoDBQ']=_0x2c784a,a0_0x2a68['iJUFvn']={},a0_0x2a68['OQrwHg']=!![];}const _0x23b911=_0x386466[0x0],_0x4c3b7d=_0x2aa420+_0x23b911,_0x127fcc=a0_0x2a68['iJUFvn'][_0x4c3b7d];return!_0x127fcc?(_0x2a686b=a0_0x2a68['NhoDBQ'](_0x2a686b),a0_0x2a68['iJUFvn'][_0x4c3b7d]=_0x2a686b):_0x2a686b=_0x127fcc,_0x2a686b;}import{STATIC_ANALYSIS}from'../utilities/constants.js';class TypeScriptAnalyzer{constructor(_0x35755b=null){const _0xcac45a=a0_0x2a68;this['logger']=_0x35755b,this['compilerOptions']={'noEmit':!![],'jsx':a0_0x4f7d1d['JsxEmit']['React'],'target':a0_0x4f7d1d['ScriptTarget'][_0xcac45a(0x171)],'module':a0_0x4f7d1d[_0xcac45a(0x183)][_0xcac45a(0x177)],'moduleResolution':a0_0x4f7d1d[_0xcac45a(0x18a)][_0xcac45a(0x179)],'esModuleInterop':!![],'skipLibCheck':!![],'strict':!![],'noImplicitAny':!![],'strictNullChecks':!![],'strictFunctionTypes':!![],'allowJs':![]};}async['analyze'](_0x523e35,_0x51f1e4,_0x19d708={}){const _0x524529=a0_0x2a68;try{const _0x5b9ca5=[],_0x4db9ed=a0_0x4f7d1d[_0x524529(0x163)](_0x523e35,_0x51f1e4,a0_0x4f7d1d[_0x524529(0x18f)]['Latest'],!![]),_0x43fc66=this['getSyntacticDiagnostics'](_0x4db9ed);_0x5b9ca5['push'](..._0x43fc66);const _0x4967e7=await this[_0x524529(0x161)](_0x523e35,_0x51f1e4);return _0x5b9ca5[_0x524529(0x16d)](..._0x4967e7),this[_0x524529(0x15c)]?.[_0x524529(0x189)](_0x524529(0x176),{'file':_0x523e35,'totalDiagnostics':_0x5b9ca5['length'],'errors':_0x5b9ca5['filter'](_0x54ffd6=>_0x54ffd6[_0x524529(0x180)]===STATIC_ANALYSIS[_0x524529(0x172)][_0x524529(0x169)])[_0x524529(0x18b)],'warnings':_0x5b9ca5[_0x524529(0x16b)](_0x538333=>_0x538333[_0x524529(0x180)]===STATIC_ANALYSIS['SEVERITY'][_0x524529(0x162)])['length']}),_0x5b9ca5;}catch(_0x15b59d){return this[_0x524529(0x15c)]?.[_0x524529(0x160)]('TypeScript\x20analysis\x20failed',{'file':_0x523e35,'error':_0x15b59d[_0x524529(0x174)]}),[{'file':_0x523e35,'line':0x0,'column':0x0,'severity':STATIC_ANALYSIS['SEVERITY']['ERROR'],'rule':_0x524529(0x17f),'message':'Analysis\x20failed:\x20'+_0x15b59d['message'],'category':STATIC_ANALYSIS[_0x524529(0x16e)]['SYNTAX']}];}}['getSyntacticDiagnostics'](_0x58a991){const _0x2df761=a0_0x2a68,_0x3261f3=[];if(_0x58a991[_0x2df761(0x17c)]&&_0x58a991['parseDiagnostics']['length']>0x0)for(const _0x165a4a of _0x58a991[_0x2df761(0x17c)]){_0x3261f3[_0x2df761(0x16d)](this[_0x2df761(0x16a)](_0x165a4a,_0x58a991));}return _0x3261f3;}async[a0_0x41462f(0x161)](_0x466a2a,_0x173dd3){const _0x5ab40b=a0_0x41462f,_0x20977c=[];try{const _0x550ef8=a0_0x4f7d1d[_0x5ab40b(0x163)](_0x466a2a,_0x173dd3,a0_0x4f7d1d[_0x5ab40b(0x18f)][_0x5ab40b(0x171)],!![]),_0x15998b={'getSourceFile':_0xf29805=>{if(_0xf29805===_0x466a2a)return _0x550ef8;return undefined;},'getDefaultLibFileName':()=>_0x5ab40b(0x178),'writeFile':()=>{},'getCurrentDirectory':()=>a0_0x177896[_0x5ab40b(0x15e)](_0x466a2a),'getDirectories':()=>[],'fileExists':_0x129603=>_0x129603===_0x466a2a,'readFile':_0x114518=>{if(_0x114518===_0x466a2a)return _0x173dd3;return undefined;},'getCanonicalFileName':_0x3b1b6c=>_0x3b1b6c,'useCaseSensitiveFileNames':()=>!![],'getNewLine':()=>'\x0a'},_0x27f625=a0_0x4f7d1d['createProgram']({'rootNames':[_0x466a2a],'options':this['compilerOptions'],'host':_0x15998b}),_0x4d49ad=_0x27f625[_0x5ab40b(0x173)](_0x550ef8),_0x3130a2=_0x27f625[_0x5ab40b(0x161)](_0x550ef8);for(const _0x47fcd2 of[..._0x4d49ad,..._0x3130a2]){_0x20977c['push'](this['formatDiagnostic'](_0x47fcd2,_0x550ef8));}}catch(_0x28e669){this[_0x5ab40b(0x15c)]?.['debug']('Semantic\x20analysis\x20encountered\x20error',{'file':_0x466a2a,'error':_0x28e669[_0x5ab40b(0x174)]});}return _0x20977c;}['formatDiagnostic'](_0x5b751c,_0x1ae0b5){const _0x54b133=a0_0x41462f;let _0x439115=0x0,_0xc0090d=0x0;if(_0x5b751c['file']&&_0x5b751c[_0x54b133(0x167)]!==undefined){const _0x58620d=_0x5b751c[_0x54b133(0x164)]['getLineAndCharacterOfPosition'](_0x5b751c['start']);_0x439115=_0x58620d[_0x54b133(0x190)]+0x1,_0xc0090d=_0x58620d['character']+0x1;}else{if(_0x1ae0b5&&_0x5b751c['start']!==undefined){const _0x214e22=_0x1ae0b5[_0x54b133(0x15d)](_0x5b751c['start']);_0x439115=_0x214e22['line']+0x1,_0xc0090d=_0x214e22['character']+0x1;}}const _0xd2de36=a0_0x4f7d1d['flattenDiagnosticMessageText'](_0x5b751c['messageText'],'\x0a');let _0x245f69;switch(_0x5b751c[_0x54b133(0x175)]){case a0_0x4f7d1d['DiagnosticCategory'][_0x54b133(0x16f)]:_0x245f69=STATIC_ANALYSIS[_0x54b133(0x172)][_0x54b133(0x169)];break;case a0_0x4f7d1d[_0x54b133(0x168)][_0x54b133(0x187)]:_0x245f69=STATIC_ANALYSIS[_0x54b133(0x172)]['WARNING'];break;case a0_0x4f7d1d['DiagnosticCategory'][_0x54b133(0x18d)]:case a0_0x4f7d1d['DiagnosticCategory'][_0x54b133(0x17e)]:_0x245f69=STATIC_ANALYSIS['SEVERITY']['INFO'];break;default:_0x245f69=STATIC_ANALYSIS['SEVERITY']['ERROR'];}let _0x466974=STATIC_ANALYSIS[_0x54b133(0x16e)][_0x54b133(0x18e)];const _0x37e3d3=_0x5b751c['code'];if(_0x37e3d3>=0x7d0&&_0x37e3d3<0xbb8)_0x466974=STATIC_ANALYSIS['CATEGORY']['TYPE'];else{if(_0x37e3d3>=0x3e8&&_0x37e3d3<0x7d0)_0x466974=STATIC_ANALYSIS[_0x54b133(0x16e)][_0x54b133(0x18e)];else _0x37e3d3>=0x8fc&&_0x37e3d3<0x960&&(_0x466974=STATIC_ANALYSIS[_0x54b133(0x16e)][_0x54b133(0x18c)]);}const _0x3686ab=_0xd2de36['toLowerCase']();if(_0x3686ab[_0x54b133(0x166)](_0x54b133(0x17b))||_0x3686ab['includes']('import')||_0x3686ab['includes']('export'))_0x466974=STATIC_ANALYSIS[_0x54b133(0x16e)][_0x54b133(0x18c)];else(_0x3686ab['includes']('type')||_0x3686ab['includes'](_0x54b133(0x181))||_0x3686ab['includes']('class'))&&(_0x466974=STATIC_ANALYSIS['CATEGORY'][_0x54b133(0x16c)]);return{'file':_0x5b751c[_0x54b133(0x164)]?.[_0x54b133(0x17d)]||_0x1ae0b5?.[_0x54b133(0x17d)]||'unknown','line':_0x439115,'column':_0xc0090d,'severity':_0x245f69,'rule':'TS'+_0x37e3d3,'message':_0xd2de36,'category':_0x466974,'fixable':![],'code':_0x5b751c['code']};}}export default TypeScriptAnalyzer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x1ea35b=a0_0x4e13;function a0_0x4ab5(){const _0x20c035=['yxzLCMfNzuXPBMvdB3vUDa','Dg9Rzw5dB3vUDa','nJaWotbWuffQAgy','zxH0CMfJDgvKrNvUy3rPB24','mtyWotbxtLP0z3K','zgv0zxjTAw5LuMvMywn0B3jPBMDtDhjHDgvNEq','C29YDa','C3vNz2vZDe5HBwu','odGWrKXltfvb','zxH0CMfJDc1JB25ZDgfUDc1VCI11DgLSAxr5','Bgv0','mY4GvgvZDcb0Ag9YB3vNAgX5','lcbHBMqGCMvKDwnLignVzguGC2L6zq','DhLWzq','zwXZzq','AgLNAa','z2vUzxjHDgvszwfZB25PBMC','zhvWBgLJyxrLzeXPBMvZ','BgvUz3rO','y29UzMLKzw5Jzq','cI4UlIaODhj1BMnHDgvKkq','zw5KtgLUzq','z2vUzxjHDgvszwzHy3rVCMLUz0fKDMLJzq','zxn0Aw1HDgvfzMzVCNq','igXVy2f0Aw9UCW','sw1WCM92zsbJB2rLig9Yz2fUAxPHDgLVBIbHy3jVC3mG','ms4GrxH0CMfJDcb0AguGzhvWBgLJyxrLzcbJB2rLihvZAw5Nia','Bwf0y2G','ChvZAa','mI4GuMvWBgfJzsbHBgWGAw5ZDgfUy2vZihDPDgGGDgHLigv4DhjHy3rLzcb2zxjZAw9U','nc4GuMvWBgfJzsbHBgWGAw5ZDgfUy2vZihDPDgGGy2fSBhmGDg8GDgHLig5LDYbMDw5JDgLVBG','mI4Gtw92zsbYzwXHDgvKig1LDgHVzhmGyw5KihbYB3bLCNrPzxmGAw50BYb0AguGy2XHC3m','lIbuAgLZigLZigeGAgLNAc1PBxbHy3qGCMvMywn0B3jPBMCGB3bWB3j0Dw5PDhK','igzPBgvZ','nJKZmg9WzhbPqG','Bg9Nmta','C3rHCNrmAw5L','BwLU','zM9Y','y29UC3q','Dg9gAxHLza','ignVzguGCgf0DgvYBIbHChbLyxjZia','Dhj1BMnHDgvdB2rL','ms4Gq3jLyxrLigeGBMv3ignSyxnZihrVigvUy2fWC3vSyxrLihrOAxmGzNvUy3rPB25HBgL0Eq','ntq4ndKYDhrtwMv6','sw1WCM92zsbTywLUDgfPBMfIAwXPDhKGyNKGy2vUDhjHBgL6Aw5NigXVz2LJigLUig9UzsbWBgfJzq','C3bSAxq','nZCWBgXzvu9W','igrPzMzLCMvUDcbMAwXLCW','C29Tzq','mZu5mdyXu1b3r0zs','nuP5BwXPqW','uMvMywn0B3jPBMCGDg8G','ns4GvgvZDcb0BYbLBNn1CMuGyMvOyxzPB3iGAxmGChjLC2vYDMvK','zMLSzxndB3zLCMvK','mtmYme5vsu9SyW','C2XPy2u','BwfW','C2L6zq','Aw1Wywn0u2nVCMu','y29UzMLN','zxH0CMfJDc1MDw5JDgLVBG','mJvuu2Pvv1G','Bwv0CMLJCW','rNvUy3rPB24','ihrPBwvZ','y3jLyxrLrNvUy3rPB25oyw1L','Dg9vChbLCKnHC2u','zw50CMLLCW','zxH0CMfJDc1TB2r1Bgu','AM9PBG','Aw5JBhvKzxm','CMvWBgfJzq','y2fSy3vSyxrLtwv0CMLJCW','twv0Ag9K','y2XVBMuT','mtKZmti0n2LevxvXBq','yMXVy2TZ','y2fSy3vSyxrLsw1Wywn0u2nVCMu','z2vUzxjHDgvby3rPB25HyMXLu3rLChm','Aw5ZDgfUy2vdB3vUDa','zxH0CMfJDc1JBgfZCW'];a0_0x4ab5=function(){return _0x20c035;};return a0_0x4ab5();}function a0_0x4e13(_0x783f9a,_0xad5010){_0x783f9a=_0x783f9a-0x72;const _0x4ab5ac=a0_0x4ab5();let _0x4e13e6=_0x4ab5ac[_0x783f9a];if(a0_0x4e13['vlfszh']===undefined){var _0x5cc8c2=function(_0x23db80){const _0x570705='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2deed4='',_0x16569d='';for(let _0x45a898=0x0,_0x5b23ff,_0x5275f3,_0x519db8=0x0;_0x5275f3=_0x23db80['charAt'](_0x519db8++);~_0x5275f3&&(_0x5b23ff=_0x45a898%0x4?_0x5b23ff*0x40+_0x5275f3:_0x5275f3,_0x45a898++%0x4)?_0x2deed4+=String['fromCharCode'](0xff&_0x5b23ff>>(-0x2*_0x45a898&0x6)):0x0){_0x5275f3=_0x570705['indexOf'](_0x5275f3);}for(let _0x5b7b3f=0x0,_0x5dc124=_0x2deed4['length'];_0x5b7b3f<_0x5dc124;_0x5b7b3f++){_0x16569d+='%'+('00'+_0x2deed4['charCodeAt'](_0x5b7b3f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x16569d);};a0_0x4e13['DFZTPZ']=_0x5cc8c2,a0_0x4e13['HukAjC']={},a0_0x4e13['vlfszh']=!![];}const _0x2d87a1=_0x4ab5ac[0x0],_0x3b751d=_0x783f9a+_0x2d87a1,_0x1397f4=a0_0x4e13['HukAjC'][_0x3b751d];return!_0x1397f4?(_0x4e13e6=a0_0x4e13['DFZTPZ'](_0x4e13e6),a0_0x4e13['HukAjC'][_0x3b751d]=_0x4e13e6):_0x4e13e6=_0x1397f4,_0x4e13e6;}(function(_0x12b36d,_0x468a6d){const _0x58c3c9=a0_0x4e13,_0x539283=_0x12b36d();while(!![]){try{const _0x39934c=parseInt(_0x58c3c9(0xbc))/0x1*(parseInt(_0x58c3c9(0x82))/0x2)+-parseInt(_0x58c3c9(0xb0))/0x3+parseInt(_0x58c3c9(0xaa))/0x4+parseInt(_0x58c3c9(0xb1))/0x5*(parseInt(_0x58c3c9(0x80))/0x6)+parseInt(_0x58c3c9(0xa0))/0x7*(parseInt(_0x58c3c9(0xb5))/0x8)+-parseInt(_0x58c3c9(0x78))/0x9+parseInt(_0x58c3c9(0x86))/0xa*(-parseInt(_0x58c3c9(0xad))/0xb);if(_0x39934c===_0x468a6d)break;else _0x539283['push'](_0x539283['shift']());}catch(_0xe7c2ff){_0x539283['push'](_0x539283['shift']());}}}(a0_0x4ab5,0x29caf));export class RefactoringAnalyzer{constructor(_0x2deed4){const _0x2ae32f=a0_0x4e13;this[_0x2ae32f(0xba)]=_0x2deed4;}['analyzeClones'](_0x16569d){const _0x3b1af3=a0_0x4e13;return console['log']('Analyzing\x20clones\x20for\x20refactoring\x20opportunities...'),_0x16569d[_0x3b1af3(0xb7)]((_0x45a898,_0x5b23ff)=>{const _0x466029=_0x3b1af3,_0x5275f3=this[_0x466029(0x75)](_0x45a898),_0x519db8=this[_0x466029(0x94)](_0x45a898,_0x5275f3);return{'id':_0x466029(0x77)+(_0x5b23ff+0x1),'type':_0x45a898['type'],'confidence':_0x45a898['confidence'],'instances':_0x45a898[_0x466029(0x79)]['map'](_0x5b7b3f=>({'file':_0x5b7b3f['file'],'startLine':_0x5b7b3f[_0x466029(0xa2)],'endLine':_0x5b7b3f['endLine'],'code':this[_0x466029(0xa8)](_0x5b7b3f['code']),'fullCode':_0x5b7b3f['code'],'blockType':_0x5b7b3f['type']})),'metrics':_0x5275f3,'refactoringAdvice':_0x519db8};})[_0x3b1af3(0x84)]((_0x5dc124,_0x15a478)=>_0x15a478[_0x3b1af3(0xbd)][_0x3b1af3(0xb9)]-_0x5dc124[_0x3b1af3(0xbd)]['impactScore']);}[a0_0x1ea35b(0x75)](_0x1333f7){const _0x13b77c=a0_0x1ea35b,_0x1df5ae=_0x1333f7[_0x13b77c(0x79)],_0x3a97fb=_0x1333f7[_0x13b77c(0x7f)],_0x4724ab=this[_0x13b77c(0x7e)](_0x1df5ae),_0x54ee1d=_0x1df5ae[_0x13b77c(0x90)],_0xc63183=this['calculateImpactScore'](_0x3a97fb,_0x4724ab,_0x54ee1d,_0x1333f7[_0x13b77c(0x91)]),_0x39815e=_0x4724ab*(_0x54ee1d-0x1),_0x196012=_0x3a97fb*(_0x54ee1d-0x1);return{'tokenCount':_0x3a97fb,'lineCount':_0x4724ab,'instanceCount':_0x54ee1d,'duplicatedLines':_0x39815e,'duplicatedTokens':_0x196012,'impactScore':parseFloat(_0xc63183[_0x13b77c(0xa6)](0x2)),'filesCovered':new Set(_0x1df5ae['map'](_0x470b45=>_0x470b45['file']))[_0x13b77c(0xb8)]};}[a0_0x1ea35b(0x7a)](_0x2227a3,_0x14a99e,_0x465cdb,_0x75539a){const _0x4c347d=a0_0x1ea35b,_0x16f501=Math[_0x4c347d(0xa1)](_0x2227a3+0x1)*0x2,_0x5b0c67=Math['log2'](_0x465cdb+0x1)*0x3,_0xd77020=_0x75539a*0x2,_0x5fd44a=Math['min'](_0x14a99e/0xa,0x3);return _0x16f501+_0x5b0c67+_0xd77020+_0x5fd44a;}[a0_0x1ea35b(0x94)](_0x13a75d,_0x1145e0){const _0x5312d3=a0_0x1ea35b,_0x29ee67=this[_0x5312d3(0x83)](_0x13a75d,_0x1145e0),_0x23167b=this['determinePriority'](_0x1145e0),_0x11153f=this['suggestName'](_0x13a75d),_0x4a4789=this[_0x5312d3(0x8e)](_0x13a75d,_0x1145e0,_0x29ee67),_0x19b95b=this['estimateEffort'](_0x1145e0,_0x29ee67),_0x108ae3=this['describeBenefits'](_0x1145e0);return{'priority':_0x23167b,'strategy':_0x29ee67,'suggestedName':_0x11153f,'reasoning':_0x4a4789,'estimatedEffort':_0x19b95b,'benefits':_0x108ae3,'actionableSteps':this['generateActionableSteps'](_0x29ee67,_0x11153f,_0x1145e0)};}[a0_0x1ea35b(0x83)](_0x32e663,_0x4a033d){const _0x9d621f=a0_0x1ea35b,{tokenCount:_0x38f17e,lineCount:_0x5dfc21,instanceCount:_0x1810a9,filesCovered:_0x3a6043}=_0x4a033d,_0x3ab06d=_0x32e663['blocks'][_0x9d621f(0xb7)](_0x42e546=>_0x42e546['type']),_0x167c78=_0x3ab06d[_0x9d621f(0xaf)](_0x3ec5d4=>_0x3ec5d4[_0x9d621f(0x73)](_0x9d621f(0xbe))||_0x3ec5d4[_0x9d621f(0x73)](_0x9d621f(0x76))),_0x526530=_0x3ab06d['some'](_0x3c29e9=>_0x3c29e9[_0x9d621f(0x73)]('Class'));if(_0x526530&&_0x5dfc21>0x32)return _0x9d621f(0xc3);else{if(_0x3a6043>0x2&&_0x38f17e>0x64)return'extract-module';else{if(_0x167c78||_0x5dfc21>=0xa&&_0x5dfc21<=0x32)return _0x9d621f(0xbb);else{if(_0x5dfc21>0x32)return _0x9d621f(0x7d);else return _0x5dfc21<0xa?_0x9d621f(0x87):_0x9d621f(0xbb);}}}}['determinePriority'](_0x3b32df){const _0x2bd91e=a0_0x1ea35b,{impactScore:_0x57cfa5}=_0x3b32df;if(_0x57cfa5>=0x8)return _0x2bd91e(0x8d);if(_0x57cfa5>=0x5)return'medium';return'low';}[a0_0x1ea35b(0x85)](_0xa62270){const _0x2c8dd9=a0_0x1ea35b,_0x57932c=_0xa62270[_0x2c8dd9(0x79)]['map'](_0x4df63a=>_0x4df63a['code'])[_0x2c8dd9(0x72)]('\x20'),_0x34ddaa=_0x57932c[_0x2c8dd9(0x99)](/[a-zA-Z_$][a-zA-Z0-9_$]*/g)||[],_0x160a99={};_0x34ddaa['forEach'](_0x15f4ba=>{const _0x3389dc=_0x2c8dd9;if([_0x3389dc(0xa5),_0x3389dc(0x88),'var','function','return','if',_0x3389dc(0x8c),_0x3389dc(0xa4),'while']['includes'](_0x15f4ba))return;_0x160a99[_0x15f4ba]=(_0x160a99[_0x15f4ba]||0x0)+0x1;});const _0x476d37=Object[_0x2c8dd9(0xc2)](_0x160a99)[_0x2c8dd9(0x84)]((_0x31189,_0x138cef)=>_0x138cef[0x1]-_0x31189[0x1])[_0x2c8dd9(0xb6)](0x0,0x3);if(_0x476d37[_0x2c8dd9(0x90)]>0x0){const _0xa6078d=_0x476d37[_0x2c8dd9(0xb7)](([_0x2d788a])=>_0x2d788a);return this[_0x2c8dd9(0xc0)](_0xa6078d);}return'extractedFunction';}['createFunctionName'](_0x5d8402){const _0x503e3e=a0_0x1ea35b;if(_0x5d8402[_0x503e3e(0x90)]===0x0)return _0x503e3e(0x81);return _0x5d8402[0x0]+_0x5d8402['slice'](0x1)['map'](_0x5df73d=>_0x5df73d['charAt'](0x0)[_0x503e3e(0xc1)]()+_0x5df73d[_0x503e3e(0xb6)](0x1))['join']('');}[a0_0x1ea35b(0x8e)](_0xe07edc,_0x16454f,_0x29f999){const _0x2a331e=a0_0x1ea35b,{instanceCount:_0x20dadb,duplicatedLines:_0x28e0a2,filesCovered:_0x224586}=_0x16454f;let _0x20f5dd='This\x20'+_0xe07edc[_0x2a331e(0x8b)]+_0x2a331e(0xa7)+_0x20dadb+_0x2a331e(0xbf);return _0x224586>0x1&&(_0x20f5dd+='\x20across\x20'+_0x224586+_0x2a331e(0xae)),_0x20f5dd+=',\x20resulting\x20in\x20'+_0x28e0a2+'\x20duplicated\x20lines.\x20',_0x20f5dd+=_0x2a331e(0xb2)+_0x29f999['replace'](/-/g,'\x20')+'\x20would\x20improve\x20maintainability',_0x20dadb>=0x3&&(_0x20f5dd+=', reduce bugs from inconsistent changes'),_0x20f5dd+=_0x2a331e(0x8a),_0x16454f['impactScore']>=0x8&&(_0x20f5dd+=_0x2a331e(0x9e)),_0x20f5dd+'.';}[a0_0x1ea35b(0x95)](_0x268b3a,_0x531b58){const _0x3c7cd6=a0_0x1ea35b,{lineCount:_0xb70ecc,instanceCount:_0x334257,filesCovered:_0x23cc2e}=_0x268b3a;let _0x41c01b=0x0;_0x41c01b+=Math[_0x3c7cd6(0xa3)](_0xb70ecc/0xa,0x5),_0x41c01b+=_0x334257*0.5,_0x41c01b+=_0x23cc2e*0.5;if(_0x531b58==='extract-module')_0x41c01b+=0x3;else{if(_0x531b58===_0x3c7cd6(0x7d))_0x41c01b+=0x2;else _0x531b58===_0x3c7cd6(0xbb)&&(_0x41c01b+=0x1);}if(_0x41c01b<=0x3)return'low';if(_0x41c01b<=0x7)return'medium';return _0x3c7cd6(0x8d);}['describeBenefits'](_0x2ea2ef){const _0x4596b2=a0_0x1ea35b,_0x34906f=[];return _0x34906f[_0x4596b2(0x9a)]('Eliminate\x20'+_0x2ea2ef[_0x4596b2(0x8f)]+'\x20duplicated\x20lines\x20of\x20code'),_0x34906f[_0x4596b2(0x9a)](_0x4596b2(0xab)),_0x2ea2ef[_0x4596b2(0x7c)]>=0x3&&_0x34906f[_0x4596b2(0x9a)]('Reduce\x20risk\x20of\x20inconsistent\x20changes\x20across\x20'+_0x2ea2ef[_0x4596b2(0x7c)]+_0x4596b2(0x96)),_0x2ea2ef[_0x4596b2(0xb4)]>0x2&&_0x34906f[_0x4596b2(0x9a)](_0x4596b2(0x97)+_0x2ea2ef['filesCovered']+_0x4596b2(0x9f)),_0x34906f[_0x4596b2(0x9a)]('Make\x20future\x20changes\x20easier\x20and\x20less\x20error-prone'),_0x34906f;}[a0_0x1ea35b(0x7b)](_0x420720,_0x161462,_0x2bf281){const _0x15bc2c=a0_0x1ea35b,_0xb6777a=[];switch(_0x420720){case _0x15bc2c(0xbb):_0xb6777a[_0x15bc2c(0x9a)]('1.\x20Create\x20a\x20new\x20function\x20named\x20\x27'+_0x161462+'\x27'),_0xb6777a['push']('2.\x20Move\x20the\x20duplicated\x20logic\x20into\x20this\x20function'),_0xb6777a[_0x15bc2c(0x9a)]('3. Identify parameters needed from the surrounding context'),_0xb6777a['push'](_0x15bc2c(0x9c)),_0xb6777a[_0x15bc2c(0x9a)](_0x15bc2c(0xb3));break;case _0x15bc2c(0x7d):_0xb6777a[_0x15bc2c(0x9a)](_0x15bc2c(0xa9)),_0xb6777a[_0x15bc2c(0x9a)](_0x15bc2c(0x9d)),_0xb6777a['push']('3.\x20Update\x20all\x20instances\x20to\x20use\x20the\x20new\x20class'),_0xb6777a['push']('4.\x20Consider\x20dependency\x20injection\x20for\x20better\x20testability');break;case _0x15bc2c(0xc3):_0xb6777a[_0x15bc2c(0x9a)]('1.\x20Create\x20a\x20new\x20module/file\x20for\x20this\x20shared\x20functionality'),_0xb6777a[_0x15bc2c(0x9a)]('2.\x20Move\x20the\x20duplicated\x20code\x20into\x20the\x20new\x20module'),_0xb6777a['push']('3.\x20Export\x20the\x20necessary\x20functions/classes'),_0xb6777a[_0x15bc2c(0x9a)]('4. Update all files to import from the new module'),_0xb6777a['push']('5.\x20Update\x20any\x20build\x20configurations\x20if\x20needed');break;default:_0xb6777a[_0x15bc2c(0x9a)](_0x15bc2c(0x98)+_0x420720[_0x15bc2c(0x74)](/-/g,'\x20')),_0xb6777a['push'](_0x15bc2c(0x9b)),_0xb6777a[_0x15bc2c(0x9a)](_0x15bc2c(0x89));}return _0xb6777a;}['truncateCode'](_0x23b62b,_0x597bc5=0xa){const _0x1e19da=a0_0x1ea35b,_0x21165f=_0x23b62b[_0x1e19da(0xac)]('\x0a');if(_0x21165f['length']<=_0x597bc5)return _0x23b62b;return _0x21165f[_0x1e19da(0xb6)](0x0,_0x597bc5)['join']('\x0a')+_0x1e19da(0x92);}[a0_0x1ea35b(0x7e)](_0x224375){const _0x5d1572=a0_0x1ea35b,_0x4d5aa0=_0x224375['reduce']((_0x1d8fce,_0x24efac)=>_0x1d8fce+(_0x24efac[_0x5d1572(0x93)]-_0x24efac['startLine']+0x1),0x0);return Math['round'](_0x4d5aa0/_0x224375['length']);}}
|
|
1
|
+
function a0_0x16b0(){const _0x4134e7=['C2L6zq','y29UzMLKzw5Jzq','y3jLyxrLrNvUy3rPB25oyw1L','D2HPBgu','Aw5JBhvKzxm','mtm5ntGZmvHwBhjHuq','zM9Y','ihDVDwXKigLTChjVDMuGBwfPBNrHAw5HyMLSAxr5','nZCZmtu1sNfbvMvi','mY4GvgvZDcb0Ag9YB3vNAgX5','zwXZzq','Aw1Wywn0u2nVCMu','Aw5ZDgfUy2vdB3vUDa','yMXVy2TZ','ms4Gq3jLyxrLigeGBMv3ignSyxnZihrVigvUy2fWC3vSyxrLihrOAxmGzNvUy3rPB25HBgL0Eq','yxzLCMfNzuXPBMvdB3vUDa','BgvUz3rO','zxH0CMfJDc1JB25ZDgfUDc1VCI11DgLSAxr5','mtzSAePIz3C','zxH0CMfJDc1TB2r1Bgu','Bg93','y2fSy3vSyxrLtwv0CMLJCW','DhLWzq','ChvZAa','nc4Gq29UC2LKzxiGzgvWzw5Kzw5JEsbPBMPLy3rPB24GzM9YigjLDhrLCIb0zxn0ywjPBgL0Eq','z2vUzxjHDgvszwfZB25PBMC','odu2mZCXmerZDxHhCG','zNvUy3rPB24','C3rHCNrmAw5L','ms4Gq3jLyxrLigeGBMv3igz1BMn0Aw9Uig5HBwvKicC','Bg9N','zxH0CMfJDc1JBgfZCW','zgv0zxjTAw5LuhjPB3jPDhK','BwLU','mtuZmdy4meTcyNPcqG','mtiYodyZm1zvzhHvrW','rwXPBwLUyxrLia','C2XPy2u','C29Tzq','BwfW','y2HHCKf0','ihrPBwvZ','cI4UlIaODhj1BMnHDgvKkq','igrPzMzLCMvUDcbMAwXLCW','y29UC3q','C3bSAxq','ntK3mZKZBhPQBLPf','CMvWBgfJzq','sw1WCM92zsbTywLUDgfPBMfIAwXPDhKGyNKGy2vUDhjHBgL6Aw5NigXVz2LJigLUig9UzsbWBgfJzq','mY4GrxHWB3j0ihrOzsbUzwnLC3nHCNKGzNvUy3rPB25Zl2nSyxnZzxm','nKXoDgHnsa','vgHPCYa','Dg9vChbLCKnHC2u','z2vUzxjHDgvszwzHy3rVCMLUz0fKDMLJzq','zxH0CMfJDgvKrNvUy3rPB24','y2fSy3vSyxrLsw1Wywn0u2nVCMu','BwvKAxvT','y29UzMLN','C29YDa','CMvKDwnL','ms4GrxH0CMfJDcb0AguGzhvWBgLJyxrLzcbJB2rLihvZAw5Nia','AM9PBG','Bwv0CMLJCW','zxH0CMfJDc1MDw5JDgLVBG','ns4GvxbKyxrLigfUEsbIDwLSzcbJB25MAwD1CMf0Aw9UCYbPzIbUzwvKzwq','zgv0zxjTAw5LuMvMywn0B3jPBMDtDhjHDgvNEq','DMfY','zMLSzxndB3zLCMvK','m0DwB0fxua','mZC5oteWuMrnuhfV','zM9YrwfJAa','mI4GuMvWBgfJzsbHBgWGAw5ZDgfUy2vZihDPDgGGDgHLigv4DhjHy3rLzcb2zxjZAw9U'];a0_0x16b0=function(){return _0x4134e7;};return a0_0x16b0();}const a0_0x27238a=a0_0x4591;(function(_0x6b1f0f,_0x24d0d3){const _0x49f889=a0_0x4591,_0x269ae9=_0x6b1f0f();while(!![]){try{const _0x4707b6=-parseInt(_0x49f889(0x11e))/0x1*(-parseInt(_0x49f889(0x11f))/0x2)+-parseInt(_0x49f889(0x127))/0x3+-parseInt(_0x49f889(0x144))/0x4+-parseInt(_0x49f889(0x12a))/0x5+-parseInt(_0x49f889(0x154))/0x6*(-parseInt(_0x49f889(0x145))/0x7)+-parseInt(_0x49f889(0x134))/0x8*(parseInt(_0x49f889(0x150))/0x9)+parseInt(_0x49f889(0x13c))/0xa;if(_0x4707b6===_0x24d0d3)break;else _0x269ae9['push'](_0x269ae9['shift']());}catch(_0x15e5d1){_0x269ae9['push'](_0x269ae9['shift']());}}}(a0_0x16b0,0x71df7));function a0_0x4591(_0x4bc4bf,_0x3681cd){_0x4bc4bf=_0x4bc4bf-0x10f;const _0x16b08d=a0_0x16b0();let _0x45917a=_0x16b08d[_0x4bc4bf];if(a0_0x4591['yhuGvC']===undefined){var _0x112c65=function(_0x27a98a){const _0x3ec18b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2f8b6f='',_0x40ab38='';for(let _0x10dbd0=0x0,_0x4872b6,_0x13b490,_0x4ad84e=0x0;_0x13b490=_0x27a98a['charAt'](_0x4ad84e++);~_0x13b490&&(_0x4872b6=_0x10dbd0%0x4?_0x4872b6*0x40+_0x13b490:_0x13b490,_0x10dbd0++%0x4)?_0x2f8b6f+=String['fromCharCode'](0xff&_0x4872b6>>(-0x2*_0x10dbd0&0x6)):0x0){_0x13b490=_0x3ec18b['indexOf'](_0x13b490);}for(let _0x3fbdeb=0x0,_0x33f771=_0x2f8b6f['length'];_0x3fbdeb<_0x33f771;_0x3fbdeb++){_0x40ab38+='%'+('00'+_0x2f8b6f['charCodeAt'](_0x3fbdeb)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x40ab38);};a0_0x4591['MfgjTE']=_0x112c65,a0_0x4591['AluktO']={},a0_0x4591['yhuGvC']=!![];}const _0x4ad919=_0x16b08d[0x0],_0x43cc74=_0x4bc4bf+_0x4ad919,_0x5ccfd1=a0_0x4591['AluktO'][_0x43cc74];return!_0x5ccfd1?(_0x45917a=a0_0x4591['MfgjTE'](_0x45917a),a0_0x4591['AluktO'][_0x43cc74]=_0x45917a):_0x45917a=_0x5ccfd1,_0x45917a;}export class RefactoringAnalyzer{constructor(_0x2f8b6f){const _0x540753=a0_0x4591;this[_0x540753(0x113)]=_0x2f8b6f;}['analyzeClones'](_0x40ab38){const _0x5e785b=a0_0x4591;return console[_0x5e785b(0x140)]('Analyzing\x20clones\x20for\x20refactoring\x20opportunities...'),_0x40ab38[_0x5e785b(0x149)]((_0x10dbd0,_0x4872b6)=>{const _0x4dcd4a=_0x5e785b,_0x13b490=this[_0x4dcd4a(0x137)](_0x10dbd0),_0x4ad84e=this['generateRefactoringAdvice'](_0x10dbd0,_0x13b490);return{'id':'clone-'+(_0x4872b6+0x1),'type':_0x10dbd0['type'],'confidence':_0x10dbd0[_0x4dcd4a(0x123)],'instances':_0x10dbd0['blocks'][_0x4dcd4a(0x149)](_0x3fbdeb=>({'file':_0x3fbdeb['file'],'startLine':_0x3fbdeb['startLine'],'endLine':_0x3fbdeb['endLine'],'code':this['truncateCode'](_0x3fbdeb['code']),'fullCode':_0x3fbdeb['code'],'blockType':_0x3fbdeb['type']})),'metrics':_0x13b490,'refactoringAdvice':_0x4ad84e};})['sort']((_0x33f771,_0xf9d55)=>_0xf9d55['metrics'][_0x5e785b(0x12d)]-_0x33f771[_0x5e785b(0x118)]['impactScore']);}[a0_0x27238a(0x137)](_0x4cecf2){const _0xfd6afd=a0_0x27238a,_0x4d5535=_0x4cecf2['blocks'],_0x46bbe8=_0x4cecf2['tokenCount'],_0x449d02=this[_0xfd6afd(0x131)](_0x4d5535),_0x37ab41=_0x4d5535['length'],_0x2619ff=this['calculateImpactScore'](_0x46bbe8,_0x449d02,_0x37ab41,_0x4cecf2['confidence']),_0x109a2d=_0x449d02*(_0x37ab41-0x1),_0x1cd18f=_0x46bbe8*(_0x37ab41-0x1);return{'tokenCount':_0x46bbe8,'lineCount':_0x449d02,'instanceCount':_0x37ab41,'duplicatedLines':_0x109a2d,'duplicatedTokens':_0x1cd18f,'impactScore':parseFloat(_0x2619ff['toFixed'](0x2)),'filesCovered':new Set(_0x4d5535['map'](_0x55963f=>_0x55963f['file']))[_0xfd6afd(0x122)]};}[a0_0x27238a(0x111)](_0x431500,_0x54f0bd,_0x1816a2,_0x3ad749){const _0x3e85fe=Math['log10'](_0x431500+0x1)*0x2,_0x536b8c=Math['log2'](_0x1816a2+0x1)*0x3,_0x53692=_0x3ad749*0x2,_0x4bd8a4=Math['min'](_0x54f0bd/0xa,0x3);return _0x3e85fe+_0x536b8c+_0x53692+_0x4bd8a4;}[a0_0x27238a(0x10f)](_0x402835,_0x1aae8f){const _0x5870ba=a0_0x27238a,_0x3a9484=this[_0x5870ba(0x11b)](_0x402835,_0x1aae8f),_0x5d5016=this[_0x5870ba(0x142)](_0x1aae8f),_0x280c81=this['suggestName'](_0x402835),_0x3ae773=this['generateReasoning'](_0x402835,_0x1aae8f,_0x3a9484),_0x2c673d=this['estimateEffort'](_0x1aae8f,_0x3a9484),_0x532950=this['describeBenefits'](_0x1aae8f);return{'priority':_0x5d5016,'strategy':_0x3a9484,'suggestedName':_0x280c81,'reasoning':_0x3ae773,'estimatedEffort':_0x2c673d,'benefits':_0x532950,'actionableSteps':this['generateActionableSteps'](_0x3a9484,_0x280c81,_0x1aae8f)};}['determineRefactoringStrategy'](_0x350702,_0x22ad78){const _0x2529f4=a0_0x27238a,{tokenCount:_0x2d8b6b,lineCount:_0x2e683e,instanceCount:_0x185226,filesCovered:_0x14a112}=_0x22ad78,_0x8c4597=_0x350702[_0x2529f4(0x12f)][_0x2529f4(0x149)](_0x42eb98=>_0x42eb98['type']),_0x435441=_0x8c4597[_0x2529f4(0x148)](_0x3de835=>_0x3de835[_0x2529f4(0x126)]('Function')||_0x3de835[_0x2529f4(0x126)]('Method')),_0x491a22=_0x8c4597['some'](_0x51b3df=>_0x51b3df[_0x2529f4(0x126)]('Class'));if(_0x491a22&&_0x2e683e>0x32)return'extract-module';else{if(_0x14a112>0x2&&_0x2d8b6b>0x64)return _0x2529f4(0x135);else{if(_0x435441||_0x2e683e>=0xa&&_0x2e683e<=0x32)return'extract-function';else{if(_0x2e683e>0x32)return _0x2529f4(0x141);else return _0x2e683e<0xa?_0x2529f4(0x133):_0x2529f4(0x119);}}}}[a0_0x27238a(0x142)](_0x2e89df){const {impactScore:_0x19ca92}=_0x2e89df;if(_0x19ca92>=0x8)return'high';if(_0x19ca92>=0x5)return'medium';return'low';}['suggestName'](_0x22e87c){const _0x4130de=a0_0x27238a,_0x50bd0d=_0x22e87c[_0x4130de(0x12f)][_0x4130de(0x149)](_0x5157a7=>_0x5157a7['code'])[_0x4130de(0x117)]('\x20'),_0xc06055=_0x50bd0d['match'](/[a-zA-Z_$][a-zA-Z0-9_$]*/g)||[],_0x4b23ab={};_0xc06055[_0x4130de(0x120)](_0x3510cf=>{const _0x1aa5c7=_0x4130de;if([_0x1aa5c7(0x14e),'let',_0x1aa5c7(0x11c),_0x1aa5c7(0x13d),'return','if',_0x1aa5c7(0x12c),_0x1aa5c7(0x128),_0x1aa5c7(0x125)][_0x1aa5c7(0x126)](_0x3510cf))return;_0x4b23ab[_0x3510cf]=(_0x4b23ab[_0x3510cf]||0x0)+0x1;});const _0x198793=Object['entries'](_0x4b23ab)[_0x4130de(0x114)]((_0x270185,_0x2a7b3f)=>_0x2a7b3f[0x1]-_0x270185[0x1])['slice'](0x0,0x3);if(_0x198793['length']>0x0){const _0x27e5f4=_0x198793['map'](([_0xa5779b])=>_0xa5779b);return this['createFunctionName'](_0x27e5f4);}return _0x4130de(0x110);}[a0_0x27238a(0x124)](_0x273054){const _0x504179=a0_0x27238a;if(_0x273054['length']===0x0)return _0x504179(0x110);return _0x273054[0x0]+_0x273054[_0x504179(0x147)](0x1)['map'](_0x420bb9=>_0x420bb9[_0x504179(0x14a)](0x0)[_0x504179(0x156)]()+_0x420bb9['slice'](0x1))['join']('');}[a0_0x27238a(0x13b)](_0x490590,_0x162c99,_0x22b33d){const _0x184bb8=a0_0x27238a,{instanceCount:_0x4da3b0,duplicatedLines:_0xd225e8,filesCovered:_0x6f2bee}=_0x162c99;let _0x375f0b=_0x184bb8(0x155)+_0x490590[_0x184bb8(0x138)]+'\x20code\x20pattern\x20appears\x20'+_0x4da3b0+_0x184bb8(0x14b);return _0x6f2bee>0x1&&(_0x375f0b+='\x20across\x20'+_0x6f2bee+_0x184bb8(0x14d)),_0x375f0b+=',\x20resulting\x20in\x20'+_0xd225e8+'\x20duplicated\x20lines.\x20',_0x375f0b+='Refactoring\x20to\x20'+_0x22b33d[_0x184bb8(0x151)](/-/g,'\x20')+_0x184bb8(0x129),_0x4da3b0>=0x3&&(_0x375f0b+=', reduce bugs from inconsistent changes'),_0x375f0b+=',\x20and\x20reduce\x20code\x20size',_0x162c99[_0x184bb8(0x12d)]>=0x8&&(_0x375f0b+='.\x20This\x20is\x20a\x20high-impact\x20refactoring\x20opportunity'),_0x375f0b+'.';}['estimateEffort'](_0x245ee4,_0x2c0154){const _0x4e77b1=a0_0x27238a,{lineCount:_0x2ab616,instanceCount:_0xa862a9,filesCovered:_0x11c3a1}=_0x245ee4;let _0x19c2ce=0x0;_0x19c2ce+=Math[_0x4e77b1(0x143)](_0x2ab616/0xa,0x5),_0x19c2ce+=_0xa862a9*0.5,_0x19c2ce+=_0x11c3a1*0.5;if(_0x2c0154==='extract-module')_0x19c2ce+=0x3;else{if(_0x2c0154===_0x4e77b1(0x141))_0x19c2ce+=0x2;else _0x2c0154==='extract-function'&&(_0x19c2ce+=0x1);}if(_0x19c2ce<=0x3)return _0x4e77b1(0x136);if(_0x19c2ce<=0x7)return _0x4e77b1(0x112);return'high';}['describeBenefits'](_0x18187e){const _0x5cc836=a0_0x27238a,_0x260c7c=[];return _0x260c7c[_0x5cc836(0x139)](_0x5cc836(0x146)+_0x18187e['duplicatedLines']+'\x20duplicated\x20lines\x20of\x20code'),_0x260c7c[_0x5cc836(0x139)](_0x5cc836(0x152)),_0x18187e['instanceCount']>=0x3&&_0x260c7c[_0x5cc836(0x139)]('Reduce\x20risk\x20of\x20inconsistent\x20changes\x20across\x20'+_0x18187e[_0x5cc836(0x12e)]+'\x20locations'),_0x18187e['filesCovered']>0x2&&_0x260c7c['push']('Improve\x20code\x20organization\x20across\x20'+_0x18187e[_0x5cc836(0x11d)]+'\x20files'),_0x260c7c['push']('Make\x20future\x20changes\x20easier\x20and\x20less\x20error-prone'),_0x260c7c;}['generateActionableSteps'](_0x260ff7,_0x4e44dc,_0x3de012){const _0x4e80a4=a0_0x27238a,_0xa43990=[];switch(_0x260ff7){case'extract-function':_0xa43990['push'](_0x4e80a4(0x13f)+_0x4e44dc+'\x27'),_0xa43990[_0x4e80a4(0x139)]('2.\x20Move\x20the\x20duplicated\x20logic\x20into\x20this\x20function'),_0xa43990[_0x4e80a4(0x139)]('3. Identify parameters needed from the surrounding context'),_0xa43990['push']('4.\x20Replace\x20all\x20instances\x20with\x20calls\x20to\x20the\x20new\x20function'),_0xa43990['push']('5.\x20Test\x20to\x20ensure\x20behavior\x20is\x20preserved');break;case _0x4e80a4(0x141):_0xa43990[_0x4e80a4(0x139)](_0x4e80a4(0x130)),_0xa43990[_0x4e80a4(0x139)]('2.\x20Move\x20related\x20methods\x20and\x20properties\x20into\x20the\x20class'),_0xa43990[_0x4e80a4(0x139)]('3.\x20Update\x20all\x20instances\x20to\x20use\x20the\x20new\x20class'),_0xa43990[_0x4e80a4(0x139)](_0x4e80a4(0x13a));break;case'extract-module':_0xa43990[_0x4e80a4(0x139)]('1.\x20Create\x20a\x20new\x20module/file\x20for\x20this\x20shared\x20functionality'),_0xa43990[_0x4e80a4(0x139)]('2.\x20Move\x20the\x20duplicated\x20code\x20into\x20the\x20new\x20module'),_0xa43990['push'](_0x4e80a4(0x153)),_0xa43990['push']('4. Update all files to import from the new module'),_0xa43990[_0x4e80a4(0x139)](_0x4e80a4(0x11a));break;default:_0xa43990['push'](_0x4e80a4(0x116)+_0x260ff7['replace'](/-/g,'\x20')),_0xa43990[_0x4e80a4(0x139)](_0x4e80a4(0x121)),_0xa43990[_0x4e80a4(0x139)](_0x4e80a4(0x12b));}return _0xa43990;}['truncateCode'](_0x1d5213,_0x447519=0xa){const _0x2d1555=a0_0x27238a,_0x4cd175=_0x1d5213[_0x2d1555(0x14f)]('\x0a');if(_0x4cd175['length']<=_0x447519)return _0x1d5213;return _0x4cd175['slice'](0x0,_0x447519)[_0x2d1555(0x117)]('\x0a')+_0x2d1555(0x14c);}[a0_0x27238a(0x131)](_0x141b23){const _0x34f1e1=a0_0x27238a,_0x29e399=_0x141b23[_0x34f1e1(0x115)]((_0x155f5d,_0x15c0eb)=>_0x155f5d+(_0x15c0eb['endLine']-_0x15c0eb[_0x34f1e1(0x13e)]+0x1),0x0);return Math['round'](_0x29e399/_0x141b23[_0x34f1e1(0x132)]);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x1dbc19=a0_0x1ef9;function a0_0x1ef9(_0x34271f,_0x15c543){_0x34271f=_0x34271f-0x18d;const _0x366ea9=a0_0x366e();let _0x1ef97b=_0x366ea9[_0x34271f];if(a0_0x1ef9['eRFExK']===undefined){var _0x79812f=function(_0xfc185){const _0x12f967='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4375d2='',_0x3f6e11='';for(let _0x2585c8=0x0,_0x5047ca,_0x620e6c,_0x1ebe77=0x0;_0x620e6c=_0xfc185['charAt'](_0x1ebe77++);~_0x620e6c&&(_0x5047ca=_0x2585c8%0x4?_0x5047ca*0x40+_0x620e6c:_0x620e6c,_0x2585c8++%0x4)?_0x4375d2+=String['fromCharCode'](0xff&_0x5047ca>>(-0x2*_0x2585c8&0x6)):0x0){_0x620e6c=_0x12f967['indexOf'](_0x620e6c);}for(let _0xe2069a=0x0,_0x4af969=_0x4375d2['length'];_0xe2069a<_0x4af969;_0xe2069a++){_0x3f6e11+='%'+('00'+_0x4375d2['charCodeAt'](_0xe2069a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3f6e11);};a0_0x1ef9['qnMpuD']=_0x79812f,a0_0x1ef9['kZXNqD']={},a0_0x1ef9['eRFExK']=!![];}const _0x106c38=_0x366ea9[0x0],_0x18e6cd=_0x34271f+_0x106c38,_0x429b91=a0_0x1ef9['kZXNqD'][_0x18e6cd];return!_0x429b91?(_0x1ef97b=a0_0x1ef9['qnMpuD'](_0x1ef97b),a0_0x1ef9['kZXNqD'][_0x18e6cd]=_0x1ef97b):_0x1ef97b=_0x429b91,_0x1ef97b;}(function(_0x384912,_0x406f2d){const _0x2ba624=a0_0x1ef9,_0x17bbb7=_0x384912();while(!![]){try{const _0x84e209=parseInt(_0x2ba624(0x19e))/0x1+-parseInt(_0x2ba624(0x199))/0x2*(-parseInt(_0x2ba624(0x194))/0x3)+-parseInt(_0x2ba624(0x1a1))/0x4+parseInt(_0x2ba624(0x1a8))/0x5+-parseInt(_0x2ba624(0x19c))/0x6+-parseInt(_0x2ba624(0x190))/0x7*(-parseInt(_0x2ba624(0x196))/0x8)+-parseInt(_0x2ba624(0x18f))/0x9;if(_0x84e209===_0x406f2d)break;else _0x17bbb7['push'](_0x17bbb7['shift']());}catch(_0x547082){_0x17bbb7['push'](_0x17bbb7['shift']());}}}(a0_0x366e,0xc4f85));export class CloneDetector{constructor(_0x4375d2,_0x3f6e11){this['config']=_0x4375d2,this['parser']=_0x3f6e11;}[a0_0x1dbc19(0x1a4)](_0x2585c8){const _0x1da66c=a0_0x1dbc19;console[_0x1da66c(0x19b)]('Detecting\x20clones...');const _0x5047ca=[],_0x620e6c=[];for(const _0x4af969 of _0x2585c8){_0x620e6c[_0x1da66c(0x19f)](..._0x4af969[_0x1da66c(0x19d)]);}console['log'](_0x1da66c(0x191)+_0x620e6c[_0x1da66c(0x19a)]+'\x20code\x20blocks');const _0x1ebe77=this[_0x1da66c(0x1a2)](_0x620e6c);for(const [_0x1371b0,_0x18c7ab]of Object['entries'](_0x1ebe77)){_0x18c7ab[_0x1da66c(0x19a)]>0x1&&_0x5047ca[_0x1da66c(0x19f)]({'type':'exact','confidence':0x1,'blocks':_0x18c7ab,'tokenCount':_0x18c7ab[0x0][_0x1da66c(0x1a0)][_0x1da66c(0x19a)]});}const _0xe2069a=this['findSimilarClones'](_0x620e6c);return _0x5047ca[_0x1da66c(0x19f)](..._0xe2069a),console[_0x1da66c(0x19b)]('Found\x20'+_0x5047ca['length']+'\x20clone\x20groups'),_0x5047ca;}['groupByHash'](_0x4c0a74){const _0x5c73cc=a0_0x1dbc19,_0x250b80={};for(const _0x373667 of _0x4c0a74){if(_0x373667[_0x5c73cc(0x1a0)][_0x5c73cc(0x19a)]<this[_0x5c73cc(0x198)]['minTokens'])continue;!_0x250b80[_0x373667[_0x5c73cc(0x18d)]]&&(_0x250b80[_0x373667['hash']]=[]),_0x250b80[_0x373667[_0x5c73cc(0x18d)]]['push'](_0x373667);}return _0x250b80;}['findSimilarClones'](_0xdf65b5){const _0x36aa61=a0_0x1dbc19,_0x2998f6=[],processed=new Set(),_0x402fcf=_0xdf65b5['filter'](_0x2f158a=>_0x2f158a[_0x36aa61(0x1a0)][_0x36aa61(0x19a)]>=this['config']['minTokens']);for(let _0x2b7756=0x0;_0x2b7756<_0x402fcf['length'];_0x2b7756++){const _0x49478a=_0x402fcf[_0x2b7756],_0x2d17bb=[_0x49478a];if(processed[_0x36aa61(0x192)](_0x49478a['id']))continue;for(let _0x2ee938=_0x2b7756+0x1;_0x2ee938<_0x402fcf[_0x36aa61(0x19a)];_0x2ee938++){const _0x4f6279=_0x402fcf[_0x2ee938];if(processed['has'](_0x4f6279['id']))continue;if(_0x49478a['hash']===_0x4f6279[_0x36aa61(0x18d)])continue;const _0x39c750=this[_0x36aa61(0x195)](_0x49478a,_0x4f6279);_0x39c750>=this[_0x36aa61(0x198)]['similarityThreshold']&&(_0x2d17bb[_0x36aa61(0x19f)](_0x4f6279),processed['add'](_0x4f6279['id']));}_0x2d17bb[_0x36aa61(0x19a)]>0x1&&(processed['add'](_0x49478a['id']),_0x2998f6['push']({'type':_0x36aa61(0x197),'confidence':this[_0x36aa61(0x1a5)](_0x2d17bb),'blocks':_0x2d17bb,'tokenCount':Math[_0x36aa61(0x18e)](..._0x2d17bb[_0x36aa61(0x1a7)](_0x507f6b=>_0x507f6b['tokens']['length']))}));}return _0x2998f6;}[a0_0x1dbc19(0x195)](_0x33820c,_0x486293){const _0x18a04e=a0_0x1dbc19,_0x466b32=_0x33820c[_0x18a04e(0x1a0)],_0x56e03c=_0x486293['tokens'],_0x46bcd1=Math['min'](_0x466b32[_0x18a04e(0x19a)],_0x56e03c['length'])/Math[_0x18a04e(0x18e)](_0x466b32[_0x18a04e(0x19a)],_0x56e03c[_0x18a04e(0x19a)]);if(_0x46bcd1<0.7)return 0x0;const _0x5c0b6e=this[_0x18a04e(0x193)](_0x466b32,_0x56e03c),_0x551cc4=0x2*_0x5c0b6e/(_0x466b32['length']+_0x56e03c[_0x18a04e(0x19a)]);return _0x551cc4;}['longestCommonSubsequence'](_0x21b793,_0x1f71f3){const _0x12dcf9=a0_0x1dbc19,_0x4426a9=_0x21b793['length'],_0x320a49=_0x1f71f3['length'];if(_0x4426a9*_0x320a49>0x186a0)return this['approximateLCS'](_0x21b793,_0x1f71f3);const _0x2aa62f=Array(_0x4426a9+0x1)['fill'](0x0)[_0x12dcf9(0x1a7)](()=>Array(_0x320a49+0x1)['fill'](0x0));for(let _0x40232c=0x1;_0x40232c<=_0x4426a9;_0x40232c++){for(let _0x18e464=0x1;_0x18e464<=_0x320a49;_0x18e464++){_0x21b793[_0x40232c-0x1]===_0x1f71f3[_0x18e464-0x1]?_0x2aa62f[_0x40232c][_0x18e464]=_0x2aa62f[_0x40232c-0x1][_0x18e464-0x1]+0x1:_0x2aa62f[_0x40232c][_0x18e464]=Math['max'](_0x2aa62f[_0x40232c-0x1][_0x18e464],_0x2aa62f[_0x40232c][_0x18e464-0x1]);}}return _0x2aa62f[_0x4426a9][_0x320a49];}[a0_0x1dbc19(0x1a6)](_0x16aaab,_0x5cdc61){const _0x4ce36e=a0_0x1dbc19,_0x2e117d=0x64;let _0x1fe92d=0x0;for(let _0xf9943f=0x0;_0xf9943f<_0x16aaab['length'];_0xf9943f+=_0x2e117d){const _0xe93804=_0x16aaab['slice'](_0xf9943f,_0xf9943f+_0x2e117d),_0x9c49ee=new Set(_0x5cdc61[_0x4ce36e(0x1a3)](Math['max'](0x0,_0xf9943f-_0x2e117d),_0xf9943f+_0x2e117d*0x2));_0x1fe92d+=_0xe93804['filter'](_0x69b590=>_0x9c49ee['has'](_0x69b590))['length'];}return _0x1fe92d;}[a0_0x1dbc19(0x1a5)](_0x3a7ab7){const _0x2790ed=a0_0x1dbc19;if(_0x3a7ab7['length']===0x0)return 0x0;let _0x2d178b=0x0,_0x3f7102=0x0;for(let _0x1df725=0x0;_0x1df725<_0x3a7ab7['length'];_0x1df725++){for(let _0x4762ba=_0x1df725+0x1;_0x4762ba<_0x3a7ab7[_0x2790ed(0x19a)];_0x4762ba++){_0x2d178b+=this['calculateBlockSimilarity'](_0x3a7ab7[_0x1df725],_0x3a7ab7[_0x4762ba]),_0x3f7102++;}}return _0x3f7102>0x0?_0x2d178b/_0x3f7102:0x0;}}function a0_0x366e(){const _0x4e4360=['mJeWndC0nNbSBvDLDW','qw5HBhL6Aw5Nia','AgfZ','Bg9Uz2vZDenVBw1VBLn1yNnLCxvLBMnL','mte3nJLWqwfmr1a','y2fSy3vSyxrLqMXVy2TtAw1PBgfYAxr5','mJruzu5lDvu','C2LTAwXHCG','y29UzMLN','ndzTwKfVyLO','BgvUz3rO','Bg9N','mtK5nZiXnfL1EvfxwG','yMXVy2TZ','mtqZndqZou91rhPMCW','ChvZAa','Dg9Rzw5Z','mJu2nZGZnLrbvuPkBG','z3jVDxbcEuHHC2G','C2XPy2u','zgv0zwn0q2XVBMvZ','y2fSy3vSyxrLr3jVDxbdB25MAwrLBMnL','yxbWCM94Aw1HDgvmq1m','BwfW','mJe1nteWmhzkwMrgsG','AgfZAa','Bwf4','oty4ndK0nvLdsuDLza'];a0_0x366e=function(){return _0x4e4360;};return a0_0x366e();}
|