@loxia-labs/loxia-autopilot-one 1.0.13 → 1.0.15
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 +7 -3
- 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/agentActivityService.js +1 -0
- 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/src/utilities/userDataDir.js +1 -1
- package/web-ui/build/index.html +2 -2
- package/web-ui/build/static/index-CR8edPA3.js +348 -0
- package/web-ui/build/static/index-uN7nOVvZ.css +1 -0
- package/web-ui/build/static/index-DXN850Y2.js +0 -400
- package/web-ui/build/static/index-an-YRzUX.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a0_0x2a7f5c=a0_0x3641;(function(_0x1d5ec5,_0x469633){const _0x26a5d7=a0_0x3641,_0x4e489d=_0x1d5ec5();while(!![]){try{const _0x34d8e3=-parseInt(_0x26a5d7(0xc7))/0x1+parseInt(_0x26a5d7(0xdc))/0x2+-parseInt(_0x26a5d7(0xe6))/0x3+parseInt(_0x26a5d7(0xca))/0x4+-parseInt(_0x26a5d7(0xc4))/0x5+parseInt(_0x26a5d7(0xde))/0x6+parseInt(_0x26a5d7(0xdf))/0x7;if(_0x34d8e3===_0x469633)break;else _0x4e489d['push'](_0x4e489d['shift']());}catch(_0x1a0180){_0x4e489d['push'](_0x4e489d['shift']());}}}(a0_0x37cd,0xc9d59));function a0_0x3641(_0x1b1d55,_0xb9d276){_0x1b1d55=_0x1b1d55-0xb7;const _0x37cd1e=a0_0x37cd();let _0x36412a=_0x37cd1e[_0x1b1d55];if(a0_0x3641['CWGmGY']===undefined){var _0x325517=function(_0x140a85){const _0x52b4e2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2a1df5='',_0x23c322='';for(let _0x28a452=0x0,_0x59a616,_0x253f23,_0x4d8c54=0x0;_0x253f23=_0x140a85['charAt'](_0x4d8c54++);~_0x253f23&&(_0x59a616=_0x28a452%0x4?_0x59a616*0x40+_0x253f23:_0x253f23,_0x28a452++%0x4)?_0x2a1df5+=String['fromCharCode'](0xff&_0x59a616>>(-0x2*_0x28a452&0x6)):0x0){_0x253f23=_0x52b4e2['indexOf'](_0x253f23);}for(let _0x57b786=0x0,_0x5b7a62=_0x2a1df5['length'];_0x57b786<_0x5b7a62;_0x57b786++){_0x23c322+='%'+('00'+_0x2a1df5['charCodeAt'](_0x57b786)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x23c322);};a0_0x3641['MPytmY']=_0x325517,a0_0x3641['pWwwqb']={},a0_0x3641['CWGmGY']=!![];}const _0x382ea2=_0x37cd1e[0x0],_0x56bcea=_0x1b1d55+_0x382ea2,_0x2fe39a=a0_0x3641['pWwwqb'][_0x56bcea];return!_0x2fe39a?(_0x36412a=a0_0x3641['MPytmY'](_0x36412a),a0_0x3641['pWwwqb'][_0x56bcea]=_0x36412a):_0x36412a=_0x2fe39a,_0x36412a;}import{ESLint}from'eslint';import a0_0x2a1df5 from'path';function a0_0x37cd(){const _0x243d92=['lM1QCW','Bgf0zxn0','BgvUz3rO','C2v2zxjPDhK','BgLUzq','ChjLzMvYlxbYB21PC2uTCMvQzwn0lwvYCM9YCW','EhnZ','yw5HBhL6zq','zw5Kq29SDw1U','BM8TDw5YzwfJAgfIBgu','zxH0zw5KCW','otm1ntG0vNLJEKDT','Aw5JBhvKzxm','mtKZotq0mhnYyMHdsa','mtaXnZq2ndDTq0jJwfq','z2v0u3vWCg9YDgvKrxH0zw5ZAw9UCW','zML4ywjSzuvYCM9Yq291BNq','q0furuDpuLK','zML4','DNvL','zxnSAw50oNjLy29TBwvUzgvK','mZi0mdq5ogTqDLzoEq','CgvYzM9YBwfUy2u','zMLSDgvY','B2zM','BwvZC2fNzq','zxnSAw50q2fJAgu','Bwf4','BM8TDw5Kzwy','zxnSAw50lMnVBMzPzY5QCW','BwvZC2fNzxm','C2LUz2XL','zgvZy3jPyMvdAgfUz2vZ','zwnTyuzLyxr1CMvZ','v0fstKLorW','Bg9Nz2vY','ChvZAa','rvnmAw50igzPEcbMywLSzwq6ia','zw5KtgLUzq','BM8TAw1WBgLLzc1LDMfS','mZa3oda2mfHSAwfwuW','lMPZ','C3bSAxq','mtm1mtu3ovDkDuzuEG','zxjYB3i','z2v0rvnmAw50q29UzMLN','nJuXoda2ofbszxLZzG','ywX3yxLZ','u0vdvvjjvfK','zxnSAw50','zM9YBwf0twvZC2fNzq','y2f0zwDVCML6zvj1Bgu','B3v0Chv0'];a0_0x37cd=function(){return _0x243d92;};return a0_0x37cd();}import a0_0x23c322 from'fs/promises';import{STATIC_ANALYSIS}from'../utilities/constants.js';class ESLintAnalyzer{constructor(_0x28a452=null){const _0x249a9f=a0_0x3641;this['logger']=_0x28a452,this[_0x249a9f(0xeb)]=new Map();}async[a0_0x2a7f5c(0xd8)](_0x59a616,_0x253f23,_0x4d8c54={}){const _0x34d20a=a0_0x2a7f5c;try{const _0x57b786=await this['getESLintInstance'](_0x4d8c54),_0x5b7a62=await _0x57b786['lintText'](_0x253f23,{'filePath':_0x59a616,'warnIgnored':![]}),_0x13455c=[];if(_0x5b7a62&&_0x5b7a62['length']>0x0){const _0x29dfdf=_0x5b7a62[0x0];for(const _0x331b58 of _0x29dfdf[_0x34d20a(0xba)]){_0x13455c['push'](this['formatMessage'](_0x331b58,_0x59a616));}}return this[_0x34d20a(0xbf)]?.['debug']('ESLint\x20analysis\x20completed',{'file':_0x59a616,'totalDiagnostics':_0x13455c['length'],'errors':_0x13455c[_0x34d20a(0xe8)](_0x154adb=>_0x154adb[_0x34d20a(0xd4)]===STATIC_ANALYSIS['SEVERITY']['ERROR'])[_0x34d20a(0xd3)],'warnings':_0x13455c['filter'](_0x20d897=>_0x20d897[_0x34d20a(0xd4)]===STATIC_ANALYSIS['SEVERITY'][_0x34d20a(0xbe)])[_0x34d20a(0xd3)]}),_0x13455c;}catch(_0x5f4ca7){return this[_0x34d20a(0xbf)]?.[_0x34d20a(0xc8)]('ESLint\x20analysis\x20failed',{'file':_0x59a616,'error':_0x5f4ca7['message']}),[];}}async['fix'](_0x36e4ab,_0x1bc5e4,_0x20dffe={}){const _0x4cafba=a0_0x2a7f5c;try{const _0xd845f5=await this['getESLintInstance']({..._0x20dffe,'fix':!![]}),_0x4210d9=await _0xd845f5['lintText'](_0x1bc5e4,{'filePath':_0x36e4ab,'warnIgnored':![]});if(_0x4210d9&&_0x4210d9['length']>0x0){const _0x33a58d=_0x4210d9[0x0];return{'fixed':_0x33a58d[_0x4cafba(0xd0)]!==undefined,'content':_0x33a58d['output']||_0x1bc5e4,'fixedCount':_0x33a58d[_0x4cafba(0xe1)]+_0x33a58d['fixableWarningCount'],'remainingErrors':_0x33a58d['errorCount']-_0x33a58d[_0x4cafba(0xe1)],'remainingWarnings':_0x33a58d['warningCount']-_0x33a58d['fixableWarningCount'],'changes':_0x33a58d[_0x4cafba(0xd0)]?this['describeChanges'](_0x1bc5e4,_0x33a58d['output']):[]};}return{'fixed':![],'content':_0x1bc5e4,'fixedCount':0x0,'remainingErrors':0x0,'remainingWarnings':0x0,'changes':[]};}catch(_0x14e811){this['logger']?.[_0x4cafba(0xc8)]('ESLint\x20fix\x20failed',{'file':_0x36e4ab,'error':_0x14e811['message']});throw new Error(_0x4cafba(0xc1)+_0x14e811[_0x4cafba(0xea)]);}}async['getESLintInstance'](_0x50eb16={}){const _0x15de04=a0_0x2a7f5c,{workingDir:_0x56c762,fix:fix=![],framework:_0x407117}=_0x50eb16,_0x58c183=await this[_0x15de04(0xc9)](_0x56c762,_0x407117),_0x6edde2=new ESLint({'fix':fix,'useEslintrc':!![],'overrideConfig':_0x58c183,'errorOnUnmatchedPattern':![]});return _0x6edde2;}async[a0_0x2a7f5c(0xc9)](_0x1ac501,_0x78f473){const _0x46dc1f=a0_0x2a7f5c,_0x3ce0ed={'env':{'browser':!![],'es2021':!![],'node':!![]},'parserOptions':{'ecmaVersion':_0x46dc1f(0xd2),'sourceType':'module'},'rules':{'no-unused-vars':'warn','no-undef':'error','no-console':_0x46dc1f(0xe9),'semi':['warn',_0x46dc1f(0xcb)],'quotes':['warn',_0x46dc1f(0xbb),{'avoidEscape':!![]}]}};if(_0x78f473==='react')_0x3ce0ed[_0x46dc1f(0xdb)]=[_0x46dc1f(0xe5)],_0x3ce0ed['parserOptions'][_0x46dc1f(0xbd)]={'jsx':!![]},_0x3ce0ed['settings']={'react':{'version':'detect'}};else _0x78f473===_0x46dc1f(0xe4)?_0x3ce0ed['extends']=[_0x46dc1f(0xe5)]:_0x3ce0ed[_0x46dc1f(0xdb)]=[_0x46dc1f(0xe5)];if(_0x1ac501){const _0x19e733=['.eslintrc.js','.eslintrc.cjs','.eslintrc.json',_0x46dc1f(0xb9)];for(const _0x23ad7a of _0x19e733){try{const _0xc87b4d=a0_0x2a1df5['join'](_0x1ac501,_0x23ad7a);return await a0_0x23c322['access'](_0xc87b4d),this['logger']?.['debug']('Found\x20ESLint\x20config',{'configFile':_0x23ad7a}),{};}catch{}}}return _0x3ce0ed;}[a0_0x2a7f5c(0xce)](_0xe18f04,_0x4708e9){const _0x2afb26=a0_0x2a7f5c;return{'file':_0x4708e9,'line':_0xe18f04[_0x2afb26(0xd5)]||0x1,'column':_0xe18f04['column']||0x1,'endLine':_0xe18f04[_0x2afb26(0xc2)],'endColumn':_0xe18f04[_0x2afb26(0xd9)],'severity':_0xe18f04['severity']===0x2?STATIC_ANALYSIS['SEVERITY']['ERROR']:STATIC_ANALYSIS['SEVERITY']['WARNING'],'rule':_0xe18f04['ruleId']||_0x2afb26(0xcd),'message':_0xe18f04['message'],'category':this['categorizeRule'](_0xe18f04['ruleId']),'fixable':_0xe18f04[_0x2afb26(0xe3)]!==undefined,'source':'eslint'};}[a0_0x2a7f5c(0xcf)](_0x4b811e){const _0x322582=a0_0x2a7f5c;if(!_0x4b811e)return STATIC_ANALYSIS[_0x322582(0xe2)]['STYLE'];if(_0x4b811e[_0x322582(0xdd)]('security')||_0x4b811e['includes'](_0x322582(0xd7))||_0x4b811e==='no-eval'||_0x4b811e===_0x322582(0xc3))return STATIC_ANALYSIS[_0x322582(0xe2)][_0x322582(0xcc)];if(_0x4b811e[_0x322582(0xdd)](_0x322582(0xe7))||_0x4b811e==='no-await-in-loop'||_0x4b811e===_0x322582(0xd6))return STATIC_ANALYSIS['CATEGORY']['PERFORMANCE'];if(_0x4b811e[_0x322582(0xdd)]('import')||_0x4b811e===_0x322582(0xb8))return STATIC_ANALYSIS[_0x322582(0xe2)]['IMPORT'];if(_0x4b811e[_0x322582(0xdd)]('best-practices')||_0x4b811e==='no-unused-vars'||_0x4b811e===_0x322582(0xda)||_0x4b811e==='no-var')return STATIC_ANALYSIS[_0x322582(0xe2)]['BEST_PRACTICE'];return STATIC_ANALYSIS['CATEGORY']['STYLE'];}[a0_0x2a7f5c(0xbc)](_0x416e5d,_0x15afa6){const _0x1db933=a0_0x2a7f5c,_0x3ae5ea=[],_0xbbb332=_0x416e5d[_0x1db933(0xc6)]('\x0a'),_0x194979=_0x15afa6['split']('\x0a'),_0x3612dd=Math[_0x1db933(0xb7)](_0xbbb332[_0x1db933(0xd3)],_0x194979['length']);for(let _0x4ad190=0x0;_0x4ad190<_0x3612dd;_0x4ad190++){const _0x32faf2=_0xbbb332[_0x4ad190]||'',_0x3ba46f=_0x194979[_0x4ad190]||'';_0x32faf2!==_0x3ba46f&&_0x3ae5ea[_0x1db933(0xc0)]({'line':_0x4ad190+0x1,'type':_0x32faf2&&_0x3ba46f?'modified':_0x32faf2?'removed':'added','original':_0x32faf2,'fixed':_0x3ba46f});}return _0x3ae5ea;}[a0_0x2a7f5c(0xe0)](){const _0x50353a=a0_0x2a7f5c;return[_0x50353a(0xc5),'.jsx',_0x50353a(0xd1),'.cjs'];}['supportsAutoFix'](){return!![];}}export default ESLintAnalyzer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x186a40=a0_0x44cf;(function(_0x1406e7,_0x29056b){const _0x4bd7c8=a0_0x44cf,_0x248d26=_0x1406e7();while(!![]){try{const _0x2fc86e=-parseInt(_0x4bd7c8(0x1bb))/0x1*(-parseInt(_0x4bd7c8(0x1c3))/0x2)+-parseInt(_0x4bd7c8(0x1cf))/0x3+parseInt(_0x4bd7c8(0x1de))/0x4*(parseInt(_0x4bd7c8(0x1ed))/0x5)+-parseInt(_0x4bd7c8(0x1c9))/0x6*(parseInt(_0x4bd7c8(0x1bd))/0x7)+parseInt(_0x4bd7c8(0x1ea))/0x8+-parseInt(_0x4bd7c8(0x1e1))/0x9*(-parseInt(_0x4bd7c8(0x1d5))/0xa)+-parseInt(_0x4bd7c8(0x1dd))/0xb;if(_0x2fc86e===_0x29056b)break;else _0x248d26['push'](_0x248d26['shift']());}catch(_0x2dc091){_0x248d26['push'](_0x248d26['shift']());}}}(a0_0x13d7,0xed47d));function a0_0x13d7(){const _0x5db75e=['tw9KDwXLuMvZB2X1DgLVBKTPBMq','u1Lovefy','mJe0mduWtwvXAhvj','z2v0u3LUDgfJDgLJrgLHz25VC3rPy3m','rgLHz25VC3rPy0nHDgvNB3j5','BgvUz3rO','CgfYC2veAwfNBM9ZDgLJCW','tgf0zxn0','mJuZmde5nfz3r1L5wq','u3vNz2vZDgLVBG','su1qt1ju','rvjst1i','v0fstKLorW','qw5HBhLZAxmGzMfPBgvKoIa','nZuWwhDutLD6','y29TCgLSzxjpChrPB25Z','y3jLyxrLuhjVz3jHBq','z2v0u3rHCNq','BgLUzq','A2LUza','z2v0u2vTyw50AwneAwfNBM9ZDgLJCW','z2v0tgLUzufUzenOyxjHy3rLCK9Mug9ZAxrPB24','mti2nZGYn2fzsurbBG','mtm3mKz1r3bZDG','y2f0zwDVCNK','Dw5RBM93BG','mta5mdm1uwHvq0nZ','yw5HBhL6zq','u2vTyw50AwmGyw5HBhLZAxmGC2TPChbLza','C3rHCNq','zMLSDgvY','uMvHy3q','vfLqrq','C3LUDgf4lwvYCM9Y','u3LUDgf4igvYCM9Y','ntu1otC2uxzkvLf0','q0furuDpuLK','v2fYBMLUzW','mtq4nJbHvwTRv1u','Bg9Nz2vY','u2nYAxb0vgfYz2v0','zM9YrwfJAenOAwXK','muzQr0DJBG','u0vwrvjjvfK','mJe3BurwveDL','sNn4rw1PDa','zM9YBwf0rgLHz25VC3rPyW','BwvZC2fNzvrLEhq','ChvZAa','u3LUDgf4s2LUza','mJa3nZKYnM1itfvxCW','rvnozxH0','C2v2zxjPDhK','zMXHDhrLBKrPywDUB3n0AwnnzxnZywDLvgv4Da'];a0_0x13d7=function(){return _0x5db75e;};return a0_0x13d7();}function a0_0x44cf(_0x4970d9,_0x23c702){_0x4970d9=_0x4970d9-0x1b8;const _0x13d7e1=a0_0x13d7();let _0x44cf64=_0x13d7e1[_0x4970d9];if(a0_0x44cf['MbiCql']===undefined){var _0x4cbc38=function(_0x480c38){const _0x44143d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x447573='',_0x3aadd2='';for(let _0x44c17b=0x0,_0x5a4b60,_0x4b03d3,_0x5a88ee=0x0;_0x4b03d3=_0x480c38['charAt'](_0x5a88ee++);~_0x4b03d3&&(_0x5a4b60=_0x44c17b%0x4?_0x5a4b60*0x40+_0x4b03d3:_0x4b03d3,_0x44c17b++%0x4)?_0x447573+=String['fromCharCode'](0xff&_0x5a4b60>>(-0x2*_0x44c17b&0x6)):0x0){_0x4b03d3=_0x44143d['indexOf'](_0x4b03d3);}for(let _0x53e091=0x0,_0x22d666=_0x447573['length'];_0x53e091<_0x22d666;_0x53e091++){_0x3aadd2+='%'+('00'+_0x447573['charCodeAt'](_0x53e091)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3aadd2);};a0_0x44cf['FREILL']=_0x4cbc38,a0_0x44cf['NudKcX']={},a0_0x44cf['MbiCql']=!![];}const _0x5b6437=_0x13d7e1[0x0],_0x4e8cbd=_0x4970d9+_0x5b6437,_0x382c39=a0_0x44cf['NudKcX'][_0x4e8cbd];return!_0x382c39?(_0x44cf64=a0_0x44cf['FREILL'](_0x44cf64),a0_0x44cf['NudKcX'][_0x4e8cbd]=_0x44cf64):_0x44cf64=_0x382c39,_0x44cf64;}import a0_0x447573 from'typescript';import a0_0x3aadd2 from'path';import{STATIC_ANALYSIS}from'../utilities/constants.js';class JavaScriptAnalyzer{constructor(_0x44c17b=null){const _0x56bef6=a0_0x44cf;this['logger']=_0x44c17b,this['compilerOptions']={'allowJs':!![],'checkJs':!![],'noEmit':!![],'jsx':a0_0x447573[_0x56bef6(0x1be)][_0x56bef6(0x1e6)],'target':a0_0x447573[_0x56bef6(0x1b9)]['Latest'],'module':a0_0x447573['ModuleKind'][_0x56bef6(0x1c4)],'moduleResolution':a0_0x447573[_0x56bef6(0x1c7)]['NodeJs'],'esModuleInterop':!![],'skipLibCheck':!![],'strict':![],'noImplicitAny':![]};}async[a0_0x186a40(0x1e2)](_0x5a4b60,_0x4b03d3,_0x5a88ee={}){const _0x3abc77=a0_0x186a40;try{const _0x53e091=[],_0x22d666=a0_0x447573['createSourceFile'](_0x5a4b60,_0x4b03d3,a0_0x447573['ScriptTarget'][_0x3abc77(0x1ce)],!![]),_0x2e9d59=this['getSyntacticDiagnostics'](_0x22d666);_0x53e091['push'](..._0x2e9d59);const _0x4f14a6=await this['getSemanticDiagnostics'](_0x5a4b60,_0x4b03d3);return _0x53e091['push'](..._0x4f14a6),this['logger']?.['debug']('JavaScript\x20analysis\x20completed',{'file':_0x5a4b60,'totalDiagnostics':_0x53e091['length'],'errors':_0x53e091[_0x3abc77(0x1e5)](_0x1589de=>_0x1589de['severity']===STATIC_ANALYSIS['SEVERITY']['ERROR'])['length'],'warnings':_0x53e091[_0x3abc77(0x1e5)](_0x429411=>_0x429411[_0x3abc77(0x1c5)]===STATIC_ANALYSIS['SEVERITY'][_0x3abc77(0x1d3)])['length']}),_0x53e091;}catch(_0x2d996b){return this[_0x3abc77(0x1b8)]?.['error']('JavaScript\x20analysis\x20failed',{'file':_0x5a4b60,'error':_0x2d996b['message']}),[{'file':_0x5a4b60,'line':0x0,'column':0x0,'severity':STATIC_ANALYSIS[_0x3abc77(0x1bc)]['ERROR'],'rule':'analyzer-error','message':_0x3abc77(0x1d4)+_0x2d996b['message'],'category':STATIC_ANALYSIS['CATEGORY']['SYNTAX']}];}}[a0_0x186a40(0x1ca)](_0x22dfbd){const _0x4058ea=a0_0x186a40,_0x5d9dcf=[],_0x3a2fa5=_0x1801b3=>{const _0x447ca5=a0_0x44cf;if(_0x1801b3[_0x447ca5(0x1da)]===a0_0x447573[_0x447ca5(0x1c2)]['Unknown']){const _0x3b050f=_0x22dfbd[_0x447ca5(0x1dc)](_0x1801b3[_0x447ca5(0x1d8)]());_0x5d9dcf['push']({'file':_0x22dfbd['fileName'],'line':_0x3b050f[_0x447ca5(0x1d9)]+0x1,'column':_0x3b050f['character']+0x1,'severity':STATIC_ANALYSIS[_0x447ca5(0x1bc)]['ERROR'],'rule':_0x447ca5(0x1e8),'message':_0x447ca5(0x1e9),'category':STATIC_ANALYSIS[_0x447ca5(0x1eb)]['SYNTAX'],'fixable':![]});}a0_0x447573[_0x447ca5(0x1ba)](_0x1801b3,_0x3a2fa5);};_0x3a2fa5(_0x22dfbd);if(_0x22dfbd[_0x4058ea(0x1cd)]&&_0x22dfbd[_0x4058ea(0x1cd)][_0x4058ea(0x1cc)]>0x0)for(const _0x2a053a of _0x22dfbd['parseDiagnostics']){_0x5d9dcf['push'](this['formatDiagnostic'](_0x2a053a,_0x22dfbd));}return _0x5d9dcf;}async[a0_0x186a40(0x1db)](_0x83c44b,_0xd7910a){const _0x2803d9=a0_0x186a40,_0x165b7c=[];try{const _0x34f3c8=a0_0x447573['createSourceFile'](_0x83c44b,_0xd7910a,a0_0x447573['ScriptTarget'][_0x2803d9(0x1ce)],!![]),_0x5960fb={'getSourceFile':_0x24b4d7=>{if(_0x24b4d7===_0x83c44b)return _0x34f3c8;return undefined;},'getDefaultLibFileName':()=>'lib.d.ts','writeFile':()=>{},'getCurrentDirectory':()=>a0_0x3aadd2['dirname'](_0x83c44b),'getDirectories':()=>[],'fileExists':_0x4ef50c=>_0x4ef50c===_0x83c44b,'readFile':_0x1a4783=>{if(_0x1a4783===_0x83c44b)return _0xd7910a;return undefined;},'getCanonicalFileName':_0x473bdc=>_0x473bdc,'useCaseSensitiveFileNames':()=>!![],'getNewLine':()=>'\x0a'},_0x2b087e=a0_0x447573[_0x2803d9(0x1d7)]({'rootNames':[_0x83c44b],'options':this[_0x2803d9(0x1d6)],'host':_0x5960fb}),_0x288653=_0x2b087e[_0x2803d9(0x1db)](_0x34f3c8);for(const _0x189d86 of _0x288653){_0x165b7c[_0x2803d9(0x1c1)](this['formatDiagnostic'](_0x189d86,_0x34f3c8));}}catch(_0x2ea503){this[_0x2803d9(0x1b8)]?.['debug'](_0x2803d9(0x1e3),{'file':_0x83c44b,'reason':_0x2ea503['message']});}return _0x165b7c;}[a0_0x186a40(0x1bf)](_0x74c122,_0x33d22d){const _0x27a48e=a0_0x186a40;let _0x50f79c=0x0,_0x141f7f=0x0;if(_0x74c122['file']&&_0x74c122['start']!==undefined){const _0x4d389c=_0x74c122['file'][_0x27a48e(0x1dc)](_0x74c122['start']);_0x50f79c=_0x4d389c['line']+0x1,_0x141f7f=_0x4d389c['character']+0x1;}else{if(_0x33d22d&&_0x74c122[_0x27a48e(0x1e4)]!==undefined){const _0x3b6eee=_0x33d22d[_0x27a48e(0x1dc)](_0x74c122['start']);_0x50f79c=_0x3b6eee[_0x27a48e(0x1d9)]+0x1,_0x141f7f=_0x3b6eee['character']+0x1;}}const _0xda7297=a0_0x447573[_0x27a48e(0x1c6)](_0x74c122[_0x27a48e(0x1c0)],'\x0a');let _0x45a6e1;switch(_0x74c122[_0x27a48e(0x1df)]){case a0_0x447573['DiagnosticCategory']['Error']:_0x45a6e1=STATIC_ANALYSIS['SEVERITY'][_0x27a48e(0x1d2)];break;case a0_0x447573['DiagnosticCategory'][_0x27a48e(0x1ec)]:_0x45a6e1=STATIC_ANALYSIS[_0x27a48e(0x1bc)][_0x27a48e(0x1d3)];break;case a0_0x447573[_0x27a48e(0x1cb)]['Message']:case a0_0x447573[_0x27a48e(0x1cb)][_0x27a48e(0x1d0)]:_0x45a6e1=STATIC_ANALYSIS['SEVERITY']['INFO'];break;default:_0x45a6e1=STATIC_ANALYSIS['SEVERITY']['ERROR'];}let _0x1a53fd=STATIC_ANALYSIS[_0x27a48e(0x1eb)][_0x27a48e(0x1c8)];const _0x140ea5=_0x74c122['code'];if(_0x140ea5>=0x7d0&&_0x140ea5<0xbb8)_0x1a53fd=STATIC_ANALYSIS[_0x27a48e(0x1eb)][_0x27a48e(0x1e7)];else{if(_0x140ea5>=0x3e8&&_0x140ea5<0x7d0)_0x1a53fd=STATIC_ANALYSIS[_0x27a48e(0x1eb)]['SYNTAX'];else _0x140ea5>=0x8fc&&_0x140ea5<0x960&&(_0x1a53fd=STATIC_ANALYSIS['CATEGORY'][_0x27a48e(0x1d1)]);}return(_0xda7297['toLowerCase']()['includes']('cannot\x20find\x20module')||_0xda7297['toLowerCase']()['includes']('import'))&&(_0x1a53fd=STATIC_ANALYSIS['CATEGORY']['IMPORT']),{'file':_0x74c122['file']?.['fileName']||_0x33d22d?.['fileName']||_0x27a48e(0x1e0),'line':_0x50f79c,'column':_0x141f7f,'severity':_0x45a6e1,'rule':'TS'+_0x140ea5,'message':_0xda7297,'category':_0x1a53fd,'fixable':![],'code':_0x74c122['code']};}}export default JavaScriptAnalyzer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a0_0x59d6(_0x41ea32,_0x2c4a0){_0x41ea32=_0x41ea32-0x1b1;const _0x3a25c0=a0_0x3a25();let _0x59d6b4=_0x3a25c0[_0x41ea32];if(a0_0x59d6['rCnhkv']===undefined){var _0x1637d5=function(_0x121d3b){const _0x220cc2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5b95c4='',_0x252e7f='';for(let _0x28e649=0x0,_0x3db417,_0x5501ba,_0x21c665=0x0;_0x5501ba=_0x121d3b['charAt'](_0x21c665++);~_0x5501ba&&(_0x3db417=_0x28e649%0x4?_0x3db417*0x40+_0x5501ba:_0x5501ba,_0x28e649++%0x4)?_0x5b95c4+=String['fromCharCode'](0xff&_0x3db417>>(-0x2*_0x28e649&0x6)):0x0){_0x5501ba=_0x220cc2['indexOf'](_0x5501ba);}for(let _0x3615b5=0x0,_0x25dc51=_0x5b95c4['length'];_0x3615b5<_0x25dc51;_0x3615b5++){_0x252e7f+='%'+('00'+_0x5b95c4['charCodeAt'](_0x3615b5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x252e7f);};a0_0x59d6['tGgAkn']=_0x1637d5,a0_0x59d6['YfwROa']={},a0_0x59d6['rCnhkv']=!![];}const _0x605471=_0x3a25c0[0x0],_0x19c7b6=_0x41ea32+_0x605471,_0x102bb3=a0_0x59d6['YfwROa'][_0x19c7b6];return!_0x102bb3?(_0x59d6b4=a0_0x59d6['tGgAkn'](_0x59d6b4),a0_0x59d6['YfwROa'][_0x19c7b6]=_0x59d6b4):_0x59d6b4=_0x102bb3,_0x59d6b4;}const a0_0x3a543d=a0_0x59d6;(function(_0xbd8411,_0x17194b){const _0x59ad62=a0_0x59d6,_0x1e176d=_0xbd8411();while(!![]){try{const _0x1ea3ad=parseInt(_0x59ad62(0x1e0))/0x1+parseInt(_0x59ad62(0x1c1))/0x2*(parseInt(_0x59ad62(0x1b3))/0x3)+parseInt(_0x59ad62(0x1cc))/0x4+parseInt(_0x59ad62(0x1b1))/0x5*(-parseInt(_0x59ad62(0x1cd))/0x6)+parseInt(_0x59ad62(0x1bf))/0x7*(-parseInt(_0x59ad62(0x1db))/0x8)+-parseInt(_0x59ad62(0x1c7))/0x9*(parseInt(_0x59ad62(0x1d3))/0xa)+parseInt(_0x59ad62(0x1cb))/0xb;if(_0x1ea3ad===_0x17194b)break;else _0x1e176d['push'](_0x1e176d['shift']());}catch(_0x17c892){_0x1e176d['push'](_0x1e176d['shift']());}}}(a0_0x3a25,0x34353));import a0_0x5b95c4 from'prettier';import a0_0x252e7f from'path';import a0_0x28e649 from'fs/promises';class PrettierFormatter{constructor(_0x3db417=null){this['logger']=_0x3db417,this['configCache']=new Map();}async[a0_0x3a543d(0x1b9)](_0x5501ba,_0x21c665,_0x3615b5={}){const _0x3d6219=a0_0x3a543d;try{const _0x25dc51=await this['getPrettierConfig'](_0x5501ba,_0x3615b5[_0x3d6219(0x1c9)]),_0x30d1aa=this[_0x3d6219(0x1bd)](_0x5501ba),_0x102123=await a0_0x5b95c4['format'](_0x21c665,{..._0x25dc51,'filepath':_0x5501ba,'parser':_0x30d1aa}),_0x17e442=_0x102123!==_0x21c665;return{'formatted':_0x17e442,'content':_0x102123,'original':_0x21c665,'changes':_0x17e442?this['describeChanges'](_0x21c665,_0x102123):[],'linesChanged':_0x17e442?this[_0x3d6219(0x1d6)](_0x21c665,_0x102123):0x0};}catch(_0x4d79ff){this['logger']?.['error'](_0x3d6219(0x1d1),{'file':_0x5501ba,'error':_0x4d79ff['message']});throw new Error('Prettier\x20formatting\x20failed:\x20'+_0x4d79ff[_0x3d6219(0x1b8)]);}}async[a0_0x3a543d(0x1d5)](_0x105183,_0x20f862,_0x2222e2={}){const _0x31d8b1=a0_0x3a543d;try{const _0x1dd7d8=await this[_0x31d8b1(0x1b5)](_0x105183,_0x2222e2[_0x31d8b1(0x1c9)]),_0x3e620a=this[_0x31d8b1(0x1bd)](_0x105183),_0x4b9b4a=await a0_0x5b95c4[_0x31d8b1(0x1b9)](_0x20f862,{..._0x1dd7d8,'filepath':_0x105183,'parser':_0x3e620a});return _0x4b9b4a!==_0x20f862;}catch(_0x15edbc){return this['logger']?.[_0x31d8b1(0x1cf)](_0x31d8b1(0x1be),{'file':_0x105183,'error':_0x15edbc[_0x31d8b1(0x1b8)]}),![];}}async[a0_0x3a543d(0x1b5)](_0x5f58a0,_0x27c2af){const _0x2cb435=a0_0x3a543d,_0x39d3e7=_0x27c2af||a0_0x252e7f['dirname'](_0x5f58a0);if(this[_0x2cb435(0x1c4)]['has'](_0x39d3e7))return this['configCache']['get'](_0x39d3e7);let _0x3509a1={};if(_0x27c2af)try{const _0x1ca91b=await a0_0x5b95c4[_0x2cb435(0x1b2)](_0x5f58a0,{'config':_0x27c2af});_0x1ca91b&&(this['logger']?.[_0x2cb435(0x1d9)](_0x2cb435(0x1dd),{'workingDir':_0x27c2af}),_0x3509a1=_0x1ca91b);}catch(_0xcd5ef5){this['logger']?.['debug']('No Prettier config found, using defaults');}const defaultConfig={'semi':!![],'singleQuote':!![],'tabWidth':0x2,'trailingComma':_0x2cb435(0x1c2),'printWidth':0x64,'arrowParens':'avoid','endOfLine':'lf',..._0x3509a1};return this['configCache']['set'](_0x39d3e7,defaultConfig),defaultConfig;}[a0_0x3a543d(0x1bd)](_0x172e5b){const _0x4690f1=a0_0x3a543d,_0x444184=a0_0x252e7f['extname'](_0x172e5b)['toLowerCase'](),_0x20edcb={'.js':_0x4690f1(0x1de),'.jsx':'babel','.mjs':'babel','.cjs':_0x4690f1(0x1de),'.ts':_0x4690f1(0x1d7),'.tsx':'typescript','.json':'json','.json5':_0x4690f1(0x1ba),'.css':_0x4690f1(0x1ce),'.scss':_0x4690f1(0x1e1),'.less':'less','.html':_0x4690f1(0x1d2),'.vue':'vue','.md':'markdown','.yaml':_0x4690f1(0x1bb),'.yml':'yaml'};return _0x20edcb[_0x444184]||'babel';}['describeChanges'](_0x51136c,_0x49cb88){const _0x442fb4=a0_0x3a543d,_0x2b3b72=[],_0x50c365=_0x51136c[_0x442fb4(0x1dc)]('\x0a'),_0x54f39b=_0x49cb88[_0x442fb4(0x1dc)]('\x0a'),_0x366bf1=Math[_0x442fb4(0x1c5)](_0x50c365['length'],_0x54f39b['length']);for(let _0x37d224=0x0;_0x37d224<_0x366bf1;_0x37d224++){const _0x4266e7=_0x50c365[_0x37d224],_0x2b81d5=_0x54f39b[_0x37d224];_0x4266e7!==_0x2b81d5&&_0x2b3b72[_0x442fb4(0x1d4)]({'line':_0x37d224+0x1,'type':_0x4266e7!==undefined&&_0x2b81d5!==undefined?_0x442fb4(0x1b6):_0x4266e7!==undefined?'removed':_0x442fb4(0x1c3),'original':_0x4266e7||'','formatted':_0x2b81d5||''});}return _0x2b3b72;}['countChangedLines'](_0x3d4efd,_0x26e8d1){const _0x15a4c8=a0_0x3a543d,_0x494b97=_0x3d4efd[_0x15a4c8(0x1dc)]('\x0a'),_0x2c1d52=_0x26e8d1[_0x15a4c8(0x1dc)]('\x0a');let _0x2473a4=0x0;const _0x487d3f=Math[_0x15a4c8(0x1c5)](_0x494b97['length'],_0x2c1d52['length']);for(let _0x512aa9=0x0;_0x512aa9<_0x487d3f;_0x512aa9++){_0x494b97[_0x512aa9]!==_0x2c1d52[_0x512aa9]&&_0x2473a4++;}return _0x2473a4;}['getSupportedExtensions'](){const _0x135d61=a0_0x3a543d;return[_0x135d61(0x1c8),'.jsx',_0x135d61(0x1b7),'.cjs',_0x135d61(0x1da),'.tsx','.json',_0x135d61(0x1b4),_0x135d61(0x1c6),'.scss',_0x135d61(0x1d8),_0x135d61(0x1df),'.vue','.md','.yaml',_0x135d61(0x1c0)];}[a0_0x3a543d(0x1d0)](_0x1b5f0a){const _0x538532=a0_0x3a543d,_0x100426=a0_0x252e7f['extname'](_0x1b5f0a)[_0x538532(0x1ca)]();return this[_0x538532(0x1bc)]()['includes'](_0x100426);}}export default PrettierFormatter;function a0_0x3a25(){const _0xbd2392=['ChvZAa','y2HLy2S','y291BNrdAgfUz2vKtgLUzxm','DhLWzxnJCMLWDa','lMXLC3m','zgvIDwC','lNrZ','mte0odu1mLjdtxD0Eq','C3bSAxq','rM91BMqGuhjLDhrPzxiGy29UzMLN','yMfIzwW','lMH0BwW','mtq2nJqYwxrsuwvb','C2nZCW','mtbkuujfAMy','CMvZB2X2zunVBMzPzW','mtvxwKrpDhO','lMPZB241','z2v0uhjLDhrPzxjdB25MAwC','Bw9KAwzPzwq','lM1QCW','BwvZC2fNzq','zM9YBwf0','ANnVBJu','EwfTBa','z2v0u3vWCg9YDgvKrxH0zw5ZAw9UCW','z2v0ugfYC2vY','uhjLDhrPzxiGy2HLy2SGzMfPBgvK','n0LkBfnIwa','lNLTBa','mte2nti0CNLcyMfc','zxm1','ywrKzwq','y29UzMLNq2fJAgu','Bwf4','lMnZCW','odu1yvHYz1Dk','lMPZ','D29YA2LUz0rPCG','Dg9mB3DLCKnHC2u','mJiZmZa3n21RqLrRDa','nZGXmdiWvw53ue1s','mZa0otu2r3jrsMTu','y3nZ','D2fYBG','AxntDxbWB3j0zwq','uhjLDhrPzxiGzM9YBwf0DgLUzYbMywLSzwq','AhrTBa','mZK3mdbrBxzru0q'];a0_0x3a25=function(){return _0xbd2392;};return a0_0x3a25();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a0_0x2079d8=a0_0x366e;(function(_0x55459e,_0x6b0431){const _0x363b9f=a0_0x366e,_0x58ba1d=_0x55459e();while(!![]){try{const _0x3e2833=parseInt(_0x363b9f(0xa8))/0x1*(parseInt(_0x363b9f(0xad))/0x2)+parseInt(_0x363b9f(0x9f))/0x3+-parseInt(_0x363b9f(0x90))/0x4+parseInt(_0x363b9f(0x97))/0x5+-parseInt(_0x363b9f(0x9b))/0x6+parseInt(_0x363b9f(0xac))/0x7+parseInt(_0x363b9f(0xa2))/0x8;if(_0x3e2833===_0x6b0431)break;else _0x58ba1d['push'](_0x58ba1d['shift']());}catch(_0x442e6f){_0x58ba1d['push'](_0x58ba1d['shift']());}}}(a0_0x4a7f,0x6ccd4));import{spawn}from'child_process';import{STATIC_ANALYSIS}from'../utilities/constants.js';function a0_0x4a7f(){const _0x6532ef=['zxjYB3jZ','zMLSDgvY','mJi5nJK2meTKvgPVqq','C3LUDgf4x2nOzwnRxW','y29SDw1U','D2fYBG','mZm1otK3me5UEvPlqq','BwvZC2fNzq','ChL0Ag9UmW','C3vJy2vZCW','mta2nZi4nMjjAM5Pwq','v0fstKLorW','zgvIDwC','mJKWmJK2ogLRy1HeBa','C3rKzxjY','AM9PBG','rMfPBgvKihrVihbHCNnLifb5DgHVBIbZEw50yxGGy2HLy2SGCMvZDwX0','BgLUzq','uhL0Ag9UigfUywX5C2LZignVBxbSzxrLza','mxnyB2XytG','ChvZAa','CNvUq29TBwfUza','Dg1WzgLY','mtm0ndy1ohbkrxvSvq','otq2ote0rfvOExPj','zgf0yq','u3LUDgf4rxjYB3i','CNvUuhL0Ag9Uu2nYAxb0','Dw5SAw5R','lNb5','ChL0Ag9Uq29TBwfUza','BgvUz3rO','D3jPDgvgAwXL','y2HLy2TtEw50yxG','cMLTCg9YDcbHC3qkAw1WB3j0ihn5CWPPBxbVCNqGANnVBGOkzgvMignOzwnRx3n5BNrHEcHMAwXLCgf0AcK6cIaGicb0CNK6cIaGicaGicaGD2L0AcbVCgvUkgzPBgvWyxrOlcaNCICSigvUy29KAw5NpsD1DgyTocCPigfZigy6cIaGicaGicaGicaGihnVDxjJzsa9igyUCMvHzcGPcGOGicaGicaGicmGvhj5ihrVihbHCNnLihrOzsbMAwXLcIaGicaGicaGyxn0lNbHCNnLkhnVDxjJzsWGzMLSzw5HBwu9zMLSzxbHDgGPcGOGicaGicaGicmGswyGC3vJy2vZC2z1BcWGBM8GzxjYB3jZcIaGicaGicaGChjPBNqOANnVBI5KDw1WCYH7iNn1y2nLC3mIoIbuCNvLlcaIzxjYB3jZiJOGw119ksKkcIaGicbLEgnLChqGu3LUDgf4rxjYB3iGyxmGztOkicaGicaGicbLCNjVCIa9ihSkicaGicaGicaGicaGiMzPBguIoIbMAwXLCgf0AcWkicaGicaGicaGicaGiMXPBMuIoIbLlMXPBMvUBYbVCIaXlaOGicaGicaGicaGicaIy29SDw1UiJOGzs5VzMzZzxqGB3iGmsWkicaGicaGicaGicaGiM1LC3nHz2uIoIbZDhiOzs5TC2CPlaOGicaGicaGicaGicaIDgv4Dci6iguUDgv4Dc5ZDhjPCcGPigLMiguUDgv4DcbLBhnLiciIcIaGicaGicaGFqOGicaGicaGihbYAw50kgPZB24UzhvTChmOEYjZDwnJzxnZiJOGrMfSC2uSicjLCNjVCNmIoIbBzxjYB3jDFsKPcGOGicaGzxHJzxb0iev4y2vWDgLVBIbHCYbLoGOGicaGicaGigvYCM9Yid0GEWOGicaGicaGicaGicaIzMLSzsi6igzPBgvWyxrOlaOGicaGicaGicaGicaIBgLUzsi6ideScIaGicaGicaGicaGicjJB2X1Bw4IoIaXlaOGicaGicaGicaGicaIBwvZC2fNzsi6ihn0CIHLksWkicaGicaGicaGicaGiNrLEhqIoIaIiGOGicaGicaGih0kicaGicaGicbWCMLUDcHQC29UlMr1BxbZkhSIC3vJy2vZCYi6iezHBhnLlcaIzxjYB3jZiJOGw2vYCM9Yxx0PkqOkAwyGx19Uyw1Lx18Gpt0GiL9FBwfPBL9FiJOkicaGigLMigXLBIHZExmUyxjNDIKGpIaXoGOGicaGicaGignOzwnRx3n5BNrHEcHZExmUyxjNDLSXxsKkicaGigvSC2u6cIaGicaGicaGChjPBNqOANnVBI5KDw1WCYH7iNn1y2nLC3mIoIbgywXZzsWGiMvYCM9YCYi6ifT7iM1LC3nHz2uIoIaItM8GzMLSzsbZCgvJAwzPzwqIFv19ksKk','u0vwrvjjvfK','C3rKB3v0','DgfYz2v0xW','ls12zxjZAw9U','BM93','DxrMltG','uhL0Ag9UigfUywX5C2LZigzHAwXLza','C3vWCg9YDhnbDxrVrML4','rvjst1i','mZm1mtCXnM9tqwH5yG','z2v0uhL0Ag9Uq29TBwfUza','Bg9Nz2vY','Dg9tDhjPBMC','q29TBwfUzcb0Aw1LB3v0'];a0_0x4a7f=function(){return _0x6532ef;};return a0_0x4a7f();}function a0_0x366e(_0xd725f8,_0x4ff2f9){_0xd725f8=_0xd725f8-0x8f;const _0x4a7f47=a0_0x4a7f();let _0x366ee9=_0x4a7f47[_0xd725f8];if(a0_0x366e['LErqjF']===undefined){var _0x1f3ae3=function(_0x53e96a){const _0x3920f8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1a087f='',_0x9c6156='';for(let _0x5cfc81=0x0,_0x3c2cd4,_0x3d8082,_0x3cf9ac=0x0;_0x3d8082=_0x53e96a['charAt'](_0x3cf9ac++);~_0x3d8082&&(_0x3c2cd4=_0x5cfc81%0x4?_0x3c2cd4*0x40+_0x3d8082:_0x3d8082,_0x5cfc81++%0x4)?_0x1a087f+=String['fromCharCode'](0xff&_0x3c2cd4>>(-0x2*_0x5cfc81&0x6)):0x0){_0x3d8082=_0x3920f8['indexOf'](_0x3d8082);}for(let _0x435151=0x0,_0x186a3f=_0x1a087f['length'];_0x435151<_0x186a3f;_0x435151++){_0x9c6156+='%'+('00'+_0x1a087f['charCodeAt'](_0x435151)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x9c6156);};a0_0x366e['yNorls']=_0x1f3ae3,a0_0x366e['mEdidD']={},a0_0x366e['LErqjF']=!![];}const _0x4ee898=_0x4a7f47[0x0],_0x3feac7=_0xd725f8+_0x4ee898,_0x5aa140=a0_0x366e['mEdidD'][_0x3feac7];return!_0x5aa140?(_0x366ee9=a0_0x366e['yNorls'](_0x366ee9),a0_0x366e['mEdidD'][_0x3feac7]=_0x366ee9):_0x366ee9=_0x5aa140,_0x366ee9;}import a0_0x1a087f from'fs/promises';import a0_0x9c6156 from'path';import a0_0x5cfc81 from'os';class PythonAnalyzer{constructor(_0x3c2cd4=null){const _0x3d7ca9=a0_0x366e;this[_0x3d7ca9(0x92)]=_0x3c2cd4,this[_0x3d7ca9(0xb3)]=null;}async['analyze'](_0x3d8082,_0x3cf9ac,_0x435151={}){const _0x14ba3b=a0_0x366e;try{const _0x186a3f=[],_0x54d87f=await this[_0x14ba3b(0x91)]();if(!_0x54d87f)return this['logger']?.[_0x14ba3b(0x9a)]('Python\x20not\x20available,\x20skipping\x20analysis'),[];const _0x16d18e=await this['checkSyntax'](_0x3d8082,_0x3cf9ac,_0x54d87f);return _0x186a3f[_0x14ba3b(0xa9)](..._0x16d18e),this[_0x14ba3b(0x92)]?.[_0x14ba3b(0xa1)](_0x14ba3b(0xa7),{'file':_0x3d8082,'totalDiagnostics':_0x186a3f['length'],'errors':_0x186a3f[_0x14ba3b(0x96)](_0x54c12e=>_0x54c12e['severity']===STATIC_ANALYSIS['SEVERITY'][_0x14ba3b(0x8f)])[_0x14ba3b(0xb4)],'warnings':_0x186a3f[_0x14ba3b(0x96)](_0x4f0551=>_0x4f0551['severity']===STATIC_ANALYSIS['SEVERITY'][_0x14ba3b(0xa0)])[_0x14ba3b(0xb4)]}),_0x186a3f;}catch(_0x2d141c){return this[_0x14ba3b(0x92)]?.['error'](_0x14ba3b(0xbe),{'file':_0x3d8082,'error':_0x2d141c['message']}),[];}}async[a0_0x2079d8(0xb6)](_0x38832a,_0x3935b4,_0x2eaa85){const _0x400f80=a0_0x2079d8,_0x5c94b7=[],_0x471624=a0_0x5cfc81[_0x400f80(0xab)](),_0x36e6e8=a0_0x9c6156[_0x400f80(0xa4)](_0x471624,_0x400f80(0x98)+Date[_0x400f80(0xbc)]()+_0x400f80(0xb2)),_0x46e24a=a0_0x9c6156[_0x400f80(0xa4)](_0x471624,_0x400f80(0xba)+Date['now']()+_0x400f80(0xb2));try{await a0_0x1a087f['writeFile'](_0x46e24a,_0x3935b4,'utf-8');const _0x5e8ff7=_0x400f80(0xb7);await a0_0x1a087f[_0x400f80(0xb5)](_0x36e6e8,_0x5e8ff7,_0x400f80(0xbd));const _0x45050d=await this[_0x400f80(0xb0)](_0x2eaa85,_0x36e6e8,[_0x46e24a]);try{const _0x207596=JSON['parse'](_0x45050d[_0x400f80(0xb9)]);if(!_0x207596[_0x400f80(0x9e)]&&_0x207596['errors'])for(const _0x2f108e of _0x207596[_0x400f80(0x95)]){_0x5c94b7[_0x400f80(0xa9)]({'file':_0x38832a,'line':_0x2f108e[_0x400f80(0xa6)]||0x1,'column':_0x2f108e[_0x400f80(0x99)]||0x1,'severity':STATIC_ANALYSIS[_0x400f80(0xb8)][_0x400f80(0x8f)],'rule':_0x400f80(0xaf),'message':_0x2f108e['message'],'category':STATIC_ANALYSIS['CATEGORY']['SYNTAX'],'fixable':![],'source':'python-ast','code':_0x2f108e['text']||undefined});}}catch(_0x1501dd){this[_0x400f80(0x92)]?.['warn'](_0x400f80(0xa5),{'error':_0x1501dd[_0x400f80(0x9c)],'stdout':_0x45050d[_0x400f80(0xb9)]});}}finally{try{await a0_0x1a087f[_0x400f80(0xb1)](_0x36e6e8),await a0_0x1a087f[_0x400f80(0xb1)](_0x46e24a);}catch{}}return _0x5c94b7;}async[a0_0x2079d8(0x91)](){const _0x27013e=a0_0x2079d8;if(this[_0x27013e(0xb3)])return this[_0x27013e(0xb3)];const _0x4945f9=[_0x27013e(0x9d),'python'];for(const _0x168736 of _0x4945f9){try{const _0x5a07b3=await this[_0x27013e(0xaa)](_0x168736,[_0x27013e(0xbb)]);if(_0x5a07b3['success'])return this[_0x27013e(0xb3)]=_0x168736,this['logger']?.['debug']('Found\x20Python\x20command',{'command':_0x168736,'version':_0x5a07b3[_0x27013e(0xb9)]['trim']()}),_0x168736;}catch{}}return null;}async[a0_0x2079d8(0xb0)](_0x56b052,_0x511ff1,_0x48d430=[]){const _0x3d0e9b=a0_0x2079d8;return this[_0x3d0e9b(0xaa)](_0x56b052,[_0x511ff1,..._0x48d430]);}async['runCommand'](_0x52377c,_0x40f42d=[],_0x305ebd={}){return new Promise((_0x3578e0,_0x1ae6ea)=>{const _0x23fa4c=a0_0x366e,_0x20ff51=spawn(_0x52377c,_0x40f42d,{..._0x305ebd,'shell':!![]});let _0x52a590='',_0x875ba5='';_0x20ff51['stdout']?.['on'](_0x23fa4c(0xae),_0x2095f2=>{const _0x345832=_0x23fa4c;_0x52a590+=_0x2095f2[_0x345832(0x93)]();}),_0x20ff51[_0x23fa4c(0xa3)]?.['on'](_0x23fa4c(0xae),_0x13688c=>{_0x875ba5+=_0x13688c['toString']();}),_0x20ff51['on']('error',_0xe87746=>{_0x1ae6ea(_0xe87746);}),_0x20ff51['on']('close',_0x38a7cf=>{_0x3578e0({'success':_0x38a7cf===0x0,'code':_0x38a7cf,'stdout':_0x52a590,'stderr':_0x875ba5});}),setTimeout(()=>{const _0x6d2b64=_0x23fa4c;_0x20ff51['kill'](),_0x1ae6ea(new Error(_0x6d2b64(0x94)));},0x2710);});}['getSupportedExtensions'](){return['.py'];}[a0_0x2079d8(0xbf)](){return![];}}export default PythonAnalyzer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function a0_0x256c(_0x154486,_0x3e5919){_0x154486=_0x154486-0x7f;const _0x2627cc=a0_0x2627();let _0x256c23=_0x2627cc[_0x154486];if(a0_0x256c['IweFlq']===undefined){var _0x415ca1=function(_0x5111e2){const _0x3ea0a7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3f135a='',_0x4d6b67='';for(let _0x3cab2c=0x0,_0x30d481,_0x403b69,_0x1a9561=0x0;_0x403b69=_0x5111e2['charAt'](_0x1a9561++);~_0x403b69&&(_0x30d481=_0x3cab2c%0x4?_0x30d481*0x40+_0x403b69:_0x403b69,_0x3cab2c++%0x4)?_0x3f135a+=String['fromCharCode'](0xff&_0x30d481>>(-0x2*_0x3cab2c&0x6)):0x0){_0x403b69=_0x3ea0a7['indexOf'](_0x403b69);}for(let _0x1e7e64=0x0,_0xd0c578=_0x3f135a['length'];_0x1e7e64<_0xd0c578;_0x1e7e64++){_0x4d6b67+='%'+('00'+_0x3f135a['charCodeAt'](_0x1e7e64)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4d6b67);};a0_0x256c['isPdcS']=_0x415ca1,a0_0x256c['gjbALN']={},a0_0x256c['IweFlq']=!![];}const _0x4bcdf2=_0x2627cc[0x0],_0x78f87=_0x154486+_0x4bcdf2,_0x193609=a0_0x256c['gjbALN'][_0x78f87];return!_0x193609?(_0x256c23=a0_0x256c['isPdcS'](_0x256c23),a0_0x256c['gjbALN'][_0x78f87]=_0x256c23):_0x256c23=_0x193609,_0x256c23;}const a0_0x438a33=a0_0x256c;(function(_0x619700,_0x4cd5de){const _0x5a1c49=a0_0x256c,_0xd20f6a=_0x619700();while(!![]){try{const _0x480ccf=-parseInt(_0x5a1c49(0xe9))/0x1+parseInt(_0x5a1c49(0x80))/0x2+-parseInt(_0x5a1c49(0xef))/0x3+parseInt(_0x5a1c49(0x97))/0x4*(parseInt(_0x5a1c49(0x9f))/0x5)+parseInt(_0x5a1c49(0x86))/0x6*(-parseInt(_0x5a1c49(0x8e))/0x7)+parseInt(_0x5a1c49(0xe6))/0x8+parseInt(_0x5a1c49(0xa6))/0x9;if(_0x480ccf===_0x4cd5de)break;else _0xd20f6a['push'](_0xd20f6a['shift']());}catch(_0x11d67d){_0xd20f6a['push'](_0xd20f6a['shift']());}}}(a0_0x2627,0xa9882));import{exec}from'child_process';import{promisify}from'util';import a0_0x3f135a from'path';import a0_0x4d6b67 from'fs/promises';import{STATIC_ANALYSIS}from'../utilities/constants.js';const execAsync=promisify(exec);class SecurityAnalyzer{constructor(_0x3cab2c=null){const _0x209fdf=a0_0x256c;this[_0x209fdf(0xa5)]=_0x3cab2c,this[_0x209fdf(0xc1)]=null,this[_0x209fdf(0x94)]=new Map(),this[_0x209fdf(0xc5)]=a0_0x3f135a['join'](process[_0x209fdf(0xdc)](),'node_modules','.scanners');}async['detectAvailableScanners'](){const _0x555f21=a0_0x256c;if(this[_0x555f21(0xc1)]!==null)return this['availableScanners'];const _0x30d481={'semgrep':![],'bandit':![],'npmAudit':![],'pipAudit':![],'eslintSecurity':![]};try{const _0x403b69=a0_0x3f135a['join'](this['localScannerDir'],'semgrep');try{await a0_0x4d6b67[_0x555f21(0xdf)](_0x403b69),_0x30d481['semgrep']=!![],this['logger']?.['debug']('Semgrep\x20scanner\x20detected\x20(local)');}catch{await execAsync('semgrep\x20--version',{'timeout':0x1388}),_0x30d481[_0x555f21(0x92)]=!![],this['logger']?.[_0x555f21(0xfc)](_0x555f21(0xaf));}}catch(_0x1a9561){this['logger']?.['debug'](_0x555f21(0xe1),{'error':_0x1a9561['message']});}try{await execAsync(_0x555f21(0xc4),{'timeout':0x1388}),_0x30d481[_0x555f21(0xec)]=!![],this[_0x555f21(0xa5)]?.[_0x555f21(0xfc)](_0x555f21(0x104));}catch(_0x1e7e64){this[_0x555f21(0xa5)]?.[_0x555f21(0xfc)](_0x555f21(0x8b),{'error':_0x1e7e64['message']});}try{await execAsync('npm\x20--version',{'timeout':0x1388}),_0x30d481[_0x555f21(0x8a)]=!![],this['logger']?.[_0x555f21(0xfc)]('npm\x20audit\x20available');}catch(_0xd0c578){this['logger']?.[_0x555f21(0xfc)]('npm\x20not\x20available',{'error':_0xd0c578[_0x555f21(0x99)]});}try{await execAsync(_0x555f21(0xc3),{'timeout':0x1388}),_0x30d481[_0x555f21(0xbd)]=!![],this['logger']?.['debug'](_0x555f21(0xc2));}catch(_0x4b3d2e){this[_0x555f21(0xa5)]?.[_0x555f21(0xfc)]('pip-audit\x20not\x20available',{'error':_0x4b3d2e['message']});}try{const _0x5ec9ef=await execAsync('npm\x20list\x20eslint-plugin-security\x20--depth=0\x20--json',{'timeout':0x1388,'cwd':process['cwd']()}),_0x3fd856=JSON[_0x555f21(0xce)](_0x5ec9ef['stdout']);_0x3fd856['dependencies']&&_0x3fd856[_0x555f21(0xe8)]['eslint-plugin-security']&&(_0x30d481['eslintSecurity']=!![],this['logger']?.['debug']('eslint-plugin-security\x20detected'));}catch(_0x4a62d7){this['logger']?.['debug'](_0x555f21(0xcc),{'error':_0x4a62d7[_0x555f21(0x99)]});}return this['availableScanners']=_0x30d481,_0x30d481;}async['analyze'](_0x30a2f,_0x316ca8,_0x48d230={}){const _0x42d07c=a0_0x256c,_0x26604a=[],_0x21f0a7=await this['detectAvailableScanners'](),_0x5970db=this['detectLanguage'](_0x30a2f);if(_0x48d230[_0x42d07c(0xb0)]!==![]&&this['isTestFile'](_0x30a2f))return this[_0x42d07c(0xa5)]?.['debug'](_0x42d07c(0xab),{'filePath':_0x30a2f}),[];if(_0x5970db==='javascript'||_0x5970db===_0x42d07c(0xf1)){if(_0x21f0a7[_0x42d07c(0x92)]){const _0x281aa1=await this['runSemgrep'](_0x30a2f,[_0x5970db],_0x48d230);_0x26604a[_0x42d07c(0xc6)](..._0x281aa1);}if(_0x21f0a7['eslintSecurity']){const _0x1bc210=await this['runESLintSecurity'](_0x30a2f,_0x316ca8,_0x48d230);_0x26604a['push'](..._0x1bc210);}}if(_0x5970db===_0x42d07c(0xdd)){if(_0x21f0a7[_0x42d07c(0xec)]){const _0xe758b=await this['runBandit'](_0x30a2f,_0x48d230);_0x26604a['push'](..._0xe758b);}if(_0x21f0a7[_0x42d07c(0x92)]){const _0x447438=await this['runSemgrep'](_0x30a2f,[_0x5970db],_0x48d230);_0x26604a['push'](..._0x447438);}}return _0x26604a[_0x42d07c(0xe4)]===0x0&&!this[_0x42d07c(0x9d)](_0x21f0a7,_0x5970db)&&this['logger']?.[_0x42d07c(0xfa)](_0x42d07c(0xb6),{'language':_0x5970db,'filePath':_0x30a2f}),this['normalizeResults'](_0x26604a);}async['analyzeProject'](_0x3831d4,_0x3e06a4,_0x264ea9={}){const _0x3db1a8=a0_0x256c,_0x39b667=[],_0x104cb7=await this['detectAvailableScanners']();if(_0x3e06a4===_0x3db1a8(0xa2)||_0x3e06a4===_0x3db1a8(0xf1)){if(_0x104cb7['npmAudit']){const _0x318afe=await this['runNpmAudit'](_0x3831d4,_0x264ea9);_0x39b667[_0x3db1a8(0xc6)](..._0x318afe);}}if(_0x3e06a4===_0x3db1a8(0xdd)){if(_0x104cb7['pipAudit']){const _0x471a30=await this['runPipAudit'](_0x3831d4,_0x264ea9);_0x39b667['push'](..._0x471a30);}}return this[_0x3db1a8(0xba)](_0x39b667);}async['runSemgrep'](_0x433d04,_0x168073,_0x260759={}){const _0x161ad1=a0_0x256c;try{const _0x434eab=a0_0x3f135a[_0x161ad1(0x107)](_0x433d04),_0x1ddd47=await execAsync(_0x161ad1(0xbb)+_0x433d04+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530,'cwd':_0x434eab}),_0x331dbf=JSON[_0x161ad1(0xce)](_0x1ddd47['stdout']);return this[_0x161ad1(0x88)](_0x331dbf);}catch(_0x4f5875){if(_0x4f5875['stdout'])try{const _0x4174d2=JSON[_0x161ad1(0xce)](_0x4f5875[_0x161ad1(0x93)]);return this['parseSemgrepResults'](_0x4174d2);}catch(_0x4653a7){this[_0x161ad1(0xa5)]?.['error'](_0x161ad1(0xa0),{'error':_0x4653a7[_0x161ad1(0x99)],'stdout':_0x4f5875['stdout']});}return this[_0x161ad1(0xa5)]?.[_0x161ad1(0xa9)](_0x161ad1(0xf8),{'error':_0x4f5875['message']}),[];}}['parseSemgrepResults'](_0x5134b0){const _0x4c3e91=a0_0x256c,_0x3aa14f=[];if(_0x5134b0['results']&&Array['isArray'](_0x5134b0[_0x4c3e91(0xbe)]))for(const _0x15bed5 of _0x5134b0[_0x4c3e91(0xbe)]){_0x3aa14f[_0x4c3e91(0xc6)]({'file':_0x15bed5[_0x4c3e91(0x84)],'line':_0x15bed5[_0x4c3e91(0xcb)]?.['line']||0x1,'column':_0x15bed5['start']?.['col']||0x1,'severity':this['mapSemgrepSeverity'](_0x15bed5['extra']?.[_0x4c3e91(0xd6)]),'rule':_0x15bed5[_0x4c3e91(0x10b)],'message':_0x15bed5['extra']?.[_0x4c3e91(0x99)]||_0x15bed5[_0x4c3e91(0x7f)]?.[_0x4c3e91(0xae)]||'Security\x20issue\x20detected','category':_0x4c3e91(0xb3),'scanner':_0x4c3e91(0x92),'cwe':_0x15bed5['extra']?.['metadata']?.[_0x4c3e91(0xb8)],'owasp':_0x15bed5[_0x4c3e91(0x7f)]?.[_0x4c3e91(0x9a)]?.['owasp'],'confidence':_0x15bed5[_0x4c3e91(0x7f)]?.['metadata']?.['confidence'],'references':_0x15bed5['extra']?.[_0x4c3e91(0x9a)]?.[_0x4c3e91(0xcf)]});}return _0x3aa14f;}async[a0_0x438a33(0xe7)](_0x370e66,_0x3f1710={}){const _0x509595=a0_0x438a33;try{const _0x48e3c9=await execAsync(_0x509595(0x8c)+_0x370e66+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530}),_0x49c6ca=JSON['parse'](_0x48e3c9[_0x509595(0x93)]);return this[_0x509595(0xa8)](_0x49c6ca);}catch(_0x497581){if(_0x497581['stdout'])try{const _0x53b1ef=JSON[_0x509595(0xce)](_0x497581[_0x509595(0x93)]);return this[_0x509595(0xa8)](_0x53b1ef);}catch(_0x17de4b){this[_0x509595(0xa5)]?.[_0x509595(0xa9)](_0x509595(0xd0),{'error':_0x17de4b['message']});}return this['logger']?.['error'](_0x509595(0xea),{'error':_0x497581['message']}),[];}}[a0_0x438a33(0xa8)](_0x50b427){const _0x578693=a0_0x438a33,_0x3a2f88=[];if(_0x50b427['results']&&Array['isArray'](_0x50b427['results']))for(const _0x2f4e10 of _0x50b427[_0x578693(0xbe)]){_0x3a2f88['push']({'file':_0x2f4e10['filename'],'line':_0x2f4e10['line_number']||0x1,'column':_0x2f4e10['col_offset']||0x1,'severity':this['mapBanditSeverity'](_0x2f4e10[_0x578693(0xa7)]),'rule':_0x2f4e10['test_id'],'message':_0x2f4e10[_0x578693(0xfb)],'category':_0x578693(0xb3),'scanner':'bandit','cwe':_0x2f4e10[_0x578693(0xe5)]?.['id']?_0x578693(0xdb)+_0x2f4e10['issue_cwe']['id']:null,'confidence':_0x2f4e10['issue_confidence'],'moreInfo':_0x2f4e10[_0x578693(0xed)]});}return _0x3a2f88;}async['runESLintSecurity'](_0x21fd36,_0x4cf76b,_0x3d8ffa={}){const _0x174eb6=a0_0x438a33;try{const {ESLint:_0xc42b10}=await import('eslint'),_0xa0a696=new _0xc42b10({'overrideConfig':{'plugins':['security'],'extends':[_0x174eb6(0x10a)],'parserOptions':{'ecmaVersion':_0x174eb6(0xe0),'sourceType':'module'}},'useEslintrc':![]}),_0x1bb633=await _0xa0a696[_0x174eb6(0xc8)](_0x4cf76b,{'filePath':_0x21fd36});return this[_0x174eb6(0xf2)](_0x1bb633,_0x21fd36);}catch(_0x111ef3){return this['logger']?.['error']('ESLint\x20security\x20scan\x20failed',{'error':_0x111ef3[_0x174eb6(0x99)],'filePath':_0x21fd36}),[];}}['parseESLintResults'](_0x804b32,_0x3f5189){const _0x230a76=a0_0x438a33,_0x2e6daa=[];for(const _0xaa448d of _0x804b32){if(_0xaa448d[_0x230a76(0xf7)]&&Array[_0x230a76(0xcd)](_0xaa448d['messages']))for(const _0x9c4606 of _0xaa448d['messages']){_0x9c4606[_0x230a76(0xf9)]&&_0x9c4606['ruleId']['startsWith'](_0x230a76(0xda))&&_0x2e6daa['push']({'file':_0x3f5189,'line':_0x9c4606[_0x230a76(0x109)]||0x1,'column':_0x9c4606[_0x230a76(0xb9)]||0x1,'severity':this[_0x230a76(0xaa)](_0x9c4606[_0x230a76(0xd6)]),'rule':_0x9c4606[_0x230a76(0xf9)],'message':_0x9c4606[_0x230a76(0x99)],'category':'security','scanner':_0x230a76(0xc9),'fixable':_0x9c4606['fix']!==undefined});}}return _0x2e6daa;}async[a0_0x438a33(0xf5)](_0x8fedae,_0x17a362={}){const _0x143aff=a0_0x438a33;try{const _0x565c64=a0_0x3f135a[_0x143aff(0x95)](_0x8fedae,_0x143aff(0xd2));try{await a0_0x4d6b67['access'](_0x565c64);}catch{return this[_0x143aff(0xa5)]?.['debug'](_0x143aff(0x8f)),[];}const _0x5d83cf=await execAsync(_0x143aff(0xb5),{'cwd':_0x8fedae,'maxBuffer':0xa*0x400*0x400,'timeout':0xea60}),_0x535c89=JSON['parse'](_0x5d83cf[_0x143aff(0x93)]);return this['parseNpmAuditResults'](_0x535c89);}catch(_0x562381){if(_0x562381[_0x143aff(0x93)])try{const _0x399d72=JSON[_0x143aff(0xce)](_0x562381[_0x143aff(0x93)]);return this[_0x143aff(0x89)](_0x399d72);}catch(_0x34534e){this[_0x143aff(0xa5)]?.[_0x143aff(0xa9)](_0x143aff(0x82),{'error':_0x34534e[_0x143aff(0x99)]});}return[];}}['parseNpmAuditResults'](_0x48dbd0){const _0x467431=a0_0x438a33,_0x80af5f=[];if(_0x48dbd0['vulnerabilities'])for(const [_0x4c2c44,_0x110cef]of Object[_0x467431(0x101)](_0x48dbd0['vulnerabilities'])){_0x80af5f['push']({'file':'package.json','line':0x1,'column':0x1,'severity':this[_0x467431(0xb7)](_0x110cef[_0x467431(0xd6)]),'rule':'npm-'+(_0x110cef[_0x467431(0x98)][0x0]?.[_0x467431(0xf0)]||_0x467431(0xbc)),'message':_0x4c2c44+':\x20'+(_0x110cef['via'][0x0]?.['title']||'Security\x20vulnerability'),'category':'security','scanner':_0x467431(0x81),'package':_0x4c2c44,'vulnerableVersions':_0x110cef[_0x467431(0xf4)],'patchedVersions':_0x110cef[_0x467431(0x106)]?_0x467431(0xa4):_0x467431(0x102),'cve':_0x110cef['via'][0x0]?.['cve'],'cvss':_0x110cef[_0x467431(0x98)][0x0]?.[_0x467431(0xd5)],'references':_0x110cef[_0x467431(0x98)][0x0]?.[_0x467431(0x108)]?[_0x110cef['via'][0x0]['url']]:[]});}return _0x80af5f;}async[a0_0x438a33(0xe2)](_0x139c64,_0x47af3f={}){const _0x2302d5=a0_0x438a33;try{const requirementsPath=a0_0x3f135a['join'](_0x139c64,_0x2302d5(0xd1));try{await a0_0x4d6b67['access'](requirementsPath);}catch{return this['logger']?.['debug'](_0x2302d5(0x100)),[];}const _0x6b429c=await execAsync(_0x2302d5(0xc7),{'cwd':_0x139c64,'maxBuffer':0xa*0x400*0x400,'timeout':0xea60}),_0x23301c=JSON[_0x2302d5(0xce)](_0x6b429c[_0x2302d5(0x93)]);return this['parsePipAuditResults'](_0x23301c);}catch(_0x53a432){if(_0x53a432['stdout'])try{const _0x11a46f=JSON['parse'](_0x53a432[_0x2302d5(0x93)]);return this['parsePipAuditResults'](_0x11a46f);}catch(_0x19e6de){this[_0x2302d5(0xa5)]?.[_0x2302d5(0xa9)](_0x2302d5(0xac),{'error':_0x19e6de['message']});}return[];}}[a0_0x438a33(0xd7)](_0x23961e){const _0x33a8aa=a0_0x438a33,_0x2088c9=[];if(_0x23961e['dependencies']&&Array[_0x33a8aa(0xcd)](_0x23961e[_0x33a8aa(0xe8)]))for(const _0x5717a7 of _0x23961e[_0x33a8aa(0xe8)]){if(_0x5717a7[_0x33a8aa(0x87)]&&Array[_0x33a8aa(0xcd)](_0x5717a7['vulns']))for(const _0x41813c of _0x5717a7[_0x33a8aa(0x87)]){_0x2088c9['push']({'file':'requirements.txt','line':0x1,'column':0x1,'severity':this[_0x33a8aa(0xa3)](_0x41813c[_0x33a8aa(0xd6)]),'rule':_0x41813c['id'],'message':_0x5717a7['name']+':\x20'+(_0x41813c[_0x33a8aa(0xf6)]||'Security\x20vulnerability'),'category':'security','scanner':'pip-audit','package':_0x5717a7[_0x33a8aa(0xee)],'vulnerableVersion':_0x5717a7[_0x33a8aa(0xde)],'fixedVersions':_0x41813c['fix_versions'],'references':_0x41813c[_0x33a8aa(0xb2)]||[]});}}return _0x2088c9;}[a0_0x438a33(0xd3)](_0x1ba0c4){const _0x1f5b35=a0_0x438a33,_0x181742=a0_0x3f135a[_0x1f5b35(0x8d)](_0x1ba0c4)[_0x1f5b35(0x9e)](),_0x5e8911={'.js':_0x1f5b35(0xa2),'.jsx':'javascript','.mjs':'javascript','.cjs':'javascript','.ts':_0x1f5b35(0xf1),'.tsx':_0x1f5b35(0xf1),'.py':'python'};return _0x5e8911[_0x181742]||null;}[a0_0x438a33(0xeb)](_0x2fce35){const _0x3290ec=a0_0x438a33,_0xac4d38=[/\.test\./,/\.spec\./,/__tests__\//,/\/tests?\//,/\.test$/,/\.spec$/];return _0xac4d38[_0x3290ec(0x90)](_0x41c57c=>_0x41c57c[_0x3290ec(0xff)](_0x2fce35));}[a0_0x438a33(0x9d)](_0x5cf2ac,_0x4d9d98){const _0x528f70=a0_0x438a33;if(_0x4d9d98===_0x528f70(0xa2)||_0x4d9d98==='typescript')return _0x5cf2ac['semgrep']||_0x5cf2ac['eslintSecurity'];if(_0x4d9d98==='python')return _0x5cf2ac[_0x528f70(0xec)]||_0x5cf2ac[_0x528f70(0x92)];return![];}[a0_0x438a33(0xba)](_0xbc3544){const _0xb71bd=a0_0x438a33;return _0xbc3544[_0xb71bd(0xb1)](_0x56d225=>({'file':_0x56d225['file'],'line':_0x56d225['line']||0x1,'column':_0x56d225[_0xb71bd(0xb9)]||0x1,'severity':_0x56d225['severity']||STATIC_ANALYSIS['SEVERITY']['WARNING'],'rule':_0x56d225['rule']||'unknown','message':_0x56d225['message']||_0xb71bd(0xca),'category':'security','scanner':_0x56d225[_0xb71bd(0xbf)],'cwe':_0x56d225['cwe']||null,'owasp':_0x56d225[_0xb71bd(0x96)]||null,'confidence':_0x56d225[_0xb71bd(0xb4)]||null,'fixable':_0x56d225[_0xb71bd(0x105)]||![],'remediation':_0x56d225['remediation']||_0x56d225['moreInfo']||null,'references':_0x56d225[_0xb71bd(0xcf)]||[],'package':_0x56d225['package']||null}));}['mapSemgrepSeverity'](_0x18a42e){const _0x1312a0=a0_0x438a33,_0x5ee822={'ERROR':STATIC_ANALYSIS['SEVERITY']['CRITICAL'],'WARNING':STATIC_ANALYSIS[_0x1312a0(0x9c)][_0x1312a0(0x91)],'INFO':STATIC_ANALYSIS[_0x1312a0(0x9c)]['WARNING']};return _0x5ee822[_0x18a42e?.[_0x1312a0(0x103)]()]||STATIC_ANALYSIS['SEVERITY'][_0x1312a0(0xad)];}[a0_0x438a33(0xd4)](_0x418e0f){const _0x33f746=a0_0x438a33,_0x3eefa3={'HIGH':STATIC_ANALYSIS['SEVERITY'][_0x33f746(0xd9)],'MEDIUM':STATIC_ANALYSIS['SEVERITY'][_0x33f746(0x91)],'LOW':STATIC_ANALYSIS['SEVERITY'][_0x33f746(0xad)]};return _0x3eefa3[_0x418e0f?.[_0x33f746(0x103)]()]||STATIC_ANALYSIS[_0x33f746(0x9c)]['WARNING'];}[a0_0x438a33(0xaa)](_0x133e28){const _0x58a04f=a0_0x438a33;return _0x133e28===0x2?STATIC_ANALYSIS[_0x58a04f(0x9c)]['ERROR']:STATIC_ANALYSIS['SEVERITY']['WARNING'];}[a0_0x438a33(0xb7)](_0xb88aa){const _0x44ca11=a0_0x438a33,_0x471a92={'critical':STATIC_ANALYSIS[_0x44ca11(0x9c)]['CRITICAL'],'high':STATIC_ANALYSIS['SEVERITY'][_0x44ca11(0xd9)],'moderate':STATIC_ANALYSIS[_0x44ca11(0x9c)]['ERROR'],'low':STATIC_ANALYSIS['SEVERITY'][_0x44ca11(0xad)],'info':STATIC_ANALYSIS[_0x44ca11(0x9c)][_0x44ca11(0xd8)]};return _0x471a92[_0xb88aa?.[_0x44ca11(0x9e)]()]||STATIC_ANALYSIS['SEVERITY']['WARNING'];}[a0_0x438a33(0xa3)](_0x4ee92d){const _0x11140f=a0_0x438a33;if(!_0x4ee92d)return STATIC_ANALYSIS['SEVERITY'][_0x11140f(0x91)];const _0x4e6357={'critical':STATIC_ANALYSIS[_0x11140f(0x9c)]['CRITICAL'],'high':STATIC_ANALYSIS['SEVERITY'][_0x11140f(0xd9)],'medium':STATIC_ANALYSIS['SEVERITY']['ERROR'],'low':STATIC_ANALYSIS['SEVERITY']['WARNING']};return _0x4e6357[_0x4ee92d?.[_0x11140f(0x9e)]()]||STATIC_ANALYSIS['SEVERITY'][_0x11140f(0x91)];}async['getScannerStatus'](){const _0x50aab7=await this['detectAvailableScanners']();return{'scanners':_0x50aab7,'recommendations':this['getInstallRecommendations'](_0x50aab7)};}[a0_0x438a33(0xf3)](_0x59a9be){const _0x3d0407=a0_0x438a33,_0x2efa3f=[];return!_0x59a9be[_0x3d0407(0x92)]&&_0x2efa3f[_0x3d0407(0xc6)]({'scanner':_0x3d0407(0xc0),'reason':'Multi-language\x20SAST\x20with\x20extensive\x20security\x20rules','install':'pip\x20install\x20semgrep\x20OR\x20use\x20Docker:\x20docker\x20pull\x20returntocorp/semgrep','priority':'high'}),!_0x59a9be[_0x3d0407(0xec)]&&_0x2efa3f[_0x3d0407(0xc6)]({'scanner':_0x3d0407(0x83),'reason':_0x3d0407(0x9b),'install':_0x3d0407(0xfd),'priority':'medium'}),!_0x59a9be['eslintSecurity']&&_0x2efa3f[_0x3d0407(0xc6)]({'scanner':'eslint-plugin-security','reason':'JavaScript/TypeScript\x20security\x20rules','install':_0x3d0407(0x85),'priority':_0x3d0407(0xfe)}),!_0x59a9be[_0x3d0407(0xbd)]&&_0x2efa3f[_0x3d0407(0xc6)]({'scanner':'pip-audit','reason':_0x3d0407(0xe3),'install':'pip\x20install\x20pip-audit','priority':_0x3d0407(0xa1)}),_0x2efa3f;}}function a0_0x2627(){const _0x2b1b69=['Dg9vChbLCKnHC2u','qMfUzgL0ihnJyw5UzxiGzgv0zwn0zwq','zML4ywjSzq','zML4qxzHAwXHyMXL','zgLYBMfTzq','DxjS','BgLUzq','CgX1z2LUoNnLy3vYAxr5l3jLy29TBwvUzgvK','y2HLy2TFAwq','zxH0CMe','odG5ndCYyvfNzwjg','BNbTlwf1zgL0','rMfPBgvKihrVihbHCNnLig5WBsbHDwrPDcbVDxrWDxq','qMfUzgL0','Cgf0Aa','BNbTigLUC3rHBgWGls1ZyxzLlwrLDIbLC2XPBNqTCgX1z2LUlxnLy3vYAxr5','ntrMs1HIqK4','DNvSBNm','CgfYC2vtzw1NCMvWuMvZDwX0CW','CgfYC2voCg1bDwrPDfjLC3vSDhm','BNbTqxvKAxq','qMfUzgL0ig5VDcbHDMfPBgfIBgu','yMfUzgL0ic1MigPZB24GiG','zxH0BMfTzq','ndi0mJu2DLnpEuvV','tM8GCgfJA2fNzs5QC29UigzVDw5KlcbZA2LWCgLUzYbUCg0GyxvKAxq','C29Tzq','rvjst1i','C2vTz3jLCa','C3rKB3v0','C2nHBM5LCKnHy2HL','AM9PBG','B3DHC3a','ngrrAeTOwa','DMLH','BwvZC2fNzq','Bwv0ywrHDge','uhL0Ag9UihnLy3vYAxr5ihnJyw5Uzxi','u0vwrvjjvfK','AgfZu2nHBM5LCNngB3jmyw5NDwfNzq','Dg9mB3DLCKnHC2u','mtGXndq2nwDSr0P1CG','rMfPBgvKihrVihbHCNnLifnLBwDYzxaGB3v0Chv0','Bg93','AMf2yxnJCMLWDa','BwfWugLWqxvKAxrtzxzLCML0Eq','qxzHAwXHyMXL','Bg9Nz2vY','otiYndK2neDUvg9Rra','AxnZDwvFC2v2zxjPDhK','CgfYC2vcyw5KAxrszxn1BhrZ','zxjYB3i','BwfWrvnmAw50u2v2zxjPDhK','u2TPChbPBMCGDgvZDcbMAwXLigzVCIbZzwn1CML0EsbZy2fU','rMfPBgvKihrVihbHCNnLihbPCc1HDwrPDcbVDxrWDxq','v0fstKLorW','BgLUzxm','u2vTz3jLCcbZy2fUBMvYigrLDgvJDgvKicHZExn0zw0P','C2TPCfrLC3rgAwXLCW','BwfW','ywXPyxnLCW','C2vJDxjPDhK','y29UzMLKzw5Jzq','BNbTigf1zgL0ic0TANnVBG','tM8GC2vJDxjPDhKGC2nHBM5LCNmGyxzHAwXHyMXLigzVCIbSyw5NDwfNzq','BwfWtNbTu2v2zxjPDhK','y3DL','y29SDw1U','BM9YBwfSAxPLuMvZDwX0CW','C2vTz3jLCcaTlwnVBMzPzZ1HDxrVic0TANnVBIaI','ywr2AxnVCNK','CgLWqxvKAxq','CMvZDwX0CW','C2nHBM5LCG','u2vTz3jLCa','yxzHAwXHyMXLu2nHBM5LCNm','CgLWlwf1zgL0igrLDgvJDgvK','CgLWlwf1zgL0ic0TDMvYC2LVBG','yMfUzgL0ic0TDMvYC2LVBG','Bg9JywXty2fUBMvYrgLY','ChvZAa','CgLWlwf1zgL0ic0TzM9YBwf0igPZB24','BgLUDfrLEhq','zxnSAw50lxnLy3vYAxr5','u2vJDxjPDhKGAxnZDwuGzgv0zwn0zwq','C3rHCNq','zxnSAw50lxbSDwDPBI1Zzwn1CML0EsbUB3qGyxzHAwXHyMXL','AxnbCNjHEq','CgfYC2u','CMvMzxjLBMnLCW','rMfPBgvKihrVihbHCNnLiejHBMrPDcbVDxrWDxq','CMvXDwLYzw1LBNrZlNr4Da','CgfJA2fNzs5QC29U','zgv0zwn0tgfUz3vHz2u','BwfWqMfUzgL0u2v2zxjPDhK','y3zZCW','C2v2zxjPDhK','CgfYC2vqAxbbDwrPDfjLC3vSDhm','su5gtW','q1jjveLdquW','C2vJDxjPDhKV','q1Dflq','y3DK','ChL0Ag9U','DMvYC2LVBG','ywnJzxnZ','Bgf0zxn0','u2vTz3jLCcbUB3qGyxzHAwXHyMXL','CNvUugLWqxvKAxq','uhL0Ag9UigrLCgvUzgvUy3KGDNvSBMvYywjPBgL0EsbZy2fUBMvY','BgvUz3rO','AxnZDwvFy3DL','mtKZnJC5mLHHyvPXtG','CNvUqMfUzgL0','zgvWzw5Kzw5JAwvZ','nJi0mdy5t21hvLrP','qMfUzgL0ihnJyw4GzMfPBgvK','Axnuzxn0rMLSzq','yMfUzgL0','Bw9Yzv9PBMzV','BMfTzq','nJmYmZqZDMjzz0Tt','C291CMnL','DhLWzxnJCMLWDa','CgfYC2vfu0XPBNrszxn1BhrZ','z2v0sw5ZDgfSBfjLy29TBwvUzgf0Aw9UCW','CMfUz2u','CNvUtNbTqxvKAxq','zgvZy3jPChrPB24','BwvZC2fNzxm','u2vTz3jLCcbZy2fUigzHAwXLza','CNvSzuLK','D2fYBG','AxnZDwvFDgv4Da','zgvIDwC','CgLWigLUC3rHBgWGyMfUzgL0','BwvKAxvT','DgvZDa','tM8GCMvXDwLYzw1LBNrZlNr4DcbMB3vUzcWGC2TPChbPBMCGCgLWlwf1zgL0','zw50CMLLCW','tM9Uzq'];a0_0x2627=function(){return _0x2b1b69;};return a0_0x2627();}export default SecurityAnalyzer;
|
|
1
|
+
const a0_0x3449c6=a0_0x548f;function a0_0x548f(_0x2ee8cf,_0x5cea74){_0x2ee8cf=_0x2ee8cf-0x1c3;const _0x1baabc=a0_0x1baa();let _0x548f53=_0x1baabc[_0x2ee8cf];if(a0_0x548f['AnKDLF']===undefined){var _0x97b8f8=function(_0x1e4e4a){const _0x1d4722='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2a2b22='',_0x1703e6='';for(let _0x2266d2=0x0,_0x342183,_0x582b4c,_0x5a818e=0x0;_0x582b4c=_0x1e4e4a['charAt'](_0x5a818e++);~_0x582b4c&&(_0x342183=_0x2266d2%0x4?_0x342183*0x40+_0x582b4c:_0x582b4c,_0x2266d2++%0x4)?_0x2a2b22+=String['fromCharCode'](0xff&_0x342183>>(-0x2*_0x2266d2&0x6)):0x0){_0x582b4c=_0x1d4722['indexOf'](_0x582b4c);}for(let _0x33b7ea=0x0,_0x2c5a46=_0x2a2b22['length'];_0x33b7ea<_0x2c5a46;_0x33b7ea++){_0x1703e6+='%'+('00'+_0x2a2b22['charCodeAt'](_0x33b7ea)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1703e6);};a0_0x548f['crXaXB']=_0x97b8f8,a0_0x548f['IqDdqu']={},a0_0x548f['AnKDLF']=!![];}const _0x31ab0f=_0x1baabc[0x0],_0x4a85c9=_0x2ee8cf+_0x31ab0f,_0x404d98=a0_0x548f['IqDdqu'][_0x4a85c9];return!_0x404d98?(_0x548f53=a0_0x548f['crXaXB'](_0x548f53),a0_0x548f['IqDdqu'][_0x4a85c9]=_0x548f53):_0x548f53=_0x404d98,_0x548f53;}(function(_0x22b6b7,_0x538466){const _0x18b54a=a0_0x548f,_0x3cc589=_0x22b6b7();while(!![]){try{const _0x5a5f78=parseInt(_0x18b54a(0x204))/0x1+-parseInt(_0x18b54a(0x222))/0x2+-parseInt(_0x18b54a(0x21c))/0x3+-parseInt(_0x18b54a(0x1ef))/0x4+-parseInt(_0x18b54a(0x1cb))/0x5*(-parseInt(_0x18b54a(0x221))/0x6)+-parseInt(_0x18b54a(0x213))/0x7*(parseInt(_0x18b54a(0x1f2))/0x8)+parseInt(_0x18b54a(0x1cc))/0x9*(parseInt(_0x18b54a(0x212))/0xa);if(_0x5a5f78===_0x538466)break;else _0x3cc589['push'](_0x3cc589['shift']());}catch(_0x3360ed){_0x3cc589['push'](_0x3cc589['shift']());}}}(a0_0x1baa,0x434a0));import{exec}from'child_process';import{promisify}from'util';import a0_0x2a2b22 from'path';import a0_0x1703e6 from'fs/promises';import{STATIC_ANALYSIS}from'../utilities/constants.js';const execAsync=promisify(exec);class SecurityAnalyzer{constructor(_0x2266d2=null){const _0x4511bd=a0_0x548f;this['logger']=_0x2266d2,this[_0x4511bd(0x1ed)]=null,this['scannerCache']=new Map(),this['localScannerDir']=a0_0x2a2b22['join'](process[_0x4511bd(0x241)](),_0x4511bd(0x1e7),_0x4511bd(0x1da));}async['detectAvailableScanners'](){const _0x3e277e=a0_0x548f;if(this[_0x3e277e(0x1ed)]!==null)return this['availableScanners'];const _0x342183={'semgrep':![],'bandit':![],'npmAudit':![],'pipAudit':![],'eslintSecurity':![]};try{const _0x582b4c=a0_0x2a2b22[_0x3e277e(0x1d9)](this[_0x3e277e(0x231)],'semgrep');try{await a0_0x1703e6[_0x3e277e(0x1ff)](_0x582b4c),_0x342183['semgrep']=!![],this[_0x3e277e(0x21d)]?.['debug'](_0x3e277e(0x220));}catch{await execAsync('semgrep\x20--version',{'timeout':0x1388}),_0x342183['semgrep']=!![],this[_0x3e277e(0x21d)]?.[_0x3e277e(0x1d5)]('Semgrep\x20scanner\x20detected\x20(system)');}}catch(_0x5a818e){this[_0x3e277e(0x21d)]?.['debug'](_0x3e277e(0x1c5),{'error':_0x5a818e[_0x3e277e(0x1fc)]});}try{await execAsync(_0x3e277e(0x1d1),{'timeout':0x1388}),_0x342183['bandit']=!![],this['logger']?.['debug'](_0x3e277e(0x214));}catch(_0x33b7ea){this['logger']?.['debug'](_0x3e277e(0x232),{'error':_0x33b7ea['message']});}try{await execAsync('npm\x20--version',{'timeout':0x1388}),_0x342183[_0x3e277e(0x20d)]=!![],this[_0x3e277e(0x21d)]?.['debug']('npm\x20audit\x20available');}catch(_0x2c5a46){this['logger']?.['debug']('npm\x20not\x20available',{'error':_0x2c5a46['message']});}try{await execAsync('pip-audit\x20--version',{'timeout':0x1388}),_0x342183[_0x3e277e(0x1e2)]=!![],this[_0x3e277e(0x21d)]?.['debug'](_0x3e277e(0x1e1));}catch(_0x5c9b50){this['logger']?.['debug']('pip-audit\x20not\x20available',{'error':_0x5c9b50[_0x3e277e(0x1fc)]});}try{const _0x47ba16=await execAsync(_0x3e277e(0x1f4),{'timeout':0x1388,'cwd':process[_0x3e277e(0x241)]()}),_0x28cd27=JSON[_0x3e277e(0x22c)](_0x47ba16['stdout']);_0x28cd27['dependencies']&&_0x28cd27['dependencies'][_0x3e277e(0x226)]&&(_0x342183[_0x3e277e(0x234)]=!![],this['logger']?.[_0x3e277e(0x1d5)]('eslint-plugin-security\x20detected'));}catch(_0x57bda1){this['logger']?.['debug'](_0x3e277e(0x239),{'error':_0x57bda1[_0x3e277e(0x1fc)]});}return this['availableScanners']=_0x342183,_0x342183;}async[a0_0x3449c6(0x215)](_0x45dd40,_0x38592f,_0x578ef3={}){const _0x4dd4ae=a0_0x3449c6,_0x2b0d4b=[],_0x4bdd2c=await this['detectAvailableScanners'](),_0x20824f=this[_0x4dd4ae(0x1d7)](_0x45dd40);if(_0x578ef3['skipTestFiles']!==![]&&this[_0x4dd4ae(0x210)](_0x45dd40))return this['logger']?.['debug']('Skipping\x20test\x20file\x20for\x20security\x20scan',{'filePath':_0x45dd40}),[];if(_0x20824f==='javascript'||_0x20824f===_0x4dd4ae(0x203)){if(_0x4bdd2c['semgrep']){const _0x249edf=await this[_0x4dd4ae(0x233)](_0x45dd40,[_0x20824f],_0x578ef3);_0x2b0d4b[_0x4dd4ae(0x229)](..._0x249edf);}if(_0x4bdd2c['eslintSecurity']){const _0x10fbf6=await this[_0x4dd4ae(0x205)](_0x45dd40,_0x38592f,_0x578ef3);_0x2b0d4b['push'](..._0x10fbf6);}}if(_0x20824f===_0x4dd4ae(0x1e3)){if(_0x4bdd2c[_0x4dd4ae(0x22e)]){const _0x18d58e=await this[_0x4dd4ae(0x1cd)](_0x45dd40,_0x578ef3);_0x2b0d4b[_0x4dd4ae(0x229)](..._0x18d58e);}if(_0x4bdd2c['semgrep']){const _0x5a84d0=await this[_0x4dd4ae(0x233)](_0x45dd40,[_0x20824f],_0x578ef3);_0x2b0d4b['push'](..._0x5a84d0);}}return _0x2b0d4b[_0x4dd4ae(0x1cf)]===0x0&&!this['hasScannersForLanguage'](_0x4bdd2c,_0x20824f)&&this['logger']?.['warn']('No\x20security\x20scanners\x20available\x20for\x20language',{'language':_0x20824f,'filePath':_0x45dd40}),this['normalizeResults'](_0x2b0d4b);}async[a0_0x3449c6(0x20b)](_0x32e8e3,_0x2d4e84,_0x2af951={}){const _0x371188=a0_0x3449c6,_0x25dd61=[],_0x43a1d0=await this['detectAvailableScanners']();if(_0x2d4e84==='javascript'||_0x2d4e84==='typescript'){if(_0x43a1d0[_0x371188(0x20d)]){const _0x3c5e1e=await this[_0x371188(0x22b)](_0x32e8e3,_0x2af951);_0x25dd61[_0x371188(0x229)](..._0x3c5e1e);}}if(_0x2d4e84==='python'){if(_0x43a1d0['pipAudit']){const _0x351588=await this['runPipAudit'](_0x32e8e3,_0x2af951);_0x25dd61['push'](..._0x351588);}}return this[_0x371188(0x21e)](_0x25dd61);}async[a0_0x3449c6(0x233)](_0x58fea9,_0x44881a,_0x120282={}){const _0x594a4d=a0_0x3449c6;try{const _0x3b6980=a0_0x2a2b22['dirname'](_0x58fea9),_0x3a26d2=await execAsync('semgrep\x20--config=auto\x20--json\x20\x22'+_0x58fea9+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530,'cwd':_0x3b6980}),_0x1f1fe8=JSON[_0x594a4d(0x22c)](_0x3a26d2[_0x594a4d(0x209)]);return this[_0x594a4d(0x23b)](_0x1f1fe8);}catch(_0x1725fd){if(_0x1725fd['stdout'])try{const _0x3a3589=JSON[_0x594a4d(0x22c)](_0x1725fd[_0x594a4d(0x209)]);return this['parseSemgrepResults'](_0x3a3589);}catch(_0x4056bd){this['logger']?.['error']('Failed\x20to\x20parse\x20Semgrep\x20output',{'error':_0x4056bd[_0x594a4d(0x1fc)],'stdout':_0x1725fd[_0x594a4d(0x209)]});}return this['logger']?.['error']('Semgrep\x20scan\x20failed',{'error':_0x1725fd[_0x594a4d(0x1fc)]}),[];}}[a0_0x3449c6(0x23b)](_0x33d1f0){const _0x6b1989=a0_0x3449c6,_0x255ac6=[];if(_0x33d1f0[_0x6b1989(0x228)]&&Array[_0x6b1989(0x1f5)](_0x33d1f0['results']))for(const _0x88bdc6 of _0x33d1f0[_0x6b1989(0x228)]){_0x255ac6[_0x6b1989(0x229)]({'file':_0x88bdc6['path'],'line':_0x88bdc6[_0x6b1989(0x1fe)]?.[_0x6b1989(0x1d0)]||0x1,'column':_0x88bdc6['start']?.['col']||0x1,'severity':this[_0x6b1989(0x202)](_0x88bdc6[_0x6b1989(0x1c4)]?.['severity']),'rule':_0x88bdc6['check_id'],'message':_0x88bdc6['extra']?.['message']||_0x88bdc6['extra']?.[_0x6b1989(0x236)]||_0x6b1989(0x1f7),'category':'security','scanner':'semgrep','cwe':_0x88bdc6[_0x6b1989(0x1c4)]?.[_0x6b1989(0x1ee)]?.[_0x6b1989(0x211)],'owasp':_0x88bdc6[_0x6b1989(0x1c4)]?.[_0x6b1989(0x1ee)]?.[_0x6b1989(0x1e6)],'confidence':_0x88bdc6[_0x6b1989(0x1c4)]?.[_0x6b1989(0x1ee)]?.['confidence'],'references':_0x88bdc6[_0x6b1989(0x1c4)]?.[_0x6b1989(0x1ee)]?.[_0x6b1989(0x238)]});}return _0x255ac6;}async['runBandit'](_0x27c0ff,_0x574f79={}){const _0x91712a=a0_0x3449c6;try{const _0x1ff5e4=await execAsync('bandit\x20-f\x20json\x20\x22'+_0x27c0ff+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530}),_0x4e79fc=JSON[_0x91712a(0x22c)](_0x1ff5e4[_0x91712a(0x209)]);return this[_0x91712a(0x20c)](_0x4e79fc);}catch(_0x13846e){if(_0x13846e['stdout'])try{const _0x46ce85=JSON[_0x91712a(0x22c)](_0x13846e['stdout']);return this['parseBanditResults'](_0x46ce85);}catch(_0x57fb52){this[_0x91712a(0x21d)]?.['error']('Failed\x20to\x20parse\x20Bandit\x20output',{'error':_0x57fb52[_0x91712a(0x1fc)]});}return this[_0x91712a(0x21d)]?.[_0x91712a(0x21f)](_0x91712a(0x23d),{'error':_0x13846e[_0x91712a(0x1fc)]}),[];}}[a0_0x3449c6(0x20c)](_0x10a9bb){const _0x2c939a=a0_0x3449c6,_0x382b7b=[];if(_0x10a9bb['results']&&Array[_0x2c939a(0x1f5)](_0x10a9bb['results']))for(const _0x15906c of _0x10a9bb[_0x2c939a(0x228)]){_0x382b7b['push']({'file':_0x15906c[_0x2c939a(0x1f0)],'line':_0x15906c[_0x2c939a(0x216)]||0x1,'column':_0x15906c['col_offset']||0x1,'severity':this['mapBanditSeverity'](_0x15906c[_0x2c939a(0x1fd)]),'rule':_0x15906c['test_id'],'message':_0x15906c[_0x2c939a(0x1dd)],'category':'security','scanner':_0x2c939a(0x22e),'cwe':_0x15906c['issue_cwe']?.['id']?'CWE-'+_0x15906c[_0x2c939a(0x1c8)]['id']:null,'confidence':_0x15906c['issue_confidence'],'moreInfo':_0x15906c[_0x2c939a(0x1ca)]});}return _0x382b7b;}async[a0_0x3449c6(0x205)](_0xa3603d,_0x331f77,_0x108651={}){const _0x3b5de6=a0_0x3449c6;try{const {ESLint:_0xac55f3}=await import(_0x3b5de6(0x20f)),_0x3152cf=new _0xac55f3({'overrideConfig':{'plugins':[_0x3b5de6(0x201)],'extends':[_0x3b5de6(0x1d8)],'parserOptions':{'ecmaVersion':_0x3b5de6(0x21b),'sourceType':'module'}},'useEslintrc':![]}),_0xac0e4e=await _0x3152cf['lintText'](_0x331f77,{'filePath':_0xa3603d});return this[_0x3b5de6(0x1de)](_0xac0e4e,_0xa3603d);}catch(_0x5e0e0b){return this[_0x3b5de6(0x21d)]?.[_0x3b5de6(0x21f)]('ESLint\x20security\x20scan\x20failed',{'error':_0x5e0e0b['message'],'filePath':_0xa3603d}),[];}}[a0_0x3449c6(0x1de)](_0x53fad1,_0xbcd899){const _0x108f6f=a0_0x3449c6,_0x3862d9=[];for(const _0x3a8fcc of _0x53fad1){if(_0x3a8fcc[_0x108f6f(0x223)]&&Array['isArray'](_0x3a8fcc['messages']))for(const _0x354524 of _0x3a8fcc[_0x108f6f(0x223)]){_0x354524['ruleId']&&_0x354524[_0x108f6f(0x1df)][_0x108f6f(0x1fa)]('security/')&&_0x3862d9[_0x108f6f(0x229)]({'file':_0xbcd899,'line':_0x354524['line']||0x1,'column':_0x354524['column']||0x1,'severity':this[_0x108f6f(0x1dc)](_0x354524[_0x108f6f(0x1ce)]),'rule':_0x354524[_0x108f6f(0x1df)],'message':_0x354524[_0x108f6f(0x1fc)],'category':'security','scanner':_0x108f6f(0x1e8),'fixable':_0x354524['fix']!==undefined});}}return _0x3862d9;}async[a0_0x3449c6(0x22b)](_0x5cd965,_0x12c57e={}){const _0x3e88f1=a0_0x3449c6;try{const _0x22004b=a0_0x2a2b22['join'](_0x5cd965,_0x3e88f1(0x1c9));try{await a0_0x1703e6['access'](_0x22004b);}catch{return this['logger']?.['debug'](_0x3e88f1(0x219)),[];}const _0xf8f0a4=await execAsync('npm\x20audit\x20--json',{'cwd':_0x5cd965,'maxBuffer':0xa*0x400*0x400,'timeout':0xea60}),_0x56937a=JSON[_0x3e88f1(0x22c)](_0xf8f0a4['stdout']);return this['parseNpmAuditResults'](_0x56937a);}catch(_0x282221){if(_0x282221['stdout'])try{const _0x14ddf7=JSON[_0x3e88f1(0x22c)](_0x282221['stdout']);return this[_0x3e88f1(0x1c7)](_0x14ddf7);}catch(_0x1c908c){this[_0x3e88f1(0x21d)]?.[_0x3e88f1(0x21f)]('Failed\x20to\x20parse\x20npm\x20audit\x20output',{'error':_0x1c908c['message']});}return[];}}['parseNpmAuditResults'](_0x549703){const _0x2a8265=a0_0x3449c6,_0x32c376=[];if(_0x549703[_0x2a8265(0x1f3)])for(const [_0xecdd5,_0x4b28c8]of Object[_0x2a8265(0x225)](_0x549703['vulnerabilities'])){_0x32c376['push']({'file':'package.json','line':0x1,'column':0x1,'severity':this[_0x2a8265(0x20e)](_0x4b28c8['severity']),'rule':_0x2a8265(0x1e4)+(_0x4b28c8[_0x2a8265(0x22f)][0x0]?.[_0x2a8265(0x1f1)]||'advisory'),'message':_0xecdd5+':\x20'+(_0x4b28c8['via'][0x0]?.[_0x2a8265(0x23a)]||_0x2a8265(0x1d2)),'category':_0x2a8265(0x201),'scanner':'npm-audit','package':_0xecdd5,'vulnerableVersions':_0x4b28c8[_0x2a8265(0x22a)],'patchedVersions':_0x4b28c8[_0x2a8265(0x1f9)]?_0x2a8265(0x217):'None','cve':_0x4b28c8['via'][0x0]?.['cve'],'cvss':_0x4b28c8['via'][0x0]?.['cvss'],'references':_0x4b28c8[_0x2a8265(0x22f)][0x0]?.['url']?[_0x4b28c8[_0x2a8265(0x22f)][0x0]['url']]:[]});}return _0x32c376;}async['runPipAudit'](_0xa69761,_0xf1bf07={}){const _0x1015e7=a0_0x3449c6;try{const requirementsPath=a0_0x2a2b22['join'](_0xa69761,'requirements.txt');try{await a0_0x1703e6['access'](requirementsPath);}catch{return this[_0x1015e7(0x21d)]?.['debug'](_0x1015e7(0x206)),[];}const _0x5f562d=await execAsync(_0x1015e7(0x1eb),{'cwd':_0xa69761,'maxBuffer':0xa*0x400*0x400,'timeout':0xea60}),_0x2ce39f=JSON[_0x1015e7(0x22c)](_0x5f562d['stdout']);return this['parsePipAuditResults'](_0x2ce39f);}catch(_0x26fbfa){if(_0x26fbfa['stdout'])try{const _0x147798=JSON[_0x1015e7(0x22c)](_0x26fbfa[_0x1015e7(0x209)]);return this[_0x1015e7(0x23f)](_0x147798);}catch(_0x4cdbab){this[_0x1015e7(0x21d)]?.['error']('Failed\x20to\x20parse\x20pip-audit\x20output',{'error':_0x4cdbab['message']});}return[];}}[a0_0x3449c6(0x23f)](_0x5d37ee){const _0x29f8f5=a0_0x3449c6,_0x52021e=[];if(_0x5d37ee['dependencies']&&Array['isArray'](_0x5d37ee[_0x29f8f5(0x218)]))for(const _0x2c5904 of _0x5d37ee['dependencies']){if(_0x2c5904[_0x29f8f5(0x1c3)]&&Array[_0x29f8f5(0x1f5)](_0x2c5904[_0x29f8f5(0x1c3)]))for(const _0x373d05 of _0x2c5904['vulns']){_0x52021e[_0x29f8f5(0x229)]({'file':_0x29f8f5(0x1ec),'line':0x1,'column':0x1,'severity':this[_0x29f8f5(0x23c)](_0x373d05['severity']),'rule':_0x373d05['id'],'message':_0x2c5904[_0x29f8f5(0x227)]+':\x20'+(_0x373d05['description']||_0x29f8f5(0x1d2)),'category':'security','scanner':_0x29f8f5(0x1c6),'package':_0x2c5904[_0x29f8f5(0x227)],'vulnerableVersion':_0x2c5904['version'],'fixedVersions':_0x373d05['fix_versions'],'references':_0x373d05[_0x29f8f5(0x1f8)]||[]});}}return _0x52021e;}['detectLanguage'](_0x3df64d){const _0x5cf117=a0_0x3449c6,_0x523c06=a0_0x2a2b22[_0x5cf117(0x20a)](_0x3df64d)[_0x5cf117(0x1db)](),_0x19cd09={'.js':_0x5cf117(0x1e5),'.jsx':_0x5cf117(0x1e5),'.mjs':_0x5cf117(0x1e5),'.cjs':_0x5cf117(0x1e5),'.ts':'typescript','.tsx':'typescript','.py':_0x5cf117(0x1e3)};return _0x19cd09[_0x523c06]||null;}[a0_0x3449c6(0x210)](_0x3ef910){const _0x4c1f55=a0_0x3449c6,_0x538b78=[/\.test\./,/\.spec\./,/__tests__\//,/\/tests?\//,/\.test$/,/\.spec$/];return _0x538b78[_0x4c1f55(0x1e0)](_0x57656c=>_0x57656c['test'](_0x3ef910));}[a0_0x3449c6(0x235)](_0x46a147,_0x89492f){const _0x26af6f=a0_0x3449c6;if(_0x89492f==='javascript'||_0x89492f===_0x26af6f(0x203))return _0x46a147[_0x26af6f(0x1d4)]||_0x46a147[_0x26af6f(0x234)];if(_0x89492f==='python')return _0x46a147['bandit']||_0x46a147[_0x26af6f(0x1d4)];return![];}['normalizeResults'](_0x416389){const _0x519d71=a0_0x3449c6;return _0x416389['map'](_0x38201c=>({'file':_0x38201c['file'],'line':_0x38201c['line']||0x1,'column':_0x38201c['column']||0x1,'severity':_0x38201c['severity']||STATIC_ANALYSIS[_0x519d71(0x22d)]['WARNING'],'rule':_0x38201c[_0x519d71(0x23e)]||'unknown','message':_0x38201c['message']||'Security\x20issue\x20detected','category':'security','scanner':_0x38201c['scanner'],'cwe':_0x38201c[_0x519d71(0x211)]||null,'owasp':_0x38201c['owasp']||null,'confidence':_0x38201c['confidence']||null,'fixable':_0x38201c[_0x519d71(0x1fb)]||![],'remediation':_0x38201c['remediation']||_0x38201c[_0x519d71(0x208)]||null,'references':_0x38201c['references']||[],'package':_0x38201c['package']||null}));}['mapSemgrepSeverity'](_0x29bd45){const _0x199d70=a0_0x3449c6,_0x6fa4c6={'ERROR':STATIC_ANALYSIS[_0x199d70(0x22d)]['CRITICAL'],'WARNING':STATIC_ANALYSIS['SEVERITY'][_0x199d70(0x1d6)],'INFO':STATIC_ANALYSIS['SEVERITY']['WARNING']};return _0x6fa4c6[_0x29bd45?.['toUpperCase']()]||STATIC_ANALYSIS[_0x199d70(0x22d)][_0x199d70(0x240)];}['mapBanditSeverity'](_0x3ace7b){const _0x4bc80a=a0_0x3449c6,_0x14d60d={'HIGH':STATIC_ANALYSIS[_0x4bc80a(0x22d)][_0x4bc80a(0x200)],'MEDIUM':STATIC_ANALYSIS['SEVERITY']['ERROR'],'LOW':STATIC_ANALYSIS[_0x4bc80a(0x22d)]['WARNING']};return _0x14d60d[_0x3ace7b?.[_0x4bc80a(0x21a)]()]||STATIC_ANALYSIS[_0x4bc80a(0x22d)]['WARNING'];}[a0_0x3449c6(0x1dc)](_0x13b7fd){const _0x2c6cfe=a0_0x3449c6;return _0x13b7fd===0x2?STATIC_ANALYSIS[_0x2c6cfe(0x22d)]['ERROR']:STATIC_ANALYSIS[_0x2c6cfe(0x22d)]['WARNING'];}['mapNpmSeverity'](_0x4507fb){const _0x3dd029=a0_0x3449c6,_0x2d052b={'critical':STATIC_ANALYSIS['SEVERITY']['CRITICAL'],'high':STATIC_ANALYSIS['SEVERITY']['CRITICAL'],'moderate':STATIC_ANALYSIS['SEVERITY'][_0x3dd029(0x1d6)],'low':STATIC_ANALYSIS[_0x3dd029(0x22d)]['WARNING'],'info':STATIC_ANALYSIS[_0x3dd029(0x22d)][_0x3dd029(0x1f6)]};return _0x2d052b[_0x4507fb?.['toLowerCase']()]||STATIC_ANALYSIS[_0x3dd029(0x22d)][_0x3dd029(0x240)];}['mapPipAuditSeverity'](_0x4baf03){const _0x2a6409=a0_0x3449c6;if(!_0x4baf03)return STATIC_ANALYSIS[_0x2a6409(0x22d)]['ERROR'];const _0x177984={'critical':STATIC_ANALYSIS['SEVERITY'][_0x2a6409(0x200)],'high':STATIC_ANALYSIS['SEVERITY']['CRITICAL'],'medium':STATIC_ANALYSIS['SEVERITY'][_0x2a6409(0x1d6)],'low':STATIC_ANALYSIS[_0x2a6409(0x22d)][_0x2a6409(0x240)]};return _0x177984[_0x4baf03?.['toLowerCase']()]||STATIC_ANALYSIS['SEVERITY'][_0x2a6409(0x1d6)];}async['getScannerStatus'](){const _0x5eaa42=await this['detectAvailableScanners']();return{'scanners':_0x5eaa42,'recommendations':this['getInstallRecommendations'](_0x5eaa42)};}['getInstallRecommendations'](_0xcc5829){const _0x4d4e8d=a0_0x3449c6,_0x54144a=[];return!_0xcc5829[_0x4d4e8d(0x1d4)]&&_0x54144a['push']({'scanner':_0x4d4e8d(0x1d3),'reason':'Multi-language\x20SAST\x20with\x20extensive\x20security\x20rules','install':'pip\x20install\x20semgrep\x20OR\x20use\x20Docker:\x20docker\x20pull\x20returntocorp/semgrep','priority':_0x4d4e8d(0x207)}),!_0xcc5829[_0x4d4e8d(0x22e)]&&_0x54144a[_0x4d4e8d(0x229)]({'scanner':'Bandit','reason':'Python\x20security\x20scanner','install':'pip\x20install\x20bandit','priority':'medium'}),!_0xcc5829['eslintSecurity']&&_0x54144a['push']({'scanner':'eslint-plugin-security','reason':_0x4d4e8d(0x237),'install':_0x4d4e8d(0x224),'priority':_0x4d4e8d(0x230)}),!_0xcc5829[_0x4d4e8d(0x1e2)]&&_0x54144a[_0x4d4e8d(0x229)]({'scanner':_0x4d4e8d(0x1c6),'reason':_0x4d4e8d(0x1ea),'install':_0x4d4e8d(0x242),'priority':_0x4d4e8d(0x1e9)}),_0x54144a;}}export default SecurityAnalyzer;function a0_0x1baa(){const _0x488fdf=['qMfUzgL0ig5VDcbHDMfPBgfIBgu','CNvUu2vTz3jLCa','zxnSAw50u2vJDxjPDhK','AgfZu2nHBM5LCNngB3jmyw5NDwfNzq','BgLUzxm','sMf2yvnJCMLWDc9uExbLu2nYAxb0ihnLy3vYAxr5ihj1BgvZ','CMvMzxjLBMnLCW','zxnSAw50lxbSDwDPBI1Zzwn1CML0EsbUB3qGyxzHAwXHyMXL','DgL0Bgu','CgfYC2vtzw1NCMvWuMvZDwX0CW','BwfWugLWqxvKAxrtzxzLCML0Eq','qMfUzgL0ihnJyw4GzMfPBgvK','CNvSzq','CgfYC2vqAxbbDwrPDfjLC3vSDhm','v0fstKLorW','y3DK','CgLWigLUC3rHBgWGCgLWlwf1zgL0','DNvSBNm','zxH0CMe','u2vTz3jLCcbUB3qGyxzHAwXHyMXL','CgLWlwf1zgL0','CgfYC2voCg1bDwrPDfjLC3vSDhm','AxnZDwvFy3DL','CgfJA2fNzs5QC29U','Bw9Yzv9PBMzV','mtq1D1z6z1nL','mtCXAgLwzfv4','CNvUqMfUzgL0','C2v2zxjPDhK','BgvUz3rO','BgLUzq','yMfUzgL0ic0TDMvYC2LVBG','u2vJDxjPDhKGDNvSBMvYywjPBgL0Eq','u2vTz3jLCa','C2vTz3jLCa','zgvIDwC','rvjst1i','zgv0zwn0tgfUz3vHz2u','CgX1z2LUoNnLy3vYAxr5l3jLy29TBwvUzgvK','AM9PBG','lNnJyw5UzxjZ','Dg9mB3DLCKnHC2u','BwfWrvnmAw50u2v2zxjPDhK','AxnZDwvFDgv4Da','CgfYC2vfu0XPBNrszxn1BhrZ','CNvSzuLK','C29Tzq','CgLWlwf1zgL0igrLDgvJDgvK','CgLWqxvKAxq','ChL0Ag9U','BNbTlq','AMf2yxnJCMLWDa','B3DHC3a','BM9Kzv9TB2r1BgvZ','zxnSAw50lxnLy3vYAxr5','Bg93','uhL0Ag9UigrLCgvUzgvUy3KGDNvSBMvYywjPBgL0EsbZy2fUBMvY','CgLWlwf1zgL0ic0TzM9YBwf0igPZB24','CMvXDwLYzw1LBNrZlNr4Da','yxzHAwXHyMXLu2nHBM5LCNm','Bwv0ywrHDge','mtu3nJuYmhLryu95Ca','zMLSzw5HBwu','C291CMnL','nJe4mZjJzePhzuC','DNvSBMvYywjPBgL0AwvZ','BNbTigXPC3qGzxnSAw50lxbSDwDPBI1Zzwn1CML0EsaTlwrLChrOptaGls1QC29U','AxnbCNjHEq','su5gtW','u2vJDxjPDhKGAxnZDwuGzgv0zwn0zwq','ywXPyxnLCW','zML4qxzHAwXHyMXL','C3rHCNrZv2L0Aa','zML4ywjSzq','BwvZC2fNzq','AxnZDwvFC2v2zxjPDhK','C3rHCNq','ywnJzxnZ','q1jjveLdquW','C2vJDxjPDhK','BwfWu2vTz3jLCfnLDMvYAxr5','DhLWzxnJCMLWDa','ndGWnZC3DM5PAKfW','CNvUrvnmAw50u2vJDxjPDhK','tM8GCMvXDwLYzw1LBNrZlNr4DcbMB3vUzcWGC2TPChbPBMCGCgLWlwf1zgL0','AgLNAa','Bw9YzuLUzM8','C3rKB3v0','zxH0BMfTzq','yw5HBhL6zvbYB2PLy3q','CgfYC2vcyw5KAxrszxn1BhrZ','BNbTqxvKAxq','BwfWtNbTu2v2zxjPDhK','zxnSAw50','Axnuzxn0rMLSzq','y3DL','mZK0ntGWu1jzqMX5','mJm4Eezvzgj5','qMfUzgL0ihnJyw5UzxiGzgv0zwn0zwq','yw5HBhL6zq','BgLUzv9UDw1Izxi','qxzHAwXHyMXL','zgvWzw5Kzw5JAwvZ','tM8GCgfJA2fNzs5QC29UigzVDw5KlcbZA2LWCgLUzYbUCg0GyxvKAxq','Dg9vChbLCKnHC2u','Bgf0zxn0','odmWmJu2C05gy1fP','Bg9Nz2vY','BM9YBwfSAxPLuMvZDwX0CW','zxjYB3i','u2vTz3jLCcbZy2fUBMvYigrLDgvJDgvKicHSB2nHBcK','odK4nZr3CurlsK8','oteXmtCYCeTssLbm','BwvZC2fNzxm','BNbTigLUC3rHBgWGls1ZyxzLlwrLDIbLC2XPBNqTCgX1z2LUlxnLy3vYAxr5','zw50CMLLCW','zxnSAw50lxbSDwDPBI1Zzwn1CML0Eq','BMfTzq','CMvZDwX0CW','ChvZAa','CMfUz2u','CNvUtNbTqxvKAxq','CgfYC2u','u0vwrvjjvfK','yMfUzgL0','DMLH','BwvKAxvT','Bg9JywXty2fUBMvYrgLY'];a0_0x1baa=function(){return _0x488fdf;};return a0_0x1baa();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x293cb5=a0_0x1e5c;(function(_0x55652a,_0x2cc3ad){const _0x3bdc04=a0_0x1e5c,_0x5cf6e9=_0x55652a();while(!![]){try{const _0x25fc8e=parseInt(_0x3bdc04(0xbb))/0x1*(parseInt(_0x3bdc04(0x96))/0x2)+parseInt(_0x3bdc04(0xa8))/0x3*(parseInt(_0x3bdc04(0x9f))/0x4)+parseInt(_0x3bdc04(0xb4))/0x5+parseInt(_0x3bdc04(0xa3))/0x6+-parseInt(_0x3bdc04(0xab))/0x7+-parseInt(_0x3bdc04(0xa1))/0x8+-parseInt(_0x3bdc04(0xae))/0x9*(parseInt(_0x3bdc04(0xb9))/0xa);if(_0x25fc8e===_0x2cc3ad)break;else _0x5cf6e9['push'](_0x5cf6e9['shift']());}catch(_0x441bf4){_0x5cf6e9['push'](_0x5cf6e9['shift']());}}}(a0_0x1519,0xcb51b));import a0_0x142c68 from'typescript';import a0_0xcff81a from'path';function a0_0x1e5c(_0x3f3202,_0x1cdd86){_0x3f3202=_0x3f3202-0x94;const _0x15198e=a0_0x1519();let _0x1e5c0f=_0x15198e[_0x3f3202];if(a0_0x1e5c['vGhzkH']===undefined){var _0x411783=function(_0x20e88a){const _0x43f20c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x142c68='',_0xcff81a='';for(let _0x2918e0=0x0,_0x3d75b7,_0x4f304b,_0x3b9e47=0x0;_0x4f304b=_0x20e88a['charAt'](_0x3b9e47++);~_0x4f304b&&(_0x3d75b7=_0x2918e0%0x4?_0x3d75b7*0x40+_0x4f304b:_0x4f304b,_0x2918e0++%0x4)?_0x142c68+=String['fromCharCode'](0xff&_0x3d75b7>>(-0x2*_0x2918e0&0x6)):0x0){_0x4f304b=_0x43f20c['indexOf'](_0x4f304b);}for(let _0x511ca8=0x0,_0x31f404=_0x142c68['length'];_0x511ca8<_0x31f404;_0x511ca8++){_0xcff81a+='%'+('00'+_0x142c68['charCodeAt'](_0x511ca8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xcff81a);};a0_0x1e5c['OvjFzx']=_0x411783,a0_0x1e5c['VabIhB']={},a0_0x1e5c['vGhzkH']=!![];}const _0x4e6b8e=_0x15198e[0x0],_0xa4a728=_0x3f3202+_0x4e6b8e,_0x271918=a0_0x1e5c['VabIhB'][_0xa4a728];return!_0x271918?(_0x1e5c0f=a0_0x1e5c['OvjFzx'](_0x1e5c0f),a0_0x1e5c['VabIhB'][_0xa4a728]=_0x1e5c0f):_0x1e5c0f=_0x271918,_0x1e5c0f;}import{STATIC_ANALYSIS}from'../utilities/constants.js';function a0_0x1519(){const _0x98c755=['BgLUzq','BgvUz3rO','rxjYB3i','vhLWzvnJCMLWDcbHBMfSExnPCYbJB21WBgv0zwq','mtjHsw1mu0C','y29TCgLSzxjpChrPB25Z','ntm2mdiZmKfmq1jWtq','Aw5JBhvKzxm','mte0mdeXneTrqwvpzq','u2vTyw50AwmGyw5HBhLZAxmGzw5JB3vUDgvYzwqGzxjYB3i','q0furuDpuLK','y2HHCMfJDgvY','tw9KDwXLuMvZB2X1DgLVBKTPBMq','mtyYote1mfnHBNbmuW','rgLHz25VC3rPy0nHDgvNB3j5','zgvIDwC','mJuXmZy1muHWuKn6yW','Bg9Nz2vY','tM9KzuPZ','mtGXnZe5Axrvy0XZ','zMLSzu5HBwu','y2fUBM90igzPBMqGBw9KDwXL','y3jLyxrLu291CMnLrMLSzq','C3rHCNq','zMLSDgvY','mtGWmtyZmgj0tfnKva','u1Lovefy','tw9KDwXLs2LUza','zgLYBMfTzq','C2v2zxjPDhK','ntKWyw5PCNLY','CgfYC2veAwfNBM9ZDgLJCW','otyWmuDdz0DVBq','rvnozxH0','zMLSzq','z2v0u3LUDgfJDgLJrgLHz25VC3rPy3m','y29Kzq','z2v0u2vTyw50AwneAwfNBM9ZDgLJCW','rvjst1i','mtGYuw9Yy216','su5gtW','y2XHC3m','u0vwrvjjvfK','z2v0tgLUzufUzenOyxjHy3rLCK9Mug9ZAxrPB24'];a0_0x1519=function(){return _0x98c755;};return a0_0x1519();}class TypeScriptAnalyzer{constructor(_0x2918e0=null){const _0x90856=a0_0x1e5c;this['logger']=_0x2918e0,this[_0x90856(0xa0)]={'noEmit':!![],'jsx':a0_0x142c68['JsxEmit']['React'],'target':a0_0x142c68['ScriptTarget']['Latest'],'module':a0_0x142c68[_0x90856(0xb6)][_0x90856(0xbc)],'moduleResolution':a0_0x142c68[_0x90856(0xa7)][_0x90856(0xad)],'esModuleInterop':!![],'skipLibCheck':!![],'strict':!![],'noImplicitAny':!![],'strictNullChecks':!![],'strictFunctionTypes':!![],'allowJs':![]};}async['analyze'](_0x3d75b7,_0x4f304b,_0x3b9e47={}){const _0x55b381=a0_0x1e5c;try{const _0x511ca8=[],_0x31f404=a0_0x142c68[_0x55b381(0xb1)](_0x3d75b7,_0x4f304b,a0_0x142c68['ScriptTarget']['Latest'],!![]),_0x3bb075=this[_0x55b381(0xbe)](_0x31f404);_0x511ca8['push'](..._0x3bb075);const _0x2ea54d=await this['getSemanticDiagnostics'](_0x3d75b7,_0x4f304b);return _0x511ca8['push'](..._0x2ea54d),this['logger']?.[_0x55b381(0xaa)](_0x55b381(0x9e),{'file':_0x3d75b7,'totalDiagnostics':_0x511ca8['length'],'errors':_0x511ca8['filter'](_0x1650f5=>_0x1650f5[_0x55b381(0xb8)]===STATIC_ANALYSIS[_0x55b381(0x99)][_0x55b381(0x95)])['length'],'warnings':_0x511ca8[_0x55b381(0xb3)](_0x5679f0=>_0x5679f0[_0x55b381(0xb8)]===STATIC_ANALYSIS['SEVERITY']['WARNING'])[_0x55b381(0x9c)]}),_0x511ca8;}catch(_0x2d9201){return this['logger']?.['error']('TypeScript\x20analysis\x20failed',{'file':_0x3d75b7,'error':_0x2d9201['message']}),[{'file':_0x3d75b7,'line':0x0,'column':0x0,'severity':STATIC_ANALYSIS[_0x55b381(0x99)][_0x55b381(0x95)],'rule':'analyzer-error','message':'Analysis\x20failed:\x20'+_0x2d9201['message'],'category':STATIC_ANALYSIS[_0x55b381(0xa5)]['SYNTAX']}];}}['getSyntacticDiagnostics'](_0x437916){const _0x3ec7d0=a0_0x1e5c,_0x15052e=[];if(_0x437916[_0x3ec7d0(0xba)]&&_0x437916[_0x3ec7d0(0xba)][_0x3ec7d0(0x9c)]>0x0)for(const _0x518a53 of _0x437916['parseDiagnostics']){_0x15052e['push'](this['formatDiagnostic'](_0x518a53,_0x437916));}return _0x15052e;}async[a0_0x293cb5(0x94)](_0x268382,_0x2e28dd){const _0x540d4a=a0_0x293cb5,_0x1249bc=[];try{const _0x220da6=a0_0x142c68['createSourceFile'](_0x268382,_0x2e28dd,a0_0x142c68['ScriptTarget']['Latest'],!![]),_0x3fa4ae={'getSourceFile':_0xcec5e6=>{if(_0xcec5e6===_0x268382)return _0x220da6;return undefined;},'getDefaultLibFileName':()=>'lib.d.ts','writeFile':()=>{},'getCurrentDirectory':()=>a0_0xcff81a[_0x540d4a(0xb7)](_0x268382),'getDirectories':()=>[],'fileExists':_0x5db7b4=>_0x5db7b4===_0x268382,'readFile':_0x4f4ec6=>{if(_0x4f4ec6===_0x268382)return _0x2e28dd;return undefined;},'getCanonicalFileName':_0x2a535c=>_0x2a535c,'useCaseSensitiveFileNames':()=>!![],'getNewLine':()=>'\x0a'},_0x19acb4=a0_0x142c68['createProgram']({'rootNames':[_0x268382],'options':this['compilerOptions'],'host':_0x3fa4ae}),_0xfc26bb=_0x19acb4[_0x540d4a(0xbe)](_0x220da6),_0x53083e=_0x19acb4['getSemanticDiagnostics'](_0x220da6);for(const _0x413e4b of[..._0xfc26bb,..._0x53083e]){_0x1249bc['push'](this['formatDiagnostic'](_0x413e4b,_0x220da6));}}catch(_0x2d5cdd){this[_0x540d4a(0xac)]?.['debug'](_0x540d4a(0xa4),{'file':_0x268382,'error':_0x2d5cdd['message']});}return _0x1249bc;}['formatDiagnostic'](_0x66e82b,_0x1f6cd3){const _0x4f4f99=a0_0x293cb5;let _0x37a67b=0x0,_0x20c0ae=0x0;if(_0x66e82b[_0x4f4f99(0xbd)]&&_0x66e82b[_0x4f4f99(0xb2)]!==undefined){const _0x5b2109=_0x66e82b[_0x4f4f99(0xbd)][_0x4f4f99(0x9a)](_0x66e82b[_0x4f4f99(0xb2)]);_0x37a67b=_0x5b2109['line']+0x1,_0x20c0ae=_0x5b2109['character']+0x1;}else{if(_0x1f6cd3&&_0x66e82b[_0x4f4f99(0xb2)]!==undefined){const _0x3fc93d=_0x1f6cd3['getLineAndCharacterOfPosition'](_0x66e82b['start']);_0x37a67b=_0x3fc93d[_0x4f4f99(0x9b)]+0x1,_0x20c0ae=_0x3fc93d[_0x4f4f99(0xa6)]+0x1;}}const _0x8cd171=a0_0x142c68['flattenDiagnosticMessageText'](_0x66e82b['messageText'],'\x0a');let _0x3e2f9e;switch(_0x66e82b['category']){case a0_0x142c68[_0x4f4f99(0xa9)][_0x4f4f99(0x9d)]:_0x3e2f9e=STATIC_ANALYSIS['SEVERITY'][_0x4f4f99(0x95)];break;case a0_0x142c68['DiagnosticCategory']['Warning']:_0x3e2f9e=STATIC_ANALYSIS['SEVERITY']['WARNING'];break;case a0_0x142c68[_0x4f4f99(0xa9)]['Message']:case a0_0x142c68[_0x4f4f99(0xa9)]['Suggestion']:_0x3e2f9e=STATIC_ANALYSIS['SEVERITY'][_0x4f4f99(0x97)];break;default:_0x3e2f9e=STATIC_ANALYSIS[_0x4f4f99(0x99)][_0x4f4f99(0x95)];}let _0x51c4b3=STATIC_ANALYSIS[_0x4f4f99(0xa5)][_0x4f4f99(0xb5)];const _0x3f1cde=_0x66e82b[_0x4f4f99(0xbf)];if(_0x3f1cde>=0x7d0&&_0x3f1cde<0xbb8)_0x51c4b3=STATIC_ANALYSIS[_0x4f4f99(0xa5)]['TYPE'];else{if(_0x3f1cde>=0x3e8&&_0x3f1cde<0x7d0)_0x51c4b3=STATIC_ANALYSIS['CATEGORY']['SYNTAX'];else _0x3f1cde>=0x8fc&&_0x3f1cde<0x960&&(_0x51c4b3=STATIC_ANALYSIS[_0x4f4f99(0xa5)]['IMPORT']);}const _0x3fed1f=_0x8cd171['toLowerCase']();if(_0x3fed1f[_0x4f4f99(0xa2)](_0x4f4f99(0xb0))||_0x3fed1f['includes']('import')||_0x3fed1f['includes']('export'))_0x51c4b3=STATIC_ANALYSIS['CATEGORY']['IMPORT'];else(_0x3fed1f['includes']('type')||_0x3fed1f['includes']('interface')||_0x3fed1f[_0x4f4f99(0xa2)](_0x4f4f99(0x98)))&&(_0x51c4b3=STATIC_ANALYSIS['CATEGORY']['TYPE']);return{'file':_0x66e82b[_0x4f4f99(0xbd)]?.['fileName']||_0x1f6cd3?.[_0x4f4f99(0xaf)]||'unknown','line':_0x37a67b,'column':_0x20c0ae,'severity':_0x3e2f9e,'rule':'TS'+_0x3f1cde,'message':_0x8cd171,'category':_0x51c4b3,'fixable':![],'code':_0x66e82b[_0x4f4f99(0xbf)]};}}export default TypeScriptAnalyzer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x10e5cc=a0_0x4a51;(function(_0x32a4ca,_0x255b37){const _0x37441c=a0_0x4a51,_0x29d115=_0x32a4ca();while(!![]){try{const _0x488058=parseInt(_0x37441c(0xa8))/0x1+parseInt(_0x37441c(0xb5))/0x2*(-parseInt(_0x37441c(0xac))/0x3)+parseInt(_0x37441c(0x9f))/0x4+-parseInt(_0x37441c(0x8f))/0x5*(parseInt(_0x37441c(0x85))/0x6)+-parseInt(_0x37441c(0x90))/0x7+-parseInt(_0x37441c(0x9a))/0x8+parseInt(_0x37441c(0xb4))/0x9;if(_0x488058===_0x255b37)break;else _0x29d115['push'](_0x29d115['shift']());}catch(_0x2f4d04){_0x29d115['push'](_0x29d115['shift']());}}}(a0_0x3fda,0xb1b29));export class RefactoringAnalyzer{constructor(_0x17c323){this['config']=_0x17c323;}['analyzeClones'](_0x536292){const _0x6533c3=a0_0x4a51;return console[_0x6533c3(0x7a)](_0x6533c3(0x8b)),_0x536292[_0x6533c3(0xa9)]((_0x4217e4,_0x4eb0b2)=>{const _0x31c142=_0x6533c3,_0x179814=this[_0x31c142(0x94)](_0x4217e4),_0x4ac867=this['generateRefactoringAdvice'](_0x4217e4,_0x179814);return{'id':_0x31c142(0x86)+(_0x4eb0b2+0x1),'type':_0x4217e4['type'],'confidence':_0x4217e4['confidence'],'instances':_0x4217e4['blocks']['map'](_0x2ddb69=>({'file':_0x2ddb69['file'],'startLine':_0x2ddb69['startLine'],'endLine':_0x2ddb69[_0x31c142(0xb1)],'code':this['truncateCode'](_0x2ddb69['code']),'fullCode':_0x2ddb69['code'],'blockType':_0x2ddb69['type']})),'metrics':_0x179814,'refactoringAdvice':_0x4ac867};})['sort']((_0x24679b,_0x2a157c)=>_0x2a157c[_0x6533c3(0xb6)]['impactScore']-_0x24679b['metrics']['impactScore']);}[a0_0x10e5cc(0x94)](_0x555386){const _0x48118e=a0_0x10e5cc,_0x29c2c8=_0x555386['blocks'],_0x504e31=_0x555386[_0x48118e(0x7b)],_0x582a8e=this['averageLineCount'](_0x29c2c8),_0x8ab28a=_0x29c2c8['length'],_0xea5e58=this[_0x48118e(0xa5)](_0x504e31,_0x582a8e,_0x8ab28a,_0x555386['confidence']),_0x560335=_0x582a8e*(_0x8ab28a-0x1),_0x4b0250=_0x504e31*(_0x8ab28a-0x1);return{'tokenCount':_0x504e31,'lineCount':_0x582a8e,'instanceCount':_0x8ab28a,'duplicatedLines':_0x560335,'duplicatedTokens':_0x4b0250,'impactScore':parseFloat(_0xea5e58[_0x48118e(0x7e)](0x2)),'filesCovered':new Set(_0x29c2c8[_0x48118e(0xa9)](_0x578c95=>_0x578c95['file']))[_0x48118e(0xaa)]};}['calculateImpactScore'](_0x2f5287,_0x2c9731,_0x46769d,_0x4b180d){const _0x4a1d72=a0_0x10e5cc,_0x1f6a78=Math[_0x4a1d72(0xb0)](_0x2f5287+0x1)*0x2,_0x4cacc0=Math['log2'](_0x46769d+0x1)*0x3,_0x53a8a1=_0x4b180d*0x2,_0x5806d4=Math[_0x4a1d72(0x87)](_0x2c9731/0xa,0x3);return _0x1f6a78+_0x4cacc0+_0x53a8a1+_0x5806d4;}[a0_0x10e5cc(0x84)](_0x483744,_0x27f556){const _0x1af2e6=a0_0x10e5cc,_0xe816d3=this['determineRefactoringStrategy'](_0x483744,_0x27f556),_0x4a3965=this['determinePriority'](_0x27f556),_0x339c61=this[_0x1af2e6(0x9b)](_0x483744),_0x131c25=this['generateReasoning'](_0x483744,_0x27f556,_0xe816d3),_0x24e481=this['estimateEffort'](_0x27f556,_0xe816d3),_0x3378c8=this['describeBenefits'](_0x27f556);return{'priority':_0x4a3965,'strategy':_0xe816d3,'suggestedName':_0x339c61,'reasoning':_0x131c25,'estimatedEffort':_0x24e481,'benefits':_0x3378c8,'actionableSteps':this['generateActionableSteps'](_0xe816d3,_0x339c61,_0x27f556)};}['determineRefactoringStrategy'](_0x2c1a30,_0xd4fd1f){const _0x47670d=a0_0x10e5cc,{tokenCount:_0x13da68,lineCount:_0x289a5d,instanceCount:_0x5f01e6,filesCovered:_0x49f430}=_0xd4fd1f,_0x405cb0=_0x2c1a30['blocks'][_0x47670d(0xa9)](_0x5552ba=>_0x5552ba[_0x47670d(0x93)]),_0x5051e5=_0x405cb0[_0x47670d(0x79)](_0x4f1e03=>_0x4f1e03['includes']('Function')||_0x4f1e03[_0x47670d(0x7d)](_0x47670d(0xaf))),_0x5cace4=_0x405cb0[_0x47670d(0x79)](_0x316b4b=>_0x316b4b['includes']('Class'));if(_0x5cace4&&_0x289a5d>0x32)return'extract-module';else{if(_0x49f430>0x2&&_0x13da68>0x64)return'extract-module';else{if(_0x5051e5||_0x289a5d>=0xa&&_0x289a5d<=0x32)return'extract-function';else{if(_0x289a5d>0x32)return'extract-class';else return _0x289a5d<0xa?'extract-constant-or-utility':_0x47670d(0x8d);}}}}['determinePriority'](_0x260d6f){const _0x389d19=a0_0x10e5cc,{impactScore:_0x2493c8}=_0x260d6f;if(_0x2493c8>=0x8)return'high';if(_0x2493c8>=0x5)return _0x389d19(0x80);return _0x389d19(0x98);}[a0_0x10e5cc(0x9b)](_0xa3064e){const _0x15d2e7=a0_0x10e5cc,_0x212cdc=_0xa3064e[_0x15d2e7(0x9d)][_0x15d2e7(0xa9)](_0x1c581f=>_0x1c581f[_0x15d2e7(0xae)])['join']('\x20'),_0x20f391=_0x212cdc['match'](/[a-zA-Z_$][a-zA-Z0-9_$]*/g)||[],_0x1c6e29={};_0x20f391['forEach'](_0x3ca69e=>{const _0x35d61a=_0x15d2e7;if([_0x35d61a(0xa3),_0x35d61a(0x8c),'var','function','return','if','else',_0x35d61a(0xba),_0x35d61a(0x96)]['includes'](_0x3ca69e))return;_0x1c6e29[_0x3ca69e]=(_0x1c6e29[_0x3ca69e]||0x0)+0x1;});const _0x129afb=Object['entries'](_0x1c6e29)['sort']((_0x35ec16,_0x1e2658)=>_0x1e2658[0x1]-_0x35ec16[0x1])['slice'](0x0,0x3);if(_0x129afb['length']>0x0){const _0x41cef1=_0x129afb[_0x15d2e7(0xa9)](([_0x4360ec])=>_0x4360ec);return this[_0x15d2e7(0xb3)](_0x41cef1);}return'extractedFunction';}[a0_0x10e5cc(0xb3)](_0x11991b){const _0x43d6bb=a0_0x10e5cc;if(_0x11991b['length']===0x0)return'extractedFunction';return _0x11991b[0x0]+_0x11991b[_0x43d6bb(0xb8)](0x1)['map'](_0x35f01c=>_0x35f01c['charAt'](0x0)[_0x43d6bb(0x97)]()+_0x35f01c[_0x43d6bb(0xb8)](0x1))[_0x43d6bb(0x8a)]('');}['generateReasoning'](_0x1622a5,_0x29e532,_0x357b5e){const _0x32b50b=a0_0x10e5cc,{instanceCount:_0x366dc3,duplicatedLines:_0x48e39c,filesCovered:_0x1ec3a2}=_0x29e532;let _0x1afc3a='This\x20'+_0x1622a5['type']+_0x32b50b(0xb7)+_0x366dc3+'\x20times';return _0x1ec3a2>0x1&&(_0x1afc3a+='\x20across\x20'+_0x1ec3a2+'\x20different\x20files'),_0x1afc3a+=_0x32b50b(0xa6)+_0x48e39c+'\x20duplicated\x20lines.\x20',_0x1afc3a+=_0x32b50b(0x95)+_0x357b5e['replace'](/-/g,'\x20')+'\x20would\x20improve\x20maintainability',_0x366dc3>=0x3&&(_0x1afc3a+=', reduce bugs from inconsistent changes'),_0x1afc3a+=_0x32b50b(0x92),_0x29e532['impactScore']>=0x8&&(_0x1afc3a+='.\x20This\x20is\x20a\x20high-impact\x20refactoring\x20opportunity'),_0x1afc3a+'.';}['estimateEffort'](_0x15b9c2,_0x28f3a7){const _0x5a62c1=a0_0x10e5cc,{lineCount:_0xa7a3b4,instanceCount:_0x509f51,filesCovered:_0xdc8bec}=_0x15b9c2;let _0x517dee=0x0;_0x517dee+=Math[_0x5a62c1(0x87)](_0xa7a3b4/0xa,0x5),_0x517dee+=_0x509f51*0.5,_0x517dee+=_0xdc8bec*0.5;if(_0x28f3a7===_0x5a62c1(0x91))_0x517dee+=0x3;else{if(_0x28f3a7==='extract-class')_0x517dee+=0x2;else _0x28f3a7===_0x5a62c1(0x8d)&&(_0x517dee+=0x1);}if(_0x517dee<=0x3)return _0x5a62c1(0x98);if(_0x517dee<=0x7)return'medium';return _0x5a62c1(0xb9);}[a0_0x10e5cc(0x99)](_0x44b14d){const _0x5b18a7=a0_0x10e5cc,_0x20d37a=[];return _0x20d37a['push']('Eliminate\x20'+_0x44b14d[_0x5b18a7(0xa4)]+_0x5b18a7(0xa2)),_0x20d37a[_0x5b18a7(0xab)]('Improve\x20maintainability\x20by\x20centralizing\x20logic\x20in\x20one\x20place'),_0x44b14d['instanceCount']>=0x3&&_0x20d37a['push']('Reduce\x20risk\x20of\x20inconsistent\x20changes\x20across\x20'+_0x44b14d[_0x5b18a7(0x82)]+_0x5b18a7(0xa0)),_0x44b14d['filesCovered']>0x2&&_0x20d37a['push']('Improve\x20code\x20organization\x20across\x20'+_0x44b14d['filesCovered']+_0x5b18a7(0x9e)),_0x20d37a['push']('Make\x20future\x20changes\x20easier\x20and\x20less\x20error-prone'),_0x20d37a;}['generateActionableSteps'](_0x180a48,_0x16ace4,_0x4ee78f){const _0x192347=a0_0x10e5cc,_0x30b3e8=[];switch(_0x180a48){case _0x192347(0x8d):_0x30b3e8[_0x192347(0xab)]('1.\x20Create\x20a\x20new\x20function\x20named\x20\x27'+_0x16ace4+'\x27'),_0x30b3e8['push'](_0x192347(0x7f)),_0x30b3e8[_0x192347(0xab)]('3. Identify parameters needed from the surrounding context'),_0x30b3e8[_0x192347(0xab)]('4.\x20Replace\x20all\x20instances\x20with\x20calls\x20to\x20the\x20new\x20function'),_0x30b3e8['push'](_0x192347(0x7c));break;case _0x192347(0x89):_0x30b3e8['push']('1.\x20Create\x20a\x20new\x20class\x20to\x20encapsulate\x20this\x20functionality'),_0x30b3e8['push'](_0x192347(0xa1)),_0x30b3e8[_0x192347(0xab)]('3.\x20Update\x20all\x20instances\x20to\x20use\x20the\x20new\x20class'),_0x30b3e8['push']('4.\x20Consider\x20dependency\x20injection\x20for\x20better\x20testability');break;case'extract-module':_0x30b3e8[_0x192347(0xab)]('1.\x20Create\x20a\x20new\x20module/file\x20for\x20this\x20shared\x20functionality'),_0x30b3e8['push'](_0x192347(0xad)),_0x30b3e8[_0x192347(0xab)]('3.\x20Export\x20the\x20necessary\x20functions/classes'),_0x30b3e8['push']('4. Update all files to import from the new module'),_0x30b3e8[_0x192347(0xab)]('5.\x20Update\x20any\x20build\x20configurations\x20if\x20needed');break;default:_0x30b3e8[_0x192347(0xab)]('1.\x20Extract\x20the\x20duplicated\x20code\x20using\x20'+_0x180a48['replace'](/-/g,'\x20')),_0x30b3e8['push']('2.\x20Replace\x20all\x20instances\x20with\x20the\x20extracted\x20version'),_0x30b3e8[_0x192347(0xab)](_0x192347(0xb2));}return _0x30b3e8;}[a0_0x10e5cc(0x81)](_0x103770,_0x298e84=0xa){const _0x19f8aa=a0_0x10e5cc,_0x1514e1=_0x103770[_0x19f8aa(0x83)]('\x0a');if(_0x1514e1['length']<=_0x298e84)return _0x103770;return _0x1514e1['slice'](0x0,_0x298e84)['join']('\x0a')+'\x0a...\x20(truncated)';}['averageLineCount'](_0x490879){const _0xcfc3a5=a0_0x10e5cc,_0x4fe602=_0x490879[_0xcfc3a5(0x8e)]((_0x4a4fa9,_0x3002b6)=>_0x4a4fa9+(_0x3002b6[_0xcfc3a5(0xb1)]-_0x3002b6[_0xcfc3a5(0x88)]+0x1),0x0);return Math[_0xcfc3a5(0x9c)](_0x4fe602/_0x490879[_0xcfc3a5(0xa7)]);}}function a0_0x4a51(_0x420adb,_0x2f4131){_0x420adb=_0x420adb-0x79;const _0x3fda76=a0_0x3fda();let _0x4a514d=_0x3fda76[_0x420adb];if(a0_0x4a51['BlMegA']===undefined){var _0x3aa073=function(_0x3bcea9){const _0x25d175='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x17c323='',_0x536292='';for(let _0x4217e4=0x0,_0x4eb0b2,_0x179814,_0x4ac867=0x0;_0x179814=_0x3bcea9['charAt'](_0x4ac867++);~_0x179814&&(_0x4eb0b2=_0x4217e4%0x4?_0x4eb0b2*0x40+_0x179814:_0x179814,_0x4217e4++%0x4)?_0x17c323+=String['fromCharCode'](0xff&_0x4eb0b2>>(-0x2*_0x4217e4&0x6)):0x0){_0x179814=_0x25d175['indexOf'](_0x179814);}for(let _0x2ddb69=0x0,_0x24679b=_0x17c323['length'];_0x2ddb69<_0x24679b;_0x2ddb69++){_0x536292+='%'+('00'+_0x17c323['charCodeAt'](_0x2ddb69)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x536292);};a0_0x4a51['gZmyrR']=_0x3aa073,a0_0x4a51['YcJYJB']={},a0_0x4a51['BlMegA']=!![];}const _0x3344b2=_0x3fda76[0x0],_0x1ab01f=_0x420adb+_0x3344b2,_0x3eadf3=a0_0x4a51['YcJYJB'][_0x1ab01f];return!_0x3eadf3?(_0x4a514d=a0_0x4a51['gZmyrR'](_0x4a514d),a0_0x4a51['YcJYJB'][_0x1ab01f]=_0x4a514d):_0x4a514d=_0x3eadf3,_0x4a514d;}function a0_0x3fda(){const _0x121a3b=['Dg9Rzw5dB3vUDa','ns4GvgvZDcb0BYbLBNn1CMuGyMvOyxzPB3iGAxmGChjLC2vYDMvK','Aw5JBhvKzxm','Dg9gAxHLza','mI4Gtw92zsb0AguGzhvWBgLJyxrLzcbSB2DPyYbPBNrVihrOAxmGzNvUy3rPB24','BwvKAxvT','Dhj1BMnHDgvdB2rL','Aw5ZDgfUy2vdB3vUDa','C3bSAxq','z2vUzxjHDgvszwzHy3rVCMLUz0fKDMLJzq','mtiWquDhBfzi','y2XVBMuT','BwLU','C3rHCNrmAw5L','zxH0CMfJDc1JBgfZCW','AM9PBG','qw5HBhL6Aw5NignSB25LCYbMB3iGCMvMywn0B3jPBMCGB3bWB3j0Dw5PDgLLCY4UlG','Bgv0','zxH0CMfJDc1MDw5JDgLVBG','CMvKDwnL','mJK2mJK1vgX6B0nX','ndmZnZCZmLvAwvvQDa','zxH0CMfJDc1TB2r1Bgu','lcbHBMqGCMvKDwnLignVzguGC2L6zq','DhLWzq','y2fSy3vSyxrLtwv0CMLJCW','uMvMywn0B3jPBMCGDg8G','D2HPBgu','Dg9vChbLCKnHC2u','Bg93','zgvZy3jPyMvczw5LzML0CW','nZq5ntKYogTlBMLbEq','C3vNz2vZDe5HBwu','CM91BMq','yMXVy2TZ','igzPBgvZ','ndi1mJuWneXHzeTfsa','igXVy2f0Aw9UCW','mI4Gtw92zsbYzwXHDgvKig1LDgHVzhmGyw5KihbYB3bLCNrPzxmGAw50BYb0AguGy2XHC3m','igr1CgXPy2f0zwqGBgLUzxmGB2yGy29Kzq','y29UC3q','zhvWBgLJyxrLzeXPBMvZ','y2fSy3vSyxrLsw1Wywn0u2nVCMu','lcbYzxn1BhrPBMCGAw4G','BgvUz3rO','ntG5ntm5BxDWCezV','BwfW','C2L6zq','ChvZAa','oduZnZfdzLrSuNy','mI4Gtw92zsb0AguGzhvWBgLJyxrLzcbJB2rLigLUDg8GDgHLig5LDYbTB2r1Bgu','y29Kzq','twv0Ag9K','Bg9Nmta','zw5KtgLUzq','mY4GvgvZDcb0Ag9YB3vNAgX5','y3jLyxrLrNvUy3rPB25oyw1L','mJiYndm4nZHSzMPxAKu','ndzcsNvzDue','Bwv0CMLJCW','ignVzguGCgf0DgvYBIbHChbLyxjZia','C2XPy2u','AgLNAa','zM9Y','C29Tzq','Bg9N'];a0_0x3fda=function(){return _0x121a3b;};return a0_0x3fda();}
|
|
1
|
+
function a0_0x4255(_0x55278c,_0x24d456){_0x55278c=_0x55278c-0x141;const _0x45d9f6=a0_0x45d9();let _0x4255d2=_0x45d9f6[_0x55278c];if(a0_0x4255['PckgGS']===undefined){var _0x127e36=function(_0x11eb37){const _0x113db5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x19ef3e='',_0x2779fc='';for(let _0x29e737=0x0,_0x205230,_0x3d11bd,_0x32e6e6=0x0;_0x3d11bd=_0x11eb37['charAt'](_0x32e6e6++);~_0x3d11bd&&(_0x205230=_0x29e737%0x4?_0x205230*0x40+_0x3d11bd:_0x3d11bd,_0x29e737++%0x4)?_0x19ef3e+=String['fromCharCode'](0xff&_0x205230>>(-0x2*_0x29e737&0x6)):0x0){_0x3d11bd=_0x113db5['indexOf'](_0x3d11bd);}for(let _0x4f1541=0x0,_0x5d8dd=_0x19ef3e['length'];_0x4f1541<_0x5d8dd;_0x4f1541++){_0x2779fc+='%'+('00'+_0x19ef3e['charCodeAt'](_0x4f1541)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2779fc);};a0_0x4255['NVZRFr']=_0x127e36,a0_0x4255['xJCgAh']={},a0_0x4255['PckgGS']=!![];}const _0x175daf=_0x45d9f6[0x0],_0x12c499=_0x55278c+_0x175daf,_0x1a0d8e=a0_0x4255['xJCgAh'][_0x12c499];return!_0x1a0d8e?(_0x4255d2=a0_0x4255['NVZRFr'](_0x4255d2),a0_0x4255['xJCgAh'][_0x12c499]=_0x4255d2):_0x4255d2=_0x1a0d8e,_0x4255d2;}function a0_0x45d9(){const _0x2924b1=['nde2ntmYngLNq2nWvW','ChvZAa','twfRzsbMDxr1CMuGy2HHBMDLCYbLyxnPzxiGyw5KigXLC3mGzxjYB3iTChjVBMu','Dhj1BMnHDgvdB2rL','Aw1Wywn0u2nVCMu','mI4GuMvWBgfJzsbHBgWGAw5ZDgfUy2vZihDPDgGGDgHLigv4DhjHy3rLzcb2zxjZAw9U','C29YDa','y2fSy3vSyxrLtwv0CMLJCW','y29UC3q','y29UzMLN','zwXZzq','ms4Gq3jLyxrLigeGBMv3ignSyxnZihrVigvUy2fWC3vSyxrLihrOAxmGzNvUy3rPB25HBgL0Eq','Bg93','AM9PBG','twv0Ag9K','zM9YrwfJAa','DhLWzq','igrPzMzLCMvUDcbMAwXLCW','DMfY','Dg9Rzw5dB3vUDa','BwfW','zM9Y','CMvWBgfJzq','igr1CgXPy2f0zwqGBgLUzxmGB2yGy29Kzq','zhvWBgLJyxrLzeXPBMvZ','CM91BMq','y2fSy3vSyxrLsw1Wywn0u2nVCMu','BgvUz3rO','rwXPBwLUyxrLia','y3jLyxrLrNvUy3rPB25oyw1L','yxzLCMfNzuXPBMvdB3vUDa','ms4GrxH0CMfJDcb0AguGzhvWBgLJyxrLzcbJB2rLihvZAw5Nia','zgv0zxjTAw5LuMvMywn0B3jPBMDtDhjHDgvNEq','C29Tzq','C2XPy2u','ihDVDwXKigLTChjVDMuGBwfPBNrHAw5HyMLSAxr5','mJq5mZqXnePJv2TQrG','lcbHBMqGCMvKDwnLignVzguGC2L6zq','y2HHCKf0','C3bSAxq','mtm3mZu1mezpqMTJrW','AgLNAa','igXVy2f0Aw9UCW','BwvKAxvT','Bg9N','Aw5JBhvKzxm','zw5KtgLUzq','C3rHCNrmAw5L','zxH0CMfJDc1TB2r1Bgu','lIbuAgLZigLZigeGAgLNAc1PBxbHy3qGCMvMywn0B3jPBMCGB3bWB3j0Dw5PDhK','C3vNz2vZDe5HBwu','y29Kzq','mJKZnJi4mg9hqM1WzW','ihrPBwvZ','zMLSzxndB3zLCMvK','zxH0CMfJDc1JBgfZCW','ndCWntG4me5Vy0vovq','Aw5ZDgfUy2vdB3vUDa','ms4Gq3jLyxrLigeGBMv3igz1BMn0Aw9Uig5HBwvKicC','nc4Gq29UC2LKzxiGzgvWzw5Kzw5JEsbPBMPLy3rPB24GzM9YigjLDhrLCIb0zxn0ywjPBgL0Eq','zxH0CMfJDc1MDw5JDgLVBG','ns4GvxbKyxrLigfUEsbIDwLSzcbJB25MAwD1CMf0Aw9UCYbPzIbUzwvKzwq','mZG0ndyZmwrJzLblzG','z2vUzxjHDgvszwzHy3rVCMLUz0fKDMLJzq','BwLU','zgv0zxjTAw5LuhjPB3jPDhK','zxH0CMfJDgvKrNvUy3rPB24','mI4Gtw92zsb0AguGzhvWBgLJyxrLzcbSB2DPyYbPBNrVihrOAxmGzNvUy3rPB24','sw1WCM92zsbTywLUDgfPBMfIAwXPDhKGyNKGy2vUDhjHBgL6Aw5NigXVz2LJigLUig9UzsbWBgfJzq','zxn0Aw1HDgvfzMzVCNq','sw1WCM92zsbJB2rLig9Yz2fUAxPHDgLVBIbHy3jVC3mG','yMXVy2TZ','y29UzMLKzw5Jzq','CMvKDwnL','mZe4otnxD1vXr1C','Bgv0','uMvKDwnLihjPC2SGB2yGAw5JB25ZAxn0zw50ignOyw5NzxmGywnYB3nZia','zNvUy3rPB24','mY4GrxHWB3j0ihrOzsbUzwnLC3nHCNKGzNvUy3rPB25Zl2nSyxnZzxm','qw5HBhL6Aw5NignSB25LCYbMB3iGCMvMywn0B3jPBMCGB3bWB3j0Dw5PDgLLCY4UlG'];a0_0x45d9=function(){return _0x2924b1;};return a0_0x45d9();}const a0_0x308c64=a0_0x4255;(function(_0x13faa3,_0xae5568){const _0x321098=a0_0x4255,_0x9625a1=_0x13faa3();while(!![]){try{const _0x32f3eb=-parseInt(_0x321098(0x14e))/0x1+parseInt(_0x321098(0x17c))/0x2+-parseInt(_0x321098(0x188))/0x3+-parseInt(_0x321098(0x154))/0x4+parseInt(_0x321098(0x18c))/0x5+parseInt(_0x321098(0x178))/0x6+parseInt(_0x321098(0x142))/0x7;if(_0x32f3eb===_0xae5568)break;else _0x9625a1['push'](_0x9625a1['shift']());}catch(_0x1fd74d){_0x9625a1['push'](_0x9625a1['shift']());}}}(a0_0x45d9,0x84061));export class RefactoringAnalyzer{constructor(_0x19ef3e){const _0x393387=a0_0x4255;this[_0x393387(0x15d)]=_0x19ef3e;}['analyzeClones'](_0x2779fc){const _0x52e6e8=a0_0x4255;return console[_0x52e6e8(0x180)](_0x52e6e8(0x153)),_0x2779fc['map']((_0x29e737,_0x205230)=>{const _0x488723=_0x52e6e8,_0x3d11bd=this[_0x488723(0x15b)](_0x29e737),_0x32e6e6=this[_0x488723(0x143)](_0x29e737,_0x3d11bd);return{'id':'clone-'+(_0x205230+0x1),'type':_0x29e737['type'],'confidence':_0x29e737[_0x488723(0x14c)],'instances':_0x29e737[_0x488723(0x14b)]['map'](_0x4f1541=>({'file':_0x4f1541['file'],'startLine':_0x4f1541[_0x488723(0x183)],'endLine':_0x4f1541[_0x488723(0x182)],'code':this[_0x488723(0x157)](_0x4f1541['code']),'fullCode':_0x4f1541['code'],'blockType':_0x4f1541[_0x488723(0x164)]})),'metrics':_0x3d11bd,'refactoringAdvice':_0x32e6e6};})['sort']((_0x5d8dd,_0x5d5416)=>_0x5d5416['metrics'][_0x52e6e8(0x158)]-_0x5d8dd['metrics']['impactScore']);}['calculateMetrics'](_0x5d0d8f){const _0x230cce=a0_0x4255,_0x265fd2=_0x5d0d8f[_0x230cce(0x14b)],_0x5143a9=_0x5d0d8f[_0x230cce(0x167)],_0x362992=this['averageLineCount'](_0x265fd2),_0x56aa04=_0x265fd2[_0x230cce(0x16f)],_0x5168eb=this[_0x230cce(0x16e)](_0x5143a9,_0x362992,_0x56aa04,_0x5d0d8f['confidence']),_0x33be1b=_0x362992*(_0x56aa04-0x1),_0x54c1da=_0x5143a9*(_0x56aa04-0x1);return{'tokenCount':_0x5143a9,'lineCount':_0x362992,'instanceCount':_0x56aa04,'duplicatedLines':_0x33be1b,'duplicatedTokens':_0x54c1da,'impactScore':parseFloat(_0x5168eb['toFixed'](0x2)),'filesCovered':new Set(_0x265fd2[_0x230cce(0x168)](_0x449727=>_0x449727['file']))['size']};}['calculateImpactScore'](_0x513bc4,_0x42801c,_0x430346,_0x56809c){const _0x1a9ec3=a0_0x4255,_0x4f78a7=Math['log10'](_0x513bc4+0x1)*0x2,_0x132bd1=Math['log2'](_0x430346+0x1)*0x3,_0x24c7e5=_0x56809c*0x2,_0x3e8501=Math[_0x1a9ec3(0x144)](_0x42801c/0xa,0x3);return _0x4f78a7+_0x132bd1+_0x24c7e5+_0x3e8501;}[a0_0x308c64(0x143)](_0xd716f,_0x9f1a18){const _0x34a909=a0_0x308c64,_0xbb473a=this[_0x34a909(0x174)](_0xd716f,_0x9f1a18),_0x23ac0b=this[_0x34a909(0x145)](_0x9f1a18),_0x3c4c63=this['suggestName'](_0xd716f),_0x20dba4=this['generateReasoning'](_0xd716f,_0x9f1a18,_0xbb473a),_0x1e5975=this[_0x34a909(0x149)](_0x9f1a18,_0xbb473a),_0x2d4928=this['describeBenefits'](_0x9f1a18);return{'priority':_0x23ac0b,'strategy':_0xbb473a,'suggestedName':_0x3c4c63,'reasoning':_0x20dba4,'estimatedEffort':_0x1e5975,'benefits':_0x2d4928,'actionableSteps':this['generateActionableSteps'](_0xbb473a,_0x3c4c63,_0x9f1a18)};}['determineRefactoringStrategy'](_0x6a8b,_0x564786){const _0x4f1c65=a0_0x308c64,{tokenCount:_0x36630f,lineCount:_0x11cfbd,instanceCount:_0x12fe99,filesCovered:_0xbaaffa}=_0x564786,_0x233bde=_0x6a8b[_0x4f1c65(0x14b)]['map'](_0x4166aa=>_0x4166aa['type']),_0x306e68=_0x233bde['some'](_0x4eef91=>_0x4eef91[_0x4f1c65(0x181)]('Function')||_0x4eef91['includes'](_0x4f1c65(0x162))),_0x5a437b=_0x233bde[_0x4f1c65(0x175)](_0x14f9dc=>_0x14f9dc[_0x4f1c65(0x181)]('Class'));if(_0x5a437b&&_0x11cfbd>0x32)return'extract-module';else{if(_0xbaaffa>0x2&&_0x36630f>0x64)return'extract-module';else{if(_0x306e68||_0x11cfbd>=0xa&&_0x11cfbd<=0x32)return'extract-function';else{if(_0x11cfbd>0x32)return _0x4f1c65(0x18b);else return _0x11cfbd<0xa?'extract-constant-or-utility':_0x4f1c65(0x190);}}}}[a0_0x308c64(0x145)](_0x2f3e6f){const _0x1024d2=a0_0x308c64,{impactScore:_0x118f2a}=_0x2f3e6f;if(_0x118f2a>=0x8)return _0x1024d2(0x17d);if(_0x118f2a>=0x5)return'medium';return'low';}[a0_0x308c64(0x186)](_0x4ffb9d){const _0x517c23=a0_0x308c64,_0x674ad4=_0x4ffb9d[_0x517c23(0x14b)][_0x517c23(0x168)](_0x1809d0=>_0x1809d0[_0x517c23(0x187)])[_0x517c23(0x161)]('\x20'),_0x15a5af=_0x674ad4['match'](/[a-zA-Z_$][a-zA-Z0-9_$]*/g)||[],_0x523138={};_0x15a5af[_0x517c23(0x163)](_0x36bb59=>{const _0x405baa=_0x517c23;if([_0x405baa(0x15c),_0x405baa(0x14f),_0x405baa(0x166),_0x405baa(0x151),'return','if',_0x405baa(0x15e),_0x405baa(0x169),'while']['includes'](_0x36bb59))return;_0x523138[_0x36bb59]=(_0x523138[_0x36bb59]||0x0)+0x1;});const _0x30e1f1=Object['entries'](_0x523138)[_0x517c23(0x15a)]((_0x5bc53c,_0x2756f0)=>_0x2756f0[0x1]-_0x5bc53c[0x1])[_0x517c23(0x176)](0x0,0x3);if(_0x30e1f1[_0x517c23(0x16f)]>0x0){const _0x3ba4b2=_0x30e1f1[_0x517c23(0x168)](([_0x3ce51c])=>_0x3ce51c);return this[_0x517c23(0x171)](_0x3ba4b2);}return _0x517c23(0x146);}[a0_0x308c64(0x171)](_0x391581){const _0x4e2978=a0_0x308c64;if(_0x391581['length']===0x0)return _0x4e2978(0x146);return _0x391581[0x0]+_0x391581[_0x4e2978(0x176)](0x1)[_0x4e2978(0x168)](_0x45cc43=>_0x45cc43[_0x4e2978(0x17a)](0x0)['toUpperCase']()+_0x45cc43['slice'](0x1))['join']('');}['generateReasoning'](_0x2bc57f,_0x3f2800,_0x4457a9){const _0x48be7d=a0_0x308c64,{instanceCount:_0x25364b,duplicatedLines:_0xa3b620,filesCovered:_0x3f7d70}=_0x3f2800;let _0x547336='This\x20'+_0x2bc57f[_0x48be7d(0x164)]+'\x20code\x20pattern\x20appears\x20'+_0x25364b+_0x48be7d(0x189);return _0x3f7d70>0x1&&(_0x547336+='\x20across\x20'+_0x3f7d70+_0x48be7d(0x165)),_0x547336+=',\x20resulting\x20in\x20'+_0xa3b620+'\x20duplicated\x20lines.\x20',_0x547336+='Refactoring\x20to\x20'+_0x4457a9[_0x48be7d(0x16a)](/-/g,'\x20')+_0x48be7d(0x177),_0x25364b>=0x3&&(_0x547336+=', reduce bugs from inconsistent changes'),_0x547336+=_0x48be7d(0x179),_0x3f2800[_0x48be7d(0x158)]>=0x8&&(_0x547336+=_0x48be7d(0x185)),_0x547336+'.';}[a0_0x308c64(0x149)](_0x28ba80,_0x4441af){const _0x3956e8=a0_0x308c64,{lineCount:_0x1a9b94,instanceCount:_0x2146dc,filesCovered:_0x58a434}=_0x28ba80;let _0x26781b=0x0;_0x26781b+=Math['min'](_0x1a9b94/0xa,0x5),_0x26781b+=_0x2146dc*0.5,_0x26781b+=_0x58a434*0.5;if(_0x4441af===_0x3956e8(0x184))_0x26781b+=0x3;else{if(_0x4441af==='extract-class')_0x26781b+=0x2;else _0x4441af==='extract-function'&&(_0x26781b+=0x1);}if(_0x26781b<=0x3)return _0x3956e8(0x160);if(_0x26781b<=0x7)return _0x3956e8(0x17f);return _0x3956e8(0x17d);}['describeBenefits'](_0x3cbadb){const _0x377b8a=a0_0x308c64,_0xe2af83=[];return _0xe2af83['push'](_0x377b8a(0x170)+_0x3cbadb[_0x377b8a(0x16c)]+_0x377b8a(0x16b)),_0xe2af83['push'](_0x377b8a(0x148)),_0x3cbadb[_0x377b8a(0x18d)]>=0x3&&_0xe2af83['push'](_0x377b8a(0x150)+_0x3cbadb['instanceCount']+_0x377b8a(0x17e)),_0x3cbadb['filesCovered']>0x2&&_0xe2af83[_0x377b8a(0x155)](_0x377b8a(0x14a)+_0x3cbadb[_0x377b8a(0x18a)]+'\x20files'),_0xe2af83[_0x377b8a(0x155)](_0x377b8a(0x156)),_0xe2af83;}['generateActionableSteps'](_0x1ad73e,_0x332ac1,_0x37b1af){const _0x43e55f=a0_0x308c64,_0x1bdc43=[];switch(_0x1ad73e){case'extract-function':_0x1bdc43['push'](_0x43e55f(0x18e)+_0x332ac1+'\x27'),_0x1bdc43[_0x43e55f(0x155)](_0x43e55f(0x147)),_0x1bdc43['push']('3. Identify parameters needed from the surrounding context'),_0x1bdc43['push']('4.\x20Replace\x20all\x20instances\x20with\x20calls\x20to\x20the\x20new\x20function'),_0x1bdc43['push']('5.\x20Test\x20to\x20ensure\x20behavior\x20is\x20preserved');break;case _0x43e55f(0x18b):_0x1bdc43[_0x43e55f(0x155)](_0x43e55f(0x15f)),_0x1bdc43['push']('2.\x20Move\x20related\x20methods\x20and\x20properties\x20into\x20the\x20class'),_0x1bdc43[_0x43e55f(0x155)]('3.\x20Update\x20all\x20instances\x20to\x20use\x20the\x20new\x20class'),_0x1bdc43[_0x43e55f(0x155)](_0x43e55f(0x18f));break;case _0x43e55f(0x184):_0x1bdc43[_0x43e55f(0x155)]('1.\x20Create\x20a\x20new\x20module/file\x20for\x20this\x20shared\x20functionality'),_0x1bdc43[_0x43e55f(0x155)]('2.\x20Move\x20the\x20duplicated\x20code\x20into\x20the\x20new\x20module'),_0x1bdc43['push'](_0x43e55f(0x152)),_0x1bdc43[_0x43e55f(0x155)]('4. Update all files to import from the new module'),_0x1bdc43['push'](_0x43e55f(0x141));break;default:_0x1bdc43[_0x43e55f(0x155)](_0x43e55f(0x173)+_0x1ad73e[_0x43e55f(0x16a)](/-/g,'\x20')),_0x1bdc43[_0x43e55f(0x155)](_0x43e55f(0x159)),_0x1bdc43['push']('3.\x20Test\x20thoroughly');}return _0x1bdc43;}['truncateCode'](_0x580f71,_0x22c14d=0xa){const _0x3ddec0=a0_0x308c64,_0x29e95d=_0x580f71[_0x3ddec0(0x17b)]('\x0a');if(_0x29e95d[_0x3ddec0(0x16f)]<=_0x22c14d)return _0x580f71;return _0x29e95d['slice'](0x0,_0x22c14d)[_0x3ddec0(0x161)]('\x0a')+'\x0a...\x20(truncated)';}[a0_0x308c64(0x172)](_0x18d6d4){const _0x2cd29f=a0_0x308c64,_0x534577=_0x18d6d4[_0x2cd29f(0x14d)]((_0x4d3e89,_0x4743de)=>_0x4d3e89+(_0x4743de[_0x2cd29f(0x182)]-_0x4743de[_0x2cd29f(0x183)]+0x1),0x0);return Math[_0x2cd29f(0x16d)](_0x534577/_0x18d6d4['length']);}}
|