@loxia-labs/loxia-autopilot-one 1.0.10 → 1.0.11
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-CoRE46V-.js → index-C5X7qBNF.js} +63 -63
- package/web-ui/build/static/index-g2UFuTwG.css +1 -0
- package/web-ui/build/static/index-P281Rusr.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x3604d5=a0_0x30ea;(function(_0x45cb50,_0x3e29ec){const _0x589341=a0_0x30ea,_0x4c019a=_0x45cb50();while(!![]){try{const _0x1911d1=-parseInt(_0x589341(0x172))/0x1*(-parseInt(_0x589341(0x170))/0x2)+parseInt(_0x589341(0x16a))/0x3+parseInt(_0x589341(0x180))/0x4+-parseInt(_0x589341(0x174))/0x5*(parseInt(_0x589341(0x164))/0x6)+parseInt(_0x589341(0x17a))/0x7+-parseInt(_0x589341(0x173))/0x8+-parseInt(_0x589341(0x183))/0x9*(parseInt(_0x589341(0x185))/0xa);if(_0x1911d1===_0x3e29ec)break;else _0x4c019a['push'](_0x4c019a['shift']());}catch(_0x474613){_0x4c019a['push'](_0x4c019a['shift']());}}}(a0_0x49bf,0x30b71));function a0_0x30ea(_0x544a20,_0x24f3eb){_0x544a20=_0x544a20-0x161;const _0x49bf34=a0_0x49bf();let _0x30ea31=_0x49bf34[_0x544a20];if(a0_0x30ea['jjFzFH']===undefined){var _0x2c84b3=function(_0x493788){const _0x398d86='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2f1abf='',_0x2ae0b7='';for(let _0x3343f1=0x0,_0x6bf1f1,_0x57ca9b,_0x4674bc=0x0;_0x57ca9b=_0x493788['charAt'](_0x4674bc++);~_0x57ca9b&&(_0x6bf1f1=_0x3343f1%0x4?_0x6bf1f1*0x40+_0x57ca9b:_0x57ca9b,_0x3343f1++%0x4)?_0x2f1abf+=String['fromCharCode'](0xff&_0x6bf1f1>>(-0x2*_0x3343f1&0x6)):0x0){_0x57ca9b=_0x398d86['indexOf'](_0x57ca9b);}for(let _0x1f0dc6=0x0,_0xa6e894=_0x2f1abf['length'];_0x1f0dc6<_0xa6e894;_0x1f0dc6++){_0x2ae0b7+='%'+('00'+_0x2f1abf['charCodeAt'](_0x1f0dc6)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2ae0b7);};a0_0x30ea['IAxOuL']=_0x2c84b3,a0_0x30ea['iOeVOf']={},a0_0x30ea['jjFzFH']=!![];}const _0x367ade=_0x49bf34[0x0],_0x57119a=_0x544a20+_0x367ade,_0xc94bd2=a0_0x30ea['iOeVOf'][_0x57119a];return!_0xc94bd2?(_0x30ea31=a0_0x30ea['IAxOuL'](_0x30ea31),a0_0x30ea['iOeVOf'][_0x57119a]=_0x30ea31):_0x30ea31=_0xc94bd2,_0x30ea31;}import a0_0x2f1abf from'typescript';import a0_0x2ae0b7 from'path';function a0_0x49bf(){const _0x1e8309=['z2v0u3LUDgfJDgLJrgLHz25VC3rPy3m','CgfYC2veAwfNBM9ZDgLJCW','su5gtW','rgLHz25VC3rPy0nHDgvNB3j5','BgLUzq','z2v0u3rHCNq','v2fYBMLUzW','nte0mZa4qursr2zL','rvjst1i','y29Kzq','u3vNz2vZDgLVBG','zMLSzu5HBwu','y2HHCMfJDgvY','odC4mJu2DKzrDNHM','y29TCgLSzxjpChrPB25Z','zM9YrwfJAenOAwXK','u3LUDgf4igvYCM9Y','u3LUDgf4s2LUza','zMLSzq','mM9ZyuvyAa','BgvUz3rO','ndu3ndzlDKPku0S','mJCWndy0mgX3txLKsq','mtbKC2LjsMi','zM9YBwf0rgLHz25VC3rPyW','yw5HBhL6zxiTzxjYB3i','u0vwrvjjvfK','BwvZC2fNzq','BwvZC2fNzvrLEhq','mtG0otqWmfD5AxHWwa','v0fstKLorW','u2nYAxb0vgfYz2v0','yw5HBhL6zq','u2vTyw50AwmGyw5HBhLZAxmGC2TPChbLza','ChvZAa','odGZmZm2ug15AhD6','zMXHDhrLBKrPywDUB3n0AwnnzxnZywDLvgv4Da','rvnozxH0','ouHwr1zwAq','Bg9Nz2vY','mte0ndC5mg1fA2v4sq','C3rHCNq','Dg9mB3DLCKnHC2u','zgvIDwC','y3jLyxrLu291CMnLrMLSzq','vfLqrq','C3LUDgf4lwvYCM9Y','q0furuDpuLK','twvZC2fNzq','u1Lovefy','tgf0zxn0','C2v2zxjPDhK'];a0_0x49bf=function(){return _0x1e8309;};return a0_0x49bf();}import{STATIC_ANALYSIS}from'../utilities/constants.js';class JavaScriptAnalyzer{constructor(_0x3343f1=null){const _0x5c1c07=a0_0x30ea;this['logger']=_0x3343f1,this[_0x5c1c07(0x16b)]={'allowJs':!![],'checkJs':!![],'noEmit':!![],'jsx':a0_0x2f1abf['JsxEmit']['React'],'target':a0_0x2f1abf['ScriptTarget'][_0x5c1c07(0x18f)],'module':a0_0x2f1abf['ModuleKind'][_0x5c1c07(0x182)],'moduleResolution':a0_0x2f1abf['ModuleResolutionKind']['NodeJs'],'esModuleInterop':!![],'skipLibCheck':!![],'strict':![],'noImplicitAny':![]};}async[a0_0x3604d5(0x17d)](_0x6bf1f1,_0x57ca9b,_0x4674bc={}){const _0x380348=a0_0x3604d5;try{const _0x1f0dc6=[],_0xa6e894=a0_0x2f1abf['createSourceFile'](_0x6bf1f1,_0x57ca9b,a0_0x2f1abf['ScriptTarget'][_0x380348(0x18f)],!![]),_0x35f512=this[_0x380348(0x191)](_0xa6e894);_0x1f0dc6[_0x380348(0x17f)](..._0x35f512);const _0x21620c=await this['getSemanticDiagnostics'](_0x6bf1f1,_0x57ca9b);return _0x1f0dc6['push'](..._0x21620c),this['logger']?.[_0x380348(0x188)]('JavaScript\x20analysis\x20completed',{'file':_0x6bf1f1,'totalDiagnostics':_0x1f0dc6[_0x380348(0x171)],'errors':_0x1f0dc6['filter'](_0x3a7a96=>_0x3a7a96[_0x380348(0x190)]===STATIC_ANALYSIS['SEVERITY']['ERROR'])[_0x380348(0x171)],'warnings':_0x1f0dc6['filter'](_0x5c6b7b=>_0x5c6b7b[_0x380348(0x190)]===STATIC_ANALYSIS['SEVERITY'][_0x380348(0x17b)])['length']}),_0x1f0dc6;}catch(_0x1309b6){return this['logger']?.['error']('JavaScript\x20analysis\x20failed',{'file':_0x6bf1f1,'error':_0x1309b6[_0x380348(0x178)]}),[{'file':_0x6bf1f1,'line':0x0,'column':0x0,'severity':STATIC_ANALYSIS['SEVERITY']['ERROR'],'rule':_0x380348(0x176),'message':'Analysis\x20failed:\x20'+_0x1309b6[_0x380348(0x178)],'category':STATIC_ANALYSIS[_0x380348(0x18c)][_0x380348(0x18e)]}];}}[a0_0x3604d5(0x191)](_0x22579c){const _0x46ad90=a0_0x3604d5,_0x44f026=[],_0x5abdfb=_0x22e680=>{const _0x38d870=a0_0x30ea;if(_0x22e680['kind']===a0_0x2f1abf[_0x38d870(0x16e)]['Unknown']){const _0x119e67=_0x22579c['getLineAndCharacterOfPosition'](_0x22e680[_0x38d870(0x162)]());_0x44f026[_0x38d870(0x17f)]({'file':_0x22579c['fileName'],'line':_0x119e67[_0x38d870(0x161)]+0x1,'column':_0x119e67['character']+0x1,'severity':STATIC_ANALYSIS[_0x38d870(0x177)]['ERROR'],'rule':_0x38d870(0x18b),'message':_0x38d870(0x16d),'category':STATIC_ANALYSIS['CATEGORY'][_0x38d870(0x18e)],'fixable':![]});}a0_0x2f1abf[_0x38d870(0x16c)](_0x22e680,_0x5abdfb);};_0x5abdfb(_0x22579c);if(_0x22579c['parseDiagnostics']&&_0x22579c[_0x46ad90(0x192)]['length']>0x0)for(const _0x4ecee9 of _0x22579c['parseDiagnostics']){_0x44f026[_0x46ad90(0x17f)](this[_0x46ad90(0x175)](_0x4ecee9,_0x22579c));}return _0x44f026;}async['getSemanticDiagnostics'](_0x407234,_0x1b9a7c){const _0x3b48ea=a0_0x3604d5,_0xdeab70=[];try{const _0x160089=a0_0x2f1abf[_0x3b48ea(0x189)](_0x407234,_0x1b9a7c,a0_0x2f1abf[_0x3b48ea(0x17c)][_0x3b48ea(0x18f)],!![]),_0x3dc26a={'getSourceFile':_0x8559ff=>{if(_0x8559ff===_0x407234)return _0x160089;return undefined;},'getDefaultLibFileName':()=>'lib.d.ts','writeFile':()=>{},'getCurrentDirectory':()=>a0_0x2ae0b7['dirname'](_0x407234),'getDirectories':()=>[],'fileExists':_0x296baf=>_0x296baf===_0x407234,'readFile':_0x1a68f2=>{if(_0x1a68f2===_0x407234)return _0x1b9a7c;return undefined;},'getCanonicalFileName':_0x33ed7d=>_0x33ed7d,'useCaseSensitiveFileNames':()=>!![],'getNewLine':()=>'\x0a'},_0x475f94=a0_0x2f1abf['createProgram']({'rootNames':[_0x407234],'options':this['compilerOptions'],'host':_0x3dc26a}),_0x485dce=_0x475f94['getSemanticDiagnostics'](_0x160089);for(const _0xf2b4a of _0x485dce){_0xdeab70['push'](this['formatDiagnostic'](_0xf2b4a,_0x160089));}}catch(_0x47376e){this[_0x3b48ea(0x184)]?.[_0x3b48ea(0x188)](_0x3b48ea(0x17e),{'file':_0x407234,'reason':_0x47376e[_0x3b48ea(0x178)]});}return _0xdeab70;}['formatDiagnostic'](_0x5e5c4e,_0x4a5414){const _0x3bd9ed=a0_0x3604d5;let _0x544490=0x0,_0x5b492b=0x0;if(_0x5e5c4e[_0x3bd9ed(0x16f)]&&_0x5e5c4e[_0x3bd9ed(0x186)]!==undefined){const _0x51a02b=_0x5e5c4e['file']['getLineAndCharacterOfPosition'](_0x5e5c4e['start']);_0x544490=_0x51a02b[_0x3bd9ed(0x161)]+0x1,_0x5b492b=_0x51a02b[_0x3bd9ed(0x169)]+0x1;}else{if(_0x4a5414&&_0x5e5c4e[_0x3bd9ed(0x186)]!==undefined){const _0x25fecf=_0x4a5414['getLineAndCharacterOfPosition'](_0x5e5c4e['start']);_0x544490=_0x25fecf['line']+0x1,_0x5b492b=_0x25fecf['character']+0x1;}}const _0x5772d4=a0_0x2f1abf[_0x3bd9ed(0x181)](_0x5e5c4e[_0x3bd9ed(0x179)],'\x0a');let _0x5f30f3;switch(_0x5e5c4e['category']){case a0_0x2f1abf['DiagnosticCategory']['Error']:_0x5f30f3=STATIC_ANALYSIS['SEVERITY'][_0x3bd9ed(0x165)];break;case a0_0x2f1abf[_0x3bd9ed(0x194)][_0x3bd9ed(0x163)]:_0x5f30f3=STATIC_ANALYSIS['SEVERITY'][_0x3bd9ed(0x17b)];break;case a0_0x2f1abf['DiagnosticCategory'][_0x3bd9ed(0x18d)]:case a0_0x2f1abf[_0x3bd9ed(0x194)][_0x3bd9ed(0x167)]:_0x5f30f3=STATIC_ANALYSIS['SEVERITY'][_0x3bd9ed(0x193)];break;default:_0x5f30f3=STATIC_ANALYSIS['SEVERITY'][_0x3bd9ed(0x165)];}let _0x1a46b3=STATIC_ANALYSIS['CATEGORY']['SYNTAX'];const _0x1fe976=_0x5e5c4e[_0x3bd9ed(0x166)];if(_0x1fe976>=0x7d0&&_0x1fe976<0xbb8)_0x1a46b3=STATIC_ANALYSIS['CATEGORY'][_0x3bd9ed(0x18a)];else{if(_0x1fe976>=0x3e8&&_0x1fe976<0x7d0)_0x1a46b3=STATIC_ANALYSIS[_0x3bd9ed(0x18c)][_0x3bd9ed(0x18e)];else _0x1fe976>=0x8fc&&_0x1fe976<0x960&&(_0x1a46b3=STATIC_ANALYSIS[_0x3bd9ed(0x18c)]['IMPORT']);}return(_0x5772d4[_0x3bd9ed(0x187)]()['includes']('cannot\x20find\x20module')||_0x5772d4[_0x3bd9ed(0x187)]()['includes']('import'))&&(_0x1a46b3=STATIC_ANALYSIS['CATEGORY']['IMPORT']),{'file':_0x5e5c4e['file']?.[_0x3bd9ed(0x168)]||_0x4a5414?.['fileName']||'unknown','line':_0x544490,'column':_0x5b492b,'severity':_0x5f30f3,'rule':'TS'+_0x1fe976,'message':_0x5772d4,'category':_0x1a46b3,'fixable':![],'code':_0x5e5c4e['code']};}}export default JavaScriptAnalyzer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a0_0x21a6(_0x1fa6cb,_0xb861ef){_0x1fa6cb=_0x1fa6cb-0x1ee;const _0x2f8422=a0_0x2f84();let _0x21a651=_0x2f8422[_0x1fa6cb];if(a0_0x21a6['INRUbI']===undefined){var _0x165c84=function(_0x1fcd3a){const _0x4f908a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1389ee='',_0x5342d8='';for(let _0x1d63ce=0x0,_0x34c62c,_0x49da7c,_0x42cd69=0x0;_0x49da7c=_0x1fcd3a['charAt'](_0x42cd69++);~_0x49da7c&&(_0x34c62c=_0x1d63ce%0x4?_0x34c62c*0x40+_0x49da7c:_0x49da7c,_0x1d63ce++%0x4)?_0x1389ee+=String['fromCharCode'](0xff&_0x34c62c>>(-0x2*_0x1d63ce&0x6)):0x0){_0x49da7c=_0x4f908a['indexOf'](_0x49da7c);}for(let _0x3a68fb=0x0,_0x1385b4=_0x1389ee['length'];_0x3a68fb<_0x1385b4;_0x3a68fb++){_0x5342d8+='%'+('00'+_0x1389ee['charCodeAt'](_0x3a68fb)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5342d8);};a0_0x21a6['hCLtLv']=_0x165c84,a0_0x21a6['LXTMFH']={},a0_0x21a6['INRUbI']=!![];}const _0x5a4cfd=_0x2f8422[0x0],_0x121ae6=_0x1fa6cb+_0x5a4cfd,_0x4ec07a=a0_0x21a6['LXTMFH'][_0x121ae6];return!_0x4ec07a?(_0x21a651=a0_0x21a6['hCLtLv'](_0x21a651),a0_0x21a6['LXTMFH'][_0x121ae6]=_0x21a651):_0x21a651=_0x4ec07a,_0x21a651;}const a0_0x45a3b1=a0_0x21a6;(function(_0xc647d8,_0x387ea8){const _0x50c3aa=a0_0x21a6,_0x42a930=_0xc647d8();while(!![]){try{const _0x99839c=parseInt(_0x50c3aa(0x212))/0x1+parseInt(_0x50c3aa(0x20e))/0x2+parseInt(_0x50c3aa(0x202))/0x3*(-parseInt(_0x50c3aa(0x204))/0x4)+-parseInt(_0x50c3aa(0x1f6))/0x5+-parseInt(_0x50c3aa(0x1fe))/0x6+parseInt(_0x50c3aa(0x1f5))/0x7+parseInt(_0x50c3aa(0x215))/0x8;if(_0x99839c===_0x387ea8)break;else _0x42a930['push'](_0x42a930['shift']());}catch(_0x3731b8){_0x42a930['push'](_0x42a930['shift']());}}}(a0_0x2f84,0x52381));import a0_0x1389ee from'prettier';import a0_0x5342d8 from'path';import a0_0x1d63ce from'fs/promises';class PrettierFormatter{constructor(_0x34c62c=null){this['logger']=_0x34c62c,this['configCache']=new Map();}async['format'](_0x49da7c,_0x42cd69,_0x3a68fb={}){const _0x1aff45=a0_0x21a6;try{const _0x1385b4=await this['getPrettierConfig'](_0x49da7c,_0x3a68fb[_0x1aff45(0x20b)]),_0x1fdf83=this['getParser'](_0x49da7c),_0x320940=await a0_0x1389ee['format'](_0x42cd69,{..._0x1385b4,'filepath':_0x49da7c,'parser':_0x1fdf83}),_0x5f176f=_0x320940!==_0x42cd69;return{'formatted':_0x5f176f,'content':_0x320940,'original':_0x42cd69,'changes':_0x5f176f?this['describeChanges'](_0x42cd69,_0x320940):[],'linesChanged':_0x5f176f?this[_0x1aff45(0x1f8)](_0x42cd69,_0x320940):0x0};}catch(_0x2ebef9){this[_0x1aff45(0x203)]?.['error']('Prettier\x20formatting\x20failed',{'file':_0x49da7c,'error':_0x2ebef9['message']});throw new Error(_0x1aff45(0x205)+_0x2ebef9['message']);}}async[a0_0x45a3b1(0x210)](_0x51e5a3,_0x2f59d1,_0x448768={}){const _0x180ae3=a0_0x45a3b1;try{const _0x5445b0=await this['getPrettierConfig'](_0x51e5a3,_0x448768[_0x180ae3(0x20b)]),_0x127bde=this[_0x180ae3(0x213)](_0x51e5a3),_0x3ff1a7=await a0_0x1389ee[_0x180ae3(0x20c)](_0x2f59d1,{..._0x5445b0,'filepath':_0x51e5a3,'parser':_0x127bde});return _0x3ff1a7!==_0x2f59d1;}catch(_0x3f85d5){return this['logger']?.['warn']('Prettier\x20check\x20failed',{'file':_0x51e5a3,'error':_0x3f85d5['message']}),![];}}async[a0_0x45a3b1(0x1f4)](_0x4bd723,_0x387bd1){const _0x50d7eb=a0_0x45a3b1,_0x4ff866=_0x387bd1||a0_0x5342d8['dirname'](_0x4bd723);if(this[_0x50d7eb(0x20f)][_0x50d7eb(0x206)](_0x4ff866))return this[_0x50d7eb(0x20f)][_0x50d7eb(0x1fc)](_0x4ff866);let _0x32ffe9={};if(_0x387bd1)try{const _0x9723c9=await a0_0x1389ee[_0x50d7eb(0x207)](_0x4bd723,{'config':_0x387bd1});_0x9723c9&&(this[_0x50d7eb(0x203)]?.['debug'](_0x50d7eb(0x211),{'workingDir':_0x387bd1}),_0x32ffe9=_0x9723c9);}catch(_0x43de39){this['logger']?.['debug']('No Prettier config found, using defaults');}const defaultConfig={'semi':!![],'singleQuote':!![],'tabWidth':0x2,'trailingComma':'es5','printWidth':0x64,'arrowParens':'avoid','endOfLine':'lf',..._0x32ffe9};return this['configCache'][_0x50d7eb(0x1fd)](_0x4ff866,defaultConfig),defaultConfig;}['getParser'](_0x53f058){const _0x14a725=a0_0x45a3b1,_0x19a953=a0_0x5342d8[_0x14a725(0x1f3)](_0x53f058)[_0x14a725(0x1f7)](),_0x44d76a={'.js':_0x14a725(0x214),'.jsx':'babel','.mjs':_0x14a725(0x214),'.cjs':_0x14a725(0x214),'.ts':'typescript','.tsx':'typescript','.json':_0x14a725(0x201),'.json5':_0x14a725(0x208),'.css':'css','.scss':_0x14a725(0x200),'.less':_0x14a725(0x1f9),'.html':'html','.vue':'vue','.md':_0x14a725(0x20d),'.yaml':_0x14a725(0x209),'.yml':'yaml'};return _0x44d76a[_0x19a953]||'babel';}['describeChanges'](_0x5b34de,_0x1fc808){const _0x437f75=a0_0x45a3b1,_0x5a77f4=[],_0x58bc53=_0x5b34de['split']('\x0a'),_0x354a3c=_0x1fc808['split']('\x0a'),_0x5359f4=Math['max'](_0x58bc53[_0x437f75(0x1f0)],_0x354a3c[_0x437f75(0x1f0)]);for(let _0x3d3c3e=0x0;_0x3d3c3e<_0x5359f4;_0x3d3c3e++){const _0x10720a=_0x58bc53[_0x3d3c3e],_0x162179=_0x354a3c[_0x3d3c3e];_0x10720a!==_0x162179&&_0x5a77f4['push']({'line':_0x3d3c3e+0x1,'type':_0x10720a!==undefined&&_0x162179!==undefined?_0x437f75(0x20a):_0x10720a!==undefined?'removed':_0x437f75(0x1f1),'original':_0x10720a||'','formatted':_0x162179||''});}return _0x5a77f4;}['countChangedLines'](_0x47fd46,_0x1e4f6d){const _0x24c02e=a0_0x45a3b1,_0x30490b=_0x47fd46['split']('\x0a'),_0x15c7ac=_0x1e4f6d[_0x24c02e(0x1fb)]('\x0a');let _0x345fd6=0x0;const _0x4e2f7a=Math[_0x24c02e(0x1f2)](_0x30490b[_0x24c02e(0x1f0)],_0x15c7ac['length']);for(let _0x5a8466=0x0;_0x5a8466<_0x4e2f7a;_0x5a8466++){_0x30490b[_0x5a8466]!==_0x15c7ac[_0x5a8466]&&_0x345fd6++;}return _0x345fd6;}['getSupportedExtensions'](){const _0x232060=a0_0x45a3b1;return['.js','.jsx','.mjs','.cjs',_0x232060(0x1ff),'.tsx','.json','.json5','.css','.scss',_0x232060(0x1fa),'.html',_0x232060(0x1ef),'.md',_0x232060(0x1ee),'.yml'];}['isSupported'](_0x38076b){const _0x1c6041=a0_0x5342d8['extname'](_0x38076b)['toLowerCase']();return this['getSupportedExtensions']()['includes'](_0x1c6041);}}export default PrettierFormatter;function a0_0x2f84(){const _0xc9d9f3=['lNLHBwW','lNz1zq','BgvUz3rO','ywrKzwq','Bwf4','zxH0BMfTzq','z2v0uhjLDhrPzxjdB25MAwC','mZy4oteWnxzZDhvJta','mtC0nZKWnvLkvfnHAG','Dg9mB3DLCKnHC2u','y291BNrdAgfUz2vKtgLUzxm','BgvZCW','lMXLC3m','C3bSAxq','z2v0','C2v0','mZm0otuWnKnAA3fZtW','lNrZ','C2nZCW','ANnVBG','nJuXs25ksxLp','Bg9Nz2vY','ntmZmKHnr0XXsq','uhjLDhrPzxiGzM9YBwf0DgLUzYbMywLSzwq6ia','AgfZ','CMvZB2X2zunVBMzPzW','ANnVBJu','EwfTBa','Bw9KAwzPzwq','D29YA2LUz0rPCG','zM9YBwf0','BwfYA2rVD24','nti1odq0r1vKtxrN','y29UzMLNq2fJAgu','y2HLy2S','rM91BMqGuhjLDhrPzxiGy29UzMLN','mZC3nZG3vKLSre55','z2v0ugfYC2vY','yMfIzwW','mJKYoteWnfHIr2DwwG'];a0_0x2f84=function(){return _0xc9d9f3;};return a0_0x2f84();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a0_0x1d112c=a0_0x2c92;(function(_0x1929e6,_0x57f635){const _0x372fa6=a0_0x2c92,_0x48dfe6=_0x1929e6();while(!![]){try{const _0x1a65b2=-parseInt(_0x372fa6(0xdd))/0x1+parseInt(_0x372fa6(0xde))/0x2+-parseInt(_0x372fa6(0xbf))/0x3*(parseInt(_0x372fa6(0xc7))/0x4)+parseInt(_0x372fa6(0xc2))/0x5*(parseInt(_0x372fa6(0xda))/0x6)+parseInt(_0x372fa6(0xd4))/0x7*(parseInt(_0x372fa6(0xc8))/0x8)+parseInt(_0x372fa6(0xb9))/0x9*(-parseInt(_0x372fa6(0xcd))/0xa)+parseInt(_0x372fa6(0xce))/0xb;if(_0x1a65b2===_0x57f635)break;else _0x48dfe6['push'](_0x48dfe6['shift']());}catch(_0x470781){_0x48dfe6['push'](_0x48dfe6['shift']());}}}(a0_0x1f59,0x6593d));function a0_0x2c92(_0x106144,_0xfb56d5){_0x106144=_0x106144-0xb6;const _0x1f59f4=a0_0x1f59();let _0x2c92bb=_0x1f59f4[_0x106144];if(a0_0x2c92['ZoGlIy']===undefined){var _0x7e8bc2=function(_0x330feb){const _0x29f701='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2f18b2='',_0x2e5a6a='';for(let _0x5a9ff0=0x0,_0x39181a,_0x1dc747,_0x24f24d=0x0;_0x1dc747=_0x330feb['charAt'](_0x24f24d++);~_0x1dc747&&(_0x39181a=_0x5a9ff0%0x4?_0x39181a*0x40+_0x1dc747:_0x1dc747,_0x5a9ff0++%0x4)?_0x2f18b2+=String['fromCharCode'](0xff&_0x39181a>>(-0x2*_0x5a9ff0&0x6)):0x0){_0x1dc747=_0x29f701['indexOf'](_0x1dc747);}for(let _0x551fe4=0x0,_0x2ed84e=_0x2f18b2['length'];_0x551fe4<_0x2ed84e;_0x551fe4++){_0x2e5a6a+='%'+('00'+_0x2f18b2['charCodeAt'](_0x551fe4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2e5a6a);};a0_0x2c92['MsgaXN']=_0x7e8bc2,a0_0x2c92['CsIanp']={},a0_0x2c92['ZoGlIy']=!![];}const _0x1393a0=_0x1f59f4[0x0],_0x615142=_0x106144+_0x1393a0,_0x51c37f=a0_0x2c92['CsIanp'][_0x615142];return!_0x51c37f?(_0x2c92bb=a0_0x2c92['MsgaXN'](_0x2c92bb),a0_0x2c92['CsIanp'][_0x615142]=_0x2c92bb):_0x2c92bb=_0x51c37f,_0x2c92bb;}import{spawn}from'child_process';import{STATIC_ANALYSIS}from'../utilities/constants.js';import a0_0x2f18b2 from'fs/promises';import a0_0x2e5a6a from'path';function a0_0x1f59(){const _0x4cb416=['ChL0Ag9UlwfZDa','CNvUuhL0Ag9Uu2nYAxb0','mJq2vuHWrgLx','v0fstKLorW','AM9PBG','nurWB3P6qW','DgfYz2v0xW','DxrMltG','Bg9Nz2vY','y2HLy2TtEw50yxG','mtC0mZjvr0fhreK','mteZnde2rLP3ug5j','BwvZC2fNzq','z2v0uhL0Ag9Uq29TBwfUza','rMfPBgvKihrVihbHCNnLifb5DgHVBIbZEw50yxGGy2HLy2SGCMvZDwX0','zMLSDgvY','mJGWDvzXrfnn','mtm5oty3m3brqKX2uW','CNvUq29TBwfUza','zgf0yq','C2v2zxjPDhK','C3rKB3v0','D2fYBG','mte5r1jWDeXA','Dg1WzgLY','y2XVC2u','rvjst1i','zxjYB3jZ','uhL0Ag9UigfUywX5C2LZigzHAwXLza','mJyZntG2nLLJzfbuDa','zgvIDwC','yw5HBhL6zq','mJK2nZCWz3LSu0nm','mteWmduZnKfSuMvvBG','q29TBwfUzcb0Aw1LB3v0','C3vJy2vZCW','rM91BMqGuhL0Ag9UignVBw1HBMq','ChL0Ag9Uq29TBwfUza','BgvUz3rO','Dgv4Da','oti0ntDIyLrUvgS','BgLUzq','ls12zxjZAw9U','CgfYC2u'];a0_0x1f59=function(){return _0x4cb416;};return a0_0x1f59();}import a0_0x5a9ff0 from'os';class PythonAnalyzer{constructor(_0x39181a=null){const _0x1d92a0=a0_0x2c92;this[_0x1d92a0(0xc5)]=_0x39181a,this['pythonCommand']=null;}async[a0_0x1d112c(0xdc)](_0x1dc747,_0x24f24d,_0x551fe4={}){const _0x2a3f0e=a0_0x1d112c;try{const _0x2ed84e=[],_0x4c66e7=await this[_0x2a3f0e(0xca)]();if(!_0x4c66e7)return this[_0x2a3f0e(0xc5)]?.[_0x2a3f0e(0xd3)]('Python\x20not\x20available,\x20skipping\x20analysis'),[];const _0x8d5fd4=await this[_0x2a3f0e(0xc6)](_0x1dc747,_0x24f24d,_0x4c66e7);return _0x2ed84e['push'](..._0x8d5fd4),this[_0x2a3f0e(0xc5)]?.[_0x2a3f0e(0xdb)]('Python\x20analysis\x20completed',{'file':_0x1dc747,'totalDiagnostics':_0x2ed84e['length'],'errors':_0x2ed84e[_0x2a3f0e(0xcc)](_0x5b73dc=>_0x5b73dc[_0x2a3f0e(0xd1)]===STATIC_ANALYSIS['SEVERITY'][_0x2a3f0e(0xd7)])[_0x2a3f0e(0xb7)],'warnings':_0x2ed84e[_0x2a3f0e(0xcc)](_0x133c63=>_0x133c63[_0x2a3f0e(0xd1)]===STATIC_ANALYSIS['SEVERITY'][_0x2a3f0e(0xc0)])[_0x2a3f0e(0xb7)]}),_0x2ed84e;}catch(_0x4e8e46){return this['logger']?.['error'](_0x2a3f0e(0xd9),{'file':_0x1dc747,'error':_0x4e8e46[_0x2a3f0e(0xc9)]}),[];}}async['checkSyntax'](_0xf5974c,_0x5ba799,_0x5e8505){const _0x32b8ca=a0_0x1d112c,_0x14beca=[],_0x1405fa=a0_0x5a9ff0[_0x32b8ca(0xd5)](),_0x5d8c42=a0_0x2e5a6a[_0x32b8ca(0xc1)](_0x1405fa,'syntax_check_'+Date['now']()+'.py'),_0x1adf34=a0_0x2e5a6a[_0x32b8ca(0xc1)](_0x1405fa,_0x32b8ca(0xc3)+Date['now']()+'.py');try{await a0_0x2f18b2['writeFile'](_0x1adf34,_0x5ba799,_0x32b8ca(0xc4));const _0x4dfd9a='\x0aimport\x20ast\x0aimport\x20sys\x0aimport\x20json\x0a\x0adef\x20check_syntax(filepath):\x0a\x20\x20\x20\x20try:\x0a\x20\x20\x20\x20\x20\x20\x20\x20with\x20open(filepath,\x20\x27r\x27,\x20encoding=\x27utf-8\x27)\x20as\x20f:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20source\x20=\x20f.read()\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20#\x20Try\x20to\x20parse\x20the\x20file\x0a\x20\x20\x20\x20\x20\x20\x20\x20ast.parse(source,\x20filename=filepath)\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20#\x20If\x20successful,\x20no\x20errors\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(json.dumps({\x22success\x22:\x20True,\x20\x22errors\x22:\x20[]}))\x0a\x0a\x20\x20\x20\x20except\x20SyntaxError\x20as\x20e:\x0a\x20\x20\x20\x20\x20\x20\x20\x20error\x20=\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22file\x22:\x20filepath,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22line\x22:\x20e.lineno\x20or\x201,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22column\x22:\x20e.offset\x20or\x201,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22message\x22:\x20str(e.msg),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22text\x22:\x20e.text.strip()\x20if\x20e.text\x20else\x20\x22\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(json.dumps({\x22success\x22:\x20False,\x20\x22errors\x22:\x20[error]}))\x0a\x0a\x20\x20\x20\x20except\x20Exception\x20as\x20e:\x0a\x20\x20\x20\x20\x20\x20\x20\x20error\x20=\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22file\x22:\x20filepath,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22line\x22:\x201,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22column\x22:\x201,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22message\x22:\x20str(e),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22text\x22:\x20\x22\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(json.dumps({\x22success\x22:\x20False,\x20\x22errors\x22:\x20[error]}))\x0a\x0aif\x20__name__\x20==\x20\x22__main__\x22:\x0a\x20\x20\x20\x20if\x20len(sys.argv)\x20>\x201:\x0a\x20\x20\x20\x20\x20\x20\x20\x20check_syntax(sys.argv[1])\x0a\x20\x20\x20\x20else:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(json.dumps({\x22success\x22:\x20False,\x20\x22errors\x22:\x20[{\x22message\x22:\x20\x22No\x20file\x20specified\x22}]}))\x0a';await a0_0x2f18b2['writeFile'](_0x5d8c42,_0x4dfd9a,_0x32b8ca(0xc4));const _0x379538=await this[_0x32b8ca(0xbe)](_0x5e8505,_0x5d8c42,[_0x1adf34]);try{const _0x1df7b9=JSON[_0x32b8ca(0xbc)](_0x379538['stdout']);if(!_0x1df7b9[_0x32b8ca(0xe0)]&&_0x1df7b9[_0x32b8ca(0xd8)])for(const _0xc97530 of _0x1df7b9['errors']){_0x14beca['push']({'file':_0xf5974c,'line':_0xc97530[_0x32b8ca(0xba)]||0x1,'column':_0xc97530['column']||0x1,'severity':STATIC_ANALYSIS['SEVERITY'][_0x32b8ca(0xd7)],'rule':'SyntaxError','message':_0xc97530[_0x32b8ca(0xc9)],'category':STATIC_ANALYSIS['CATEGORY']['SYNTAX'],'fixable':![],'source':_0x32b8ca(0xbd),'code':_0xc97530[_0x32b8ca(0xb8)]||undefined});}}catch(_0x2471c9){this['logger']?.[_0x32b8ca(0xd3)](_0x32b8ca(0xcb),{'error':_0x2471c9[_0x32b8ca(0xc9)],'stdout':_0x379538[_0x32b8ca(0xd2)]});}}finally{try{await a0_0x2f18b2['unlink'](_0x5d8c42),await a0_0x2f18b2['unlink'](_0x1adf34);}catch{}}return _0x14beca;}async['getPythonCommand'](){const _0x58fbb9=a0_0x1d112c;if(this['pythonCommand'])return this['pythonCommand'];const _0x2695a2=['python3','python'];for(const _0xb9f1de of _0x2695a2){try{const _0x4c68c2=await this[_0x58fbb9(0xcf)](_0xb9f1de,[_0x58fbb9(0xbb)]);if(_0x4c68c2[_0x58fbb9(0xe0)])return this[_0x58fbb9(0xb6)]=_0xb9f1de,this['logger']?.[_0x58fbb9(0xdb)](_0x58fbb9(0xe1),{'command':_0xb9f1de,'version':_0x4c68c2[_0x58fbb9(0xd2)]['trim']()}),_0xb9f1de;}catch{}}return null;}async[a0_0x1d112c(0xbe)](_0x42ac55,_0x499525,_0x27b5d1=[]){const _0x5004c5=a0_0x1d112c;return this[_0x5004c5(0xcf)](_0x42ac55,[_0x499525,..._0x27b5d1]);}async[a0_0x1d112c(0xcf)](_0x2fcb73,_0xa88f3d=[],_0x4de21a={}){return new Promise((_0x521db5,_0x22590f)=>{const _0x34c845=a0_0x2c92,_0x271104=spawn(_0x2fcb73,_0xa88f3d,{..._0x4de21a,'shell':!![]});let _0x513988='',_0x4d9328='';_0x271104[_0x34c845(0xd2)]?.['on']('data',_0xeba9a3=>{_0x513988+=_0xeba9a3['toString']();}),_0x271104['stderr']?.['on'](_0x34c845(0xd0),_0x2196c8=>{_0x4d9328+=_0x2196c8['toString']();}),_0x271104['on']('error',_0x719534=>{_0x22590f(_0x719534);}),_0x271104['on'](_0x34c845(0xd6),_0x1c443a=>{_0x521db5({'success':_0x1c443a===0x0,'code':_0x1c443a,'stdout':_0x513988,'stderr':_0x4d9328});}),setTimeout(()=>{const _0x29bd72=_0x34c845;_0x271104['kill'](),_0x22590f(new Error(_0x29bd72(0xdf)));},0x2710);});}['getSupportedExtensions'](){return['.py'];}['supportsAutoFix'](){return![];}}export default PythonAnalyzer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x3d5d56=a0_0x1496;function a0_0x1496(_0x4115d3,_0x8e421c){_0x4115d3=_0x4115d3-0x7e;const _0x60e289=a0_0x60e2();let _0x149605=_0x60e289[_0x4115d3];if(a0_0x1496['bQrMbd']===undefined){var _0x1bc6dd=function(_0x31305b){const _0xe9a0c6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x151447='',_0x34eaeb='';for(let _0x17600a=0x0,_0x43d1e9,_0x9d980f,_0xc2428d=0x0;_0x9d980f=_0x31305b['charAt'](_0xc2428d++);~_0x9d980f&&(_0x43d1e9=_0x17600a%0x4?_0x43d1e9*0x40+_0x9d980f:_0x9d980f,_0x17600a++%0x4)?_0x151447+=String['fromCharCode'](0xff&_0x43d1e9>>(-0x2*_0x17600a&0x6)):0x0){_0x9d980f=_0xe9a0c6['indexOf'](_0x9d980f);}for(let _0x283a1b=0x0,_0x51526e=_0x151447['length'];_0x283a1b<_0x51526e;_0x283a1b++){_0x34eaeb+='%'+('00'+_0x151447['charCodeAt'](_0x283a1b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x34eaeb);};a0_0x1496['dxnIvX']=_0x1bc6dd,a0_0x1496['KBmmvv']={},a0_0x1496['bQrMbd']=!![];}const _0x1cb079=_0x60e289[0x0],_0x3765bf=_0x4115d3+_0x1cb079,_0x4e2f27=a0_0x1496['KBmmvv'][_0x3765bf];return!_0x4e2f27?(_0x149605=a0_0x1496['dxnIvX'](_0x149605),a0_0x1496['KBmmvv'][_0x3765bf]=_0x149605):_0x149605=_0x4e2f27,_0x149605;}(function(_0x1e843,_0x5c6bcd){const _0xcad424=a0_0x1496,_0x90ba3f=_0x1e843();while(!![]){try{const _0x3407b9=-parseInt(_0xcad424(0xe3))/0x1*(parseInt(_0xcad424(0xf2))/0x2)+-parseInt(_0xcad424(0xcd))/0x3+parseInt(_0xcad424(0xa3))/0x4*(-parseInt(_0xcad424(0x81))/0x5)+parseInt(_0xcad424(0x9b))/0x6*(-parseInt(_0xcad424(0x95))/0x7)+parseInt(_0xcad424(0xda))/0x8+-parseInt(_0xcad424(0xf7))/0x9+parseInt(_0xcad424(0xb4))/0xa;if(_0x3407b9===_0x5c6bcd)break;else _0x90ba3f['push'](_0x90ba3f['shift']());}catch(_0x50a265){_0x90ba3f['push'](_0x90ba3f['shift']());}}}(a0_0x60e2,0xe54ca));import{exec}from'child_process';import{promisify}from'util';import a0_0x151447 from'path';function a0_0x60e2(){const _0x46a418=['Dg9vChbLCKnHC2u','C2TPCfrLC3rgAwXLCW','mu9nqLzmAq','y3DL','u2vTz3jLCcbUB3qGyxzHAwXHyMXL','Bg9Nz2vY','tM8GC2vJDxjPDhKGC2nHBM5LCNmGyxzHAwXHyMXLigzVCIbSyw5NDwfNzq','CMvXDwLYzw1LBNrZlNr4Da','DxjS','CgLWigLUC3rHBgWGCgLWlwf1zgL0','qxzHAwXHyMXL','zgvWzw5Kzw5JAwvZ','AxnbCNjHEq','DMLH','AxnZDwvFy29UzMLKzw5Jzq','DhLWzxnJCMLWDa','qMfUzgL0ihnJyw5UzxiGzgv0zwn0zwq','mtu0ndy2AKzmCK5L','CgfYC2vtzw1NCMvWuMvZDwX0CW','CgLWlwf1zgL0ic0TzM9YBwf0igPZB24','CMfUz2u','BM9YBwfSAxPLuMvZDwX0CW','mty0mZK3odDXwuXPu3K','zxnSAw50lxbSDwDPBI1Zzwn1CML0EsbUB3qGyxzHAwXHyMXL','ChvZAa','zxH0BMfTzq','zML4ywjSzq','BNbTigf1zgL0ic0TANnVBG','u0vwrvjjvfK','C3rKB3v0','CgfYC2vcyw5KAxrszxn1BhrZ','zxnSAw50lxbSDwDPBI1Zzwn1CML0Eq','mZu1otCWCMPMr2Xw','BgLUzq','u2vTz3jLCcbZy2fUBMvYigrLDgvJDgvKicHSB2nHBcK','rMfPBgvKihrVihbHCNnLifnLBwDYzxaGB3v0Chv0','CNvUu2vTz3jLCa','Dg9mB3DLCKnHC2u','BNbTigLUC3rHBgWGls1ZyxzLlwrLDIbLC2XPBNqTCgX1z2LUlxnLy3vYAxr5','tM8GCgfJA2fNzs5QC29UigzVDw5KlcbZA2LWCgLUzYbUCg0GyxvKAxq','CgfYC2vfu0XPBNrszxn1BhrZ','rMfPBgvKihrVihbHCNnLihbPCc1HDwrPDcbVDxrWDxq','rMfPBgvKihrVihbHCNnLiejHBMrPDcbVDxrWDxq','u2vJDxjPDhKGDNvSBMvYywjPBgL0Eq','yw5HBhL6zq','C2nHBM5LCKnHy2HL','BgLUzxm','qMfUzgL0ihnJyw4GzMfPBgvK','DgvZDf9Pza','BMfTzq','ChL0Ag9U','BwfWu2vTz3jLCfnLDMvYAxr5','mte4odm5mdDns1Lnz2y','zgv0zwn0qxzHAwXHyMXLu2nHBM5LCNm','CgfYC2vqAxbbDwrPDfjLC3vSDhm','DNvSBMvYywjPBgL0AwvZ','y29UzMLKzw5Jzq','CgfYC2u','nNzlDMDgAG','CgLWlwf1zgL0ig5VDcbHDMfPBgfIBgu','zgvIDwC','AxnZDwvFy3DL','BgLUDfrLEhq','CgfJA2fNzs5QC29U','ywXPyxnLCW','yMfUzgL0ic1MigPZB24GiG','nJHKqwzHuxq','yxzHAwXHyMXLu2nHBM5LCNm','zgLYBMfTzq','CgfJA2fNzq','Bwv0ywrHDge','ywnJzxnZ','rvjst1i','zxjYB3i','C2vJDxjPDhK','zxnSAw50u2vJDxjPDhK','v0fstKLorW','AxnZDwvFC2v2zxjPDhK','C3rHCNq','q1jjveLdquW','zxnSAw50lxbSDwDPBI1Zzwn1CML0EsbKzxrLy3rLza','qMfUzgL0','DNvSBNm','ntm0mZqWntbWEgfZuuK','BNbTic0TDMvYC2LVBG','u2vJDxjPDhKGAxnZDwuGzgv0zwn0zwq','zML4x3zLCNnPB25Z','BM9Kzv9TB2r1BgvZ','q1Dflq','Dw5RBM93BG','CgX1z2LUoNnLy3vYAxr5l3jLy29TBwvUzgvK','CNvUugLWqxvKAxq','Axnuzxn0rMLSzq','AgLNAa','BNbTlq','Bw9Yzv9PBMzV','yw5HBhL6zvbYB2PLy3q','Bg9JywXty2fUBMvYrgLY','AxnZDwvFDgv4Da','CNvUqMfUzgL0','u2vTz3jLCcbZy2fUigzHAwXLza','CgfYC2voCg1bDwrPDfjLC3vSDhm','y3zL','D2fYBG','BwfWtNbTu2v2zxjPDhK','uhL0Ag9UigrLCgvUzgvUy3KGDNvSBMvYywjPBgL0EsbZy2fUBMvY','C2vTz3jLCa','AM9PBG','ntu4ntm3vhfZC0Lx','BwfWugLWqxvKAxrtzxzLCML0Eq','Bgf0zxn0','C29Tzq','tM8GCMvXDwLYzw1LBNrZlNr4DcbMB3vUzcWGC2TPChbPBMCGCgLWlwf1zgL0','CgLWigLUC3rHBgWGyMfUzgL0','Bg93','y3zZCW','C2vJDxjPDhKV','CgLWqxvKAxq','y3DK','AMf2yxnJCMLWDa','BNbTigf1zgL0igf2ywLSywjSzq','ndC1mdG3mK1NB3bfwa','BwvZC2fNzq','CNvUtNbTqxvKAxq','zxH0CMe','zgv0zwn0tgfUz3vHz2u','yMfUzgL0','CMvZDwX0CW'];a0_0x60e2=function(){return _0x46a418;};return a0_0x60e2();}import a0_0x34eaeb from'fs/promises';import{STATIC_ANALYSIS}from'../utilities/constants.js';const execAsync=promisify(exec);class SecurityAnalyzer{constructor(_0x17600a=null){const _0x1eb503=a0_0x1496;this['logger']=_0x17600a,this['availableScanners']=null,this[_0x1eb503(0x8e)]=new Map(),this[_0x1eb503(0xc2)]=a0_0x151447[_0x1eb503(0xcc)](process[_0x1eb503(0xd7)](),_0x1eb503(0xb8),'.scanners');}async['detectAvailableScanners'](){const _0x4ef9fd=a0_0x1496;if(this['availableScanners']!==null)return this[_0x4ef9fd(0xa4)];const _0x43d1e9={'semgrep':![],'bandit':![],'npmAudit':![],'pipAudit':![],'eslintSecurity':![]};try{const _0x9d980f=a0_0x151447['join'](this[_0x4ef9fd(0xc2)],_0x4ef9fd(0xcb));try{await a0_0x34eaeb[_0x4ef9fd(0xa8)](_0x9d980f),_0x43d1e9['semgrep']=!![],this[_0x4ef9fd(0xe6)]?.['debug'](_0x4ef9fd(0x83));}catch{await execAsync('semgrep\x20--version',{'timeout':0x1388}),_0x43d1e9['semgrep']=!![],this[_0x4ef9fd(0xe6)]?.[_0x4ef9fd(0x9d)]('Semgrep\x20scanner\x20detected\x20(system)');}}catch(_0xc2428d){this[_0x4ef9fd(0xe6)]?.['debug'](_0x4ef9fd(0xe5),{'error':_0xc2428d[_0x4ef9fd(0xdb)]});}try{await execAsync('bandit\x20--version',{'timeout':0x1388}),_0x43d1e9['bandit']=!![],this['logger']?.[_0x4ef9fd(0x9d)](_0x4ef9fd(0xf1));}catch(_0x283a1b){this[_0x4ef9fd(0xe6)]?.['debug']('Bandit\x20not\x20available',{'error':_0x283a1b[_0x4ef9fd(0xdb)]});}try{await execAsync(_0x4ef9fd(0xb5),{'timeout':0x1388}),_0x43d1e9['npmAudit']=!![],this['logger']?.[_0x4ef9fd(0x9d)](_0x4ef9fd(0xd9));}catch(_0x51526e){this['logger']?.['debug']('npm\x20not\x20available',{'error':_0x51526e[_0x4ef9fd(0xdb)]});}try{await execAsync('pip-audit\x20--version',{'timeout':0x1388}),_0x43d1e9[_0x4ef9fd(0xd6)]=!![],this['logger']?.[_0x4ef9fd(0x9d)]('pip-audit\x20detected');}catch(_0x369d5a){this['logger']?.['debug'](_0x4ef9fd(0x9c),{'error':_0x369d5a['message']});}try{const _0x26e119=await execAsync('npm\x20list\x20eslint-plugin-security\x20--depth=0\x20--json',{'timeout':0x1388,'cwd':process['cwd']()}),_0x5e8c39=JSON['parse'](_0x26e119[_0x4ef9fd(0x7e)]);_0x5e8c39['dependencies']&&_0x5e8c39[_0x4ef9fd(0xec)]['eslint-plugin-security']&&(_0x43d1e9[_0x4ef9fd(0xac)]=!![],this['logger']?.['debug'](_0x4ef9fd(0xb1)));}catch(_0x1344ed){this[_0x4ef9fd(0xe6)]?.[_0x4ef9fd(0x9d)](_0x4ef9fd(0xf8),{'error':_0x1344ed[_0x4ef9fd(0xdb)]});}return this['availableScanners']=_0x43d1e9,_0x43d1e9;}async[a0_0x3d5d56(0x8d)](_0x1ede7b,_0x4bfadb,_0x1a3cc3={}){const _0x533648=a0_0x3d5d56,_0xa79a70=[],_0x38b497=await this[_0x533648(0x96)](),_0x230df1=this['detectLanguage'](_0x1ede7b);if(_0x1a3cc3[_0x533648(0xe2)]!==![]&&this[_0x533648(0xbd)](_0x1ede7b))return this['logger']?.['debug']('Skipping\x20test\x20file\x20for\x20security\x20scan',{'filePath':_0x1ede7b}),[];if(_0x230df1===_0x533648(0xd8)||_0x230df1===_0x533648(0xf0)){if(_0x38b497['semgrep']){const _0x55bd9d=await this[_0x533648(0x85)](_0x1ede7b,[_0x230df1],_0x1a3cc3);_0xa79a70['push'](..._0x55bd9d);}if(_0x38b497[_0x533648(0xac)]){const _0x2bce66=await this['runESLintSecurity'](_0x1ede7b,_0x4bfadb,_0x1a3cc3);_0xa79a70[_0x533648(0xf9)](..._0x2bce66);}}if(_0x230df1===_0x533648(0x93)){if(_0x38b497[_0x533648(0xdf)]){const _0x36155d=await this['runBandit'](_0x1ede7b,_0x1a3cc3);_0xa79a70[_0x533648(0xf9)](..._0x36155d);}if(_0x38b497[_0x533648(0xcb)]){const _0xe0cf28=await this['runSemgrep'](_0x1ede7b,[_0x230df1],_0x1a3cc3);_0xa79a70[_0x533648(0xf9)](..._0xe0cf28);}}return _0xa79a70['length']===0x0&&!this['hasScannersForLanguage'](_0x38b497,_0x230df1)&&this[_0x533648(0xe6)]?.[_0x533648(0xc8)](_0x533648(0xe7),{'language':_0x230df1,'filePath':_0x1ede7b}),this[_0x533648(0xf6)](_0xa79a70);}async[a0_0x3d5d56(0xc1)](_0x101061,_0x321730,_0x58445f={}){const _0x26e1f4=a0_0x3d5d56,_0x1accc1=[],_0x86fe70=await this[_0x26e1f4(0x96)]();if(_0x321730==='javascript'||_0x321730==='typescript'){if(_0x86fe70['npmAudit']){const _0x253bad=await this[_0x26e1f4(0xdc)](_0x101061,_0x58445f);_0x1accc1[_0x26e1f4(0xf9)](..._0x253bad);}}if(_0x321730==='python'){if(_0x86fe70[_0x26e1f4(0xd6)]){const _0x5b9b33=await this[_0x26e1f4(0xbc)](_0x101061,_0x58445f);_0x1accc1[_0x26e1f4(0xf9)](..._0x5b9b33);}}return this['normalizeResults'](_0x1accc1);}async[a0_0x3d5d56(0x85)](_0x27a4d3,_0xcfa58,_0x2f2e7a={}){const _0x18ac86=a0_0x3d5d56;try{const _0x4b1dee=a0_0x151447[_0x18ac86(0xa5)](_0x27a4d3),_0x45408b=await execAsync('semgrep\x20--config=auto\x20--json\x20\x22'+_0x27a4d3+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530,'cwd':_0x4b1dee}),_0x5d1ac5=JSON['parse'](_0x45408b['stdout']);return this['parseSemgrepResults'](_0x5d1ac5);}catch(_0x8c4554){if(_0x8c4554[_0x18ac86(0x7e)])try{const _0x4bf0ed=JSON['parse'](_0x8c4554[_0x18ac86(0x7e)]);return this[_0x18ac86(0xf3)](_0x4bf0ed);}catch(_0x3acb54){this[_0x18ac86(0xe6)]?.[_0x18ac86(0xaa)](_0x18ac86(0x84),{'error':_0x3acb54[_0x18ac86(0xdb)],'stdout':_0x8c4554[_0x18ac86(0x7e)]});}return this['logger']?.[_0x18ac86(0xaa)](_0x18ac86(0xc5),{'error':_0x8c4554[_0x18ac86(0xdb)]}),[];}}[a0_0x3d5d56(0xf3)](_0x4b13ee){const _0x3e6658=a0_0x3d5d56,_0xb6f15f=[];if(_0x4b13ee[_0x3e6658(0xe0)]&&Array[_0x3e6658(0xed)](_0x4b13ee['results']))for(const _0x4fc951 of _0x4b13ee[_0x3e6658(0xe0)]){_0xb6f15f[_0x3e6658(0xf9)]({'file':_0x4fc951['path'],'line':_0x4fc951[_0x3e6658(0xaf)]?.[_0x3e6658(0x82)]||0x1,'column':_0x4fc951['start']?.['col']||0x1,'severity':this[_0x3e6658(0x94)](_0x4fc951[_0x3e6658(0xdd)]?.['severity']),'rule':_0x4fc951['check_id'],'message':_0x4fc951['extra']?.[_0x3e6658(0xdb)]||_0x4fc951['extra']?.[_0x3e6658(0x8f)]||_0x3e6658(0xb6),'category':_0x3e6658(0xab),'scanner':'semgrep','cwe':_0x4fc951[_0x3e6658(0xdd)]?.['metadata']?.['cwe'],'owasp':_0x4fc951['extra']?.[_0x3e6658(0xa7)]?.['owasp'],'confidence':_0x4fc951[_0x3e6658(0xdd)]?.[_0x3e6658(0xa7)]?.[_0x3e6658(0x99)],'references':_0x4fc951[_0x3e6658(0xdd)]?.['metadata']?.['references']});}return _0xb6f15f;}async[a0_0x3d5d56(0xc4)](_0xf7657c,_0x18676d={}){const _0x455ac7=a0_0x3d5d56;try{const _0x735c17=await execAsync(_0x455ac7(0xa2)+_0xf7657c+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530}),_0x2cb19d=JSON['parse'](_0x735c17[_0x455ac7(0x7e)]);return this['parseBanditResults'](_0x2cb19d);}catch(_0x3ed7eb){if(_0x3ed7eb[_0x455ac7(0x7e)])try{const _0x323f37=JSON['parse'](_0x3ed7eb['stdout']);return this[_0x455ac7(0x7f)](_0x323f37);}catch(_0x222b2c){this['logger']?.['error'](_0x455ac7(0x8b),{'error':_0x222b2c[_0x455ac7(0xdb)]});}return this['logger']?.[_0x455ac7(0xaa)](_0x455ac7(0x90),{'error':_0x3ed7eb[_0x455ac7(0xdb)]}),[];}}[a0_0x3d5d56(0x7f)](_0x3cbce0){const _0x5eadfa=a0_0x3d5d56,_0x50bc0c=[];if(_0x3cbce0['results']&&Array[_0x5eadfa(0xed)](_0x3cbce0['results']))for(const _0x38d421 of _0x3cbce0['results']){_0x50bc0c['push']({'file':_0x38d421['filename'],'line':_0x38d421['line_number']||0x1,'column':_0x38d421['col_offset']||0x1,'severity':this['mapBanditSeverity'](_0x38d421[_0x5eadfa(0xae)]),'rule':_0x38d421[_0x5eadfa(0x91)],'message':_0x38d421[_0x5eadfa(0xc3)],'category':_0x5eadfa(0xab),'scanner':_0x5eadfa(0xdf),'cwe':_0x38d421[_0x5eadfa(0x9e)]?.['id']?_0x5eadfa(0xb9)+_0x38d421[_0x5eadfa(0x9e)]['id']:null,'confidence':_0x38d421[_0x5eadfa(0xef)],'moreInfo':_0x38d421[_0x5eadfa(0xc0)]});}return _0x50bc0c;}async['runESLintSecurity'](_0x341920,_0x4eed4a,_0x57be76={}){const _0x1337b5=a0_0x3d5d56;try{const {ESLint:_0x4be187}=await import('eslint'),_0x109a56=new _0x4be187({'overrideConfig':{'plugins':[_0x1337b5(0xab)],'extends':[_0x1337b5(0xbb)],'parserOptions':{'ecmaVersion':_0x1337b5(0xcf),'sourceType':'module'}},'useEslintrc':![]}),_0x11b93d=await _0x109a56[_0x1337b5(0x9f)](_0x4eed4a,{'filePath':_0x341920});return this[_0x1337b5(0x89)](_0x11b93d,_0x341920);}catch(_0x495e2f){return this['logger']?.['error']('ESLint\x20security\x20scan\x20failed',{'error':_0x495e2f[_0x1337b5(0xdb)],'filePath':_0x341920}),[];}}['parseESLintResults'](_0x273dc1,_0x2c6e7d){const _0x386450=a0_0x3d5d56,_0x45ed77=[];for(const _0x1d779e of _0x273dc1){if(_0x1d779e['messages']&&Array[_0x386450(0xed)](_0x1d779e['messages']))for(const _0x3c3a6f of _0x1d779e['messages']){_0x3c3a6f['ruleId']&&_0x3c3a6f['ruleId']['startsWith'](_0x386450(0xd5))&&_0x45ed77['push']({'file':_0x2c6e7d,'line':_0x3c3a6f[_0x386450(0x82)]||0x1,'column':_0x3c3a6f['column']||0x1,'severity':this['mapESLintSeverity'](_0x3c3a6f['severity']),'rule':_0x3c3a6f['ruleId'],'message':_0x3c3a6f[_0x386450(0xdb)],'category':'security','scanner':'eslint-security','fixable':_0x3c3a6f['fix']!==undefined});}}return _0x45ed77;}async['runNpmAudit'](_0x34181d,_0x2fbde3={}){const _0x2e95e5=a0_0x3d5d56;try{const _0x2b01f8=a0_0x151447[_0x2e95e5(0xcc)](_0x34181d,'package.json');try{await a0_0x34eaeb['access'](_0x2b01f8);}catch{return this['logger']?.[_0x2e95e5(0x9d)](_0x2e95e5(0x88)),[];}const _0x114d45=await execAsync(_0x2e95e5(0xfc),{'cwd':_0x34181d,'maxBuffer':0xa*0x400*0x400,'timeout':0xea60}),_0xd1c91b=JSON[_0x2e95e5(0x9a)](_0x114d45['stdout']);return this['parseNpmAuditResults'](_0xd1c91b);}catch(_0x2255ab){if(_0x2255ab['stdout'])try{const _0x11de27=JSON['parse'](_0x2255ab['stdout']);return this[_0x2e95e5(0xc6)](_0x11de27);}catch(_0x36df71){this[_0x2e95e5(0xe6)]?.[_0x2e95e5(0xaa)]('Failed\x20to\x20parse\x20npm\x20audit\x20output',{'error':_0x36df71[_0x2e95e5(0xdb)]});}return[];}}[a0_0x3d5d56(0xc6)](_0x3f2bbf){const _0x2dbaa0=a0_0x3d5d56,_0x30f052=[];if(_0x3f2bbf[_0x2dbaa0(0x98)])for(const [_0x58d6b8,_0x2d3c56]of Object['entries'](_0x3f2bbf['vulnerabilities'])){_0x30f052['push']({'file':_0x2dbaa0(0xa0),'line':0x1,'column':0x1,'severity':this[_0x2dbaa0(0xc9)](_0x2d3c56['severity']),'rule':_0x2dbaa0(0xbf)+(_0x2d3c56['via'][0x0]?.['source']||'advisory'),'message':_0x58d6b8+':\x20'+(_0x2d3c56['via'][0x0]?.['title']||'Security\x20vulnerability'),'category':_0x2dbaa0(0xab),'scanner':'npm-audit','package':_0x58d6b8,'vulnerableVersions':_0x2d3c56[_0x2dbaa0(0xf5)],'patchedVersions':_0x2d3c56['fixAvailable']?_0x2dbaa0(0xeb):'None','cve':_0x2d3c56[_0x2dbaa0(0xee)][0x0]?.[_0x2dbaa0(0xc7)],'cvss':_0x2d3c56[_0x2dbaa0(0xee)][0x0]?.[_0x2dbaa0(0xd4)],'references':_0x2d3c56['via'][0x0]?.['url']?[_0x2d3c56['via'][0x0][_0x2dbaa0(0xe9)]]:[]});}return _0x30f052;}async[a0_0x3d5d56(0xbc)](_0x1e7701,_0x97929={}){const _0x3d736c=a0_0x3d5d56;try{const requirementsPath=a0_0x151447[_0x3d736c(0xcc)](_0x1e7701,_0x3d736c(0xe8));try{await a0_0x34eaeb[_0x3d736c(0xa8)](requirementsPath);}catch{return this['logger']?.['debug'](_0x3d736c(0xd1)),[];}const _0x3b1e76=await execAsync(_0x3d736c(0xf4),{'cwd':_0x1e7701,'maxBuffer':0xa*0x400*0x400,'timeout':0xea60}),_0x2f79cc=JSON[_0x3d736c(0x9a)](_0x3b1e76[_0x3d736c(0x7e)]);return this['parsePipAuditResults'](_0x2f79cc);}catch(_0x2c066e){if(_0x2c066e['stdout'])try{const _0x52de47=JSON['parse'](_0x2c066e[_0x3d736c(0x7e)]);return this[_0x3d736c(0x97)](_0x52de47);}catch(_0x58c7e2){this['logger']?.[_0x3d736c(0xaa)](_0x3d736c(0x8a),{'error':_0x58c7e2[_0x3d736c(0xdb)]});}return[];}}[a0_0x3d5d56(0x97)](_0x1f5692){const _0x19ac24=a0_0x3d5d56,_0x1cc614=[];if(_0x1f5692[_0x19ac24(0xec)]&&Array['isArray'](_0x1f5692[_0x19ac24(0xec)]))for(const _0x4644c6 of _0x1f5692['dependencies']){if(_0x4644c6[_0x19ac24(0xb3)]&&Array['isArray'](_0x4644c6[_0x19ac24(0xb3)]))for(const _0x43d4df of _0x4644c6[_0x19ac24(0xb3)]){_0x1cc614['push']({'file':_0x19ac24(0xe8),'line':0x1,'column':0x1,'severity':this[_0x19ac24(0xce)](_0x43d4df['severity']),'rule':_0x43d4df['id'],'message':_0x4644c6['name']+':\x20'+(_0x43d4df['description']||_0x19ac24(0x8c)),'category':_0x19ac24(0xab),'scanner':'pip-audit','package':_0x4644c6[_0x19ac24(0x92)],'vulnerableVersion':_0x4644c6['version'],'fixedVersions':_0x43d4df[_0x19ac24(0xb7)],'references':_0x43d4df[_0x19ac24(0xa1)]||[]});}}return _0x1cc614;}[a0_0x3d5d56(0xde)](_0x404e49){const _0x152ec9=a0_0x3d5d56,_0x3e0c76=a0_0x151447[_0x152ec9(0xfa)](_0x404e49)[_0x152ec9(0x86)](),_0xc7e5ad={'.js':_0x152ec9(0xd8),'.jsx':'javascript','.mjs':'javascript','.cjs':_0x152ec9(0xd8),'.ts':'typescript','.tsx':_0x152ec9(0xf0),'.py':_0x152ec9(0x93)};return _0xc7e5ad[_0x3e0c76]||null;}[a0_0x3d5d56(0xbd)](_0x30c300){const _0x2fea4c=a0_0x3d5d56,_0xde677f=[/\.test\./,/\.spec\./,/__tests__\//,/\/tests?\//,/\.test$/,/\.spec$/];return _0xde677f[_0x2fea4c(0xd0)](_0x56bc44=>_0x56bc44['test'](_0x30c300));}['hasScannersForLanguage'](_0x5616bb,_0x52a2ff){const _0x4f7e2e=a0_0x3d5d56;if(_0x52a2ff==='javascript'||_0x52a2ff==='typescript')return _0x5616bb['semgrep']||_0x5616bb[_0x4f7e2e(0xac)];if(_0x52a2ff===_0x4f7e2e(0x93))return _0x5616bb[_0x4f7e2e(0xdf)]||_0x5616bb['semgrep'];return![];}[a0_0x3d5d56(0xf6)](_0x37f1ec){const _0x220dd2=a0_0x3d5d56;return _0x37f1ec['map'](_0x114d6c=>({'file':_0x114d6c['file'],'line':_0x114d6c[_0x220dd2(0x82)]||0x1,'column':_0x114d6c['column']||0x1,'severity':_0x114d6c['severity']||STATIC_ANALYSIS[_0x220dd2(0xfd)]['WARNING'],'rule':_0x114d6c['rule']||_0x220dd2(0xba),'message':_0x114d6c['message']||_0x220dd2(0xb6),'category':'security','scanner':_0x114d6c['scanner'],'cwe':_0x114d6c[_0x220dd2(0xe4)]||null,'owasp':_0x114d6c['owasp']||null,'confidence':_0x114d6c[_0x220dd2(0x99)]||null,'fixable':_0x114d6c[_0x220dd2(0xfb)]||![],'remediation':_0x114d6c['remediation']||_0x114d6c['moreInfo']||null,'references':_0x114d6c['references']||[],'package':_0x114d6c[_0x220dd2(0xa6)]||null}));}['mapSemgrepSeverity'](_0x3ef7c0){const _0x2e2012=a0_0x3d5d56,_0x11cef9={'ERROR':STATIC_ANALYSIS['SEVERITY']['CRITICAL'],'WARNING':STATIC_ANALYSIS[_0x2e2012(0xfd)][_0x2e2012(0xa9)],'INFO':STATIC_ANALYSIS['SEVERITY'][_0x2e2012(0xad)]};return _0x11cef9[_0x3ef7c0?.[_0x2e2012(0xe1)]()]||STATIC_ANALYSIS[_0x2e2012(0xfd)][_0x2e2012(0xad)];}['mapBanditSeverity'](_0x3d8132){const _0x34bedf=a0_0x3d5d56,_0x4e2e75={'HIGH':STATIC_ANALYSIS['SEVERITY']['CRITICAL'],'MEDIUM':STATIC_ANALYSIS['SEVERITY']['ERROR'],'LOW':STATIC_ANALYSIS['SEVERITY']['WARNING']};return _0x4e2e75[_0x3d8132?.[_0x34bedf(0xe1)]()]||STATIC_ANALYSIS[_0x34bedf(0xfd)][_0x34bedf(0xad)];}['mapESLintSeverity'](_0x40d120){const _0xffe4b7=a0_0x3d5d56;return _0x40d120===0x2?STATIC_ANALYSIS['SEVERITY'][_0xffe4b7(0xa9)]:STATIC_ANALYSIS['SEVERITY'][_0xffe4b7(0xad)];}['mapNpmSeverity'](_0xd68543){const _0x139c3b=a0_0x3d5d56,_0x5e3d0f={'critical':STATIC_ANALYSIS['SEVERITY']['CRITICAL'],'high':STATIC_ANALYSIS[_0x139c3b(0xfd)][_0x139c3b(0xb0)],'moderate':STATIC_ANALYSIS['SEVERITY'][_0x139c3b(0xa9)],'low':STATIC_ANALYSIS[_0x139c3b(0xfd)][_0x139c3b(0xad)],'info':STATIC_ANALYSIS[_0x139c3b(0xfd)]['INFO']};return _0x5e3d0f[_0xd68543?.[_0x139c3b(0x86)]()]||STATIC_ANALYSIS[_0x139c3b(0xfd)]['WARNING'];}['mapPipAuditSeverity'](_0x1eab7c){const _0x6f7b4=a0_0x3d5d56;if(!_0x1eab7c)return STATIC_ANALYSIS['SEVERITY'][_0x6f7b4(0xa9)];const _0x28419b={'critical':STATIC_ANALYSIS[_0x6f7b4(0xfd)][_0x6f7b4(0xb0)],'high':STATIC_ANALYSIS['SEVERITY']['CRITICAL'],'medium':STATIC_ANALYSIS[_0x6f7b4(0xfd)][_0x6f7b4(0xa9)],'low':STATIC_ANALYSIS['SEVERITY'][_0x6f7b4(0xad)]};return _0x28419b[_0x1eab7c?.['toLowerCase']()]||STATIC_ANALYSIS[_0x6f7b4(0xfd)]['ERROR'];}async['getScannerStatus'](){const _0x5a5b72=a0_0x3d5d56,_0x33c46b=await this[_0x5a5b72(0x96)]();return{'scanners':_0x33c46b,'recommendations':this['getInstallRecommendations'](_0x33c46b)};}['getInstallRecommendations'](_0x5e9d67){const _0x2d9dbf=a0_0x3d5d56,_0x3195c7=[];return!_0x5e9d67['semgrep']&&_0x3195c7[_0x2d9dbf(0xf9)]({'scanner':'Semgrep','reason':'Multi-language\x20SAST\x20with\x20extensive\x20security\x20rules','install':'pip\x20install\x20semgrep\x20OR\x20use\x20Docker:\x20docker\x20pull\x20returntocorp/semgrep','priority':_0x2d9dbf(0xbe)}),!_0x5e9d67['bandit']&&_0x3195c7['push']({'scanner':_0x2d9dbf(0xb2),'reason':'Python\x20security\x20scanner','install':_0x2d9dbf(0xd2),'priority':'medium'}),!_0x5e9d67[_0x2d9dbf(0xac)]&&_0x3195c7[_0x2d9dbf(0xf9)]({'scanner':_0x2d9dbf(0x80),'reason':'JavaScript/TypeScript\x20security\x20rules','install':_0x2d9dbf(0x87),'priority':'medium'}),!_0x5e9d67['pipAudit']&&_0x3195c7[_0x2d9dbf(0xf9)]({'scanner':'pip-audit','reason':_0x2d9dbf(0xca),'install':_0x2d9dbf(0xea),'priority':_0x2d9dbf(0xd3)}),_0x3195c7;}}export default SecurityAnalyzer;
|
|
1
|
+
const a0_0x43e3be=a0_0x8b64;(function(_0x477cbb,_0x4eb0aa){const _0x4f942e=a0_0x8b64,_0x1f4d65=_0x477cbb();while(!![]){try{const _0x1c4245=-parseInt(_0x4f942e(0x14f))/0x1+-parseInt(_0x4f942e(0x16d))/0x2*(parseInt(_0x4f942e(0x102))/0x3)+-parseInt(_0x4f942e(0x172))/0x4*(-parseInt(_0x4f942e(0x150))/0x5)+parseInt(_0x4f942e(0xfd))/0x6*(parseInt(_0x4f942e(0x10d))/0x7)+-parseInt(_0x4f942e(0x114))/0x8*(-parseInt(_0x4f942e(0x16e))/0x9)+parseInt(_0x4f942e(0x127))/0xa*(-parseInt(_0x4f942e(0x12b))/0xb)+-parseInt(_0x4f942e(0x11b))/0xc*(-parseInt(_0x4f942e(0x101))/0xd);if(_0x1c4245===_0x4eb0aa)break;else _0x1f4d65['push'](_0x1f4d65['shift']());}catch(_0x4c516b){_0x1f4d65['push'](_0x1f4d65['shift']());}}}(a0_0x249a,0xc6a98));import{exec}from'child_process';import{promisify}from'util';import a0_0x2ab5bc from'path';import a0_0x465072 from'fs/promises';function a0_0x8b64(_0x346fd9,_0x1df3cd){_0x346fd9=_0x346fd9-0xf6;const _0x249a5f=a0_0x249a();let _0x8b640f=_0x249a5f[_0x346fd9];if(a0_0x8b64['rFJWcJ']===undefined){var _0x77485c=function(_0x46de03){const _0x2df089='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2ab5bc='',_0x465072='';for(let _0xa97499=0x0,_0x2431a5,_0x421436,_0x166012=0x0;_0x421436=_0x46de03['charAt'](_0x166012++);~_0x421436&&(_0x2431a5=_0xa97499%0x4?_0x2431a5*0x40+_0x421436:_0x421436,_0xa97499++%0x4)?_0x2ab5bc+=String['fromCharCode'](0xff&_0x2431a5>>(-0x2*_0xa97499&0x6)):0x0){_0x421436=_0x2df089['indexOf'](_0x421436);}for(let _0x315ada=0x0,_0x3e2e77=_0x2ab5bc['length'];_0x315ada<_0x3e2e77;_0x315ada++){_0x465072+='%'+('00'+_0x2ab5bc['charCodeAt'](_0x315ada)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x465072);};a0_0x8b64['QaBpUm']=_0x77485c,a0_0x8b64['VGSoDs']={},a0_0x8b64['rFJWcJ']=!![];}const _0x51b504=_0x249a5f[0x0],_0x3fb9e2=_0x346fd9+_0x51b504,_0xc8c87d=a0_0x8b64['VGSoDs'][_0x3fb9e2];return!_0xc8c87d?(_0x8b640f=a0_0x8b64['QaBpUm'](_0x8b640f),a0_0x8b64['VGSoDs'][_0x3fb9e2]=_0x8b640f):_0x8b640f=_0xc8c87d,_0x8b640f;}import{STATIC_ANALYSIS}from'../utilities/constants.js';const execAsync=promisify(exec);class SecurityAnalyzer{constructor(_0xa97499=null){const _0x444ada=a0_0x8b64;this['logger']=_0xa97499,this['availableScanners']=null,this[_0x444ada(0x120)]=new Map(),this[_0x444ada(0x112)]=a0_0x2ab5bc[_0x444ada(0x14a)](process['cwd'](),'node_modules',_0x444ada(0x151));}async['detectAvailableScanners'](){const _0x4be49c=a0_0x8b64;if(this[_0x4be49c(0x15a)]!==null)return this['availableScanners'];const _0x2431a5={'semgrep':![],'bandit':![],'npmAudit':![],'pipAudit':![],'eslintSecurity':![]};try{const _0x421436=a0_0x2ab5bc['join'](this['localScannerDir'],'semgrep');try{await a0_0x465072['access'](_0x421436),_0x2431a5['semgrep']=!![],this['logger']?.[_0x4be49c(0x167)]('Semgrep\x20scanner\x20detected\x20(local)');}catch{await execAsync('semgrep\x20--version',{'timeout':0x1388}),_0x2431a5[_0x4be49c(0x155)]=!![],this[_0x4be49c(0x169)]?.['debug'](_0x4be49c(0x11c));}}catch(_0x166012){this['logger']?.['debug']('Semgrep\x20not\x20available',{'error':_0x166012[_0x4be49c(0x126)]});}try{await execAsync('bandit\x20--version',{'timeout':0x1388}),_0x2431a5[_0x4be49c(0x12a)]=!![],this['logger']?.[_0x4be49c(0x167)]('Bandit\x20scanner\x20detected');}catch(_0x315ada){this['logger']?.['debug']('Bandit\x20not\x20available',{'error':_0x315ada[_0x4be49c(0x126)]});}try{await execAsync(_0x4be49c(0x179),{'timeout':0x1388}),_0x2431a5['npmAudit']=!![],this[_0x4be49c(0x169)]?.['debug'](_0x4be49c(0x13e));}catch(_0x3e2e77){this[_0x4be49c(0x169)]?.['debug']('npm\x20not\x20available',{'error':_0x3e2e77[_0x4be49c(0x126)]});}try{await execAsync('pip-audit\x20--version',{'timeout':0x1388}),_0x2431a5[_0x4be49c(0x125)]=!![],this[_0x4be49c(0x169)]?.[_0x4be49c(0x167)](_0x4be49c(0x170));}catch(_0x511c10){this[_0x4be49c(0x169)]?.['debug'](_0x4be49c(0x160),{'error':_0x511c10['message']});}try{const _0x3c4c68=await execAsync('npm\x20list\x20eslint-plugin-security\x20--depth=0\x20--json',{'timeout':0x1388,'cwd':process[_0x4be49c(0x100)]()}),_0x497e9=JSON['parse'](_0x3c4c68['stdout']);_0x497e9['dependencies']&&_0x497e9[_0x4be49c(0x104)]['eslint-plugin-security']&&(_0x2431a5['eslintSecurity']=!![],this['logger']?.[_0x4be49c(0x167)](_0x4be49c(0x145)));}catch(_0x4d4630){this[_0x4be49c(0x169)]?.['debug'](_0x4be49c(0x11d),{'error':_0x4d4630[_0x4be49c(0x126)]});}return this['availableScanners']=_0x2431a5,_0x2431a5;}async[a0_0x43e3be(0x153)](_0x2d272a,_0x3d7d5f,_0x264841={}){const _0x588a6d=a0_0x43e3be,_0x3db177=[],_0x46e765=await this['detectAvailableScanners'](),_0x3ee777=this['detectLanguage'](_0x2d272a);if(_0x264841[_0x588a6d(0x131)]!==![]&&this[_0x588a6d(0xff)](_0x2d272a))return this[_0x588a6d(0x169)]?.[_0x588a6d(0x167)](_0x588a6d(0x148),{'filePath':_0x2d272a}),[];if(_0x3ee777===_0x588a6d(0x134)||_0x3ee777==='typescript'){if(_0x46e765[_0x588a6d(0x155)]){const _0x21048e=await this[_0x588a6d(0xfb)](_0x2d272a,[_0x3ee777],_0x264841);_0x3db177[_0x588a6d(0x157)](..._0x21048e);}if(_0x46e765['eslintSecurity']){const _0x227923=await this['runESLintSecurity'](_0x2d272a,_0x3d7d5f,_0x264841);_0x3db177[_0x588a6d(0x157)](..._0x227923);}}if(_0x3ee777===_0x588a6d(0x161)){if(_0x46e765[_0x588a6d(0x12a)]){const _0x55eb46=await this['runBandit'](_0x2d272a,_0x264841);_0x3db177['push'](..._0x55eb46);}if(_0x46e765[_0x588a6d(0x155)]){const _0x4000e4=await this[_0x588a6d(0xfb)](_0x2d272a,[_0x3ee777],_0x264841);_0x3db177['push'](..._0x4000e4);}}return _0x3db177[_0x588a6d(0x12f)]===0x0&&!this['hasScannersForLanguage'](_0x46e765,_0x3ee777)&&this['logger']?.[_0x588a6d(0x13b)](_0x588a6d(0x156),{'language':_0x3ee777,'filePath':_0x2d272a}),this['normalizeResults'](_0x3db177);}async['analyzeProject'](_0x2c34df,_0x4d1805,_0x27b96c={}){const _0x2e3e11=a0_0x43e3be,_0x246655=[],_0x26302a=await this[_0x2e3e11(0x12e)]();if(_0x4d1805==='javascript'||_0x4d1805===_0x2e3e11(0x138)){if(_0x26302a['npmAudit']){const _0x5a0946=await this['runNpmAudit'](_0x2c34df,_0x27b96c);_0x246655[_0x2e3e11(0x157)](..._0x5a0946);}}if(_0x4d1805==='python'){if(_0x26302a['pipAudit']){const _0x4a42fd=await this[_0x2e3e11(0x107)](_0x2c34df,_0x27b96c);_0x246655[_0x2e3e11(0x157)](..._0x4a42fd);}}return this['normalizeResults'](_0x246655);}async[a0_0x43e3be(0xfb)](_0x182059,_0xa14364,_0x82fc62={}){const _0x4f5ea7=a0_0x43e3be;try{const _0x321a9e=a0_0x2ab5bc[_0x4f5ea7(0x10b)](_0x182059),_0xb8acc9=await execAsync(_0x4f5ea7(0x16b)+_0x182059+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530,'cwd':_0x321a9e}),_0x4150f6=JSON['parse'](_0xb8acc9['stdout']);return this['parseSemgrepResults'](_0x4150f6);}catch(_0x308b2b){if(_0x308b2b[_0x4f5ea7(0x103)])try{const _0x4bb145=JSON[_0x4f5ea7(0x121)](_0x308b2b['stdout']);return this[_0x4f5ea7(0x11e)](_0x4bb145);}catch(_0x91e016){this[_0x4f5ea7(0x169)]?.[_0x4f5ea7(0x111)]('Failed\x20to\x20parse\x20Semgrep\x20output',{'error':_0x91e016['message'],'stdout':_0x308b2b['stdout']});}return this[_0x4f5ea7(0x169)]?.[_0x4f5ea7(0x111)](_0x4f5ea7(0x159),{'error':_0x308b2b['message']}),[];}}['parseSemgrepResults'](_0xbab56f){const _0x2de0e1=a0_0x43e3be,_0x3933f6=[];if(_0xbab56f[_0x2de0e1(0x10a)]&&Array['isArray'](_0xbab56f['results']))for(const _0x3df8ab of _0xbab56f['results']){_0x3933f6[_0x2de0e1(0x157)]({'file':_0x3df8ab['path'],'line':_0x3df8ab['start']?.['line']||0x1,'column':_0x3df8ab['start']?.['col']||0x1,'severity':this['mapSemgrepSeverity'](_0x3df8ab[_0x2de0e1(0x129)]?.[_0x2de0e1(0x110)]),'rule':_0x3df8ab[_0x2de0e1(0x162)],'message':_0x3df8ab['extra']?.[_0x2de0e1(0x126)]||_0x3df8ab[_0x2de0e1(0x129)]?.[_0x2de0e1(0x165)]||_0x2de0e1(0x175),'category':_0x2de0e1(0xfe),'scanner':'semgrep','cwe':_0x3df8ab['extra']?.['metadata']?.['cwe'],'owasp':_0x3df8ab[_0x2de0e1(0x129)]?.['metadata']?.[_0x2de0e1(0x17a)],'confidence':_0x3df8ab['extra']?.['metadata']?.['confidence'],'references':_0x3df8ab[_0x2de0e1(0x129)]?.[_0x2de0e1(0x106)]?.['references']});}return _0x3933f6;}async['runBandit'](_0x246fde,_0x33df34={}){const _0xddfc07=a0_0x43e3be;try{const _0x44d888=await execAsync('bandit\x20-f\x20json\x20\x22'+_0x246fde+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530}),_0x44d3c5=JSON[_0xddfc07(0x121)](_0x44d888[_0xddfc07(0x103)]);return this['parseBanditResults'](_0x44d3c5);}catch(_0x2fd7ae){if(_0x2fd7ae[_0xddfc07(0x103)])try{const _0x1f2e08=JSON['parse'](_0x2fd7ae['stdout']);return this[_0xddfc07(0x136)](_0x1f2e08);}catch(_0xdd7418){this['logger']?.['error']('Failed\x20to\x20parse\x20Bandit\x20output',{'error':_0xdd7418[_0xddfc07(0x126)]});}return this['logger']?.['error'](_0xddfc07(0x141),{'error':_0x2fd7ae['message']}),[];}}[a0_0x43e3be(0x136)](_0x5de34e){const _0x3a38c9=a0_0x43e3be,_0x1137dc=[];if(_0x5de34e[_0x3a38c9(0x10a)]&&Array[_0x3a38c9(0x12c)](_0x5de34e[_0x3a38c9(0x10a)]))for(const _0x3a702e of _0x5de34e[_0x3a38c9(0x10a)]){_0x1137dc[_0x3a38c9(0x157)]({'file':_0x3a702e['filename'],'line':_0x3a702e[_0x3a38c9(0x132)]||0x1,'column':_0x3a702e[_0x3a38c9(0x113)]||0x1,'severity':this[_0x3a38c9(0x105)](_0x3a702e['issue_severity']),'rule':_0x3a702e['test_id'],'message':_0x3a702e[_0x3a38c9(0x108)],'category':_0x3a38c9(0xfe),'scanner':_0x3a38c9(0x12a),'cwe':_0x3a702e[_0x3a38c9(0x12d)]?.['id']?_0x3a38c9(0x158)+_0x3a702e['issue_cwe']['id']:null,'confidence':_0x3a702e['issue_confidence'],'moreInfo':_0x3a702e[_0x3a38c9(0x152)]});}return _0x1137dc;}async[a0_0x43e3be(0xfc)](_0x5351e8,_0x9bda22,_0x381b42={}){const _0x46bd3a=a0_0x43e3be;try{const {ESLint:_0xb98b21}=await import('eslint'),_0x28165b=new _0xb98b21({'overrideConfig':{'plugins':['security'],'extends':['plugin:security/recommended'],'parserOptions':{'ecmaVersion':_0x46bd3a(0x13f),'sourceType':_0x46bd3a(0x13c)}},'useEslintrc':![]}),_0x25c03e=await _0x28165b[_0x46bd3a(0x11a)](_0x9bda22,{'filePath':_0x5351e8});return this[_0x46bd3a(0x143)](_0x25c03e,_0x5351e8);}catch(_0x5a4f4a){return this[_0x46bd3a(0x169)]?.['error']('ESLint\x20security\x20scan\x20failed',{'error':_0x5a4f4a['message'],'filePath':_0x5351e8}),[];}}[a0_0x43e3be(0x143)](_0xfa8df9,_0x25e328){const _0x229385=a0_0x43e3be,_0x34dd5d=[];for(const _0x789020 of _0xfa8df9){if(_0x789020[_0x229385(0x133)]&&Array[_0x229385(0x12c)](_0x789020[_0x229385(0x133)]))for(const _0x1ca2ae of _0x789020['messages']){_0x1ca2ae[_0x229385(0xf8)]&&_0x1ca2ae[_0x229385(0xf8)][_0x229385(0x176)](_0x229385(0x119))&&_0x34dd5d[_0x229385(0x157)]({'file':_0x25e328,'line':_0x1ca2ae[_0x229385(0x174)]||0x1,'column':_0x1ca2ae['column']||0x1,'severity':this[_0x229385(0x16a)](_0x1ca2ae['severity']),'rule':_0x1ca2ae['ruleId'],'message':_0x1ca2ae['message'],'category':_0x229385(0xfe),'scanner':'eslint-security','fixable':_0x1ca2ae[_0x229385(0x10e)]!==undefined});}}return _0x34dd5d;}async[a0_0x43e3be(0x117)](_0x15c1e5,_0x47cee0={}){const _0x32b028=a0_0x43e3be;try{const _0xaf641a=a0_0x2ab5bc['join'](_0x15c1e5,_0x32b028(0x168));try{await a0_0x465072['access'](_0xaf641a);}catch{return this[_0x32b028(0x169)]?.[_0x32b028(0x167)]('No\x20package.json\x20found,\x20skipping\x20npm\x20audit'),[];}const _0x14f542=await execAsync(_0x32b028(0x14c),{'cwd':_0x15c1e5,'maxBuffer':0xa*0x400*0x400,'timeout':0xea60}),_0x2d4914=JSON['parse'](_0x14f542['stdout']);return this[_0x32b028(0x116)](_0x2d4914);}catch(_0x2bcbf6){if(_0x2bcbf6['stdout'])try{const _0x1efd23=JSON['parse'](_0x2bcbf6['stdout']);return this['parseNpmAuditResults'](_0x1efd23);}catch(_0x50559c){this[_0x32b028(0x169)]?.[_0x32b028(0x111)](_0x32b028(0x15e),{'error':_0x50559c['message']});}return[];}}[a0_0x43e3be(0x116)](_0x2c1b7a){const _0x1bfbb5=a0_0x43e3be,_0x290e34=[];if(_0x2c1b7a['vulnerabilities'])for(const [_0x6086b1,_0x402ae2]of Object[_0x1bfbb5(0xf6)](_0x2c1b7a[_0x1bfbb5(0x164)])){_0x290e34['push']({'file':_0x1bfbb5(0x168),'line':0x1,'column':0x1,'severity':this['mapNpmSeverity'](_0x402ae2['severity']),'rule':'npm-'+(_0x402ae2[_0x1bfbb5(0x15f)][0x0]?.[_0x1bfbb5(0x15d)]||'advisory'),'message':_0x6086b1+':\x20'+(_0x402ae2['via'][0x0]?.[_0x1bfbb5(0x16f)]||'Security\x20vulnerability'),'category':'security','scanner':_0x1bfbb5(0x14d),'package':_0x6086b1,'vulnerableVersions':_0x402ae2[_0x1bfbb5(0x139)],'patchedVersions':_0x402ae2[_0x1bfbb5(0x115)]?_0x1bfbb5(0x15c):'None','cve':_0x402ae2[_0x1bfbb5(0x15f)][0x0]?.[_0x1bfbb5(0x154)],'cvss':_0x402ae2['via'][0x0]?.[_0x1bfbb5(0x15b)],'references':_0x402ae2['via'][0x0]?.[_0x1bfbb5(0x140)]?[_0x402ae2[_0x1bfbb5(0x15f)][0x0]['url']]:[]});}return _0x290e34;}async[a0_0x43e3be(0x107)](_0x52f7f6,_0x3b2a7b={}){const _0x571efd=a0_0x43e3be;try{const requirementsPath=a0_0x2ab5bc['join'](_0x52f7f6,'requirements.txt');try{await a0_0x465072[_0x571efd(0x137)](requirementsPath);}catch{return this['logger']?.['debug'](_0x571efd(0x109)),[];}const _0x2c4901=await execAsync('pip-audit\x20--format\x20json',{'cwd':_0x52f7f6,'maxBuffer':0xa*0x400*0x400,'timeout':0xea60}),_0x5f0735=JSON[_0x571efd(0x121)](_0x2c4901[_0x571efd(0x103)]);return this[_0x571efd(0x10f)](_0x5f0735);}catch(_0x5c0762){if(_0x5c0762[_0x571efd(0x103)])try{const _0xf82ff3=JSON[_0x571efd(0x121)](_0x5c0762['stdout']);return this['parsePipAuditResults'](_0xf82ff3);}catch(_0x1f1698){this['logger']?.[_0x571efd(0x111)]('Failed\x20to\x20parse\x20pip-audit\x20output',{'error':_0x1f1698[_0x571efd(0x126)]});}return[];}}['parsePipAuditResults'](_0x51e835){const _0x25e02c=a0_0x43e3be,_0x32cbf9=[];if(_0x51e835['dependencies']&&Array[_0x25e02c(0x12c)](_0x51e835[_0x25e02c(0x104)]))for(const _0x262093 of _0x51e835[_0x25e02c(0x104)]){if(_0x262093[_0x25e02c(0x142)]&&Array['isArray'](_0x262093['vulns']))for(const _0x2f5fe4 of _0x262093['vulns']){_0x32cbf9[_0x25e02c(0x157)]({'file':_0x25e02c(0xf7),'line':0x1,'column':0x1,'severity':this['mapPipAuditSeverity'](_0x2f5fe4['severity']),'rule':_0x2f5fe4['id'],'message':_0x262093['name']+':\x20'+(_0x2f5fe4['description']||_0x25e02c(0x177)),'category':_0x25e02c(0xfe),'scanner':'pip-audit','package':_0x262093[_0x25e02c(0x178)],'vulnerableVersion':_0x262093['version'],'fixedVersions':_0x2f5fe4['fix_versions'],'references':_0x2f5fe4['aliases']||[]});}}return _0x32cbf9;}[a0_0x43e3be(0x128)](_0x1e6493){const _0x290767=a0_0x43e3be,_0x53257f=a0_0x2ab5bc['extname'](_0x1e6493)[_0x290767(0x123)](),_0x1506e0={'.js':_0x290767(0x134),'.jsx':'javascript','.mjs':_0x290767(0x134),'.cjs':'javascript','.ts':'typescript','.tsx':_0x290767(0x138),'.py':_0x290767(0x161)};return _0x1506e0[_0x53257f]||null;}[a0_0x43e3be(0xff)](_0x4b5a88){const _0x10c81d=a0_0x43e3be,_0x55f019=[/\.test\./,/\.spec\./,/__tests__\//,/\/tests?\//,/\.test$/,/\.spec$/];return _0x55f019[_0x10c81d(0x173)](_0x4411c2=>_0x4411c2['test'](_0x4b5a88));}[a0_0x43e3be(0x13a)](_0x4c3c0b,_0x1f137a){const _0x5186db=a0_0x43e3be;if(_0x1f137a==='javascript'||_0x1f137a===_0x5186db(0x138))return _0x4c3c0b['semgrep']||_0x4c3c0b[_0x5186db(0x16c)];if(_0x1f137a===_0x5186db(0x161))return _0x4c3c0b[_0x5186db(0x12a)]||_0x4c3c0b[_0x5186db(0x155)];return![];}['normalizeResults'](_0x5c60cc){const _0x33f78e=a0_0x43e3be;return _0x5c60cc[_0x33f78e(0x14b)](_0x49127e=>({'file':_0x49127e['file'],'line':_0x49127e[_0x33f78e(0x174)]||0x1,'column':_0x49127e['column']||0x1,'severity':_0x49127e['severity']||STATIC_ANALYSIS['SEVERITY']['WARNING'],'rule':_0x49127e['rule']||'unknown','message':_0x49127e[_0x33f78e(0x126)]||_0x33f78e(0x175),'category':_0x33f78e(0xfe),'scanner':_0x49127e[_0x33f78e(0x124)],'cwe':_0x49127e['cwe']||null,'owasp':_0x49127e[_0x33f78e(0x17a)]||null,'confidence':_0x49127e['confidence']||null,'fixable':_0x49127e[_0x33f78e(0x144)]||![],'remediation':_0x49127e[_0x33f78e(0x135)]||_0x49127e['moreInfo']||null,'references':_0x49127e['references']||[],'package':_0x49127e['package']||null}));}['mapSemgrepSeverity'](_0x3ea8e4){const _0x1f19d6=a0_0x43e3be,_0x507942={'ERROR':STATIC_ANALYSIS['SEVERITY']['CRITICAL'],'WARNING':STATIC_ANALYSIS['SEVERITY'][_0x1f19d6(0x122)],'INFO':STATIC_ANALYSIS[_0x1f19d6(0x166)]['WARNING']};return _0x507942[_0x3ea8e4?.['toUpperCase']()]||STATIC_ANALYSIS[_0x1f19d6(0x166)][_0x1f19d6(0x13d)];}[a0_0x43e3be(0x105)](_0x46d685){const _0x449d25=a0_0x43e3be,_0x31bc72={'HIGH':STATIC_ANALYSIS['SEVERITY']['CRITICAL'],'MEDIUM':STATIC_ANALYSIS[_0x449d25(0x166)][_0x449d25(0x122)],'LOW':STATIC_ANALYSIS['SEVERITY'][_0x449d25(0x13d)]};return _0x31bc72[_0x46d685?.['toUpperCase']()]||STATIC_ANALYSIS['SEVERITY'][_0x449d25(0x13d)];}['mapESLintSeverity'](_0x49ade0){const _0x5a4c12=a0_0x43e3be;return _0x49ade0===0x2?STATIC_ANALYSIS[_0x5a4c12(0x166)][_0x5a4c12(0x122)]:STATIC_ANALYSIS['SEVERITY'][_0x5a4c12(0x13d)];}['mapNpmSeverity'](_0x499269){const _0xfef57f=a0_0x43e3be,_0xbaee8f={'critical':STATIC_ANALYSIS['SEVERITY'][_0xfef57f(0x130)],'high':STATIC_ANALYSIS[_0xfef57f(0x166)][_0xfef57f(0x130)],'moderate':STATIC_ANALYSIS['SEVERITY']['ERROR'],'low':STATIC_ANALYSIS['SEVERITY']['WARNING'],'info':STATIC_ANALYSIS[_0xfef57f(0x166)][_0xfef57f(0x14e)]};return _0xbaee8f[_0x499269?.[_0xfef57f(0x123)]()]||STATIC_ANALYSIS['SEVERITY']['WARNING'];}[a0_0x43e3be(0xf9)](_0x12756d){const _0x15a397=a0_0x43e3be;if(!_0x12756d)return STATIC_ANALYSIS['SEVERITY']['ERROR'];const _0x35a6f9={'critical':STATIC_ANALYSIS[_0x15a397(0x166)][_0x15a397(0x130)],'high':STATIC_ANALYSIS['SEVERITY'][_0x15a397(0x130)],'medium':STATIC_ANALYSIS['SEVERITY'][_0x15a397(0x122)],'low':STATIC_ANALYSIS['SEVERITY'][_0x15a397(0x13d)]};return _0x35a6f9[_0x12756d?.[_0x15a397(0x123)]()]||STATIC_ANALYSIS['SEVERITY'][_0x15a397(0x122)];}async['getScannerStatus'](){const _0xf40417=a0_0x43e3be,_0xf75526=await this['detectAvailableScanners']();return{'scanners':_0xf75526,'recommendations':this[_0xf40417(0x149)](_0xf75526)};}[a0_0x43e3be(0x149)](_0x457603){const _0x58d5ae=a0_0x43e3be,_0x341e10=[];return!_0x457603['semgrep']&&_0x341e10['push']({'scanner':'Semgrep','reason':'Multi-language\x20SAST\x20with\x20extensive\x20security\x20rules','install':_0x58d5ae(0x147),'priority':_0x58d5ae(0x163)}),!_0x457603['bandit']&&_0x341e10['push']({'scanner':_0x58d5ae(0xfa),'reason':_0x58d5ae(0x11f),'install':_0x58d5ae(0x146),'priority':'medium'}),!_0x457603[_0x58d5ae(0x16c)]&&_0x341e10[_0x58d5ae(0x157)]({'scanner':'eslint-plugin-security','reason':'JavaScript/TypeScript\x20security\x20rules','install':_0x58d5ae(0x10c),'priority':'medium'}),!_0x457603[_0x58d5ae(0x125)]&&_0x341e10[_0x58d5ae(0x157)]({'scanner':'pip-audit','reason':_0x58d5ae(0x171),'install':'pip\x20install\x20pip-audit','priority':_0x58d5ae(0x118)}),_0x341e10;}}export default SecurityAnalyzer;function a0_0x249a(){const _0x36e4ab=['D2fYBG','Bw9KDwXL','v0fstKLorW','BNbTigf1zgL0igf2ywLSywjSzq','Bgf0zxn0','DxjS','qMfUzgL0ihnJyw4GzMfPBgvK','DNvSBNm','CgfYC2vfu0XPBNrszxn1BhrZ','zML4ywjSzq','zxnSAw50lxbSDwDPBI1Zzwn1CML0EsbKzxrLy3rLza','CgLWigLUC3rHBgWGyMfUzgL0','CgLWigLUC3rHBgWGC2vTz3jLCcbpuIb1C2uGrg9JA2vYoIbKB2nRzxiGChvSBcbYzxr1CM50B2nVCNaVC2vTz3jLCa','u2TPChbPBMCGDgvZDcbMAwXLigzVCIbZzwn1CML0EsbZy2fU','z2v0sw5ZDgfSBfjLy29TBwvUzgf0Aw9UCW','AM9PBG','BwfW','BNbTigf1zgL0ic0TANnVBG','BNbTlwf1zgL0','su5gtW','mtm3ndCYvu1KBM1Q','mte1wgveEeL3','lNnJyw5UzxjZ','Bw9Yzv9PBMzV','yw5HBhL6zq','y3zL','C2vTz3jLCa','tM8GC2vJDxjPDhKGC2nHBM5LCNmGyxzHAwXHyMXLigzVCIbSyw5NDwfNzq','ChvZAa','q1Dflq','u2vTz3jLCcbZy2fUigzHAwXLza','yxzHAwXHyMXLu2nHBM5LCNm','y3zZCW','qxzHAwXHyMXL','C291CMnL','rMfPBgvKihrVihbHCNnLig5WBsbHDwrPDcbVDxrWDxq','DMLH','CgLWlwf1zgL0ig5VDcbHDMfPBgfIBgu','ChL0Ag9U','y2HLy2TFAwq','AgLNAa','DNvSBMvYywjPBgL0AwvZ','BgLUzxm','u0vwrvjjvfK','zgvIDwC','CgfJA2fNzs5QC29U','Bg9Nz2vY','BwfWrvnmAw50u2v2zxjPDhK','C2vTz3jLCcaTlwnVBMzPzZ1HDxrVic0TANnVBIaI','zxnSAw50u2vJDxjPDhK','mteWotK4nKzSD1PhyW','otblzhzRqNO','DgL0Bgu','CgLWlwf1zgL0igrLDgvJDgvK','uhL0Ag9UigrLCgvUzgvUy3KGDNvSBMvYywjPBgL0EsbZy2fUBMvY','mta3nJeYEvnwtxnr','C29Tzq','BgLUzq','u2vJDxjPDhKGAxnZDwuGzgv0zwn0zwq','C3rHCNrZv2L0Aa','u2vJDxjPDhKGDNvSBMvYywjPBgL0Eq','BMfTzq','BNbTic0TDMvYC2LVBG','B3DHC3a','zw50CMLLCW','CMvXDwLYzw1LBNrZlNr4Da','CNvSzuLK','BwfWugLWqxvKAxrtzxzLCML0Eq','qMfUzgL0','CNvUu2vTz3jLCa','CNvUrvnmAw50u2vJDxjPDhK','ntG3nZy2s2z0AxzR','C2vJDxjPDhK','Axnuzxn0rMLSzq','y3DK','mte3svnbEvnZ','m29gB3npAW','C3rKB3v0','zgvWzw5Kzw5JAwvZ','BwfWqMfUzgL0u2v2zxjPDhK','Bwv0ywrHDge','CNvUugLWqxvKAxq','AxnZDwvFDgv4Da','tM8GCMvXDwLYzw1LBNrZlNr4DcbMB3vUzcWGC2TPChbPBMCGCgLWlwf1zgL0','CMvZDwX0CW','zgLYBMfTzq','BNbTigLUC3rHBgWGls1ZyxzLlwrLDIbLC2XPBNqTCgX1z2LUlxnLy3vYAxr5','mtrOBgjSqM8','zML4','CgfYC2vqAxbbDwrPDfjLC3vSDhm','C2v2zxjPDhK','zxjYB3i','Bg9JywXty2fUBMvYrgLY','y29Sx29MzNnLDa','ndy1nZa0EeLbvK1m','zML4qxzHAwXHyMXL','CgfYC2voCg1bDwrPDfjLC3vSDhm','CNvUtNbTqxvKAxq','Bg93','C2vJDxjPDhKV','BgLUDfrLEhq','mta2odK5nMzlu2TwEG','u2vTz3jLCcbZy2fUBMvYigrLDgvJDgvKicHZExn0zw0P','zxnSAw50lxbSDwDPBI1Zzwn1CML0EsbUB3qGyxzHAwXHyMXL','CgfYC2vtzw1NCMvWuMvZDwX0CW','uhL0Ag9UihnLy3vYAxr5ihnJyw5Uzxi','C2nHBM5LCKnHy2HL','CgfYC2u','rvjst1i','Dg9mB3DLCKnHC2u','C2nHBM5LCG','CgLWqxvKAxq','BwvZC2fNzq','nJKYmZGZmgnmr292Aa','zgv0zwn0tgfUz3vHz2u','zxH0CMe','yMfUzgL0','mtf1Dwffrgq','AxnbCNjHEq','AxnZDwvFy3DL','zgv0zwn0qxzHAwXHyMXLu2nHBM5LCNm','BgvUz3rO','q1jjveLdquW','C2TPCfrLC3rgAwXLCW','BgLUzv9UDw1Izxi','BwvZC2fNzxm','AMf2yxnJCMLWDa','CMvTzwrPyxrPB24','CgfYC2vcyw5KAxrszxn1BhrZ','ywnJzxnZ','DhLWzxnJCMLWDa','CMfUz2u','AgfZu2nHBM5LCNngB3jmyw5NDwfNzq'];a0_0x249a=function(){return _0x36e4ab;};return a0_0x249a();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x22264c,_0x50c3ca){const _0x11305a=a0_0x5db8,_0x9ad5e0=_0x22264c();while(!![]){try{const _0x3828e3=parseInt(_0x11305a(0x197))/0x1+parseInt(_0x11305a(0x176))/0x2*(parseInt(_0x11305a(0x172))/0x3)+-parseInt(_0x11305a(0x19a))/0x4+-parseInt(_0x11305a(0x183))/0x5+-parseInt(_0x11305a(0x186))/0x6*(-parseInt(_0x11305a(0x18a))/0x7)+-parseInt(_0x11305a(0x17a))/0x8+-parseInt(_0x11305a(0x170))/0x9*(parseInt(_0x11305a(0x171))/0xa);if(_0x3828e3===_0x50c3ca)break;else _0x9ad5e0['push'](_0x9ad5e0['shift']());}catch(_0x1cc1f7){_0x9ad5e0['push'](_0x9ad5e0['shift']());}}}(a0_0x3ce9,0x890fe));function a0_0x5db8(_0x46ce6c,_0x1314bc){_0x46ce6c=_0x46ce6c-0x16e;const _0x3ce9f9=a0_0x3ce9();let _0x5db8e7=_0x3ce9f9[_0x46ce6c];if(a0_0x5db8['rJQbME']===undefined){var _0x28f3b5=function(_0x2529fa){const _0x5cbd58='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x14ce2f='',_0x1481b5='';for(let _0x5e4e4a=0x0,_0x42ffbb,_0x28989f,_0x4b216e=0x0;_0x28989f=_0x2529fa['charAt'](_0x4b216e++);~_0x28989f&&(_0x42ffbb=_0x5e4e4a%0x4?_0x42ffbb*0x40+_0x28989f:_0x28989f,_0x5e4e4a++%0x4)?_0x14ce2f+=String['fromCharCode'](0xff&_0x42ffbb>>(-0x2*_0x5e4e4a&0x6)):0x0){_0x28989f=_0x5cbd58['indexOf'](_0x28989f);}for(let _0x4d2b87=0x0,_0x154e34=_0x14ce2f['length'];_0x4d2b87<_0x154e34;_0x4d2b87++){_0x1481b5+='%'+('00'+_0x14ce2f['charCodeAt'](_0x4d2b87)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1481b5);};a0_0x5db8['fZhywc']=_0x28f3b5,a0_0x5db8['tFHFwe']={},a0_0x5db8['rJQbME']=!![];}const _0x4e20c7=_0x3ce9f9[0x0],_0xec0c9d=_0x46ce6c+_0x4e20c7,_0x2e4067=a0_0x5db8['tFHFwe'][_0xec0c9d];return!_0x2e4067?(_0x5db8e7=a0_0x5db8['fZhywc'](_0x5db8e7),a0_0x5db8['tFHFwe'][_0xec0c9d]=_0x5db8e7):_0x5db8e7=_0x2e4067,_0x5db8e7;}import a0_0x14ce2f from'typescript';function a0_0x3ce9(){const _0x556b98=['BwvZC2fNzvrLEhq','CgfYC2veAwfNBM9ZDgLJCW','z2v0tgLUzufUzenOyxjHy3rLCK9Mug9ZAxrPB24','rxjYB3i','rgLHz25VC3rPy0nHDgvNB3j5','q0furuDpuLK','vfLqrq','mZeWndyZmfHWDNDdra','zxjYB3i','Bg9Nz2vY','ndu0oti2nLn0vvLpwq','Dw5RBM93BG','zM9YBwf0rgLHz25VC3rPyW','DhLWzq','n3fMCgjwuW','BgvUz3rO','BwvZC2fNzq','C2v2zxjPDhK','y2f0zwDVCNK','Aw5JBhvKzxm','zgLYBMfTzq','u2nYAxb0vgfYz2v0','y2HHCMfJDgvY','rvnozxH0','zgvIDwC','u0vwrvjjvfK','Aw50zxjMywnL','nJa4mZi4EfnoCe1h','tw9KDwXLuMvZB2X1DgLVBKTPBMq','y2fUBM90igzPBMqGBw9KDwXL','mtuWntmXmKTgzePkwG','u2vTyw50AwmGyw5HBhLZAxmGzw5JB3vUDgvYzwqGzxjYB3i','zMLSzu5HBwu','y3jLyxrLu291CMnLrMLSzq','su1qt1ju','zMLSDgvY','rvjst1i','zMLSzq','y29TCgLSzxjpChrPB25Z','uMvHy3q','mZi0ntq5C3biC2Tm','mJbTshf2uLq','mtaYnKjUCwvJDG','vhLWzvnJCMLWDcbHBMfSExnPCYbJB21WBgv0zwq','zMXHDhrLBKrPywDUB3n0AwnnzxnZywDLvgv4Da','z2v0u2vTyw50AwneAwfNBM9ZDgLJCW','nJa4mNb0su5tEa','tgf0zxn0','ChvZAa','C3rHCNq','nJiWnJiZmMnyrg9fuW','v0fstKLorW'];a0_0x3ce9=function(){return _0x556b98;};return a0_0x3ce9();}import a0_0x1481b5 from'path';import{STATIC_ANALYSIS}from'../utilities/constants.js';class TypeScriptAnalyzer{constructor(_0x5e4e4a=null){const _0x3a5a2d=a0_0x5db8;this[_0x3a5a2d(0x185)]=_0x5e4e4a,this[_0x3a5a2d(0x16e)]={'noEmit':!![],'jsx':a0_0x14ce2f['JsxEmit'][_0x3a5a2d(0x16f)],'target':a0_0x14ce2f[_0x3a5a2d(0x191)][_0x3a5a2d(0x177)],'module':a0_0x14ce2f['ModuleKind'][_0x3a5a2d(0x193)],'moduleResolution':a0_0x14ce2f[_0x3a5a2d(0x198)]['NodeJs'],'esModuleInterop':!![],'skipLibCheck':!![],'strict':!![],'noImplicitAny':!![],'strictNullChecks':!![],'strictFunctionTypes':!![],'allowJs':![]};}async['analyze'](_0x42ffbb,_0x28989f,_0x4b216e={}){const _0x5a6fda=a0_0x5db8;try{const _0x4d2b87=[],_0x154e34=a0_0x14ce2f[_0x5a6fda(0x19d)](_0x42ffbb,_0x28989f,a0_0x14ce2f['ScriptTarget']['Latest'],!![]),_0xf69970=this['getSyntacticDiagnostics'](_0x154e34);_0x4d2b87['push'](..._0xf69970);const _0x84e9ef=await this[_0x5a6fda(0x175)](_0x42ffbb,_0x28989f);return _0x4d2b87[_0x5a6fda(0x178)](..._0x84e9ef),this[_0x5a6fda(0x185)]?.[_0x5a6fda(0x194)](_0x5a6fda(0x173),{'file':_0x42ffbb,'totalDiagnostics':_0x4d2b87['length'],'errors':_0x4d2b87['filter'](_0x4ff6b8=>_0x4ff6b8[_0x5a6fda(0x18d)]===STATIC_ANALYSIS['SEVERITY']['ERROR'])[_0x5a6fda(0x18b)],'warnings':_0x4d2b87[_0x5a6fda(0x19f)](_0x488679=>_0x488679['severity']===STATIC_ANALYSIS[_0x5a6fda(0x195)][_0x5a6fda(0x17b)])['length']}),_0x4d2b87;}catch(_0x9ea159){return this[_0x5a6fda(0x185)]?.[_0x5a6fda(0x184)]('TypeScript\x20analysis\x20failed',{'file':_0x42ffbb,'error':_0x9ea159['message']}),[{'file':_0x42ffbb,'line':0x0,'column':0x0,'severity':STATIC_ANALYSIS['SEVERITY']['ERROR'],'rule':'analyzer-error','message':'Analysis\x20failed:\x20'+_0x9ea159[_0x5a6fda(0x18c)],'category':STATIC_ANALYSIS['CATEGORY']['SYNTAX']}];}}['getSyntacticDiagnostics'](_0x31deb4){const _0x49f1f6=a0_0x5db8,_0x2cc56c=[];if(_0x31deb4[_0x49f1f6(0x17d)]&&_0x31deb4[_0x49f1f6(0x17d)]['length']>0x0)for(const _0x46a78d of _0x31deb4['parseDiagnostics']){_0x2cc56c[_0x49f1f6(0x178)](this[_0x49f1f6(0x188)](_0x46a78d,_0x31deb4));}return _0x2cc56c;}async['getSemanticDiagnostics'](_0x2bae1c,_0x85758c){const _0x5555b9=a0_0x5db8,_0x516a7e=[];try{const _0x31ee00=a0_0x14ce2f['createSourceFile'](_0x2bae1c,_0x85758c,a0_0x14ce2f[_0x5555b9(0x191)][_0x5555b9(0x177)],!![]),_0x442c04={'getSourceFile':_0x385693=>{if(_0x385693===_0x2bae1c)return _0x31ee00;return undefined;},'getDefaultLibFileName':()=>'lib.d.ts','writeFile':()=>{},'getCurrentDirectory':()=>a0_0x1481b5[_0x5555b9(0x190)](_0x2bae1c),'getDirectories':()=>[],'fileExists':_0x5c58fa=>_0x5c58fa===_0x2bae1c,'readFile':_0x48ecf0=>{if(_0x48ecf0===_0x2bae1c)return _0x85758c;return undefined;},'getCanonicalFileName':_0x59f452=>_0x59f452,'useCaseSensitiveFileNames':()=>!![],'getNewLine':()=>'\x0a'},_0x4110c7=a0_0x14ce2f['createProgram']({'rootNames':[_0x2bae1c],'options':this['compilerOptions'],'host':_0x442c04}),_0x5a4350=_0x4110c7['getSyntacticDiagnostics'](_0x31ee00),_0x200d3c=_0x4110c7[_0x5555b9(0x175)](_0x31ee00);for(const _0x520ae7 of[..._0x5a4350,..._0x200d3c]){_0x516a7e[_0x5555b9(0x178)](this['formatDiagnostic'](_0x520ae7,_0x31ee00));}}catch(_0x4a2319){this[_0x5555b9(0x185)]?.[_0x5555b9(0x194)](_0x5555b9(0x19b),{'file':_0x2bae1c,'error':_0x4a2319[_0x5555b9(0x18c)]});}return _0x516a7e;}['formatDiagnostic'](_0x458b55,_0x364eb1){const _0x1ee555=a0_0x5db8;let _0x26c279=0x0,_0x214c56=0x0;if(_0x458b55[_0x1ee555(0x1a1)]&&_0x458b55[_0x1ee555(0x179)]!==undefined){const _0x2d0dce=_0x458b55[_0x1ee555(0x1a1)][_0x1ee555(0x17e)](_0x458b55['start']);_0x26c279=_0x2d0dce['line']+0x1,_0x214c56=_0x2d0dce[_0x1ee555(0x192)]+0x1;}else{if(_0x364eb1&&_0x458b55[_0x1ee555(0x179)]!==undefined){const _0x15f3cf=_0x364eb1[_0x1ee555(0x17e)](_0x458b55['start']);_0x26c279=_0x15f3cf['line']+0x1,_0x214c56=_0x15f3cf[_0x1ee555(0x192)]+0x1;}}const _0x16e2db=a0_0x14ce2f[_0x1ee555(0x174)](_0x458b55[_0x1ee555(0x17c)],'\x0a');let _0x1a86f9;switch(_0x458b55[_0x1ee555(0x18e)]){case a0_0x14ce2f['DiagnosticCategory'][_0x1ee555(0x17f)]:_0x1a86f9=STATIC_ANALYSIS['SEVERITY'][_0x1ee555(0x1a0)];break;case a0_0x14ce2f['DiagnosticCategory']['Warning']:_0x1a86f9=STATIC_ANALYSIS[_0x1ee555(0x195)]['WARNING'];break;case a0_0x14ce2f[_0x1ee555(0x180)]['Message']:case a0_0x14ce2f['DiagnosticCategory']['Suggestion']:_0x1a86f9=STATIC_ANALYSIS[_0x1ee555(0x195)]['INFO'];break;default:_0x1a86f9=STATIC_ANALYSIS['SEVERITY'][_0x1ee555(0x1a0)];}let _0x123884=STATIC_ANALYSIS[_0x1ee555(0x181)]['SYNTAX'];const _0x383fe3=_0x458b55['code'];if(_0x383fe3>=0x7d0&&_0x383fe3<0xbb8)_0x123884=STATIC_ANALYSIS['CATEGORY']['TYPE'];else{if(_0x383fe3>=0x3e8&&_0x383fe3<0x7d0)_0x123884=STATIC_ANALYSIS['CATEGORY']['SYNTAX'];else _0x383fe3>=0x8fc&&_0x383fe3<0x960&&(_0x123884=STATIC_ANALYSIS['CATEGORY'][_0x1ee555(0x19e)]);}const _0x5da5d1=_0x16e2db['toLowerCase']();if(_0x5da5d1['includes'](_0x1ee555(0x199))||_0x5da5d1[_0x1ee555(0x18f)]('import')||_0x5da5d1[_0x1ee555(0x18f)]('export'))_0x123884=STATIC_ANALYSIS['CATEGORY']['IMPORT'];else(_0x5da5d1['includes'](_0x1ee555(0x189))||_0x5da5d1['includes'](_0x1ee555(0x196))||_0x5da5d1[_0x1ee555(0x18f)]('class'))&&(_0x123884=STATIC_ANALYSIS['CATEGORY'][_0x1ee555(0x182)]);return{'file':_0x458b55['file']?.[_0x1ee555(0x19c)]||_0x364eb1?.['fileName']||_0x1ee555(0x187),'line':_0x26c279,'column':_0x214c56,'severity':_0x1a86f9,'rule':'TS'+_0x383fe3,'message':_0x16e2db,'category':_0x123884,'fixable':![],'code':_0x458b55['code']};}}export default TypeScriptAnalyzer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x5f464d=a0_0xc339;(function(_0x21858d,_0x57674c){const _0xa5a118=a0_0xc339,_0x3bf548=_0x21858d();while(!![]){try{const _0x5eb8a6=-parseInt(_0xa5a118(0x117))/0x1*(-parseInt(_0xa5a118(0xcf))/0x2)+-parseInt(_0xa5a118(0xf2))/0x3+parseInt(_0xa5a118(0xf5))/0x4+parseInt(_0xa5a118(0xe4))/0x5+-parseInt(_0xa5a118(0xe3))/0x6+parseInt(_0xa5a118(0x119))/0x7*(-parseInt(_0xa5a118(0x107))/0x8)+parseInt(_0xa5a118(0x10a))/0x9;if(_0x5eb8a6===_0x57674c)break;else _0x3bf548['push'](_0x3bf548['shift']());}catch(_0x2feac7){_0x3bf548['push'](_0x3bf548['shift']());}}}(a0_0x4e3e,0x60fc3));function a0_0x4e3e(){const _0x369166=['Bg9N','mY4GvgvZDcb0Ag9YB3vNAgX5','CM91BMq','zNvUy3rPB24','BgvUz3rO','Dhj1BMnHDgvdB2rL','DMfY','y2XVBMuT','C2L6zq','z2vUzxjHDgvby3rPB25HyMXLu3rLChm','Bg93','lcbHBMqGCMvKDwnLignVzguGC2L6zq','mty0mZGYrKD3vMLP','Bwv0CMLJCW','z2vUzxjHDgvszwfZB25PBMC','mJa5nZiYmerxtePLwq','ChvZAa','zw5KtgLUzq','lIbuAgLZigLZigeGAgLNAc1PBxbHy3qGCMvMywn0B3jPBMCGB3bWB3j0Dw5PDhK','zgvZy3jPyMvczw5LzML0CW','mI4Gtw92zsb0AguGzhvWBgLJyxrLzcbJB2rLigLUDg8GDgHLig5LDYbTB2r1Bgu','C2XPy2u','y2HHCKf0','y2fSy3vSyxrLsw1Wywn0u2nVCMu','ns4GvgvZDcb0BYbLBNn1CMuGyMvOyxzPB3iGAxmGChjLC2vYDMvK','mY4GvxbKyxrLigfSBcbPBNn0yw5JzxmGDg8GDxnLihrOzsbUzxCGy2XHC3m','lcbYzxn1BhrPBMCGAw4G','ihrPBwvZ','BwfW','CMvWBgfJzq','C3vNz2vZDe5HBwu','yMXVy2TZ','Dg9gAxHLza','og1HEenQra','C29Tzq','Aw1Wywn0u2nVCMu','mtiZndK2mKvsDuvrBG','D2HPBgu','yw5HBhL6zunSB25LCW','uMvMywn0B3jPBMCGDg8G','Dg9vChbLCKnHC2u','zxH0CMfJDc1TB2r1Bgu','z2vUzxjHDgvszwzHy3rVCMLUz0fKDMLJzq','Bwf0y2G','mI4GuMvWBgfJzsbHBgWGAw5ZDgfUy2vZihDPDgGGDgHLigv4DhjHy3rLzcb2zxjZAw9U','y29UzMLKzw5Jzq','DhLWzq','cI4UlIaODhj1BMnHDgvKkq','rNvUy3rPB24','ndyWmdLtu1LiB3K','ms4Gq3jLyxrLigeGBMv3ignSyxnZihrVigvUy2fWC3vSyxrLihrOAxmGzNvUy3rPB25HBgL0Eq','mJK5oduZnfvIvvDQta','y29UzMLN','zMLSzxndB3zLCMvK','Aw5JBhvKzxm','mtHivw1pu1y','q2XHC3m','zwXZzq','Bgv0','ihDVDwXKigLTChjVDMuGBwfPBNrHAw5HyMLSAxr5','ms4Gq3jLyxrLigeGBMv3ig1VzhvSzs9MAwXLigzVCIb0AgLZihnOyxjLzcbMDw5JDgLVBMfSAxr5','ms4Gq3jLyxrLigeGBMv3igz1BMn0Aw9Uig5HBwvKicC','nc4GuMvWBgfJzsbHBgWGAw5ZDgfUy2vZihDPDgGGy2fSBhmGDg8GDgHLig5LDYbMDw5JDgLVBG','BwLU','yxzLCMfNzuXPBMvdB3vUDa','C29YDa','zgv0zxjTAw5LuhjPB3jPDhK','y29Kzq','mY4GrxHWB3j0ihrOzsbUzwnLC3nHCNKGzNvUy3rPB25Zl2nSyxnZzxm','zxH0CMfJDc1JBgfZCW','zxH0CMfJDgvKrNvUy3rPB24','y2fSy3vSyxrLtwv0CMLJCW','C3bSAxq','ns4GvxbKyxrLigfUEsbIDwLSzcbJB25MAwD1CMf0Aw9UCYbPzIbUzwvKzwq','BwvKAxvT','mZqZnZqWnMzUv2jyzq','mtG4oduYmgvYrfj0vq','zw50CMLLCW'];a0_0x4e3e=function(){return _0x369166;};return a0_0x4e3e();}function a0_0xc339(_0x231186,_0x196245){_0x231186=_0x231186-0xce;const _0x4e3eee=a0_0x4e3e();let _0xc339c0=_0x4e3eee[_0x231186];if(a0_0xc339['nSzTBl']===undefined){var _0x1411bd=function(_0x18cddf){const _0x4940dd='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1b9e3f='',_0x558bbb='';for(let _0x3fc4af=0x0,_0x1337d6,_0x45bc69,_0x9c44c=0x0;_0x45bc69=_0x18cddf['charAt'](_0x9c44c++);~_0x45bc69&&(_0x1337d6=_0x3fc4af%0x4?_0x1337d6*0x40+_0x45bc69:_0x45bc69,_0x3fc4af++%0x4)?_0x1b9e3f+=String['fromCharCode'](0xff&_0x1337d6>>(-0x2*_0x3fc4af&0x6)):0x0){_0x45bc69=_0x4940dd['indexOf'](_0x45bc69);}for(let _0x33880c=0x0,_0x3aadc1=_0x1b9e3f['length'];_0x33880c<_0x3aadc1;_0x33880c++){_0x558bbb+='%'+('00'+_0x1b9e3f['charCodeAt'](_0x33880c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x558bbb);};a0_0xc339['fCMlNM']=_0x1411bd,a0_0xc339['VziezK']={},a0_0xc339['nSzTBl']=!![];}const _0x2f2d6a=_0x4e3eee[0x0],_0x30048a=_0x231186+_0x2f2d6a,_0x3086b1=a0_0xc339['VziezK'][_0x30048a];return!_0x3086b1?(_0xc339c0=a0_0xc339['fCMlNM'](_0xc339c0),a0_0xc339['VziezK'][_0x30048a]=_0xc339c0):_0xc339c0=_0x3086b1,_0xc339c0;}export class RefactoringAnalyzer{constructor(_0x1b9e3f){const _0x219637=a0_0xc339;this[_0x219637(0x11a)]=_0x1b9e3f;}[a0_0x5f464d(0x10c)](_0x558bbb){const _0xffd87a=a0_0x5f464d;return console[_0xffd87a(0xe6)]('Analyzing\x20clones\x20for\x20refactoring\x20opportunities...'),_0x558bbb[_0xffd87a(0x102)]((_0x3fc4af,_0x1337d6)=>{const _0x1b33e8=_0xffd87a,_0x45bc69=this[_0x1b33e8(0xdf)](_0x3fc4af),_0x9c44c=this[_0x1b33e8(0x110)](_0x3fc4af,_0x45bc69);return{'id':_0x1b33e8(0xed)+(_0x1337d6+0x1),'type':_0x3fc4af['type'],'confidence':_0x3fc4af['confidence'],'instances':_0x3fc4af['blocks'][_0x1b33e8(0x102)](_0x33880c=>({'file':_0x33880c['file'],'startLine':_0x33880c['startLine'],'endLine':_0x33880c[_0x1b33e8(0xf7)],'code':this['truncateCode'](_0x33880c['code']),'fullCode':_0x33880c[_0x1b33e8(0xdb)],'blockType':_0x33880c['type']})),'metrics':_0x45bc69,'refactoringAdvice':_0x9c44c};})['sort']((_0x3aadc1,_0x54ae4b)=>_0x54ae4b[_0xffd87a(0xf3)][_0xffd87a(0x109)]-_0x3aadc1['metrics'][_0xffd87a(0x109)]);}[a0_0x5f464d(0xdf)](_0x510e1b){const _0xe2119f=a0_0x5f464d,_0x1d9032=_0x510e1b[_0xe2119f(0x105)],_0xe45863=_0x510e1b['tokenCount'],_0x322bcc=this[_0xe2119f(0xd8)](_0x1d9032),_0x5c7d92=_0x1d9032[_0xe2119f(0xea)],_0x3bea3a=this['calculateImpactScore'](_0xe45863,_0x322bcc,_0x5c7d92,_0x510e1b[_0xe2119f(0x113)]),_0x216624=_0x322bcc*(_0x5c7d92-0x1),_0x4b65b3=_0xe45863*(_0x5c7d92-0x1);return{'tokenCount':_0xe45863,'lineCount':_0x322bcc,'instanceCount':_0x5c7d92,'duplicatedLines':_0x216624,'duplicatedTokens':_0x4b65b3,'impactScore':parseFloat(_0x3bea3a[_0xe2119f(0x106)](0x2)),'filesCovered':new Set(_0x1d9032['map'](_0x2a0fe4=>_0x2a0fe4['file']))[_0xe2119f(0xee)]};}[a0_0x5f464d(0xfd)](_0x29c588,_0x29f5a2,_0x3e5196,_0x4880a7){const _0x5803c4=Math['log10'](_0x29c588+0x1)*0x2,_0x467f69=Math['log2'](_0x3e5196+0x1)*0x3,_0x349525=_0x4880a7*0x2,_0x4e9992=Math['min'](_0x29f5a2/0xa,0x3);return _0x5803c4+_0x467f69+_0x349525+_0x4e9992;}[a0_0x5f464d(0x110)](_0x4e5784,_0x56ac57){const _0x2973ef=a0_0x5f464d,_0x1fc323=this['determineRefactoringStrategy'](_0x4e5784,_0x56ac57),_0x180e41=this[_0x2973ef(0xda)](_0x56ac57),_0x482ddd=this[_0x2973ef(0x104)](_0x4e5784),_0x511ec8=this[_0x2973ef(0xf4)](_0x4e5784,_0x56ac57,_0x1fc323),_0x304f49=this['estimateEffort'](_0x56ac57,_0x1fc323),_0x12f61f=this[_0x2973ef(0xf9)](_0x56ac57);return{'priority':_0x180e41,'strategy':_0x1fc323,'suggestedName':_0x482ddd,'reasoning':_0x511ec8,'estimatedEffort':_0x304f49,'benefits':_0x12f61f,'actionableSteps':this[_0x2973ef(0xef)](_0x1fc323,_0x482ddd,_0x56ac57)};}['determineRefactoringStrategy'](_0x20abdc,_0x357e0a){const _0x30e20b=a0_0x5f464d,{tokenCount:_0x25e90f,lineCount:_0x2e9e93,instanceCount:_0x431f86,filesCovered:_0x14f591}=_0x357e0a,_0x4e1b28=_0x20abdc['blocks']['map'](_0x3858f8=>_0x3858f8[_0x30e20b(0x114)]),_0x3859ba=_0x4e1b28[_0x30e20b(0x108)](_0x1a01ab=>_0x1a01ab[_0x30e20b(0xce)](_0x30e20b(0x116))||_0x1a01ab['includes']('Method')),_0x9d06a4=_0x4e1b28[_0x30e20b(0x108)](_0x2fcbbf=>_0x2fcbbf[_0x30e20b(0xce)](_0x30e20b(0xd0)));if(_0x9d06a4&&_0x2e9e93>0x32)return _0x30e20b(0x10f);else{if(_0x14f591>0x2&&_0x25e90f>0x64)return'extract-module';else{if(_0x3859ba||_0x2e9e93>=0xa&&_0x2e9e93<=0x32)return'extract-function';else{if(_0x2e9e93>0x32)return _0x30e20b(0xdd);else return _0x2e9e93<0xa?'extract-constant-or-utility':'extract-function';}}}}[a0_0x5f464d(0xda)](_0x2e4b3c){const _0x12655f=a0_0x5f464d,{impactScore:_0x4466eb}=_0x2e4b3c;if(_0x4466eb>=0x8)return'high';if(_0x4466eb>=0x5)return'medium';return _0x12655f(0xf0);}['suggestName'](_0x2e38cd){const _0x4acad3=a0_0x5f464d,_0x37db8e=_0x2e38cd['blocks'][_0x4acad3(0x102)](_0x4ac2ae=>_0x4ac2ae['code'])['join']('\x20'),_0x3f8303=_0x37db8e[_0x4acad3(0x111)](/[a-zA-Z_$][a-zA-Z0-9_$]*/g)||[],_0x5b5907={};_0x3f8303['forEach'](_0x3ec536=>{const _0x3a5a6e=_0x4acad3;if(['const',_0x3a5a6e(0xd2),_0x3a5a6e(0xec),_0x3a5a6e(0xe9),'return','if',_0x3a5a6e(0xd1),'for',_0x3a5a6e(0x10b)]['includes'](_0x3ec536))return;_0x5b5907[_0x3ec536]=(_0x5b5907[_0x3ec536]||0x0)+0x1;});const _0x178244=Object[_0x4acad3(0xe5)](_0x5b5907)[_0x4acad3(0xd9)]((_0x58ab08,_0x4ebee9)=>_0x4ebee9[0x1]-_0x58ab08[0x1])[_0x4acad3(0xfb)](0x0,0x3);if(_0x178244['length']>0x0){const _0x26f024=_0x178244['map'](([_0x1939d9])=>_0x1939d9);return this['createFunctionName'](_0x26f024);}return _0x4acad3(0xde);}['createFunctionName'](_0x14e157){const _0x382034=a0_0x5f464d;if(_0x14e157['length']===0x0)return'extractedFunction';return _0x14e157[0x0]+_0x14e157[_0x382034(0xfb)](0x1)['map'](_0x56d79a=>_0x56d79a[_0x382034(0xfc)](0x0)[_0x382034(0x10e)]()+_0x56d79a[_0x382034(0xfb)](0x1))['join']('');}[a0_0x5f464d(0xf4)](_0xf5bfc6,_0x145d91,_0x3a675d){const _0x4a5b66=a0_0x5f464d,{instanceCount:_0x508acb,duplicatedLines:_0x5157d1,filesCovered:_0x52df2e}=_0x145d91;let _0x79cd2='This\x20'+_0xf5bfc6[_0x4a5b66(0x114)]+'\x20code\x20pattern\x20appears\x20'+_0x508acb+_0x4a5b66(0x101);return _0x52df2e>0x1&&(_0x79cd2+='\x20across\x20'+_0x52df2e+'\x20different\x20files'),_0x79cd2+=_0x4a5b66(0x100)+_0x5157d1+'\x20duplicated\x20lines.\x20',_0x79cd2+=_0x4a5b66(0x10d)+_0x3a675d[_0x4a5b66(0x103)](/-/g,'\x20')+_0x4a5b66(0xd3),_0x508acb>=0x3&&(_0x79cd2+=', reduce bugs from inconsistent changes'),_0x79cd2+=_0x4a5b66(0xf1),_0x145d91[_0x4a5b66(0x109)]>=0x8&&(_0x79cd2+=_0x4a5b66(0xf8)),_0x79cd2+'.';}['estimateEffort'](_0x31b4fc,_0x5b57e6){const _0x3675e1=a0_0x5f464d,{lineCount:_0x2be4ff,instanceCount:_0x2faae3,filesCovered:_0x4f3e8d}=_0x31b4fc;let _0x3d7bcf=0x0;_0x3d7bcf+=Math[_0x3675e1(0xd7)](_0x2be4ff/0xa,0x5),_0x3d7bcf+=_0x2faae3*0.5,_0x3d7bcf+=_0x4f3e8d*0.5;if(_0x5b57e6===_0x3675e1(0x10f))_0x3d7bcf+=0x3;else{if(_0x5b57e6===_0x3675e1(0xdd))_0x3d7bcf+=0x2;else _0x5b57e6==='extract-function'&&(_0x3d7bcf+=0x1);}if(_0x3d7bcf<=0x3)return'low';if(_0x3d7bcf<=0x7)return _0x3675e1(0xe2);return'high';}['describeBenefits'](_0x1fb001){const _0x18947f=a0_0x5f464d,_0x22e083=[];return _0x22e083[_0x18947f(0xf6)]('Eliminate\x20'+_0x1fb001['duplicatedLines']+'\x20duplicated\x20lines\x20of\x20code'),_0x22e083['push']('Improve\x20maintainability\x20by\x20centralizing\x20logic\x20in\x20one\x20place'),_0x1fb001['instanceCount']>=0x3&&_0x22e083[_0x18947f(0xf6)]('Reduce\x20risk\x20of\x20inconsistent\x20changes\x20across\x20'+_0x1fb001['instanceCount']+'\x20locations'),_0x1fb001[_0x18947f(0x11b)]>0x2&&_0x22e083[_0x18947f(0xf6)]('Improve\x20code\x20organization\x20across\x20'+_0x1fb001['filesCovered']+'\x20files'),_0x22e083[_0x18947f(0xf6)]('Make\x20future\x20changes\x20easier\x20and\x20less\x20error-prone'),_0x22e083;}[a0_0x5f464d(0xef)](_0x588513,_0x3f18ed,_0xc26603){const _0xa0dbb6=a0_0x5f464d,_0x48a82a=[];switch(_0x588513){case'extract-function':_0x48a82a['push'](_0xa0dbb6(0xd5)+_0x3f18ed+'\x27'),_0x48a82a[_0xa0dbb6(0xf6)]('2.\x20Move\x20the\x20duplicated\x20logic\x20into\x20this\x20function'),_0x48a82a['push']('3. Identify parameters needed from the surrounding context'),_0x48a82a[_0xa0dbb6(0xf6)](_0xa0dbb6(0xd6)),_0x48a82a[_0xa0dbb6(0xf6)](_0xa0dbb6(0xfe));break;case'extract-class':_0x48a82a['push'](_0xa0dbb6(0x118)),_0x48a82a[_0xa0dbb6(0xf6)]('2.\x20Move\x20related\x20methods\x20and\x20properties\x20into\x20the\x20class'),_0x48a82a['push'](_0xa0dbb6(0xff)),_0x48a82a[_0xa0dbb6(0xf6)]('4.\x20Consider\x20dependency\x20injection\x20for\x20better\x20testability');break;case _0xa0dbb6(0x10f):_0x48a82a['push'](_0xa0dbb6(0xd4)),_0x48a82a['push'](_0xa0dbb6(0xfa)),_0x48a82a[_0xa0dbb6(0xf6)](_0xa0dbb6(0xdc)),_0x48a82a['push']('4. Update all files to import from the new module'),_0x48a82a[_0xa0dbb6(0xf6)](_0xa0dbb6(0xe1));break;default:_0x48a82a[_0xa0dbb6(0xf6)]('1.\x20Extract\x20the\x20duplicated\x20code\x20using\x20'+_0x588513['replace'](/-/g,'\x20')),_0x48a82a['push'](_0xa0dbb6(0x112)),_0x48a82a[_0xa0dbb6(0xf6)](_0xa0dbb6(0xe7));}return _0x48a82a;}[a0_0x5f464d(0xeb)](_0x2c47f8,_0x3a4b2f=0xa){const _0x1602ae=a0_0x5f464d,_0x3da252=_0x2c47f8[_0x1602ae(0xe0)]('\x0a');if(_0x3da252['length']<=_0x3a4b2f)return _0x2c47f8;return _0x3da252[_0x1602ae(0xfb)](0x0,_0x3a4b2f)['join']('\x0a')+_0x1602ae(0x115);}[a0_0x5f464d(0xd8)](_0x5efd72){const _0x2638fb=a0_0x5f464d,_0x306769=_0x5efd72['reduce']((_0x3d4208,_0x4b205d)=>_0x3d4208+(_0x4b205d[_0x2638fb(0xf7)]-_0x4b205d['startLine']+0x1),0x0);return Math[_0x2638fb(0xe8)](_0x306769/_0x5efd72['length']);}}
|
|
1
|
+
const a0_0x40a274=a0_0x4123;function a0_0x3028(){const _0x45ff77=['Aw5JBhvKzxm','nZmYmff6wwPMAW','zhvWBgLJyxrLzeXPBMvZ','y29Kzq','CMvKDwnL','zMLSzq','mJq1mZeXoe9etfLUAq','Aw1Wywn0u2nVCMu','ChvZAa','igzPBgvZ','zxH0CMfJDc1TB2r1Bgu','z2vUzxjHDgvszwzHy3rVCMLUz0fKDMLJzq','nc4Gq29UC2LKzxiGzgvWzw5Kzw5JEsbPBMPLy3rPB24GzM9YigjLDhrLCIb0zxn0ywjPBgL0Eq','C3vNz2vZDe5HBwu','y2fSy3vSyxrLsw1Wywn0u2nVCMu','sw1WCM92zsbJB2rLig9Yz2fUAxPHDgLVBIbHy3jVC3mG','twv0Ag9K','Bg9Nmta','y2HHCKf0','zM9Y','AM9PBG','z2vUzxjHDgvby3rPB25HyMXLu3rLChm','Dhj1BMnHDgvdB2rL','Bg9N','BwfW','zw5KtgLUzq','zxH0CMfJDgvKrNvUy3rPB24','mte0nda5mvH4y0jAwq','uMvMywn0B3jPBMCGDg8G','CMv0DxjU','mJeYoty3Ew9pDur6','igXVy2f0Aw9UCW','rNvUy3rPB24','zgv0zxjTAw5LuhjPB3jPDhK','C2L6zq','C2XPy2u','BgvUz3rO','ofvMAvDvCG','C29YDa','Bg93','igr1CgXPy2f0zwqGBgLUzxmGB2yGy29Kzq','ignVzguGCgf0DgvYBIbHChbLyxjZia','ms4GrxH0CMfJDcb0AguGzhvWBgLJyxrLzcbJB2rLihvZAw5Nia','Aw5ZDgfUy2vdB3vUDa','AgLNAa','nJCXnZCXmgngze1rua','Dg9Rzw5dB3vUDa','zgvZy3jPyMvczw5LzML0CW','BwLU','C3rHCNrmAw5L','ns4GvgvZDcb0BYbLBNn1CMuGyMvOyxzPB3iGAxmGChjLC2vYDMvK','zxH0CMfJDc1MDw5JDgLVBG','twfRzsbMDxr1CMuGy2HHBMDLCYbLyxnPzxiGyw5KigXLC3mGzxjYB3iTChjVBMu','zxn0Aw1HDgvfzMzVCNq','C29Tzq','ihrPBwvZ','y29UzMLKzw5Jzq','DhLWzq','nc4GuMvWBgfJzsbHBgWGAw5ZDgfUy2vZihDPDgGGy2fSBhmGDg8GDgHLig5LDYbMDw5JDgLVBG','yxzLCMfNzuXPBMvdB3vUDa','ms4Gq3jLyxrLigeGBMv3ignSyxnZihrVigvUy2fWC3vSyxrLihrOAxmGzNvUy3rPB25HBgL0Eq','y2fSy3vSyxrLtwv0CMLJCW','lIbuAgLZigLZigeGAgLNAc1PBxbHy3qGCMvMywn0B3jPBMCGB3bWB3j0Dw5PDhK','mJuZmZmZnhHNC0HiEa','Dg9vChbLCKnHC2u','nta4nJGWvNffD1Pz','zxH0CMfJDc1JB25ZDgfUDc1VCI11DgLSAxr5','mI4Gtw92zsb0AguGzhvWBgLJyxrLzcbSB2DPyYbPBNrVihrOAxmGzNvUy3rPB24','zxH0CMfJDc1JBgfZCW','mtrwuMTtC3i','BwvKAxvT','yMXVy2TZ','mZy4mwrTrNzzzq','zMLSzxndB3zLCMvK','zw50CMLLCW'];a0_0x3028=function(){return _0x45ff77;};return a0_0x3028();}(function(_0x577c6a,_0x4128c8){const _0x5acef8=a0_0x4123,_0x6fab88=_0x577c6a();while(!![]){try{const _0x1584f1=-parseInt(_0x5acef8(0xbb))/0x1+parseInt(_0x5acef8(0x94))/0x2+parseInt(_0x5acef8(0xbe))/0x3*(parseInt(_0x5acef8(0xc5))/0x4)+-parseInt(_0x5acef8(0x96))/0x5+-parseInt(_0x5acef8(0xa6))/0x6*(-parseInt(_0x5acef8(0x9a))/0x7)+-parseInt(_0x5acef8(0xa1))/0x8*(-parseInt(_0x5acef8(0x9d))/0x9)+-parseInt(_0x5acef8(0x82))/0xa;if(_0x1584f1===_0x4128c8)break;else _0x6fab88['push'](_0x6fab88['shift']());}catch(_0x13cca8){_0x6fab88['push'](_0x6fab88['shift']());}}}(a0_0x3028,0xa6bec));function a0_0x4123(_0x165d29,_0x37d5cc){_0x165d29=_0x165d29-0x7e;const _0x3028a1=a0_0x3028();let _0x412356=_0x3028a1[_0x165d29];if(a0_0x4123['yhxPUP']===undefined){var _0x56f003=function(_0x1248c6){const _0x2a75c5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xbe00b3='',_0x4ce804='';for(let _0x233bad=0x0,_0x5230ff,_0x268233,_0x5a4090=0x0;_0x268233=_0x1248c6['charAt'](_0x5a4090++);~_0x268233&&(_0x5230ff=_0x233bad%0x4?_0x5230ff*0x40+_0x268233:_0x268233,_0x233bad++%0x4)?_0xbe00b3+=String['fromCharCode'](0xff&_0x5230ff>>(-0x2*_0x233bad&0x6)):0x0){_0x268233=_0x2a75c5['indexOf'](_0x268233);}for(let _0x5f0c95=0x0,_0x367984=_0xbe00b3['length'];_0x5f0c95<_0x367984;_0x5f0c95++){_0x4ce804+='%'+('00'+_0xbe00b3['charCodeAt'](_0x5f0c95)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4ce804);};a0_0x4123['KIZTGb']=_0x56f003,a0_0x4123['yHllQg']={},a0_0x4123['yhxPUP']=!![];}const _0x2d93cb=_0x3028a1[0x0],_0xc0b93e=_0x165d29+_0x2d93cb,_0x5bdfbb=a0_0x4123['yHllQg'][_0xc0b93e];return!_0x5bdfbb?(_0x412356=a0_0x4123['KIZTGb'](_0x412356),a0_0x4123['yHllQg'][_0xc0b93e]=_0x412356):_0x412356=_0x5bdfbb,_0x412356;}export class RefactoringAnalyzer{constructor(_0xbe00b3){this['config']=_0xbe00b3;}['analyzeClones'](_0x4ce804){const _0x2804cd=a0_0x4123;return console[_0x2804cd(0xb7)]('Analyzing\x20clones\x20for\x20refactoring\x20opportunities...'),_0x4ce804['map']((_0x233bad,_0x5230ff)=>{const _0x3987af=_0x2804cd,_0x268233=this[_0x3987af(0x92)](_0x233bad),_0x5a4090=this[_0x3987af(0xab)](_0x233bad,_0x268233);return{'id':'clone-'+(_0x5230ff+0x1),'type':_0x233bad[_0x3987af(0x8e)],'confidence':_0x233bad[_0x3987af(0x8d)],'instances':_0x233bad[_0x3987af(0x9c)]['map'](_0x5f0c95=>({'file':_0x5f0c95['file'],'startLine':_0x5f0c95[_0x3987af(0x86)],'endLine':_0x5f0c95[_0x3987af(0xb9)],'code':this['truncateCode'](_0x5f0c95[_0x3987af(0xa3)]),'fullCode':_0x5f0c95[_0x3987af(0xa3)],'blockType':_0x5f0c95[_0x3987af(0x8e)]})),'metrics':_0x268233,'refactoringAdvice':_0x5a4090};})['sort']((_0x367984,_0x5e81f2)=>_0x5e81f2['metrics']['impactScore']-_0x367984['metrics'][_0x2804cd(0xa7)]);}['calculateMetrics'](_0x5d6094){const _0xb84f2a=a0_0x4123,_0x159559=_0x5d6094['blocks'],_0x567e02=_0x5d6094[_0xb84f2a(0x83)],_0x266ce2=this['averageLineCount'](_0x159559),_0x122595=_0x159559['length'],_0x591793=this['calculateImpactScore'](_0x567e02,_0x266ce2,_0x122595,_0x5d6094['confidence']),_0x1ba241=_0x266ce2*(_0x122595-0x1),_0x2bdc25=_0x567e02*(_0x122595-0x1);return{'tokenCount':_0x567e02,'lineCount':_0x266ce2,'instanceCount':_0x122595,'duplicatedLines':_0x1ba241,'duplicatedTokens':_0x2bdc25,'impactScore':parseFloat(_0x591793['toFixed'](0x2)),'filesCovered':new Set(_0x159559[_0xb84f2a(0xb8)](_0x1e510f=>_0x1e510f[_0xb84f2a(0xa5)]))[_0xb84f2a(0xc2)]};}[a0_0x40a274(0xae)](_0x54aabd,_0x548651,_0x15fe60,_0x460a14){const _0x33ef1b=a0_0x40a274,_0x29680b=Math[_0x33ef1b(0xb1)](_0x54aabd+0x1)*0x2,_0xfe707f=Math['log2'](_0x15fe60+0x1)*0x3,_0x3dd062=_0x460a14*0x2,_0x208541=Math[_0x33ef1b(0x85)](_0x548651/0xa,0x3);return _0x29680b+_0xfe707f+_0x3dd062+_0x208541;}[a0_0x40a274(0xab)](_0x53bd5c,_0x487a7e){const _0x20b7ab=a0_0x40a274,_0x316a52=this['determineRefactoringStrategy'](_0x53bd5c,_0x487a7e),_0x3b9c71=this[_0x20b7ab(0xc1)](_0x487a7e),_0x33a7fb=this[_0x20b7ab(0xad)](_0x53bd5c),_0x1b24ca=this['generateReasoning'](_0x53bd5c,_0x487a7e,_0x316a52),_0x393f64=this[_0x20b7ab(0x8a)](_0x487a7e,_0x316a52),_0x442ef6=this[_0x20b7ab(0x84)](_0x487a7e);return{'priority':_0x3b9c71,'strategy':_0x316a52,'suggestedName':_0x33a7fb,'reasoning':_0x1b24ca,'estimatedEffort':_0x393f64,'benefits':_0x442ef6,'actionableSteps':this[_0x20b7ab(0xb5)](_0x316a52,_0x33a7fb,_0x487a7e)};}['determineRefactoringStrategy'](_0x334159,_0x4cca0a){const _0xc3b068=a0_0x40a274,{tokenCount:_0x5d7cda,lineCount:_0x1cd844,instanceCount:_0x4b4f60,filesCovered:_0x3e46fa}=_0x4cca0a,_0x192200=_0x334159['blocks'][_0xc3b068(0xb8)](_0x5f1718=>_0x5f1718['type']),_0x226683=_0x192200['some'](_0x13af2e=>_0x13af2e['includes'](_0xc3b068(0xc0))||_0x13af2e[_0xc3b068(0xa0)](_0xc3b068(0xb0))),_0x46a5e6=_0x192200[_0xc3b068(0x8b)](_0x162961=>_0x162961[_0xc3b068(0xa0)]('Class'));if(_0x46a5e6&&_0x1cd844>0x32)return'extract-module';else{if(_0x3e46fa>0x2&&_0x5d7cda>0x64)return _0xc3b068(0xaa);else{if(_0x226683||_0x1cd844>=0xa&&_0x1cd844<=0x32)return _0xc3b068(0x88);else{if(_0x1cd844>0x32)return _0xc3b068(0x99);else return _0x1cd844<0xa?_0xc3b068(0x97):'extract-function';}}}}['determinePriority'](_0x4ba09c){const _0x1d848c=a0_0x40a274,{impactScore:_0x39c680}=_0x4ba09c;if(_0x39c680>=0x8)return'high';if(_0x39c680>=0x5)return _0x1d848c(0x9b);return'low';}[a0_0x40a274(0xad)](_0x1920bc){const _0x39a8ae=a0_0x40a274,_0xfb98a2=_0x1920bc[_0x39a8ae(0x9c)][_0x39a8ae(0xb8)](_0x11e378=>_0x11e378['code'])[_0x39a8ae(0xb4)]('\x20'),_0xc3a24b=_0xfb98a2['match'](/[a-zA-Z_$][a-zA-Z0-9_$]*/g)||[],_0x59aee6={};_0xc3a24b['forEach'](_0x22213e=>{const _0x3a848c=_0x39a8ae;if(['const','let','var','function',_0x3a848c(0xbd),'if','else',_0x3a848c(0xb3),'while'][_0x3a848c(0xa0)](_0x22213e))return;_0x59aee6[_0x22213e]=(_0x59aee6[_0x22213e]||0x0)+0x1;});const _0x95785=Object[_0x39a8ae(0x9f)](_0x59aee6)[_0x39a8ae(0xc6)]((_0x36585c,_0x37f620)=>_0x37f620[0x1]-_0x36585c[0x1])[_0x39a8ae(0xc3)](0x0,0x3);if(_0x95785['length']>0x0){const _0x4b4d40=_0x95785[_0x39a8ae(0xb8)](([_0x3c9c6f])=>_0x3c9c6f);return this['createFunctionName'](_0x4b4d40);}return _0x39a8ae(0xba);}['createFunctionName'](_0x25b4a9){const _0x58c460=a0_0x40a274;if(_0x25b4a9[_0x58c460(0xc4)]===0x0)return'extractedFunction';return _0x25b4a9[0x0]+_0x25b4a9['slice'](0x1)['map'](_0x3e97a7=>_0x3e97a7[_0x58c460(0xb2)](0x0)[_0x58c460(0x95)]()+_0x3e97a7[_0x58c460(0xc3)](0x1))[_0x58c460(0xb4)]('');}['generateReasoning'](_0xdb0b29,_0x281472,_0x13c8a0){const _0x458bbe=a0_0x40a274,{instanceCount:_0x23f22f,duplicatedLines:_0xd1d897,filesCovered:_0x643769}=_0x281472;let _0x25f658='This\x20'+_0xdb0b29[_0x458bbe(0x8e)]+_0x458bbe(0x7e)+_0x23f22f+_0x458bbe(0x8c);return _0x643769>0x1&&(_0x25f658+='\x20across\x20'+_0x643769+'\x20different\x20files'),_0x25f658+=',\x20resulting\x20in\x20'+_0xd1d897+'\x20duplicated\x20lines.\x20',_0x25f658+=_0x458bbe(0xbc)+_0x13c8a0['replace'](/-/g,'\x20')+'\x20would\x20improve\x20maintainability',_0x23f22f>=0x3&&(_0x25f658+=', reduce bugs from inconsistent changes'),_0x25f658+=',\x20and\x20reduce\x20code\x20size',_0x281472[_0x458bbe(0xa7)]>=0x8&&(_0x25f658+=_0x458bbe(0x93)),_0x25f658+'.';}[a0_0x40a274(0x8a)](_0x2f65ff,_0x467f02){const _0xb8b559=a0_0x40a274,{lineCount:_0xd6dbd8,instanceCount:_0x3172ad,filesCovered:_0x5a479b}=_0x2f65ff;let _0x367b95=0x0;_0x367b95+=Math[_0xb8b559(0x85)](_0xd6dbd8/0xa,0x5),_0x367b95+=_0x3172ad*0.5,_0x367b95+=_0x5a479b*0.5;if(_0x467f02==='extract-module')_0x367b95+=0x3;else{if(_0x467f02===_0xb8b559(0x99))_0x367b95+=0x2;else _0x467f02==='extract-function'&&(_0x367b95+=0x1);}if(_0x367b95<=0x3)return _0xb8b559(0xc7);if(_0x367b95<=0x7)return _0xb8b559(0x9b);return _0xb8b559(0x81);}['describeBenefits'](_0x45d32d){const _0x2e2c53=a0_0x40a274,_0x3937a6=[];return _0x3937a6[_0x2e2c53(0xa8)]('Eliminate\x20'+_0x45d32d[_0x2e2c53(0xa2)]+_0x2e2c53(0xc8)),_0x3937a6['push']('Improve\x20maintainability\x20by\x20centralizing\x20logic\x20in\x20one\x20place'),_0x45d32d[_0x2e2c53(0x80)]>=0x3&&_0x3937a6[_0x2e2c53(0xa8)]('Reduce\x20risk\x20of\x20inconsistent\x20changes\x20across\x20'+_0x45d32d[_0x2e2c53(0x80)]+_0x2e2c53(0xbf)),_0x45d32d[_0x2e2c53(0x9e)]>0x2&&_0x3937a6[_0x2e2c53(0xa8)](_0x2e2c53(0xaf)+_0x45d32d[_0x2e2c53(0x9e)]+_0x2e2c53(0xa9)),_0x3937a6[_0x2e2c53(0xa8)](_0x2e2c53(0x89)),_0x3937a6;}['generateActionableSteps'](_0x110e7d,_0x5520a3,_0xec9152){const _0x3339ac=a0_0x40a274,_0x46a4b7=[];switch(_0x110e7d){case'extract-function':_0x46a4b7['push']('1.\x20Create\x20a\x20new\x20function\x20named\x20\x27'+_0x5520a3+'\x27'),_0x46a4b7['push'](_0x3339ac(0x98)),_0x46a4b7['push']('3. Identify parameters needed from the surrounding context'),_0x46a4b7['push'](_0x3339ac(0x8f)),_0x46a4b7[_0x3339ac(0xa8)](_0x3339ac(0x87));break;case'extract-class':_0x46a4b7['push'](_0x3339ac(0x91)),_0x46a4b7[_0x3339ac(0xa8)]('2.\x20Move\x20related\x20methods\x20and\x20properties\x20into\x20the\x20class'),_0x46a4b7[_0x3339ac(0xa8)]('3.\x20Update\x20all\x20instances\x20to\x20use\x20the\x20new\x20class'),_0x46a4b7['push'](_0x3339ac(0xac));break;case _0x3339ac(0xaa):_0x46a4b7[_0x3339ac(0xa8)]('1.\x20Create\x20a\x20new\x20module/file\x20for\x20this\x20shared\x20functionality'),_0x46a4b7['push']('2.\x20Move\x20the\x20duplicated\x20code\x20into\x20the\x20new\x20module'),_0x46a4b7[_0x3339ac(0xa8)]('3.\x20Export\x20the\x20necessary\x20functions/classes'),_0x46a4b7['push']('4. Update all files to import from the new module'),_0x46a4b7['push']('5.\x20Update\x20any\x20build\x20configurations\x20if\x20needed');break;default:_0x46a4b7['push'](_0x3339ac(0x7f)+_0x110e7d['replace'](/-/g,'\x20')),_0x46a4b7['push']('2.\x20Replace\x20all\x20instances\x20with\x20the\x20extracted\x20version'),_0x46a4b7['push']('3.\x20Test\x20thoroughly');}return _0x46a4b7;}[a0_0x40a274(0xb6)](_0x3e6677,_0x2b31b7=0xa){const _0x3abc1a=a0_0x40a274,_0x329e70=_0x3e6677['split']('\x0a');if(_0x329e70['length']<=_0x2b31b7)return _0x3e6677;return _0x329e70[_0x3abc1a(0xc3)](0x0,_0x2b31b7)['join']('\x0a')+'\x0a...\x20(truncated)';}[a0_0x40a274(0x90)](_0x6c63af){const _0x24d82b=a0_0x40a274,_0x4f5e2a=_0x6c63af[_0x24d82b(0xa4)]((_0x391cb3,_0x1fcf60)=>_0x391cb3+(_0x1fcf60[_0x24d82b(0xb9)]-_0x1fcf60['startLine']+0x1),0x0);return Math['round'](_0x4f5e2a/_0x6c63af['length']);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a0_0x32c4(_0x18004d,_0x2f6514){_0x18004d=_0x18004d-0x6e;const _0x36dc41=a0_0x36dc();let _0x32c45e=_0x36dc41[_0x18004d];if(a0_0x32c4['wESqPX']===undefined){var _0x1396ab=function(_0x511b3a){const _0x1c2283='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x53d2ed='',_0x3691dd='';for(let _0x36ca4e=0x0,_0x296728,_0x3cc1d8,_0x124a8e=0x0;_0x3cc1d8=_0x511b3a['charAt'](_0x124a8e++);~_0x3cc1d8&&(_0x296728=_0x36ca4e%0x4?_0x296728*0x40+_0x3cc1d8:_0x3cc1d8,_0x36ca4e++%0x4)?_0x53d2ed+=String['fromCharCode'](0xff&_0x296728>>(-0x2*_0x36ca4e&0x6)):0x0){_0x3cc1d8=_0x1c2283['indexOf'](_0x3cc1d8);}for(let _0x2b1f06=0x0,_0x309c84=_0x53d2ed['length'];_0x2b1f06<_0x309c84;_0x2b1f06++){_0x3691dd+='%'+('00'+_0x53d2ed['charCodeAt'](_0x2b1f06)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3691dd);};a0_0x32c4['cWvKag']=_0x1396ab,a0_0x32c4['GHfLzO']={},a0_0x32c4['wESqPX']=!![];}const _0x3f458c=_0x36dc41[0x0],_0xd4c85f=_0x18004d+_0x3f458c,_0x56c210=a0_0x32c4['GHfLzO'][_0xd4c85f];return!_0x56c210?(_0x32c45e=a0_0x32c4['cWvKag'](_0x32c45e),a0_0x32c4['GHfLzO'][_0xd4c85f]=_0x32c45e):_0x32c45e=_0x56c210,_0x32c45e;}const a0_0x1bdce5=a0_0x32c4;(function(_0x30f7d5,_0x3c9088){const _0x30a1f2=a0_0x32c4,_0x1edf13=_0x30f7d5();while(!![]){try{const _0x11d9b0=parseInt(_0x30a1f2(0x75))/0x1*(-parseInt(_0x30a1f2(0x8a))/0x2)+parseInt(_0x30a1f2(0x76))/0x3*(-parseInt(_0x30a1f2(0x7b))/0x4)+parseInt(_0x30a1f2(0x7a))/0x5*(-parseInt(_0x30a1f2(0x8c))/0x6)+-parseInt(_0x30a1f2(0x72))/0x7*(-parseInt(_0x30a1f2(0x8d))/0x8)+-parseInt(_0x30a1f2(0x85))/0x9+-parseInt(_0x30a1f2(0x79))/0xa*(-parseInt(_0x30a1f2(0x80))/0xb)+parseInt(_0x30a1f2(0x90))/0xc;if(_0x11d9b0===_0x3c9088)break;else _0x1edf13['push'](_0x1edf13['shift']());}catch(_0x388068){_0x1edf13['push'](_0x1edf13['shift']());}}}(a0_0x36dc,0x1a8d5));export class CloneDetector{constructor(_0x53d2ed,_0x3691dd){const _0x4525e1=a0_0x32c4;this[_0x4525e1(0x7f)]=_0x53d2ed,this[_0x4525e1(0x86)]=_0x3691dd;}[a0_0x1bdce5(0x71)](_0x36ca4e){const _0xffa381=a0_0x1bdce5;console[_0xffa381(0x82)](_0xffa381(0x91));const _0x296728=[],_0x3cc1d8=[];for(const _0x309c84 of _0x36ca4e){_0x3cc1d8[_0xffa381(0x83)](..._0x309c84['blocks']);}console['log']('Analyzing\x20'+_0x3cc1d8[_0xffa381(0x73)]+'\x20code\x20blocks');const _0x124a8e=this['groupByHash'](_0x3cc1d8);for(const [_0x239552,_0x527b40]of Object[_0xffa381(0x88)](_0x124a8e)){_0x527b40[_0xffa381(0x73)]>0x1&&_0x296728[_0xffa381(0x83)]({'type':_0xffa381(0x84),'confidence':0x1,'blocks':_0x527b40,'tokenCount':_0x527b40[0x0]['tokens']['length']});}const _0x2b1f06=this[_0xffa381(0x78)](_0x3cc1d8);return _0x296728['push'](..._0x2b1f06),console[_0xffa381(0x82)](_0xffa381(0x77)+_0x296728[_0xffa381(0x73)]+_0xffa381(0x87)),_0x296728;}['groupByHash'](_0xe78be6){const _0x2ec86d=a0_0x1bdce5,_0x2d8d78={};for(const _0x4e0b3a of _0xe78be6){if(_0x4e0b3a[_0x2ec86d(0x7e)][_0x2ec86d(0x73)]<this['config'][_0x2ec86d(0x81)])continue;!_0x2d8d78[_0x4e0b3a['hash']]&&(_0x2d8d78[_0x4e0b3a[_0x2ec86d(0x74)]]=[]),_0x2d8d78[_0x4e0b3a[_0x2ec86d(0x74)]][_0x2ec86d(0x83)](_0x4e0b3a);}return _0x2d8d78;}[a0_0x1bdce5(0x78)](_0x40dc84){const _0x2e14a8=a0_0x1bdce5,_0x5d2b98=[],processed=new Set(),_0x3e69dc=_0x40dc84[_0x2e14a8(0x8b)](_0xf87981=>_0xf87981[_0x2e14a8(0x7e)]['length']>=this[_0x2e14a8(0x7f)][_0x2e14a8(0x81)]);for(let _0x18dd17=0x0;_0x18dd17<_0x3e69dc['length'];_0x18dd17++){const _0x2a3ea0=_0x3e69dc[_0x18dd17],_0x70a8ef=[_0x2a3ea0];if(processed[_0x2e14a8(0x70)](_0x2a3ea0['id']))continue;for(let _0x3b0a64=_0x18dd17+0x1;_0x3b0a64<_0x3e69dc[_0x2e14a8(0x73)];_0x3b0a64++){const _0x33020b=_0x3e69dc[_0x3b0a64];if(processed[_0x2e14a8(0x70)](_0x33020b['id']))continue;if(_0x2a3ea0[_0x2e14a8(0x74)]===_0x33020b[_0x2e14a8(0x74)])continue;const _0x46c9aa=this[_0x2e14a8(0x7d)](_0x2a3ea0,_0x33020b);_0x46c9aa>=this[_0x2e14a8(0x7f)]['similarityThreshold']&&(_0x70a8ef['push'](_0x33020b),processed[_0x2e14a8(0x8e)](_0x33020b['id']));}_0x70a8ef['length']>0x1&&(processed['add'](_0x2a3ea0['id']),_0x5d2b98[_0x2e14a8(0x83)]({'type':'similar','confidence':this['calculateGroupConfidence'](_0x70a8ef),'blocks':_0x70a8ef,'tokenCount':Math[_0x2e14a8(0x89)](..._0x70a8ef[_0x2e14a8(0x92)](_0x3c914b=>_0x3c914b[_0x2e14a8(0x7e)][_0x2e14a8(0x73)]))}));}return _0x5d2b98;}['calculateBlockSimilarity'](_0x12bbaf,_0x11f79e){const _0x5785dc=a0_0x1bdce5,_0x1ac149=_0x12bbaf[_0x5785dc(0x7e)],_0x59e795=_0x11f79e['tokens'],_0x371622=Math['min'](_0x1ac149['length'],_0x59e795['length'])/Math['max'](_0x1ac149['length'],_0x59e795['length']);if(_0x371622<0.7)return 0x0;const _0x2168e2=this[_0x5785dc(0x6e)](_0x1ac149,_0x59e795),_0x499d04=0x2*_0x2168e2/(_0x1ac149[_0x5785dc(0x73)]+_0x59e795[_0x5785dc(0x73)]);return _0x499d04;}[a0_0x1bdce5(0x6e)](_0x4330f6,_0x1fd70d){const _0x53880c=a0_0x1bdce5,_0x165316=_0x4330f6['length'],_0x13b883=_0x1fd70d[_0x53880c(0x73)];if(_0x165316*_0x13b883>0x186a0)return this['approximateLCS'](_0x4330f6,_0x1fd70d);const _0x19be82=Array(_0x165316+0x1)[_0x53880c(0x8f)](0x0)[_0x53880c(0x92)](()=>Array(_0x13b883+0x1)['fill'](0x0));for(let _0x7af2bb=0x1;_0x7af2bb<=_0x165316;_0x7af2bb++){for(let _0x5785f1=0x1;_0x5785f1<=_0x13b883;_0x5785f1++){_0x4330f6[_0x7af2bb-0x1]===_0x1fd70d[_0x5785f1-0x1]?_0x19be82[_0x7af2bb][_0x5785f1]=_0x19be82[_0x7af2bb-0x1][_0x5785f1-0x1]+0x1:_0x19be82[_0x7af2bb][_0x5785f1]=Math[_0x53880c(0x89)](_0x19be82[_0x7af2bb-0x1][_0x5785f1],_0x19be82[_0x7af2bb][_0x5785f1-0x1]);}}return _0x19be82[_0x165316][_0x13b883];}[a0_0x1bdce5(0x6f)](_0xc8d1b2,_0x1d1577){const _0x41267c=a0_0x1bdce5,_0x425209=0x64;let _0x21258a=0x0;for(let _0x1b3a07=0x0;_0x1b3a07<_0xc8d1b2[_0x41267c(0x73)];_0x1b3a07+=_0x425209){const _0x463e30=_0xc8d1b2['slice'](_0x1b3a07,_0x1b3a07+_0x425209),_0x24e5fe=new Set(_0x1d1577[_0x41267c(0x7c)](Math['max'](0x0,_0x1b3a07-_0x425209),_0x1b3a07+_0x425209*0x2));_0x21258a+=_0x463e30[_0x41267c(0x8b)](_0x5f2b7d=>_0x24e5fe[_0x41267c(0x70)](_0x5f2b7d))['length'];}return _0x21258a;}['calculateGroupConfidence'](_0xb455cb){const _0x4b8eda=a0_0x1bdce5;if(_0xb455cb['length']===0x0)return 0x0;let _0x346861=0x0,_0x29a353=0x0;for(let _0x14d9c7=0x0;_0x14d9c7<_0xb455cb[_0x4b8eda(0x73)];_0x14d9c7++){for(let _0x49db9f=_0x14d9c7+0x1;_0x49db9f<_0xb455cb[_0x4b8eda(0x73)];_0x49db9f++){_0x346861+=this['calculateBlockSimilarity'](_0xb455cb[_0x14d9c7],_0xb455cb[_0x49db9f]),_0x29a353++;}}return _0x29a353>0x0?_0x346861/_0x29a353:0x0;}}function a0_0x36dc(){const _0x4d0f19=['BgvUz3rO','AgfZAa','ngfOCgPeta','otLyugrhsNG','rM91BMqG','zMLUzfnPBwLSyxjdBg9Uzxm','mtaWmtbWy2jbwey','mti1BwHbvhne','mtqWnhv1DMHMtq','C2XPy2u','y2fSy3vSyxrLqMXVy2TtAw1PBgfYAxr5','Dg9Rzw5Z','y29UzMLN','ndqWAun4yKz5','BwLUvg9Rzw5Z','Bg9N','ChvZAa','zxHHy3q','nZC0nZy1qwX3seXK','CgfYC2vY','ignSB25LigDYB3vWCW','zw50CMLLCW','Bwf4','mZKYmtjQCgrOBxa','zMLSDgvY','ndiYmdrHzvzWr3K','mJu3mtyWA0LuBLvd','ywrK','zMLSBa','ndy2mJe2ogPsqwDpsW','rgv0zwn0Aw5NignSB25LCY4UlG','BwfW','Bg9Uz2vZDenVBw1VBLn1yNnLCxvLBMnL','yxbWCM94Aw1HDgvmq1m','AgfZ','zgv0zwn0q2XVBMvZ','n1r0vxPyrW'];a0_0x36dc=function(){return _0x4d0f19;};return a0_0x36dc();}
|