@loxia-labs/loxia-autopilot-one 1.0.5 → 1.0.7
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 +1 -1
- package/bin/cli.js +1 -1
- package/bin/loxia-terminal-v2.js +1 -1
- package/bin/loxia-terminal.js +1 -1
- package/bin/start-with-terminal.js +1 -1
- package/package.json +1 -1
- package/scripts/install-scanners.js +1 -1
- package/src/analyzers/CSSAnalyzer.js +1 -1
- package/src/analyzers/ConfigValidator.js +1 -1
- package/src/analyzers/ESLintAnalyzer.js +1 -1
- package/src/analyzers/JavaScriptAnalyzer.js +1 -1
- package/src/analyzers/PrettierFormatter.js +1 -1
- package/src/analyzers/PythonAnalyzer.js +1 -1
- package/src/analyzers/SecurityAnalyzer.js +1 -1
- package/src/analyzers/TypeScriptAnalyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/detector.js +1 -1
- package/src/analyzers/codeCloneDetector/index.js +1 -1
- package/src/analyzers/codeCloneDetector/parser.js +1 -1
- package/src/analyzers/codeCloneDetector/reporter.js +1 -1
- package/src/analyzers/codeCloneDetector/scanner.js +1 -1
- package/src/core/agentPool.js +1 -1
- package/src/core/agentScheduler.js +1 -1
- package/src/core/contextManager.js +1 -1
- package/src/core/messageProcessor.js +1 -1
- package/src/core/orchestrator.js +1 -1
- package/src/core/stateManager.js +1 -1
- package/src/index.js +1 -1
- package/src/interfaces/cli.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
- package/src/interfaces/terminal/api/apiClient.js +1 -1
- package/src/interfaces/terminal/api/messageRouter.js +1 -1
- package/src/interfaces/terminal/api/session.js +1 -1
- package/src/interfaces/terminal/api/websocket.js +1 -1
- package/src/interfaces/terminal/components/AgentCreator.js +1 -1
- package/src/interfaces/terminal/components/AgentEditor.js +1 -1
- package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
- package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
- package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
- package/src/interfaces/terminal/components/Header.js +1 -1
- package/src/interfaces/terminal/components/HelpPanel.js +1 -1
- package/src/interfaces/terminal/components/InputBox.js +1 -1
- package/src/interfaces/terminal/components/Layout.js +1 -1
- package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
- package/src/interfaces/terminal/components/MessageList.js +1 -1
- package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
- package/src/interfaces/terminal/components/SearchPanel.js +1 -1
- package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
- package/src/interfaces/terminal/components/StatusBar.js +1 -1
- package/src/interfaces/terminal/components/TextInput.js +1 -1
- package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
- package/src/interfaces/terminal/config/constants.js +1 -1
- package/src/interfaces/terminal/index.js +1 -1
- package/src/interfaces/terminal/state/useAgentControl.js +1 -1
- package/src/interfaces/terminal/state/useAgents.js +1 -1
- package/src/interfaces/terminal/state/useConnection.js +1 -1
- package/src/interfaces/terminal/state/useMessages.js +1 -1
- package/src/interfaces/terminal/state/useTools.js +1 -1
- package/src/interfaces/terminal/utils/debugLogger.js +1 -1
- package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
- package/src/interfaces/terminal/utils/theme.js +1 -1
- package/src/interfaces/webServer.js +1 -1
- package/src/modules/fileExplorer/controller.js +1 -1
- package/src/modules/fileExplorer/index.js +1 -1
- package/src/modules/fileExplorer/middleware.js +1 -1
- package/src/modules/fileExplorer/routes.js +1 -1
- package/src/services/aiService.js +1 -1
- package/src/services/apiKeyManager.js +1 -1
- package/src/services/benchmarkService.js +1 -1
- package/src/services/budgetService.js +1 -1
- package/src/services/contextInjectionService.js +1 -1
- package/src/services/conversationCompactionService.js +1 -1
- package/src/services/errorHandler.js +1 -1
- package/src/services/fileAttachmentService.js +1 -1
- package/src/services/modelRouterService.js +1 -1
- package/src/services/modelsService.js +1 -1
- package/src/services/qualityInspector.js +1 -1
- package/src/services/tokenCountingService.js +1 -1
- package/src/tools/agentCommunicationTool.js +1 -1
- package/src/tools/agentDelayTool.js +1 -1
- package/src/tools/asyncToolManager.js +1 -1
- package/src/tools/baseTool.js +1 -1
- package/src/tools/browserTool.js +1 -1
- package/src/tools/cloneDetectionTool.js +1 -1
- package/src/tools/dependencyResolverTool.js +1 -1
- package/src/tools/fileContentReplaceTool.js +1 -1
- package/src/tools/fileSystemTool.js +1 -1
- package/src/tools/fileTreeTool.js +1 -1
- package/src/tools/imageTool.js +1 -1
- package/src/tools/importAnalyzerTool.js +1 -1
- package/src/tools/jobDoneTool.js +1 -1
- package/src/tools/seekTool.js +1 -1
- package/src/tools/staticAnalysisTool.js +1 -1
- package/src/tools/taskManagerTool.js +1 -1
- package/src/tools/terminalTool.js +1 -1
- package/src/tools/webTool.js +1 -1
- package/src/types/agent.js +1 -1
- package/src/types/contextReference.js +1 -1
- package/src/types/conversation.js +1 -1
- package/src/types/toolCommand.js +1 -1
- package/src/utilities/attachmentValidator.js +1 -1
- package/src/utilities/configManager.js +1 -1
- package/src/utilities/constants.js +1 -1
- package/src/utilities/directoryAccessManager.js +1 -1
- package/src/utilities/fileProcessor.js +1 -1
- package/src/utilities/logger.js +1 -1
- package/src/utilities/tagParser.js +1 -1
- package/src/utilities/toolConstants.js +1 -1
- package/web-ui/build/index.html +2 -2
- package/web-ui/build/static/index-BVF_10a5.css +1 -0
- package/web-ui/build/static/{index-lCBai6dX.js → index-DE5VFS1q.js} +121 -68
- package/web-ui/build/static/index-CClD1090.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x5db71b=a0_0x31d4;(function(_0x671a82,_0xe9d0a7){const _0x4af0be=a0_0x31d4,_0x235f8e=_0x671a82();while(!![]){try{const _0x12caa1=-parseInt(_0x4af0be(0xd7))/0x1+-parseInt(_0x4af0be(0xc7))/0x2*(parseInt(_0x4af0be(0xce))/0x3)+parseInt(_0x4af0be(0xb8))/0x4*(parseInt(_0x4af0be(0xed))/0x5)+parseInt(_0x4af0be(0xdc))/0x6*(parseInt(_0x4af0be(0xd5))/0x7)+parseInt(_0x4af0be(0xc0))/0x8*(-parseInt(_0x4af0be(0xd9))/0x9)+parseInt(_0x4af0be(0xdf))/0xa*(-parseInt(_0x4af0be(0xe2))/0xb)+-parseInt(_0x4af0be(0xd1))/0xc*(-parseInt(_0x4af0be(0xcf))/0xd);if(_0x12caa1===_0xe9d0a7)break;else _0x235f8e['push'](_0x235f8e['shift']());}catch(_0x253f49){_0x235f8e['push'](_0x235f8e['shift']());}}}(a0_0x35ff,0x1b75e));import a0_0x478c94 from'typescript';function a0_0x31d4(_0x48179c,_0x42583b){_0x48179c=_0x48179c-0xb7;const _0x35ffe7=a0_0x35ff();let _0x31d467=_0x35ffe7[_0x48179c];if(a0_0x31d4['xVMmes']===undefined){var _0x3dd3c1=function(_0x575e19){const _0x39fe53='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x478c94='',_0x5b3d6a='';for(let _0x4c7e91=0x0,_0xb80fed,_0x5ae2d4,_0x55288c=0x0;_0x5ae2d4=_0x575e19['charAt'](_0x55288c++);~_0x5ae2d4&&(_0xb80fed=_0x4c7e91%0x4?_0xb80fed*0x40+_0x5ae2d4:_0x5ae2d4,_0x4c7e91++%0x4)?_0x478c94+=String['fromCharCode'](0xff&_0xb80fed>>(-0x2*_0x4c7e91&0x6)):0x0){_0x5ae2d4=_0x39fe53['indexOf'](_0x5ae2d4);}for(let _0x57cba8=0x0,_0x1cf2ca=_0x478c94['length'];_0x57cba8<_0x1cf2ca;_0x57cba8++){_0x5b3d6a+='%'+('00'+_0x478c94['charCodeAt'](_0x57cba8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5b3d6a);};a0_0x31d4['WsGdhz']=_0x3dd3c1,a0_0x31d4['oBrRhz']={},a0_0x31d4['xVMmes']=!![];}const _0x1a0bed=_0x35ffe7[0x0],_0x2c0cc4=_0x48179c+_0x1a0bed,_0x58c2d7=a0_0x31d4['oBrRhz'][_0x2c0cc4];return!_0x58c2d7?(_0x31d467=a0_0x31d4['WsGdhz'](_0x31d467),a0_0x31d4['oBrRhz'][_0x2c0cc4]=_0x31d467):_0x31d467=_0x58c2d7,_0x31d467;}import a0_0x5b3d6a from'path';import{STATIC_ANALYSIS}from'../utilities/constants.js';class JavaScriptAnalyzer{constructor(_0x4c7e91=null){const _0x4fdd6e=a0_0x31d4;this[_0x4fdd6e(0xc9)]=_0x4c7e91,this[_0x4fdd6e(0xc3)]={'allowJs':!![],'checkJs':!![],'noEmit':!![],'jsx':a0_0x478c94['JsxEmit'][_0x4fdd6e(0xee)],'target':a0_0x478c94['ScriptTarget']['Latest'],'module':a0_0x478c94[_0x4fdd6e(0xb9)][_0x4fdd6e(0xcc)],'moduleResolution':a0_0x478c94['ModuleResolutionKind']['NodeJs'],'esModuleInterop':!![],'skipLibCheck':!![],'strict':![],'noImplicitAny':![]};}async[a0_0x5db71b(0xc4)](_0xb80fed,_0x5ae2d4,_0x55288c={}){const _0x4f980e=a0_0x5db71b;try{const _0x57cba8=[],_0x1cf2ca=a0_0x478c94[_0x4f980e(0xdb)](_0xb80fed,_0x5ae2d4,a0_0x478c94[_0x4f980e(0xbb)][_0x4f980e(0xc8)],!![]),_0x162f4f=this[_0x4f980e(0xbf)](_0x1cf2ca);_0x57cba8['push'](..._0x162f4f);const _0x53d1b0=await this['getSemanticDiagnostics'](_0xb80fed,_0x5ae2d4);return _0x57cba8['push'](..._0x53d1b0),this[_0x4f980e(0xc9)]?.[_0x4f980e(0xd8)](_0x4f980e(0xde),{'file':_0xb80fed,'totalDiagnostics':_0x57cba8['length'],'errors':_0x57cba8[_0x4f980e(0xcb)](_0xce7cd5=>_0xce7cd5[_0x4f980e(0xe4)]===STATIC_ANALYSIS['SEVERITY'][_0x4f980e(0xc1)])[_0x4f980e(0xe8)],'warnings':_0x57cba8['filter'](_0x15ec32=>_0x15ec32[_0x4f980e(0xe4)]===STATIC_ANALYSIS[_0x4f980e(0xe7)][_0x4f980e(0xe9)])['length']}),_0x57cba8;}catch(_0x547c31){return this['logger']?.['error'](_0x4f980e(0xf0),{'file':_0xb80fed,'error':_0x547c31['message']}),[{'file':_0xb80fed,'line':0x0,'column':0x0,'severity':STATIC_ANALYSIS[_0x4f980e(0xe7)][_0x4f980e(0xc1)],'rule':'analyzer-error','message':_0x4f980e(0xeb)+_0x547c31[_0x4f980e(0xe5)],'category':STATIC_ANALYSIS['CATEGORY'][_0x4f980e(0xc2)]}];}}['getSyntacticDiagnostics'](_0x4bd53f){const _0x539ce5=a0_0x5db71b,_0x3ed38e=[],_0xef8e55=_0x29818f=>{const _0x43d347=a0_0x31d4;if(_0x29818f[_0x43d347(0xec)]===a0_0x478c94['SyntaxKind'][_0x43d347(0xd0)]){const _0x21bd61=_0x4bd53f[_0x43d347(0xba)](_0x29818f['getStart']());_0x3ed38e['push']({'file':_0x4bd53f[_0x43d347(0xe6)],'line':_0x21bd61[_0x43d347(0xef)]+0x1,'column':_0x21bd61[_0x43d347(0xbc)]+0x1,'severity':STATIC_ANALYSIS[_0x43d347(0xe7)]['ERROR'],'rule':'syntax-error','message':_0x43d347(0xd6),'category':STATIC_ANALYSIS['CATEGORY'][_0x43d347(0xc2)],'fixable':![]});}a0_0x478c94['forEachChild'](_0x29818f,_0xef8e55);};_0xef8e55(_0x4bd53f);if(_0x4bd53f['parseDiagnostics']&&_0x4bd53f['parseDiagnostics'][_0x539ce5(0xe8)]>0x0)for(const _0x1177f5 of _0x4bd53f[_0x539ce5(0xf3)]){_0x3ed38e['push'](this['formatDiagnostic'](_0x1177f5,_0x4bd53f));}return _0x3ed38e;}async[a0_0x5db71b(0xf1)](_0x2bc561,_0x21575a){const _0x713b5d=a0_0x5db71b,_0x1d21db=[];try{const _0x5932ad=a0_0x478c94[_0x713b5d(0xdb)](_0x2bc561,_0x21575a,a0_0x478c94['ScriptTarget']['Latest'],!![]),_0x12eb79={'getSourceFile':_0x8a4ff5=>{if(_0x8a4ff5===_0x2bc561)return _0x5932ad;return undefined;},'getDefaultLibFileName':()=>'lib.d.ts','writeFile':()=>{},'getCurrentDirectory':()=>a0_0x5b3d6a[_0x713b5d(0xc5)](_0x2bc561),'getDirectories':()=>[],'fileExists':_0x217af9=>_0x217af9===_0x2bc561,'readFile':_0x53baf7=>{if(_0x53baf7===_0x2bc561)return _0x21575a;return undefined;},'getCanonicalFileName':_0x40ad02=>_0x40ad02,'useCaseSensitiveFileNames':()=>!![],'getNewLine':()=>'\x0a'},_0x57ae39=a0_0x478c94['createProgram']({'rootNames':[_0x2bc561],'options':this['compilerOptions'],'host':_0x12eb79}),_0x1c5a12=_0x57ae39[_0x713b5d(0xf1)](_0x5932ad);for(const _0xc5163d of _0x1c5a12){_0x1d21db[_0x713b5d(0xc6)](this[_0x713b5d(0xda)](_0xc5163d,_0x5932ad));}}catch(_0xc2c1a6){this[_0x713b5d(0xc9)]?.[_0x713b5d(0xd8)](_0x713b5d(0xd2),{'file':_0x2bc561,'reason':_0xc2c1a6['message']});}return _0x1d21db;}[a0_0x5db71b(0xda)](_0x91984f,_0x3e908a){const _0x27cc30=a0_0x5db71b;let _0x2f86dd=0x0,_0x53e49f=0x0;if(_0x91984f['file']&&_0x91984f['start']!==undefined){const _0xbbaa05=_0x91984f[_0x27cc30(0xb7)][_0x27cc30(0xba)](_0x91984f[_0x27cc30(0xbe)]);_0x2f86dd=_0xbbaa05[_0x27cc30(0xef)]+0x1,_0x53e49f=_0xbbaa05['character']+0x1;}else{if(_0x3e908a&&_0x91984f[_0x27cc30(0xbe)]!==undefined){const _0x3a5796=_0x3e908a['getLineAndCharacterOfPosition'](_0x91984f['start']);_0x2f86dd=_0x3a5796[_0x27cc30(0xef)]+0x1,_0x53e49f=_0x3a5796[_0x27cc30(0xbc)]+0x1;}}const _0xa17d1d=a0_0x478c94['flattenDiagnosticMessageText'](_0x91984f['messageText'],'\x0a');let _0x161910;switch(_0x91984f[_0x27cc30(0xe0)]){case a0_0x478c94['DiagnosticCategory'][_0x27cc30(0xbd)]:_0x161910=STATIC_ANALYSIS['SEVERITY'][_0x27cc30(0xc1)];break;case a0_0x478c94['DiagnosticCategory'][_0x27cc30(0xcd)]:_0x161910=STATIC_ANALYSIS[_0x27cc30(0xe7)]['WARNING'];break;case a0_0x478c94[_0x27cc30(0xe3)][_0x27cc30(0xf4)]:case a0_0x478c94[_0x27cc30(0xe3)][_0x27cc30(0xea)]:_0x161910=STATIC_ANALYSIS[_0x27cc30(0xe7)]['INFO'];break;default:_0x161910=STATIC_ANALYSIS['SEVERITY'][_0x27cc30(0xc1)];}let _0xf28632=STATIC_ANALYSIS['CATEGORY'][_0x27cc30(0xc2)];const _0x4058b5=_0x91984f['code'];if(_0x4058b5>=0x7d0&&_0x4058b5<0xbb8)_0xf28632=STATIC_ANALYSIS[_0x27cc30(0xd4)]['TYPE'];else{if(_0x4058b5>=0x3e8&&_0x4058b5<0x7d0)_0xf28632=STATIC_ANALYSIS['CATEGORY']['SYNTAX'];else _0x4058b5>=0x8fc&&_0x4058b5<0x960&&(_0xf28632=STATIC_ANALYSIS[_0x27cc30(0xd4)][_0x27cc30(0xe1)]);}return(_0xa17d1d['toLowerCase']()['includes'](_0x27cc30(0xdd))||_0xa17d1d[_0x27cc30(0xf2)]()['includes']('import'))&&(_0xf28632=STATIC_ANALYSIS[_0x27cc30(0xd4)][_0x27cc30(0xe1)]),{'file':_0x91984f['file']?.[_0x27cc30(0xe6)]||_0x3e908a?.['fileName']||_0x27cc30(0xd3),'line':_0x2f86dd,'column':_0x53e49f,'severity':_0x161910,'rule':'TS'+_0x4058b5,'message':_0xa17d1d,'category':_0xf28632,'fixable':![],'code':_0x91984f[_0x27cc30(0xca)]};}}export default JavaScriptAnalyzer;function a0_0x35ff(){const _0x5da1d3=['y29Kzq','zMLSDgvY','rvnozxH0','v2fYBMLUzW','mtj1z1rStLe','mJiXrxDOtNDw','vw5RBM93BG','mta5ndy0vwX2C1ro','u2vTyw50AwmGyw5HBhLZAxmGC2TPChbLza','Dw5RBM93BG','q0furuDpuLK','nJGWodjIt3fiEKi','u3LUDgf4igvYCM9Y','mtq0nZrXCKPMB0G','zgvIDwC','mZzbv2nkzxK','zM9YBwf0rgLHz25VC3rPyW','y3jLyxrLu291CMnLrMLSzq','mtH2wxfysLq','y2fUBM90igzPBMqGBw9KDwXL','sMf2yvnJCMLWDcbHBMfSExnPCYbJB21WBgv0zwq','ntbnvMjYB1a','y2f0zwDVCNK','su1qt1ju','mJq5n2DKCwv4vW','rgLHz25VC3rPy0nHDgvNB3j5','C2v2zxjPDhK','BwvZC2fNzq','zMLSzu5HBwu','u0vwrvjjvfK','BgvUz3rO','v0fstKLorW','u3vNz2vZDgLVBG','qw5HBhLZAxmGzMfPBgvKoIa','A2LUza','mtm1tvHVz1nO','uMvHy3q','BgLUzq','sMf2yvnJCMLWDcbHBMfSExnPCYbMywLSzwq','z2v0u2vTyw50AwneAwfNBM9ZDgLJCW','Dg9mB3DLCKnHC2u','CgfYC2veAwfNBM9ZDgLJCW','twvZC2fNzq','zMLSzq','mtu0otjOBeXTEwS','tw9KDwXLs2LUza','z2v0tgLUzufUzenOyxjHy3rLCK9Mug9ZAxrPB24','u2nYAxb0vgfYz2v0','y2HHCMfJDgvY','rxjYB3i','C3rHCNq','z2v0u3LUDgfJDgLJrgLHz25VC3rPy3m','mtC4mJmYDxvmz0PI','rvjst1i','u1Lovefy','y29TCgLSzxjpChrPB25Z','yw5HBhL6zq','zgLYBMfTzq','ChvZAa','mZu4mtbsAw51sgG','tgf0zxn0','Bg9Nz2vY'];a0_0x35ff=function(){return _0x5da1d3;};return a0_0x35ff();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a0_0x6351(_0x854ed2,_0xf6c85){_0x854ed2=_0x854ed2-0x95;const _0x1536bb=a0_0x1536();let _0x63515e=_0x1536bb[_0x854ed2];if(a0_0x6351['vhatdH']===undefined){var _0x2ae09d=function(_0x4e8f86){const _0x1b8d24='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3dd30e='',_0x16029d='';for(let _0x16826d=0x0,_0x37d900,_0x221a09,_0x3497aa=0x0;_0x221a09=_0x4e8f86['charAt'](_0x3497aa++);~_0x221a09&&(_0x37d900=_0x16826d%0x4?_0x37d900*0x40+_0x221a09:_0x221a09,_0x16826d++%0x4)?_0x3dd30e+=String['fromCharCode'](0xff&_0x37d900>>(-0x2*_0x16826d&0x6)):0x0){_0x221a09=_0x1b8d24['indexOf'](_0x221a09);}for(let _0x15df83=0x0,_0x3cfef8=_0x3dd30e['length'];_0x15df83<_0x3cfef8;_0x15df83++){_0x16029d+='%'+('00'+_0x3dd30e['charCodeAt'](_0x15df83)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x16029d);};a0_0x6351['HPTiMG']=_0x2ae09d,a0_0x6351['iWKlMb']={},a0_0x6351['vhatdH']=!![];}const _0xa70719=_0x1536bb[0x0],_0x3a9c38=_0x854ed2+_0xa70719,_0x38bd62=a0_0x6351['iWKlMb'][_0x3a9c38];return!_0x38bd62?(_0x63515e=a0_0x6351['HPTiMG'](_0x63515e),a0_0x6351['iWKlMb'][_0x3a9c38]=_0x63515e):_0x63515e=_0x38bd62,_0x63515e;}const a0_0x5c7f8d=a0_0x6351;(function(_0x12a82e,_0x5ece11){const _0x2b3f7a=a0_0x6351,_0x557ffa=_0x12a82e();while(!![]){try{const _0x583425=-parseInt(_0x2b3f7a(0xbe))/0x1*(parseInt(_0x2b3f7a(0xa5))/0x2)+parseInt(_0x2b3f7a(0x96))/0x3*(parseInt(_0x2b3f7a(0xb4))/0x4)+parseInt(_0x2b3f7a(0x9d))/0x5*(-parseInt(_0x2b3f7a(0x98))/0x6)+parseInt(_0x2b3f7a(0xbf))/0x7+-parseInt(_0x2b3f7a(0x95))/0x8*(-parseInt(_0x2b3f7a(0xb0))/0x9)+-parseInt(_0x2b3f7a(0x9f))/0xa+parseInt(_0x2b3f7a(0xa9))/0xb;if(_0x583425===_0x5ece11)break;else _0x557ffa['push'](_0x557ffa['shift']());}catch(_0x755ba2){_0x557ffa['push'](_0x557ffa['shift']());}}}(a0_0x1536,0x26da9));import a0_0x3dd30e from'prettier';function a0_0x1536(){const _0x2431cb=['zxm1','zgvZy3jPyMvdAgfUz2vZ','mJrrruzUuMG','Aw5JBhvKzxm','lNLHBwW','yMfIzwW','Bg9Nz2vY','y291BNrdAgfUz2vKtgLUzxm','Dg9mB3DLCKnHC2u','lMPZ','lNLTBa','z2v0ugfYC2vY','mtu5ndzsEuDHtwO','mtiYntiZoejKEeHeCq','y2HLy2S','mJmYogLgD1j1qW','mJmXnJnWzMTYsMK','BgvZCW','nJm1mZu4tfLRENDX','zgLYBMfTzq','zM9YBwf0','BwvZC2fNzq','uhjLDhrPzxiGy2HLy2SGzMfPBgvK','mtbvq1Drse0','BgvUz3rO','mJK1nZm2mg1gDMzvzW','AxntDxbWB3j0zwq','z2v0u3vWCg9YDgvKrxH0zw5ZAw9UCW','BwfYA2rVD24','y29UzMLNq2fJAgu','AhrTBa','mZrrswHkBuy','CMvZB2X2zunVBMzPzW','ANnVBJu','zxH0BMfTzq','nJyWotq4mLbQuvbIvW','C3bSAxq','lNz1zq','z2v0uhjLDhrPzxjdB25MAwC','ywrKzwq','yxzVAwq','CMvTB3zLza','mZu3m1jXy3PvsG','lMnZCW'];a0_0x1536=function(){return _0x2431cb;};return a0_0x1536();}import a0_0x16029d from'path';import a0_0x16826d from'fs/promises';class PrettierFormatter{constructor(_0x37d900=null){const _0x23be9b=a0_0x6351;this[_0x23be9b(0xb8)]=_0x37d900,this[_0x23be9b(0xa3)]=new Map();}async[a0_0x5c7f8d(0x9a)](_0x221a09,_0x3497aa,_0x15df83={}){const _0xef5556=a0_0x5c7f8d;try{const _0x3cfef8=await this['getPrettierConfig'](_0x221a09,_0x15df83['workingDir']),_0x25b27b=this[_0xef5556(0xbd)](_0x221a09),_0x1eb08f=await a0_0x3dd30e[_0xef5556(0x9a)](_0x3497aa,{..._0x3cfef8,'filepath':_0x221a09,'parser':_0x25b27b}),_0x2cabae=_0x1eb08f!==_0x3497aa;return{'formatted':_0x2cabae,'content':_0x1eb08f,'original':_0x3497aa,'changes':_0x2cabae?this['describeChanges'](_0x3497aa,_0x1eb08f):[],'linesChanged':_0x2cabae?this[_0xef5556(0xb9)](_0x3497aa,_0x1eb08f):0x0};}catch(_0x24ad74){this['logger']?.['error']('Prettier\x20formatting\x20failed',{'file':_0x221a09,'error':_0x24ad74[_0xef5556(0x9b)]});throw new Error('Prettier\x20formatting\x20failed:\x20'+_0x24ad74['message']);}}async[a0_0x5c7f8d(0xc0)](_0x3e464a,_0x4f0cd3,_0xb85ae5={}){const _0x144173=a0_0x5c7f8d;try{const _0xac12b4=await this['getPrettierConfig'](_0x3e464a,_0xb85ae5['workingDir']),_0x451d66=this['getParser'](_0x3e464a),_0xbff92d=await a0_0x3dd30e[_0x144173(0x9a)](_0x4f0cd3,{..._0xac12b4,'filepath':_0x3e464a,'parser':_0x451d66});return _0xbff92d!==_0x4f0cd3;}catch(_0x151ffa){return this[_0x144173(0xb8)]?.['warn'](_0x144173(0x9c),{'file':_0x3e464a,'error':_0x151ffa['message']}),![];}}async[a0_0x5c7f8d(0xac)](_0x25f18a,_0x303078){const _0x5122cd=a0_0x5c7f8d,_0x27e9a1=_0x303078||a0_0x16029d[_0x5122cd(0x99)](_0x25f18a);if(this['configCache']['has'](_0x27e9a1))return this['configCache']['get'](_0x27e9a1);let _0x15de8b={};if(_0x303078)try{const _0x11a7c6=await a0_0x3dd30e[_0x5122cd(0xa6)](_0x25f18a,{'config':_0x303078});_0x11a7c6&&(this['logger']?.['debug']('Found\x20Prettier\x20config',{'workingDir':_0x303078}),_0x15de8b=_0x11a7c6);}catch(_0x3825ab){this['logger']?.['debug']('No Prettier config found, using defaults');}const defaultConfig={'semi':!![],'singleQuote':!![],'tabWidth':0x2,'trailingComma':_0x5122cd(0xb2),'printWidth':0x64,'arrowParens':_0x5122cd(0xae),'endOfLine':'lf',..._0x15de8b};return this[_0x5122cd(0xa3)]['set'](_0x27e9a1,defaultConfig),defaultConfig;}[a0_0x5c7f8d(0xbd)](_0x21eae0){const _0x194d77=a0_0x5c7f8d,_0x38905d=a0_0x16029d[_0x194d77(0xa8)](_0x21eae0)['toLowerCase'](),_0x13b120={'.js':'babel','.jsx':'babel','.mjs':_0x194d77(0xb7),'.cjs':_0x194d77(0xb7),'.ts':'typescript','.tsx':'typescript','.json':'json','.json5':_0x194d77(0xa7),'.css':'css','.scss':'scss','.less':_0x194d77(0x97),'.html':_0x194d77(0xa4),'.vue':'vue','.md':_0x194d77(0xa2),'.yaml':'yaml','.yml':'yaml'};return _0x13b120[_0x38905d]||_0x194d77(0xb7);}[a0_0x5c7f8d(0xb3)](_0xc07f73,_0x55df5d){const _0x1a725b=a0_0x5c7f8d,_0x116370=[],_0xc1b7db=_0xc07f73[_0x1a725b(0xaa)]('\x0a'),_0x238ed5=_0x55df5d[_0x1a725b(0xaa)]('\x0a'),_0x4f79a0=Math['max'](_0xc1b7db['length'],_0x238ed5[_0x1a725b(0x9e)]);for(let _0x4ffa5e=0x0;_0x4ffa5e<_0x4f79a0;_0x4ffa5e++){const _0x594288=_0xc1b7db[_0x4ffa5e],_0x50d82e=_0x238ed5[_0x4ffa5e];_0x594288!==_0x50d82e&&_0x116370['push']({'line':_0x4ffa5e+0x1,'type':_0x594288!==undefined&&_0x50d82e!==undefined?'modified':_0x594288!==undefined?_0x1a725b(0xaf):_0x1a725b(0xad),'original':_0x594288||'','formatted':_0x50d82e||''});}return _0x116370;}['countChangedLines'](_0x3fe603,_0x48f88b){const _0x46c447=a0_0x5c7f8d,_0x5033f0=_0x3fe603['split']('\x0a'),_0x33e27c=_0x48f88b['split']('\x0a');let _0x3776c4=0x0;const _0x3dbafe=Math['max'](_0x5033f0['length'],_0x33e27c[_0x46c447(0x9e)]);for(let _0x406feb=0x0;_0x406feb<_0x3dbafe;_0x406feb++){_0x5033f0[_0x406feb]!==_0x33e27c[_0x406feb]&&_0x3776c4++;}return _0x3776c4;}[a0_0x5c7f8d(0xa1)](){const _0x45f767=a0_0x5c7f8d;return[_0x45f767(0xbb),'.jsx','.mjs','.cjs','.ts','.tsx','.json','.json5',_0x45f767(0xb1),'.scss','.less','.html',_0x45f767(0xab),'.md',_0x45f767(0xb6),_0x45f767(0xbc)];}[a0_0x5c7f8d(0xa0)](_0x22a67c){const _0x472e41=a0_0x5c7f8d,_0x3cc8f0=a0_0x16029d[_0x472e41(0xa8)](_0x22a67c)[_0x472e41(0xba)]();return this[_0x472e41(0xa1)]()[_0x472e41(0xb5)](_0x3cc8f0);}}export default PrettierFormatter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x5b8f22=a0_0x3d2d;function a0_0x1a23(){const _0x5a0611=['BwvZC2fNzq','uhL0Ag9Uig5VDcbHDMfPBgfIBguSihnRAxbWAw5NigfUywX5C2LZ','D2fYBG','C3rKB3v0','BgLUzq','AM9PBG','z2v0u3vWCg9YDgvKrxH0zw5ZAw9UCW','mJG0otqYourovw5pzG','cMLTCg9YDcbHC3qkAw1WB3j0ihn5CWPPBxbVCNqGANnVBGOkzgvMignOzwnRx3n5BNrHEcHMAwXLCgf0AcK6cIaGicb0CNK6cIaGicaGicaGD2L0AcbVCgvUkgzPBgvWyxrOlcaNCICSigvUy29KAw5NpsD1DgyTocCPigfZigy6cIaGicaGicaGicaGihnVDxjJzsa9igyUCMvHzcGPcGOGicaGicaGicmGvhj5ihrVihbHCNnLihrOzsbMAwXLcIaGicaGicaGyxn0lNbHCNnLkhnVDxjJzsWGzMLSzw5HBwu9zMLSzxbHDgGPcGOGicaGicaGicmGswyGC3vJy2vZC2z1BcWGBM8GzxjYB3jZcIaGicaGicaGChjPBNqOANnVBI5KDw1WCYH7iNn1y2nLC3mIoIbuCNvLlcaIzxjYB3jZiJOGw119ksKkcIaGicbLEgnLChqGu3LUDgf4rxjYB3iGyxmGztOkicaGicaGicbLCNjVCIa9ihSkicaGicaGicaGicaGiMzPBguIoIbMAwXLCgf0AcWkicaGicaGicaGicaGiMXPBMuIoIbLlMXPBMvUBYbVCIaXlaOGicaGicaGicaGicaIy29SDw1UiJOGzs5VzMzZzxqGB3iGmsWkicaGicaGicaGicaGiM1LC3nHz2uIoIbZDhiOzs5TC2CPlaOGicaGicaGicaGicaIDgv4Dci6iguUDgv4Dc5ZDhjPCcGPigLMiguUDgv4DcbLBhnLiciIcIaGicaGicaGFqOGicaGicaGihbYAw50kgPZB24UzhvTChmOEYjZDwnJzxnZiJOGrMfSC2uSicjLCNjVCNmIoIbBzxjYB3jDFsKPcGOGicaGzxHJzxb0iev4y2vWDgLVBIbHCYbLoGOGicaGicaGigvYCM9Yid0GEWOGicaGicaGicaGicaIzMLSzsi6igzPBgvWyxrOlaOGicaGicaGicaGicaIBgLUzsi6ideScIaGicaGicaGicaGicjJB2X1Bw4IoIaXlaOGicaGicaGicaGicaIBwvZC2fNzsi6ihn0CIHLksWkicaGicaGicaGicaGiNrLEhqIoIaIiGOGicaGicaGih0kicaGicaGicbWCMLUDcHQC29UlMr1BxbZkhSIC3vJy2vZCYi6iezHBhnLlcaIzxjYB3jZiJOGw2vYCM9Yxx0PkqOkAwyGx19Uyw1Lx18Gpt0GiL9FBwfPBL9FiJOkicaGigLMigXLBIHZExmUyxjNDIKGpIaXoGOGicaGicaGignOzwnRx3n5BNrHEcHZExmUyxjNDLSXxsKkicaGigvSC2u6cIaGicaGicaGChjPBNqOANnVBI5KDw1WCYH7iNn1y2nLC3mIoIbgywXZzsWGiMvYCM9YCYi6ifT7iM1LC3nHz2uIoIaItM8GzMLSzsbZCgvJAwzPzwqIFv19ksKk','Dgv4Da','Bg9Nz2vY','mtjoBhvvD2m','u0vwrvjjvfK','ChL0Ag9UlwfZDa','y29SDw1U','z2v0uhL0Ag9Uq29TBwfUza','nhvVvwzcuW','lNb5','Dg9tDhjPBMC','CNvUq29TBwfUza','uhL0Ag9UigfUywX5C2LZigzHAwXLza','uhL0Ag9UigfUywX5C2LZignVBxbSzxrLza','DxrMltG','BgvUz3rO','C2v2zxjPDhK','ChL0Ag9U','mZe4mJKWvNnXDKDj','mJq2nJiZmNjcBgvsyG','rMfPBgvKihrVihbHCNnLifb5DgHVBIbZEw50yxGGy2HLy2SGCMvZDwX0','Dg1WzgLY','zxjYB3jZ','otaYnfDiwuPAyW','yw5HBhL6zq','CNvUuhL0Ag9Uu2nYAxb0','rM91BMqGuhL0Ag9UignVBw1HBMq','zgf0yq','otLqDLzyvKu','D3jPDgvgAwXL','v0fstKLorW','mtCXodG4y2zctuLP','C3rKzxjY','q0furuDpuLK','mteZnvfxzwvUqq','BM93','zxjYB3i','u3LUDgf4rxjYB3i','Dw5SAw5R','mtmXntqXCuTHBKPe','n0T5z09uAG','ndu2odCXmKrsCvbkEq','rvjst1i','A2LSBa','zgvIDwC','C3vWCg9YDhnbDxrVrML4'];a0_0x1a23=function(){return _0x5a0611;};return a0_0x1a23();}(function(_0x1e73cb,_0x18cda8){const _0x40aee8=a0_0x3d2d,_0x46838d=_0x1e73cb();while(!![]){try{const _0x78aa08=parseInt(_0x40aee8(0x1d7))/0x1*(-parseInt(_0x40aee8(0x1ee))/0x2)+parseInt(_0x40aee8(0x1f6))/0x3*(parseInt(_0x40aee8(0x1d2))/0x4)+parseInt(_0x40aee8(0x1f1))/0x5*(parseInt(_0x40aee8(0x1e6))/0x6)+parseInt(_0x40aee8(0x1f7))/0x7*(parseInt(_0x40aee8(0x1e2))/0x8)+parseInt(_0x40aee8(0x1eb))/0x9*(-parseInt(_0x40aee8(0x1e1))/0xa)+-parseInt(_0x40aee8(0x1ce))/0xb+parseInt(_0x40aee8(0x1f8))/0xc;if(_0x78aa08===_0x18cda8)break;else _0x46838d['push'](_0x46838d['shift']());}catch(_0x406b81){_0x46838d['push'](_0x46838d['shift']());}}}(a0_0x1a23,0x3307c));function a0_0x3d2d(_0x80fb7c,_0x3ef17f){_0x80fb7c=_0x80fb7c-0x1c8;const _0x1a2346=a0_0x1a23();let _0x3d2dd5=_0x1a2346[_0x80fb7c];if(a0_0x3d2d['ASLgYh']===undefined){var _0x2d34b8=function(_0x3f9980){const _0x44a3f1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x45a03a='',_0x33eaf2='';for(let _0x400a25=0x0,_0x92d7e5,_0x4951fa,_0x1f201b=0x0;_0x4951fa=_0x3f9980['charAt'](_0x1f201b++);~_0x4951fa&&(_0x92d7e5=_0x400a25%0x4?_0x92d7e5*0x40+_0x4951fa:_0x4951fa,_0x400a25++%0x4)?_0x45a03a+=String['fromCharCode'](0xff&_0x92d7e5>>(-0x2*_0x400a25&0x6)):0x0){_0x4951fa=_0x44a3f1['indexOf'](_0x4951fa);}for(let _0x4796d2=0x0,_0x3daf3d=_0x45a03a['length'];_0x4796d2<_0x3daf3d;_0x4796d2++){_0x33eaf2+='%'+('00'+_0x45a03a['charCodeAt'](_0x4796d2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x33eaf2);};a0_0x3d2d['TfXlgq']=_0x2d34b8,a0_0x3d2d['VLnqKj']={},a0_0x3d2d['ASLgYh']=!![];}const _0x7a1abb=_0x1a2346[0x0],_0x2f666a=_0x80fb7c+_0x7a1abb,_0x1e66f8=a0_0x3d2d['VLnqKj'][_0x2f666a];return!_0x1e66f8?(_0x3d2dd5=a0_0x3d2d['TfXlgq'](_0x3d2dd5),a0_0x3d2d['VLnqKj'][_0x2f666a]=_0x3d2dd5):_0x3d2dd5=_0x1e66f8,_0x3d2dd5;}import{spawn}from'child_process';import{STATIC_ANALYSIS}from'../utilities/constants.js';import a0_0x45a03a from'fs/promises';import a0_0x33eaf2 from'path';import a0_0x400a25 from'os';class PythonAnalyzer{constructor(_0x92d7e5=null){this['logger']=_0x92d7e5,this['pythonCommand']=null;}async[a0_0x5b8f22(0x1e7)](_0x4951fa,_0x1f201b,_0x4796d2={}){const _0x19bdca=a0_0x5b8f22;try{const _0x3daf3d=[],_0x4d25a5=await this[_0x19bdca(0x1d6)]();if(!_0x4d25a5)return this[_0x19bdca(0x1d1)]?.[_0x19bdca(0x1c9)](_0x19bdca(0x1c8)),[];const _0x4a72a2=await this['checkSyntax'](_0x4951fa,_0x1f201b,_0x4d25a5);return _0x3daf3d['push'](..._0x4a72a2),this[_0x19bdca(0x1d1)]?.[_0x19bdca(0x1fb)](_0x19bdca(0x1dc),{'file':_0x4951fa,'totalDiagnostics':_0x3daf3d[_0x19bdca(0x1de)],'errors':_0x3daf3d['filter'](_0x4eb8fe=>_0x4eb8fe[_0x19bdca(0x1df)]===STATIC_ANALYSIS[_0x19bdca(0x1d3)][_0x19bdca(0x1f9)])[_0x19bdca(0x1de)],'warnings':_0x3daf3d['filter'](_0x3f7133=>_0x3f7133[_0x19bdca(0x1df)]===STATIC_ANALYSIS[_0x19bdca(0x1d3)][_0x19bdca(0x1ed)])[_0x19bdca(0x1de)]}),_0x3daf3d;}catch(_0x37d831){return this[_0x19bdca(0x1d1)]?.[_0x19bdca(0x1f3)](_0x19bdca(0x1db),{'file':_0x4951fa,'error':_0x37d831['message']}),[];}}async['checkSyntax'](_0x281b17,_0x4624b7,_0x458b32){const _0x3bbe4d=a0_0x5b8f22,_0x42af08=[],_0xf513c=a0_0x400a25[_0x3bbe4d(0x1e4)](),_0x2444a0=a0_0x33eaf2['join'](_0xf513c,'syntax_check_'+Date[_0x3bbe4d(0x1f2)]()+_0x3bbe4d(0x1d8)),_0x13ef0d=a0_0x33eaf2[_0x3bbe4d(0x1cc)](_0xf513c,'target_'+Date[_0x3bbe4d(0x1f2)]()+'.py');try{await a0_0x45a03a['writeFile'](_0x13ef0d,_0x4624b7,_0x3bbe4d(0x1dd));const _0x5831ef=_0x3bbe4d(0x1cf);await a0_0x45a03a[_0x3bbe4d(0x1ec)](_0x2444a0,_0x5831ef,'utf-8');const _0x79937f=await this[_0x3bbe4d(0x1e8)](_0x458b32,_0x2444a0,[_0x13ef0d]);try{const _0x27eca1=JSON['parse'](_0x79937f['stdout']);if(!_0x27eca1['success']&&_0x27eca1['errors'])for(const _0x2deaf1 of _0x27eca1[_0x3bbe4d(0x1e5)]){_0x42af08['push']({'file':_0x281b17,'line':_0x2deaf1[_0x3bbe4d(0x1cb)]||0x1,'column':_0x2deaf1[_0x3bbe4d(0x1d5)]||0x1,'severity':STATIC_ANALYSIS['SEVERITY'][_0x3bbe4d(0x1f9)],'rule':_0x3bbe4d(0x1f4),'message':_0x2deaf1['message'],'category':STATIC_ANALYSIS[_0x3bbe4d(0x1f0)]['SYNTAX'],'fixable':![],'source':_0x3bbe4d(0x1d4),'code':_0x2deaf1[_0x3bbe4d(0x1d0)]||undefined});}}catch(_0x209a24){this['logger']?.[_0x3bbe4d(0x1c9)](_0x3bbe4d(0x1e3),{'error':_0x209a24[_0x3bbe4d(0x1fd)],'stdout':_0x79937f['stdout']});}}finally{try{await a0_0x45a03a['unlink'](_0x2444a0),await a0_0x45a03a[_0x3bbe4d(0x1f5)](_0x13ef0d);}catch{}}return _0x42af08;}async[a0_0x5b8f22(0x1d6)](){const _0x180856=a0_0x5b8f22;if(this['pythonCommand'])return this['pythonCommand'];const _0x551728=['python3',_0x180856(0x1e0)];for(const _0xa5cbf of _0x551728){try{const _0x4adcb5=await this[_0x180856(0x1da)](_0xa5cbf,['--version']);if(_0x4adcb5['success'])return this['pythonCommand']=_0xa5cbf,this['logger']?.[_0x180856(0x1fb)](_0x180856(0x1e9),{'command':_0xa5cbf,'version':_0x4adcb5[_0x180856(0x1ca)]['trim']()}),_0xa5cbf;}catch{}}return null;}async['runPythonScript'](_0x53e3b7,_0x119f8b,_0x33b26d=[]){return this['runCommand'](_0x53e3b7,[_0x119f8b,..._0x33b26d]);}async['runCommand'](_0x390e50,_0x56eabc=[],_0x3dfb74={}){return new Promise((_0x4f8698,_0x5e1bf1)=>{const _0x268ad9=a0_0x3d2d,_0xaf82ac=spawn(_0x390e50,_0x56eabc,{..._0x3dfb74,'shell':!![]});let _0x2bdfcf='',_0x3f67aa='';_0xaf82ac['stdout']?.['on']('data',_0x3df650=>{const _0x3cf445=a0_0x3d2d;_0x2bdfcf+=_0x3df650[_0x3cf445(0x1d9)]();}),_0xaf82ac[_0x268ad9(0x1ef)]?.['on'](_0x268ad9(0x1ea),_0x593fc8=>{const _0x33bcbd=_0x268ad9;_0x3f67aa+=_0x593fc8[_0x33bcbd(0x1d9)]();}),_0xaf82ac['on']('error',_0x393409=>{_0x5e1bf1(_0x393409);}),_0xaf82ac['on']('close',_0xddd9b6=>{_0x4f8698({'success':_0xddd9b6===0x0,'code':_0xddd9b6,'stdout':_0x2bdfcf,'stderr':_0x3f67aa});}),setTimeout(()=>{const _0x4be503=_0x268ad9;_0xaf82ac[_0x4be503(0x1fa)](),_0x5e1bf1(new Error('Command\x20timeout'));},0x2710);});}[a0_0x5b8f22(0x1cd)](){return['.py'];}[a0_0x5b8f22(0x1fc)](){return![];}}export default PythonAnalyzer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x57e5f0=a0_0x1cfc;(function(_0x485653,_0x415f97){const _0x10f65b=a0_0x1cfc,_0x465916=_0x485653();while(!![]){try{const _0x1d2f1d=parseInt(_0x10f65b(0xbd))/0x1+parseInt(_0x10f65b(0xd3))/0x2+-parseInt(_0x10f65b(0x94))/0x3*(-parseInt(_0x10f65b(0x102))/0x4)+-parseInt(_0x10f65b(0xdc))/0x5+-parseInt(_0x10f65b(0x105))/0x6*(parseInt(_0x10f65b(0xc7))/0x7)+-parseInt(_0x10f65b(0x90))/0x8*(-parseInt(_0x10f65b(0xd2))/0x9)+-parseInt(_0x10f65b(0xcc))/0xa*(parseInt(_0x10f65b(0x96))/0xb);if(_0x1d2f1d===_0x415f97)break;else _0x465916['push'](_0x465916['shift']());}catch(_0x59a201){_0x465916['push'](_0x465916['shift']());}}}(a0_0x1c53,0x7a544));import{exec}from'child_process';import{promisify}from'util';function a0_0x1c53(){const _0x294ebd=['txvSDgKTBgfUz3vHz2uGu0ftvcb3AxrOigv4DgvUC2L2zsbZzwn1CML0EsbYDwXLCW','m1ffuuPyqq','BNbTigLUC3rHBgWGls1ZyxzLlwrLDIbLC2XPBNqTCgX1z2LUlxnLy3vYAxr5','odHHzKLcA0S','Dg9vChbLCKnHC2u','zgvIDwC','CgLWlwf1zgL0ic0TzM9YBwf0igPZB24','y29SDw1U','zML4','CgLWigLUC3rHBgWGC2vTz3jLCcbpuIb1C2uGrg9JA2vYoIbKB2nRzxiGChvSBcbYzxr1CM50B2nVCNaVC2vTz3jLCa','y29Sx29MzNnLDa','CgLWlwf1zgL0','C2nHBM5LCG','ywr2AxnVCNK','qMfUzgL0ihnJyw4GzMfPBgvK','CgfYC2vqAxbbDwrPDfjLC3vSDhm','rvjst1i','BwvKAxvT','lNnJyw5UzxjZ','Bg93','BwfWqMfUzgL0u2v2zxjPDhK','B3DHC3a','BNbTlq','BNbTig5VDcbHDMfPBgfIBgu','zgvWzw5Kzw5JAwvZ','CgfYC2u','CgfYC2vfu0XPBNrszxn1BhrZ','z2v0u2nHBM5LCLn0yxr1CW','Dw5RBM93BG','CgLWlwf1zgL0igrLDgvJDgvK','yMfUzgL0ic0TDMvYC2LVBG','Bg9JywXty2fUBMvYrgLY','y29S','y3zZCW','DMLH','AxnbCNjHEq','u2vTz3jLCa','rvnmAw50ihnLy3vYAxr5ihnJyw4GzMfPBgvK','AxnZDwvFC2v2zxjPDhK','CNvUqMfUzgL0','CgfJA2fNzs5QC29U','BgLUzxm','mtK5mtmYve1dwefq','AxnZDwvFDgv4Da','C2TPCfrLC3rgAwXLCW','Bwv0ywrHDge','C2vTz3jLCa','CNvUugLWqxvKAxq','zgvZy3jPChrPB24','zML4ywjSzq','rMfPBgvKihrVihbHCNnLihbPCc1HDwrPDcbVDxrWDxq','zxH0CMe','mta5mtKZAM1PDwzx','DNvSBMvYywjPBgL0AwvZ','u2vJDxjPDhKGDNvSBMvYywjPBgL0Eq','CMvTzwrPyxrPB24','zxnSAw50','mti2nti0mentr216sW','u2vTz3jLCcbZy2fUBMvYigrLDgvJDgvKicHZExn0zw0P','CMvMzxjLBMnLCW','D2fYBG','v0fstKLorW','qMfUzgL0ihnJyw5UzxiGzgv0zwn0zwq','mJC5vhnPs3j0','mtK5odKZohfWvhDlvq','BMfTzq','C2vJDxjPDhK','u2vTz3jLCcbUB3qGyxzHAwXHyMXL','CgLWlwf1zgL0ig5VDcbHDMfPBgfIBgu','u0vwrvjjvfK','CMvXDwLYzw1LBNrZlNr4Da','BM9YBwfSAxPLuMvZDwX0CW','q1Dflq','oda4ndmWBMrhtKHx','CNvUtNbTqxvKAxq','C3rHCNq','CgLWlwf1zgL0ic0TDMvYC2LVBG','DxjS','BwvZC2fNzxm','DhLWzxnJCMLWDa','BwfWtNbTu2v2zxjPDhK','C2nHBM5LCKnHy2HL','q1jjveLdquW','zxnSAw50u2vJDxjPDhK','uhL0Ag9UigrLCgvUzgvUy3KGDNvSBMvYywjPBgL0EsbZy2fUBMvY','CNvUu2vTz3jLCa','u2vTz3jLCcbZy2fUBMvYigrLDgvJDgvKicHSB2nHBcK','C3rKB3v0','CgfYC2voCg1bDwrPDfjLC3vSDhm','y29UzMLKzw5Jzq','zxnSAw50lxnLy3vYAxr5','su5gtW','rMfPBgvKihrVihbHCNnLifnLBwDYzxaGB3v0Chv0','ChL0Ag9U','u2vJDxjPDhKGAxnZDwuGzgv0zwn0zwq','BwfWugLWqxvKAxrtzxzLCML0Eq','ChvZAa','zgv0zwn0qxzHAwXHyMXLu2nHBM5LCNm','CgfYC2vtzw1NCMvWuMvZDwX0CW','BNbTic0TDMvYC2LVBG','yMfUzgL0','ywnJzxnZ','AMf2yxnJCMLWDa','y3DL','yMfUzgL0ic1MigPZB24GiG','zML4qxzHAwXHyMXL','rMfPBgvKihrVihbHCNnLig5WBsbHDwrPDcbVDxrWDxq','C2v2zxjPDhK','BNbTigXPC3qGzxnSAw50lxbSDwDPBI1Zzwn1CML0EsaTlwrLChrOptaGls1QC29U','zxjYB3i','CNvUrvnmAw50u2vJDxjPDhK','nZm4nJa0r1noDKfx','CMvZDwX0CW','CgLWqxvKAxq','mJrMExPwC3y','C2vTz3jLCcaTlwnVBMzPzZ1HDxrVic0TANnVBIaI','zxH0BMfTzq','BwfW','yw5HBhL6zq','Dg9mB3DLCKnHC2u','AxnZDwvFy3DL','CNvSzuLK','Bg9Nz2vY','DNvSBNm','C291CMnL','DgvZDa','BwvZC2fNzq','AM9PBG','zxnSAw50lxbSDwDPBI1Zzwn1CML0EsbUB3qGyxzHAwXHyMXL','qMfUzgL0','CMfUz2u','CgX1z2LUoNnLy3vYAxr5l3jLy29TBwvUzgvK','y3zL','oteZnZzcB3Dyy0W','AgLNAa','BwfWu2vTz3jLCfnLDMvYAxr5'];a0_0x1c53=function(){return _0x294ebd;};return a0_0x1c53();}import a0_0x42c90b from'path';import a0_0x19237a from'fs/promises';import{STATIC_ANALYSIS}from'../utilities/constants.js';function a0_0x1cfc(_0x36f5eb,_0x1cfdd8){_0x36f5eb=_0x36f5eb-0x7e;const _0x1c539a=a0_0x1c53();let _0x1cfcb1=_0x1c539a[_0x36f5eb];if(a0_0x1cfc['wTnfQD']===undefined){var _0x1b051c=function(_0x27f853){const _0xd72574='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x42c90b='',_0x19237a='';for(let _0x37cf25=0x0,_0x185253,_0x580000,_0x45d859=0x0;_0x580000=_0x27f853['charAt'](_0x45d859++);~_0x580000&&(_0x185253=_0x37cf25%0x4?_0x185253*0x40+_0x580000:_0x580000,_0x37cf25++%0x4)?_0x42c90b+=String['fromCharCode'](0xff&_0x185253>>(-0x2*_0x37cf25&0x6)):0x0){_0x580000=_0xd72574['indexOf'](_0x580000);}for(let _0x4c8b40=0x0,_0x3eae9a=_0x42c90b['length'];_0x4c8b40<_0x3eae9a;_0x4c8b40++){_0x19237a+='%'+('00'+_0x42c90b['charCodeAt'](_0x4c8b40)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x19237a);};a0_0x1cfc['MVIMHJ']=_0x1b051c,a0_0x1cfc['YnMUMO']={},a0_0x1cfc['wTnfQD']=!![];}const _0x57a802=_0x1c539a[0x0],_0x36505f=_0x36f5eb+_0x57a802,_0x48467f=a0_0x1cfc['YnMUMO'][_0x36505f];return!_0x48467f?(_0x1cfcb1=a0_0x1cfc['MVIMHJ'](_0x1cfcb1),a0_0x1cfc['YnMUMO'][_0x36505f]=_0x1cfcb1):_0x1cfcb1=_0x48467f,_0x1cfcb1;}const execAsync=promisify(exec);class SecurityAnalyzer{constructor(_0x37cf25=null){const _0x582145=a0_0x1cfc;this['logger']=_0x37cf25,this['availableScanners']=null,this[_0x582145(0xe4)]=new Map(),this[_0x582145(0xb2)]=a0_0x42c90b[_0x582145(0x8a)](process['cwd'](),'node_modules',_0x582145(0xa5));}async['detectAvailableScanners'](){const _0x1d5fc5=a0_0x1cfc;if(this['availableScanners']!==null)return this['availableScanners'];const _0x185253={'semgrep':![],'bandit':![],'npmAudit':![],'pipAudit':![],'eslintSecurity':![]};try{const _0x580000=a0_0x42c90b['join'](this[_0x1d5fc5(0xb2)],'semgrep');try{await a0_0x19237a['access'](_0x580000),_0x185253[_0x1d5fc5(0xc1)]=!![],this['logger']?.[_0x1d5fc5(0x98)](_0x1d5fc5(0xe9));}catch{await execAsync('semgrep\x20--version',{'timeout':0x1388}),_0x185253[_0x1d5fc5(0xc1)]=!![],this['logger']?.[_0x1d5fc5(0x98)](_0x1d5fc5(0xcd));}}catch(_0x45d859){this[_0x1d5fc5(0x85)]?.['debug'](_0x1d5fc5(0xd6),{'error':_0x45d859[_0x1d5fc5(0x89)]});}try{await execAsync(_0x1d5fc5(0xb1),{'timeout':0x1388}),_0x185253[_0x1d5fc5(0xf7)]=!![],this[_0x1d5fc5(0x85)]?.['debug'](_0x1d5fc5(0xd1));}catch(_0x4c8b40){this[_0x1d5fc5(0x85)]?.[_0x1d5fc5(0x98)]('Bandit\x20not\x20available',{'error':_0x4c8b40[_0x1d5fc5(0x89)]});}try{await execAsync(_0x1d5fc5(0xf6),{'timeout':0x1388}),_0x185253['npmAudit']=!![],this['logger']?.['debug']('npm\x20audit\x20available');}catch(_0x3eae9a){this[_0x1d5fc5(0x85)]?.[_0x1d5fc5(0x98)](_0x1d5fc5(0xaa),{'error':_0x3eae9a['message']});}try{await execAsync(_0x1d5fc5(0xdf),{'timeout':0x1388}),_0x185253[_0x1d5fc5(0x104)]=!![],this['logger']?.['debug'](_0x1d5fc5(0xb0));}catch(_0x20dcc8){this['logger']?.[_0x1d5fc5(0x98)](_0x1d5fc5(0xd7),{'error':_0x20dcc8[_0x1d5fc5(0x89)]});}try{const _0x1664ec=await execAsync(_0x1d5fc5(0xff),{'timeout':0x1388,'cwd':process['cwd']()}),_0x3ce9a6=JSON['parse'](_0x1664ec['stdout']);_0x3ce9a6['dependencies']&&_0x3ce9a6['dependencies']['eslint-plugin-security']&&(_0x185253['eslintSecurity']=!![],this[_0x1d5fc5(0x85)]?.['debug']('eslint-plugin-security\x20detected'));}catch(_0xfa9f34){this[_0x1d5fc5(0x85)]?.['debug'](_0x1d5fc5(0x8b),{'error':_0xfa9f34['message']});}return this['availableScanners']=_0x185253,_0x185253;}async[a0_0x57e5f0(0x81)](_0x522332,_0x5f51e7,_0x4d5493={}){const _0x3da05a=a0_0x57e5f0,_0x332312=[],_0x2fab85=await this['detectAvailableScanners'](),_0x1bba7c=this['detectLanguage'](_0x522332);if(_0x4d5493[_0x3da05a(0xbf)]!==![]&&this['isTestFile'](_0x522332))return this[_0x3da05a(0x85)]?.[_0x3da05a(0x98)]('Skipping\x20test\x20file\x20for\x20security\x20scan',{'filePath':_0x522332}),[];if(_0x1bba7c==='javascript'||_0x1bba7c==='typescript'){if(_0x2fab85[_0x3da05a(0xc1)]){const _0x280bd5=await this['runSemgrep'](_0x522332,[_0x1bba7c],_0x4d5493);_0x332312[_0x3da05a(0xf3)](..._0x280bd5);}if(_0x2fab85[_0x3da05a(0xe6)]){const _0x3faba6=await this[_0x3da05a(0x101)](_0x522332,_0x5f51e7,_0x4d5493);_0x332312['push'](..._0x3faba6);}}if(_0x1bba7c==='python'){if(_0x2fab85[_0x3da05a(0xf7)]){const _0x74f0fb=await this[_0x3da05a(0xba)](_0x522332,_0x4d5493);_0x332312['push'](..._0x74f0fb);}if(_0x2fab85[_0x3da05a(0xc1)]){const _0x1d57f1=await this['runSemgrep'](_0x522332,[_0x1bba7c],_0x4d5493);_0x332312['push'](..._0x1d57f1);}}return _0x332312['length']===0x0&&!this['hasScannersForLanguage'](_0x2fab85,_0x1bba7c)&&this['logger']?.[_0x3da05a(0xcf)]('No\x20security\x20scanners\x20available\x20for\x20language',{'language':_0x1bba7c,'filePath':_0x522332}),this['normalizeResults'](_0x332312);}async['analyzeProject'](_0x1faa7a,_0x3a2e81,_0x81615={}){const _0x5957c2=a0_0x57e5f0,_0x1a05da=[],_0x2f318b=await this[_0x5957c2(0xf4)]();if(_0x3a2e81===_0x5957c2(0xf9)||_0x3a2e81===_0x5957c2(0xe2)){if(_0x2f318b['npmAudit']){const _0x3a4b37=await this['runNpmAudit'](_0x1faa7a,_0x81615);_0x1a05da[_0x5957c2(0xf3)](..._0x3a4b37);}}if(_0x3a2e81===_0x5957c2(0xf0)){if(_0x2f318b[_0x5957c2(0x104)]){const _0x28314e=await this[_0x5957c2(0xc2)](_0x1faa7a,_0x81615);_0x1a05da['push'](..._0x28314e);}}return this[_0x5957c2(0xda)](_0x1a05da);}async[a0_0x57e5f0(0xe8)](_0x1788e9,_0x375681,_0x3f9636={}){const _0x556e2c=a0_0x57e5f0;try{const _0x17c0ae=a0_0x42c90b['dirname'](_0x1788e9),_0x48a51d=await execAsync(_0x556e2c(0x7e)+_0x1788e9+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530,'cwd':_0x17c0ae}),_0xd44b7e=JSON[_0x556e2c(0xac)](_0x48a51d['stdout']);return this[_0x556e2c(0xf5)](_0xd44b7e);}catch(_0x47643e){if(_0x47643e['stdout'])try{const _0x1da431=JSON[_0x556e2c(0xac)](_0x47643e[_0x556e2c(0xea)]);return this[_0x556e2c(0xf5)](_0x1da431);}catch(_0x1b38d2){this[_0x556e2c(0x85)]?.['error'](_0x556e2c(0xef),{'error':_0x1b38d2[_0x556e2c(0x89)],'stdout':_0x47643e[_0x556e2c(0xea)]});}return this['logger']?.[_0x556e2c(0x100)]('Semgrep\x20scan\x20failed',{'error':_0x47643e['message']}),[];}}['parseSemgrepResults'](_0x3bf994){const _0x1edfa4=a0_0x57e5f0,_0x2ab1a5=[];if(_0x3bf994['results']&&Array[_0x1edfa4(0xb6)](_0x3bf994['results']))for(const _0x1afa6b of _0x3bf994[_0x1edfa4(0x103)]){_0x2ab1a5[_0x1edfa4(0xf3)]({'file':_0x1afa6b['path'],'line':_0x1afa6b[_0x1edfa4(0xde)]?.['line']||0x1,'column':_0x1afa6b['start']?.[_0x1edfa4(0xb3)]||0x1,'severity':this[_0x1edfa4(0x92)](_0x1afa6b[_0x1edfa4(0xc6)]?.[_0x1edfa4(0xfe)]),'rule':_0x1afa6b['check_id'],'message':_0x1afa6b[_0x1edfa4(0xc6)]?.[_0x1edfa4(0x89)]||_0x1afa6b[_0x1edfa4(0xc6)]?.[_0x1edfa4(0xbc)]||'Security\x20issue\x20detected','category':'security','scanner':'semgrep','cwe':_0x1afa6b[_0x1edfa4(0xc6)]?.[_0x1edfa4(0xc0)]?.['cwe'],'owasp':_0x1afa6b['extra']?.['metadata']?.[_0x1edfa4(0xa8)],'confidence':_0x1afa6b[_0x1edfa4(0xc6)]?.['metadata']?.[_0x1edfa4(0xec)],'references':_0x1afa6b['extra']?.[_0x1edfa4(0xc0)]?.['references']});}return _0x2ab1a5;}async[a0_0x57e5f0(0xba)](_0x412ce4,_0x4307f7={}){const _0x28d1ea=a0_0x57e5f0;try{const _0x1c442a=await execAsync(_0x28d1ea(0xfb)+_0x412ce4+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530}),_0x334b10=JSON[_0x28d1ea(0xac)](_0x1c442a['stdout']);return this['parseBanditResults'](_0x334b10);}catch(_0x28e39d){if(_0x28e39d['stdout'])try{const _0x24d050=JSON['parse'](_0x28e39d[_0x28d1ea(0xea)]);return this['parseBanditResults'](_0x24d050);}catch(_0x477741){this['logger']?.['error']('Failed\x20to\x20parse\x20Bandit\x20output',{'error':_0x477741['message']});}return this['logger']?.['error'](_0x28d1ea(0xa1),{'error':_0x28e39d[_0x28d1ea(0x89)]}),[];}}['parseBanditResults'](_0x3579fd){const _0x4e08f3=a0_0x57e5f0,_0x2b8e23=[];if(_0x3579fd['results']&&Array[_0x4e08f3(0xb6)](_0x3579fd['results']))for(const _0x3492ec of _0x3579fd[_0x4e08f3(0x103)]){_0x2b8e23[_0x4e08f3(0xf3)]({'file':_0x3492ec['filename'],'line':_0x3492ec['line_number']||0x1,'column':_0x3492ec[_0x4e08f3(0x9d)]||0x1,'severity':this[_0x4e08f3(0xa7)](_0x3492ec[_0x4e08f3(0xb9)]),'rule':_0x3492ec['test_id'],'message':_0x3492ec[_0x4e08f3(0xbe)],'category':'security','scanner':'bandit','cwe':_0x3492ec[_0x4e08f3(0x83)]?.['id']?_0x4e08f3(0xdb)+_0x3492ec[_0x4e08f3(0x83)]['id']:null,'confidence':_0x3492ec['issue_confidence'],'moreInfo':_0x3492ec['more_info']});}return _0x2b8e23;}async['runESLintSecurity'](_0x16b651,_0x10bb8f,_0x10dedc={}){const _0x309307=a0_0x57e5f0;try{const {ESLint:_0x9f4ac}=await import(_0x309307(0xcb)),_0x1569ac=new _0x9f4ac({'overrideConfig':{'plugins':[_0x309307(0xd5)],'extends':[_0x309307(0x8e)],'parserOptions':{'ecmaVersion':'latest','sourceType':'module'}},'useEslintrc':![]}),_0x15a60f=await _0x1569ac['lintText'](_0x10bb8f,{'filePath':_0x16b651});return this['parseESLintResults'](_0x15a60f,_0x16b651);}catch(_0x3cb3e0){return this['logger']?.[_0x309307(0x100)](_0x309307(0xb8),{'error':_0x3cb3e0['message'],'filePath':_0x16b651}),[];}}[a0_0x57e5f0(0xad)](_0x5bd2e4,_0xf63e45){const _0x2faebc=a0_0x57e5f0,_0x35977f=[];for(const _0x472b49 of _0x5bd2e4){if(_0x472b49[_0x2faebc(0xe1)]&&Array[_0x2faebc(0xb6)](_0x472b49[_0x2faebc(0xe1)]))for(const _0x536bb5 of _0x472b49[_0x2faebc(0xe1)]){_0x536bb5['ruleId']&&_0x536bb5[_0x2faebc(0x84)]['startsWith']('security/')&&_0x35977f[_0x2faebc(0xf3)]({'file':_0xf63e45,'line':_0x536bb5['line']||0x1,'column':_0x536bb5[_0x2faebc(0x9a)]||0x1,'severity':this['mapESLintSeverity'](_0x536bb5['severity']),'rule':_0x536bb5['ruleId'],'message':_0x536bb5['message'],'category':_0x2faebc(0xd5),'scanner':_0x2faebc(0xed),'fixable':_0x536bb5[_0x2faebc(0x9b)]!==undefined});}}return _0x35977f;}async[a0_0x57e5f0(0xdd)](_0x39e3cf,_0x25c90b={}){const _0x30ba7f=a0_0x57e5f0;try{const _0x5b4cf8=a0_0x42c90b[_0x30ba7f(0x8a)](_0x39e3cf,_0x30ba7f(0xbb));try{await a0_0x19237a[_0x30ba7f(0xf8)](_0x5b4cf8);}catch{return this[_0x30ba7f(0x85)]?.[_0x30ba7f(0x98)]('No\x20package.json\x20found,\x20skipping\x20npm\x20audit'),[];}const _0x4a2ea9=await execAsync('npm\x20audit\x20--json',{'cwd':_0x39e3cf,'maxBuffer':0xa*0x400*0x400,'timeout':0xea60}),_0x1bd0ea=JSON[_0x30ba7f(0xac)](_0x4a2ea9[_0x30ba7f(0xea)]);return this[_0x30ba7f(0xeb)](_0x1bd0ea);}catch(_0x2be899){if(_0x2be899[_0x30ba7f(0xea)])try{const _0x20a267=JSON[_0x30ba7f(0xac)](_0x2be899['stdout']);return this['parseNpmAuditResults'](_0x20a267);}catch(_0x25cbff){this['logger']?.[_0x30ba7f(0x100)](_0x30ba7f(0xfd),{'error':_0x25cbff['message']});}return[];}}['parseNpmAuditResults'](_0x11f2a2){const _0x21f1a9=a0_0x57e5f0,_0x58615b=[];if(_0x11f2a2[_0x21f1a9(0xc8)])for(const [_0x2d40b4,_0x13078b]of Object['entries'](_0x11f2a2[_0x21f1a9(0xc8)])){_0x58615b['push']({'file':_0x21f1a9(0xbb),'line':0x1,'column':0x1,'severity':this[_0x21f1a9(0xe3)](_0x13078b[_0x21f1a9(0xfe)]),'rule':_0x21f1a9(0xa9)+(_0x13078b['via'][0x0]?.[_0x21f1a9(0x87)]||_0x21f1a9(0xa0)),'message':_0x2d40b4+':\x20'+(_0x13078b[_0x21f1a9(0xb5)][0x0]?.['title']||_0x21f1a9(0xc9)),'category':'security','scanner':'npm-audit','package':_0x2d40b4,'vulnerableVersions':_0x13078b[_0x21f1a9(0x8d)],'patchedVersions':_0x13078b[_0x21f1a9(0xfc)]?'Available':'None','cve':_0x13078b[_0x21f1a9(0xb5)][0x0]?.[_0x21f1a9(0x8f)],'cvss':_0x13078b['via'][0x0]?.[_0x21f1a9(0xb4)],'references':_0x13078b[_0x21f1a9(0xb5)][0x0]?.['url']?[_0x13078b['via'][0x0][_0x21f1a9(0xe0)]]:[]});}return _0x58615b;}async[a0_0x57e5f0(0xc2)](_0x36bb20,_0x2f96c4={}){const _0xc3265=a0_0x57e5f0;try{const requirementsPath=a0_0x42c90b[_0xc3265(0x8a)](_0x36bb20,_0xc3265(0xd9));try{await a0_0x19237a['access'](requirementsPath);}catch{return this['logger']?.[_0xc3265(0x98)]('No\x20requirements.txt\x20found,\x20skipping\x20pip-audit'),[];}const _0x4e41fd=await execAsync(_0xc3265(0x99),{'cwd':_0x36bb20,'maxBuffer':0xa*0x400*0x400,'timeout':0xea60}),_0x497a50=JSON['parse'](_0x4e41fd['stdout']);return this['parsePipAuditResults'](_0x497a50);}catch(_0x178bd7){if(_0x178bd7['stdout'])try{const _0x5686fd=JSON['parse'](_0x178bd7[_0xc3265(0xea)]);return this['parsePipAuditResults'](_0x5686fd);}catch(_0x3a8f09){this[_0xc3265(0x85)]?.['error'](_0xc3265(0xc5),{'error':_0x3a8f09['message']});}return[];}}[a0_0x57e5f0(0xa2)](_0x45afc7){const _0x301b84=a0_0x57e5f0,_0x2a4dd7=[];if(_0x45afc7[_0x301b84(0xab)]&&Array['isArray'](_0x45afc7['dependencies']))for(const _0x3e4812 of _0x45afc7['dependencies']){if(_0x3e4812['vulns']&&Array[_0x301b84(0xb6)](_0x3e4812[_0x301b84(0x86)]))for(const _0x32a428 of _0x3e4812[_0x301b84(0x86)]){_0x2a4dd7['push']({'file':_0x301b84(0xd9),'line':0x1,'column':0x1,'severity':this['mapPipAuditSeverity'](_0x32a428['severity']),'rule':_0x32a428['id'],'message':_0x3e4812[_0x301b84(0xd4)]+':\x20'+(_0x32a428[_0x301b84(0xc3)]||_0x301b84(0xc9)),'category':'security','scanner':'pip-audit','package':_0x3e4812['name'],'vulnerableVersion':_0x3e4812['version'],'fixedVersions':_0x32a428['fix_versions'],'references':_0x32a428['aliases']||[]});}}return _0x2a4dd7;}['detectLanguage'](_0x4fe576){const _0x11edaf=a0_0x57e5f0,_0x33c57f=a0_0x42c90b[_0x11edaf(0x7f)](_0x4fe576)['toLowerCase'](),_0x596b4d={'.js':_0x11edaf(0xf9),'.jsx':_0x11edaf(0xf9),'.mjs':'javascript','.cjs':'javascript','.ts':_0x11edaf(0xe2),'.tsx':'typescript','.py':_0x11edaf(0xf0)};return _0x596b4d[_0x33c57f]||null;}['isTestFile'](_0x5883c3){const _0x153022=a0_0x57e5f0,_0x552528=[/\.test\./,/\.spec\./,/__tests__\//,/\/tests?\//,/\.test$/,/\.spec$/];return _0x552528['some'](_0x576de8=>_0x576de8[_0x153022(0x88)](_0x5883c3));}['hasScannersForLanguage'](_0x4abae9,_0x21f0db){const _0x1eb92a=a0_0x57e5f0;if(_0x21f0db==='javascript'||_0x21f0db==='typescript')return _0x4abae9['semgrep']||_0x4abae9[_0x1eb92a(0xe6)];if(_0x21f0db==='python')return _0x4abae9[_0x1eb92a(0xf7)]||_0x4abae9['semgrep'];return![];}[a0_0x57e5f0(0xda)](_0x3e7d0f){const _0x1a2ca8=a0_0x57e5f0;return _0x3e7d0f[_0x1a2ca8(0x80)](_0x16fc25=>({'file':_0x16fc25['file'],'line':_0x16fc25['line']||0x1,'column':_0x16fc25['column']||0x1,'severity':_0x16fc25['severity']||STATIC_ANALYSIS['SEVERITY'][_0x1a2ca8(0xd0)],'rule':_0x16fc25['rule']||_0x1a2ca8(0xaf),'message':_0x16fc25[_0x1a2ca8(0x89)]||_0x1a2ca8(0xf1),'category':'security','scanner':_0x16fc25[_0x1a2ca8(0x9f)],'cwe':_0x16fc25[_0x1a2ca8(0xfa)]||null,'owasp':_0x16fc25['owasp']||null,'confidence':_0x16fc25['confidence']||null,'fixable':_0x16fc25[_0x1a2ca8(0xc4)]||![],'remediation':_0x16fc25[_0x1a2ca8(0xca)]||_0x16fc25['moreInfo']||null,'references':_0x16fc25[_0x1a2ca8(0xce)]||[],'package':_0x16fc25['package']||null}));}[a0_0x57e5f0(0x92)](_0x16e1da){const _0x525d9b=a0_0x57e5f0,_0x408ba2={'ERROR':STATIC_ANALYSIS[_0x525d9b(0xd8)][_0x525d9b(0xe5)],'WARNING':STATIC_ANALYSIS['SEVERITY'][_0x525d9b(0xa3)],'INFO':STATIC_ANALYSIS['SEVERITY']['WARNING']};return _0x408ba2[_0x16e1da?.[_0x525d9b(0x97)]()]||STATIC_ANALYSIS[_0x525d9b(0xd8)][_0x525d9b(0xd0)];}['mapBanditSeverity'](_0x1dcdcb){const _0x2f5ad4=a0_0x57e5f0,_0x1277d5={'HIGH':STATIC_ANALYSIS['SEVERITY']['CRITICAL'],'MEDIUM':STATIC_ANALYSIS['SEVERITY']['ERROR'],'LOW':STATIC_ANALYSIS['SEVERITY']['WARNING']};return _0x1277d5[_0x1dcdcb?.[_0x2f5ad4(0x97)]()]||STATIC_ANALYSIS['SEVERITY']['WARNING'];}['mapESLintSeverity'](_0x3b15d7){const _0x426def=a0_0x57e5f0;return _0x3b15d7===0x2?STATIC_ANALYSIS[_0x426def(0xd8)][_0x426def(0xa3)]:STATIC_ANALYSIS['SEVERITY']['WARNING'];}['mapNpmSeverity'](_0x1fb14e){const _0x344440=a0_0x57e5f0,_0x473ff1={'critical':STATIC_ANALYSIS['SEVERITY'][_0x344440(0xe5)],'high':STATIC_ANALYSIS[_0x344440(0xd8)]['CRITICAL'],'moderate':STATIC_ANALYSIS[_0x344440(0xd8)][_0x344440(0xa3)],'low':STATIC_ANALYSIS[_0x344440(0xd8)]['WARNING'],'info':STATIC_ANALYSIS[_0x344440(0xd8)][_0x344440(0xee)]};return _0x473ff1[_0x1fb14e?.[_0x344440(0x82)]()]||STATIC_ANALYSIS['SEVERITY'][_0x344440(0xd0)];}[a0_0x57e5f0(0xf2)](_0x16457f){const _0x1eee5d=a0_0x57e5f0;if(!_0x16457f)return STATIC_ANALYSIS[_0x1eee5d(0xd8)][_0x1eee5d(0xa3)];const _0x49164e={'critical':STATIC_ANALYSIS[_0x1eee5d(0xd8)]['CRITICAL'],'high':STATIC_ANALYSIS[_0x1eee5d(0xd8)]['CRITICAL'],'medium':STATIC_ANALYSIS[_0x1eee5d(0xd8)][_0x1eee5d(0xa3)],'low':STATIC_ANALYSIS[_0x1eee5d(0xd8)][_0x1eee5d(0xd0)]};return _0x49164e[_0x16457f?.[_0x1eee5d(0x82)]()]||STATIC_ANALYSIS[_0x1eee5d(0xd8)]['ERROR'];}async[a0_0x57e5f0(0xae)](){const _0x31c36a=await this['detectAvailableScanners']();return{'scanners':_0x31c36a,'recommendations':this['getInstallRecommendations'](_0x31c36a)};}['getInstallRecommendations'](_0x4cc2cc){const _0x1de3b6=a0_0x57e5f0,_0x5bd3db=[];return!_0x4cc2cc[_0x1de3b6(0xc1)]&&_0x5bd3db['push']({'scanner':_0x1de3b6(0xb7),'reason':_0x1de3b6(0x93),'install':_0x1de3b6(0x9c),'priority':_0x1de3b6(0x91)}),!_0x4cc2cc[_0x1de3b6(0xf7)]&&_0x5bd3db[_0x1de3b6(0xf3)]({'scanner':_0x1de3b6(0x8c),'reason':'Python\x20security\x20scanner','install':'pip\x20install\x20bandit','priority':_0x1de3b6(0xa4)}),!_0x4cc2cc['eslintSecurity']&&_0x5bd3db[_0x1de3b6(0xf3)]({'scanner':'eslint-plugin-security','reason':'JavaScript/TypeScript\x20security\x20rules','install':_0x1de3b6(0x95),'priority':_0x1de3b6(0xa4)}),!_0x4cc2cc[_0x1de3b6(0x104)]&&_0x5bd3db[_0x1de3b6(0xf3)]({'scanner':_0x1de3b6(0x9e),'reason':_0x1de3b6(0xe7),'install':'pip\x20install\x20pip-audit','priority':_0x1de3b6(0xa6)}),_0x5bd3db;}}export default SecurityAnalyzer;
|
|
1
|
+
const a0_0x49eb50=a0_0x4cd6;(function(_0x253ade,_0x1cf3a3){const _0x477b75=a0_0x4cd6,_0x552cdd=_0x253ade();while(!![]){try{const _0x2eb4b3=parseInt(_0x477b75(0xed))/0x1*(-parseInt(_0x477b75(0x153))/0x2)+parseInt(_0x477b75(0x137))/0x3*(-parseInt(_0x477b75(0x13c))/0x4)+-parseInt(_0x477b75(0x12b))/0x5+parseInt(_0x477b75(0xfb))/0x6*(parseInt(_0x477b75(0x147))/0x7)+-parseInt(_0x477b75(0x162))/0x8*(-parseInt(_0x477b75(0x130))/0x9)+-parseInt(_0x477b75(0x126))/0xa*(parseInt(_0x477b75(0x12a))/0xb)+parseInt(_0x477b75(0x145))/0xc;if(_0x2eb4b3===_0x1cf3a3)break;else _0x552cdd['push'](_0x552cdd['shift']());}catch(_0x2597b8){_0x552cdd['push'](_0x552cdd['shift']());}}}(a0_0x21e6,0x4ce9f));import{exec}from'child_process';import{promisify}from'util';import a0_0x2d46a7 from'path';import a0_0x44e6b4 from'fs/promises';function a0_0x4cd6(_0x1042bd,_0x55dcb3){_0x1042bd=_0x1042bd-0xe4;const _0x21e602=a0_0x21e6();let _0x4cd6c3=_0x21e602[_0x1042bd];if(a0_0x4cd6['vMaRbT']===undefined){var _0xf807b1=function(_0x482685){const _0x183649='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2d46a7='',_0x44e6b4='';for(let _0x1c7a38=0x0,_0x3009fb,_0x3edad0,_0x111a4d=0x0;_0x3edad0=_0x482685['charAt'](_0x111a4d++);~_0x3edad0&&(_0x3009fb=_0x1c7a38%0x4?_0x3009fb*0x40+_0x3edad0:_0x3edad0,_0x1c7a38++%0x4)?_0x2d46a7+=String['fromCharCode'](0xff&_0x3009fb>>(-0x2*_0x1c7a38&0x6)):0x0){_0x3edad0=_0x183649['indexOf'](_0x3edad0);}for(let _0x7ebf0=0x0,_0x53a628=_0x2d46a7['length'];_0x7ebf0<_0x53a628;_0x7ebf0++){_0x44e6b4+='%'+('00'+_0x2d46a7['charCodeAt'](_0x7ebf0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x44e6b4);};a0_0x4cd6['lzxKXm']=_0xf807b1,a0_0x4cd6['oTZpxj']={},a0_0x4cd6['vMaRbT']=!![];}const _0x1ef6c9=_0x21e602[0x0],_0x409c77=_0x1042bd+_0x1ef6c9,_0x3227ab=a0_0x4cd6['oTZpxj'][_0x409c77];return!_0x3227ab?(_0x4cd6c3=a0_0x4cd6['lzxKXm'](_0x4cd6c3),a0_0x4cd6['oTZpxj'][_0x409c77]=_0x4cd6c3):_0x4cd6c3=_0x3227ab,_0x4cd6c3;}import{STATIC_ANALYSIS}from'../utilities/constants.js';const execAsync=promisify(exec);class SecurityAnalyzer{constructor(_0x1c7a38=null){const _0xb8412b=a0_0x4cd6;this[_0xb8412b(0x142)]=_0x1c7a38,this['availableScanners']=null,this['scannerCache']=new Map(),this[_0xb8412b(0x150)]=a0_0x2d46a7[_0xb8412b(0x10d)](process[_0xb8412b(0xf6)](),_0xb8412b(0x108),'.scanners');}async[a0_0x49eb50(0xfc)](){const _0x2f8f83=a0_0x49eb50;if(this[_0x2f8f83(0x14d)]!==null)return this['availableScanners'];const _0x3009fb={'semgrep':![],'bandit':![],'npmAudit':![],'pipAudit':![],'eslintSecurity':![]};try{const _0x3edad0=a0_0x2d46a7[_0x2f8f83(0x10d)](this['localScannerDir'],_0x2f8f83(0x11b));try{await a0_0x44e6b4['access'](_0x3edad0),_0x3009fb['semgrep']=!![],this[_0x2f8f83(0x142)]?.['debug'](_0x2f8f83(0x116));}catch{await execAsync('semgrep\x20--version',{'timeout':0x1388}),_0x3009fb[_0x2f8f83(0x11b)]=!![],this[_0x2f8f83(0x142)]?.[_0x2f8f83(0x122)](_0x2f8f83(0xf8));}}catch(_0x111a4d){this[_0x2f8f83(0x142)]?.[_0x2f8f83(0x122)]('Semgrep\x20not\x20available',{'error':_0x111a4d[_0x2f8f83(0xf4)]});}try{await execAsync(_0x2f8f83(0x114),{'timeout':0x1388}),_0x3009fb[_0x2f8f83(0x158)]=!![],this['logger']?.['debug'](_0x2f8f83(0xff));}catch(_0x7ebf0){this['logger']?.[_0x2f8f83(0x122)](_0x2f8f83(0x149),{'error':_0x7ebf0['message']});}try{await execAsync(_0x2f8f83(0x132),{'timeout':0x1388}),_0x3009fb[_0x2f8f83(0x102)]=!![],this['logger']?.['debug'](_0x2f8f83(0x104));}catch(_0x53a628){this[_0x2f8f83(0x142)]?.[_0x2f8f83(0x122)]('npm\x20not\x20available',{'error':_0x53a628['message']});}try{await execAsync(_0x2f8f83(0x119),{'timeout':0x1388}),_0x3009fb['pipAudit']=!![],this['logger']?.[_0x2f8f83(0x122)](_0x2f8f83(0x13d));}catch(_0x5c1c58){this['logger']?.[_0x2f8f83(0x122)]('pip-audit\x20not\x20available',{'error':_0x5c1c58[_0x2f8f83(0xf4)]});}try{const _0x341126=await execAsync('npm\x20list\x20eslint-plugin-security\x20--depth=0\x20--json',{'timeout':0x1388,'cwd':process['cwd']()}),_0xeb6367=JSON[_0x2f8f83(0x123)](_0x341126['stdout']);_0xeb6367['dependencies']&&_0xeb6367[_0x2f8f83(0x165)][_0x2f8f83(0x14e)]&&(_0x3009fb[_0x2f8f83(0x115)]=!![],this[_0x2f8f83(0x142)]?.[_0x2f8f83(0x122)](_0x2f8f83(0x112)));}catch(_0x15798c){this['logger']?.['debug'](_0x2f8f83(0xf3),{'error':_0x15798c['message']});}return this[_0x2f8f83(0x14d)]=_0x3009fb,_0x3009fb;}async[a0_0x49eb50(0x146)](_0x5dfe91,_0x323ff2,_0x3e6ef8={}){const _0x48f572=a0_0x49eb50,_0x134786=[],_0xc78cd2=await this['detectAvailableScanners'](),_0x15ac17=this['detectLanguage'](_0x5dfe91);if(_0x3e6ef8[_0x48f572(0x151)]!==![]&&this[_0x48f572(0x144)](_0x5dfe91))return this['logger']?.['debug'](_0x48f572(0x11a),{'filePath':_0x5dfe91}),[];if(_0x15ac17==='javascript'||_0x15ac17===_0x48f572(0x12c)){if(_0xc78cd2['semgrep']){const _0x44f31=await this[_0x48f572(0x11c)](_0x5dfe91,[_0x15ac17],_0x3e6ef8);_0x134786['push'](..._0x44f31);}if(_0xc78cd2['eslintSecurity']){const _0x38ec9c=await this['runESLintSecurity'](_0x5dfe91,_0x323ff2,_0x3e6ef8);_0x134786['push'](..._0x38ec9c);}}if(_0x15ac17==='python'){if(_0xc78cd2['bandit']){const _0x157d8e=await this['runBandit'](_0x5dfe91,_0x3e6ef8);_0x134786[_0x48f572(0x111)](..._0x157d8e);}if(_0xc78cd2[_0x48f572(0x11b)]){const _0x7051aa=await this[_0x48f572(0x11c)](_0x5dfe91,[_0x15ac17],_0x3e6ef8);_0x134786['push'](..._0x7051aa);}}return _0x134786['length']===0x0&&!this['hasScannersForLanguage'](_0xc78cd2,_0x15ac17)&&this['logger']?.['warn'](_0x48f572(0x113),{'language':_0x15ac17,'filePath':_0x5dfe91}),this['normalizeResults'](_0x134786);}async['analyzeProject'](_0x3d15b3,_0x3268fb,_0x1f635d={}){const _0x21682b=a0_0x49eb50,_0x46f21c=[],_0x5e2a7f=await this[_0x21682b(0xfc)]();if(_0x3268fb===_0x21682b(0xeb)||_0x3268fb==='typescript'){if(_0x5e2a7f['npmAudit']){const _0x52eff2=await this['runNpmAudit'](_0x3d15b3,_0x1f635d);_0x46f21c[_0x21682b(0x111)](..._0x52eff2);}}if(_0x3268fb===_0x21682b(0x134)){if(_0x5e2a7f[_0x21682b(0x10f)]){const _0x190f21=await this['runPipAudit'](_0x3d15b3,_0x1f635d);_0x46f21c['push'](..._0x190f21);}}return this['normalizeResults'](_0x46f21c);}async[a0_0x49eb50(0x11c)](_0x29ba33,_0x383e2e,_0x5c07c1={}){const _0x4fddde=a0_0x49eb50;try{const _0x251f14=a0_0x2d46a7['dirname'](_0x29ba33),_0xbc20ec=await execAsync(_0x4fddde(0x13b)+_0x29ba33+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530,'cwd':_0x251f14}),_0x29697f=JSON['parse'](_0xbc20ec[_0x4fddde(0x100)]);return this['parseSemgrepResults'](_0x29697f);}catch(_0x3359f5){if(_0x3359f5[_0x4fddde(0x100)])try{const _0x39a6ef=JSON['parse'](_0x3359f5['stdout']);return this[_0x4fddde(0xf9)](_0x39a6ef);}catch(_0x42a1c0){this[_0x4fddde(0x142)]?.[_0x4fddde(0x109)](_0x4fddde(0xee),{'error':_0x42a1c0[_0x4fddde(0xf4)],'stdout':_0x3359f5['stdout']});}return this['logger']?.['error']('Semgrep\x20scan\x20failed',{'error':_0x3359f5['message']}),[];}}[a0_0x49eb50(0xf9)](_0x2531f7){const _0x376a97=a0_0x49eb50,_0x44482a=[];if(_0x2531f7[_0x376a97(0x12f)]&&Array[_0x376a97(0x141)](_0x2531f7['results']))for(const _0x40135c of _0x2531f7[_0x376a97(0x12f)]){_0x44482a['push']({'file':_0x40135c[_0x376a97(0x13f)],'line':_0x40135c['start']?.[_0x376a97(0x107)]||0x1,'column':_0x40135c[_0x376a97(0x15c)]?.['col']||0x1,'severity':this[_0x376a97(0x135)](_0x40135c['extra']?.['severity']),'rule':_0x40135c[_0x376a97(0xfd)],'message':_0x40135c['extra']?.[_0x376a97(0xf4)]||_0x40135c[_0x376a97(0x101)]?.[_0x376a97(0xf5)]||'Security\x20issue\x20detected','category':'security','scanner':_0x376a97(0x11b),'cwe':_0x40135c['extra']?.['metadata']?.[_0x376a97(0xe8)],'owasp':_0x40135c['extra']?.[_0x376a97(0xe5)]?.['owasp'],'confidence':_0x40135c['extra']?.[_0x376a97(0xe5)]?.[_0x376a97(0x156)],'references':_0x40135c['extra']?.['metadata']?.['references']});}return _0x44482a;}async['runBandit'](_0x54f09a,_0x528d0f={}){const _0x332bed=a0_0x49eb50;try{const _0x57e29f=await execAsync('bandit\x20-f\x20json\x20\x22'+_0x54f09a+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530}),_0x482aaa=JSON[_0x332bed(0x123)](_0x57e29f[_0x332bed(0x100)]);return this['parseBanditResults'](_0x482aaa);}catch(_0x4a753d){if(_0x4a753d['stdout'])try{const _0x2fb34c=JSON['parse'](_0x4a753d['stdout']);return this['parseBanditResults'](_0x2fb34c);}catch(_0x505fc9){this['logger']?.[_0x332bed(0x109)]('Failed\x20to\x20parse\x20Bandit\x20output',{'error':_0x505fc9['message']});}return this['logger']?.[_0x332bed(0x109)]('Bandit\x20scan\x20failed',{'error':_0x4a753d[_0x332bed(0xf4)]}),[];}}['parseBanditResults'](_0x235045){const _0xd05e74=a0_0x49eb50,_0x164bc8=[];if(_0x235045[_0xd05e74(0x12f)]&&Array['isArray'](_0x235045[_0xd05e74(0x12f)]))for(const _0x15b725 of _0x235045['results']){_0x164bc8[_0xd05e74(0x111)]({'file':_0x15b725[_0xd05e74(0x11e)],'line':_0x15b725['line_number']||0x1,'column':_0x15b725['col_offset']||0x1,'severity':this[_0xd05e74(0x10e)](_0x15b725[_0xd05e74(0x13e)]),'rule':_0x15b725['test_id'],'message':_0x15b725[_0xd05e74(0x159)],'category':_0xd05e74(0x15a),'scanner':'bandit','cwe':_0x15b725[_0xd05e74(0x11f)]?.['id']?'CWE-'+_0x15b725[_0xd05e74(0x11f)]['id']:null,'confidence':_0x15b725[_0xd05e74(0x152)],'moreInfo':_0x15b725['more_info']});}return _0x164bc8;}async[a0_0x49eb50(0xe9)](_0x235aeb,_0x3bab8e,_0x2f9071={}){const _0x4ae260=a0_0x49eb50;try{const {ESLint:_0x1724d9}=await import('eslint'),_0x4578d2=new _0x1724d9({'overrideConfig':{'plugins':[_0x4ae260(0x15a)],'extends':['plugin:security/recommended'],'parserOptions':{'ecmaVersion':'latest','sourceType':_0x4ae260(0x120)}},'useEslintrc':![]}),_0x46ce5c=await _0x4578d2[_0x4ae260(0xe6)](_0x3bab8e,{'filePath':_0x235aeb});return this['parseESLintResults'](_0x46ce5c,_0x235aeb);}catch(_0x4cc105){return this[_0x4ae260(0x142)]?.['error']('ESLint\x20security\x20scan\x20failed',{'error':_0x4cc105[_0x4ae260(0xf4)],'filePath':_0x235aeb}),[];}}['parseESLintResults'](_0x3ce353,_0x29a28f){const _0x1ce082=a0_0x49eb50,_0xcb78f5=[];for(const _0x4fab7d of _0x3ce353){if(_0x4fab7d['messages']&&Array['isArray'](_0x4fab7d['messages']))for(const _0x31b7a7 of _0x4fab7d[_0x1ce082(0xef)]){_0x31b7a7['ruleId']&&_0x31b7a7[_0x1ce082(0x124)]['startsWith'](_0x1ce082(0x161))&&_0xcb78f5[_0x1ce082(0x111)]({'file':_0x29a28f,'line':_0x31b7a7['line']||0x1,'column':_0x31b7a7[_0x1ce082(0x148)]||0x1,'severity':this['mapESLintSeverity'](_0x31b7a7['severity']),'rule':_0x31b7a7[_0x1ce082(0x124)],'message':_0x31b7a7['message'],'category':'security','scanner':'eslint-security','fixable':_0x31b7a7[_0x1ce082(0x10c)]!==undefined});}}return _0xcb78f5;}async[a0_0x49eb50(0xf2)](_0x4b66e3,_0x51c25c={}){const _0x14c6bb=a0_0x49eb50;try{const _0x434841=a0_0x2d46a7['join'](_0x4b66e3,_0x14c6bb(0x14b));try{await a0_0x44e6b4['access'](_0x434841);}catch{return this[_0x14c6bb(0x142)]?.['debug'](_0x14c6bb(0x15f)),[];}const _0x11ddef=await execAsync(_0x14c6bb(0xfe),{'cwd':_0x4b66e3,'maxBuffer':0xa*0x400*0x400,'timeout':0xea60}),_0x4b3b5a=JSON['parse'](_0x11ddef[_0x14c6bb(0x100)]);return this[_0x14c6bb(0x11d)](_0x4b3b5a);}catch(_0x386a51){if(_0x386a51['stdout'])try{const _0x2d4800=JSON['parse'](_0x386a51['stdout']);return this[_0x14c6bb(0x11d)](_0x2d4800);}catch(_0x21e2f5){this['logger']?.[_0x14c6bb(0x109)]('Failed\x20to\x20parse\x20npm\x20audit\x20output',{'error':_0x21e2f5['message']});}return[];}}['parseNpmAuditResults'](_0x19943a){const _0x5cb4c6=a0_0x49eb50,_0x4f2407=[];if(_0x19943a[_0x5cb4c6(0x14a)])for(const [_0x243b8f,_0x3ffa8]of Object[_0x5cb4c6(0x15d)](_0x19943a[_0x5cb4c6(0x14a)])){_0x4f2407['push']({'file':'package.json','line':0x1,'column':0x1,'severity':this[_0x5cb4c6(0xf0)](_0x3ffa8[_0x5cb4c6(0x128)]),'rule':_0x5cb4c6(0x14f)+(_0x3ffa8['via'][0x0]?.[_0x5cb4c6(0xe7)]||_0x5cb4c6(0xf7)),'message':_0x243b8f+':\x20'+(_0x3ffa8[_0x5cb4c6(0x155)][0x0]?.[_0x5cb4c6(0x10b)]||'Security\x20vulnerability'),'category':'security','scanner':'npm-audit','package':_0x243b8f,'vulnerableVersions':_0x3ffa8['range'],'patchedVersions':_0x3ffa8[_0x5cb4c6(0x129)]?_0x5cb4c6(0x110):'None','cve':_0x3ffa8[_0x5cb4c6(0x155)][0x0]?.['cve'],'cvss':_0x3ffa8['via'][0x0]?.['cvss'],'references':_0x3ffa8[_0x5cb4c6(0x155)][0x0]?.['url']?[_0x3ffa8[_0x5cb4c6(0x155)][0x0][_0x5cb4c6(0xe4)]]:[]});}return _0x4f2407;}async[a0_0x49eb50(0x143)](_0x1f4436,_0x4f79b1={}){const _0x53cf26=a0_0x49eb50;try{const requirementsPath=a0_0x2d46a7[_0x53cf26(0x10d)](_0x1f4436,'requirements.txt');try{await a0_0x44e6b4[_0x53cf26(0x12d)](requirementsPath);}catch{return this['logger']?.['debug'](_0x53cf26(0x125)),[];}const _0x1a080f=await execAsync('pip-audit\x20--format\x20json',{'cwd':_0x1f4436,'maxBuffer':0xa*0x400*0x400,'timeout':0xea60}),_0x375122=JSON[_0x53cf26(0x123)](_0x1a080f['stdout']);return this['parsePipAuditResults'](_0x375122);}catch(_0x1dc806){if(_0x1dc806['stdout'])try{const _0x4210ec=JSON['parse'](_0x1dc806['stdout']);return this['parsePipAuditResults'](_0x4210ec);}catch(_0x49899f){this['logger']?.[_0x53cf26(0x109)](_0x53cf26(0x106),{'error':_0x49899f[_0x53cf26(0xf4)]});}return[];}}['parsePipAuditResults'](_0x17daf2){const _0x3493c3=a0_0x49eb50,_0x2d4497=[];if(_0x17daf2['dependencies']&&Array['isArray'](_0x17daf2[_0x3493c3(0x165)]))for(const _0x453110 of _0x17daf2['dependencies']){if(_0x453110[_0x3493c3(0x138)]&&Array['isArray'](_0x453110['vulns']))for(const _0x53b5c1 of _0x453110[_0x3493c3(0x138)]){_0x2d4497[_0x3493c3(0x111)]({'file':'requirements.txt','line':0x1,'column':0x1,'severity':this['mapPipAuditSeverity'](_0x53b5c1['severity']),'rule':_0x53b5c1['id'],'message':_0x453110['name']+':\x20'+(_0x53b5c1['description']||_0x3493c3(0x131)),'category':'security','scanner':_0x3493c3(0x14c),'package':_0x453110[_0x3493c3(0xfa)],'vulnerableVersion':_0x453110[_0x3493c3(0x118)],'fixedVersions':_0x53b5c1['fix_versions'],'references':_0x53b5c1['aliases']||[]});}}return _0x2d4497;}['detectLanguage'](_0x672e3f){const _0x79eb12=a0_0x49eb50,_0x88f4c7=a0_0x2d46a7['extname'](_0x672e3f)[_0x79eb12(0x163)](),_0x3f75f8={'.js':'javascript','.jsx':_0x79eb12(0xeb),'.mjs':_0x79eb12(0xeb),'.cjs':_0x79eb12(0xeb),'.ts':'typescript','.tsx':'typescript','.py':_0x79eb12(0x134)};return _0x3f75f8[_0x88f4c7]||null;}['isTestFile'](_0x3f8277){const _0x48cbb4=a0_0x49eb50,_0x39452f=[/\.test\./,/\.spec\./,/__tests__\//,/\/tests?\//,/\.test$/,/\.spec$/];return _0x39452f[_0x48cbb4(0x103)](_0x3afcf8=>_0x3afcf8[_0x48cbb4(0x105)](_0x3f8277));}['hasScannersForLanguage'](_0x1792c5,_0x3ad983){const _0x4fb88e=a0_0x49eb50;if(_0x3ad983===_0x4fb88e(0xeb)||_0x3ad983==='typescript')return _0x1792c5['semgrep']||_0x1792c5[_0x4fb88e(0x115)];if(_0x3ad983==='python')return _0x1792c5[_0x4fb88e(0x158)]||_0x1792c5[_0x4fb88e(0x11b)];return![];}[a0_0x49eb50(0x160)](_0x349097){const _0x41f1be=a0_0x49eb50;return _0x349097['map'](_0x225ab4=>({'file':_0x225ab4['file'],'line':_0x225ab4[_0x41f1be(0x107)]||0x1,'column':_0x225ab4[_0x41f1be(0x148)]||0x1,'severity':_0x225ab4['severity']||STATIC_ANALYSIS[_0x41f1be(0x154)]['WARNING'],'rule':_0x225ab4['rule']||_0x41f1be(0xec),'message':_0x225ab4[_0x41f1be(0xf4)]||_0x41f1be(0x166),'category':_0x41f1be(0x15a),'scanner':_0x225ab4[_0x41f1be(0x13a)],'cwe':_0x225ab4[_0x41f1be(0xe8)]||null,'owasp':_0x225ab4[_0x41f1be(0x133)]||null,'confidence':_0x225ab4['confidence']||null,'fixable':_0x225ab4['fixable']||![],'remediation':_0x225ab4[_0x41f1be(0x127)]||_0x225ab4['moreInfo']||null,'references':_0x225ab4['references']||[],'package':_0x225ab4[_0x41f1be(0x12e)]||null}));}[a0_0x49eb50(0x135)](_0x49bb3d){const _0x1344fd=a0_0x49eb50,_0x334cca={'ERROR':STATIC_ANALYSIS[_0x1344fd(0x154)][_0x1344fd(0x140)],'WARNING':STATIC_ANALYSIS['SEVERITY'][_0x1344fd(0x164)],'INFO':STATIC_ANALYSIS['SEVERITY'][_0x1344fd(0x10a)]};return _0x334cca[_0x49bb3d?.[_0x1344fd(0xf1)]()]||STATIC_ANALYSIS['SEVERITY'][_0x1344fd(0x10a)];}['mapBanditSeverity'](_0x4b52e3){const _0x1fdf0c=a0_0x49eb50,_0x309aaf={'HIGH':STATIC_ANALYSIS['SEVERITY'][_0x1fdf0c(0x140)],'MEDIUM':STATIC_ANALYSIS['SEVERITY'][_0x1fdf0c(0x164)],'LOW':STATIC_ANALYSIS[_0x1fdf0c(0x154)][_0x1fdf0c(0x10a)]};return _0x309aaf[_0x4b52e3?.[_0x1fdf0c(0xf1)]()]||STATIC_ANALYSIS['SEVERITY']['WARNING'];}[a0_0x49eb50(0x157)](_0x4386e9){const _0x1b7d16=a0_0x49eb50;return _0x4386e9===0x2?STATIC_ANALYSIS['SEVERITY'][_0x1b7d16(0x164)]:STATIC_ANALYSIS[_0x1b7d16(0x154)][_0x1b7d16(0x10a)];}['mapNpmSeverity'](_0x21acf2){const _0x23a22a=a0_0x49eb50,_0x4119c4={'critical':STATIC_ANALYSIS[_0x23a22a(0x154)][_0x23a22a(0x140)],'high':STATIC_ANALYSIS['SEVERITY'][_0x23a22a(0x140)],'moderate':STATIC_ANALYSIS['SEVERITY'][_0x23a22a(0x164)],'low':STATIC_ANALYSIS[_0x23a22a(0x154)]['WARNING'],'info':STATIC_ANALYSIS['SEVERITY'][_0x23a22a(0x117)]};return _0x4119c4[_0x21acf2?.[_0x23a22a(0x163)]()]||STATIC_ANALYSIS[_0x23a22a(0x154)]['WARNING'];}[a0_0x49eb50(0xea)](_0x17c056){const _0x52350c=a0_0x49eb50;if(!_0x17c056)return STATIC_ANALYSIS[_0x52350c(0x154)][_0x52350c(0x164)];const _0x2d9367={'critical':STATIC_ANALYSIS[_0x52350c(0x154)][_0x52350c(0x140)],'high':STATIC_ANALYSIS['SEVERITY'][_0x52350c(0x140)],'medium':STATIC_ANALYSIS[_0x52350c(0x154)][_0x52350c(0x164)],'low':STATIC_ANALYSIS['SEVERITY'][_0x52350c(0x10a)]};return _0x2d9367[_0x17c056?.['toLowerCase']()]||STATIC_ANALYSIS[_0x52350c(0x154)][_0x52350c(0x164)];}async[a0_0x49eb50(0x139)](){const _0x4e83b9=a0_0x49eb50,_0x2de003=await this['detectAvailableScanners']();return{'scanners':_0x2de003,'recommendations':this[_0x4e83b9(0x136)](_0x2de003)};}['getInstallRecommendations'](_0x4fa6fe){const _0xacfe17=a0_0x49eb50,_0x9dca8c=[];return!_0x4fa6fe[_0xacfe17(0x11b)]&&_0x9dca8c['push']({'scanner':_0xacfe17(0x15e),'reason':'Multi-language\x20SAST\x20with\x20extensive\x20security\x20rules','install':'pip\x20install\x20semgrep\x20OR\x20use\x20Docker:\x20docker\x20pull\x20returntocorp/semgrep','priority':'high'}),!_0x4fa6fe[_0xacfe17(0x158)]&&_0x9dca8c['push']({'scanner':'Bandit','reason':'Python\x20security\x20scanner','install':'pip\x20install\x20bandit','priority':'medium'}),!_0x4fa6fe[_0xacfe17(0x115)]&&_0x9dca8c['push']({'scanner':'eslint-plugin-security','reason':'JavaScript/TypeScript\x20security\x20rules','install':_0xacfe17(0x121),'priority':'medium'}),!_0x4fa6fe[_0xacfe17(0x10f)]&&_0x9dca8c[_0xacfe17(0x111)]({'scanner':'pip-audit','reason':_0xacfe17(0x15b),'install':'pip\x20install\x20pip-audit','priority':'low'}),_0x9dca8c;}}function a0_0x21e6(){const _0x41a6fd=['y2HLy2TFAwq','BNbTigf1zgL0ic0TANnVBG','qMfUzgL0ihnJyw5UzxiGzgv0zwn0zwq','C3rKB3v0','zxH0CMe','BNbTqxvKAxq','C29Tzq','BNbTigf1zgL0igf2ywLSywjSzq','DgvZDa','rMfPBgvKihrVihbHCNnLihbPCc1HDwrPDcbVDxrWDxq','BgLUzq','BM9Kzv9TB2r1BgvZ','zxjYB3i','v0fstKLorW','DgL0Bgu','zML4','AM9PBG','BwfWqMfUzgL0u2v2zxjPDhK','CgLWqxvKAxq','qxzHAwXHyMXL','ChvZAa','zxnSAw50lxbSDwDPBI1Zzwn1CML0EsbKzxrLy3rLza','tM8GC2vJDxjPDhKGC2nHBM5LCNmGyxzHAwXHyMXLigzVCIbSyw5NDwfNzq','yMfUzgL0ic0TDMvYC2LVBG','zxnSAw50u2vJDxjPDhK','u2vTz3jLCcbZy2fUBMvYigrLDgvJDgvKicHSB2nHBcK','su5gtW','DMvYC2LVBG','CgLWlwf1zgL0ic0TDMvYC2LVBG','u2TPChbPBMCGDgvZDcbMAwXLigzVCIbZzwn1CML0EsbZy2fU','C2vTz3jLCa','CNvUu2vTz3jLCa','CgfYC2voCg1bDwrPDfjLC3vSDhm','zMLSzw5HBwu','AxnZDwvFy3DL','Bw9KDwXL','BNbTigLUC3rHBgWGls1ZyxzLlwrLDIbLC2XPBNqTCgX1z2LUlxnLy3vYAxr5','zgvIDwC','CgfYC2u','CNvSzuLK','tM8GCMvXDwLYzw1LBNrZlNr4DcbMB3vUzcWGC2TPChbPBMCGCgLWlwf1zgL0','mJi1otbMA1vuuum','CMvTzwrPyxrPB24','C2v2zxjPDhK','zML4qxzHAwXHyMXL','mZmWz21izfvZ','mJm3ndiXnvfTtgfWrW','DhLWzxnJCMLWDa','ywnJzxnZ','CgfJA2fNzq','CMvZDwX0CW','ndvLv0z3s0e','u2vJDxjPDhKGDNvSBMvYywjPBgL0Eq','BNbTic0TDMvYC2LVBG','B3DHC3a','ChL0Ag9U','BwfWu2vTz3jLCfnLDMvYAxr5','z2v0sw5ZDgfSBfjLy29TBwvUzgf0Aw9UCW','mtG1mtaYmuznqLrJAG','DNvSBNm','z2v0u2nHBM5LCLn0yxr1CW','C2nHBM5LCG','C2vTz3jLCcaTlwnVBMzPzZ1HDxrVic0TANnVBIaI','ngDZtKriyG','CgLWlwf1zgL0igrLDgvJDgvK','AxnZDwvFC2v2zxjPDhK','Cgf0Aa','q1jjveLdquW','AxnbCNjHEq','Bg9Nz2vY','CNvUugLWqxvKAxq','Axnuzxn0rMLSzq','mte3mZG3mJrKvhvcDM0','yw5HBhL6zq','mZm5nuncD2D1Dq','y29SDw1U','qMfUzgL0ig5VDcbHDMfPBgfIBgu','DNvSBMvYywjPBgL0AwvZ','CgfJA2fNzs5QC29U','CgLWlwf1zgL0','yxzHAwXHyMXLu2nHBM5LCNm','zxnSAw50lxbSDwDPBI1Zzwn1CML0Eq','BNbTlq','Bg9JywXty2fUBMvYrgLY','C2TPCfrLC3rgAwXLCW','AxnZDwvFy29UzMLKzw5Jzq','mtK2C3PzBe9U','u0vwrvjjvfK','DMLH','y29UzMLKzw5Jzq','BwfWrvnmAw50u2v2zxjPDhK','yMfUzgL0','AxnZDwvFDgv4Da','C2vJDxjPDhK','uhL0Ag9UigrLCgvUzgvUy3KGDNvSBMvYywjPBgL0EsbZy2fUBMvY','C3rHCNq','zw50CMLLCW','u2vTz3jLCa','tM8GCgfJA2fNzs5QC29UigzVDw5KlcbZA2LWCgLUzYbUCg0GyxvKAxq','BM9YBwfSAxPLuMvZDwX0CW','C2vJDxjPDhKV','nJGZmdGWrePbsvPb','Dg9mB3DLCKnHC2u','rvjst1i','zgvWzw5Kzw5JAwvZ','u2vJDxjPDhKGAxnZDwuGzgv0zwn0zwq','DxjS','Bwv0ywrHDge','BgLUDfrLEhq','C291CMnL','y3DL','CNvUrvnmAw50u2vJDxjPDhK','BwfWugLWqxvKAxrtzxzLCML0Eq','AMf2yxnJCMLWDa','Dw5RBM93BG','mJm2rejnrg5d','rMfPBgvKihrVihbHCNnLifnLBwDYzxaGB3v0Chv0','BwvZC2fNzxm','BwfWtNbTu2v2zxjPDhK','Dg9vChbLCKnHC2u','CNvUtNbTqxvKAxq','zxnSAw50lxbSDwDPBI1Zzwn1CML0EsbUB3qGyxzHAwXHyMXL','BwvZC2fNzq','BgLUzxm','y3DK','ywr2AxnVCNK','u2vTz3jLCcbZy2fUBMvYigrLDgvJDgvKicHZExn0zw0P','CgfYC2vtzw1NCMvWuMvZDwX0CW','BMfTzq','mte0nNvkD090sW','zgv0zwn0qxzHAwXHyMXLu2nHBM5LCNm'];a0_0x21e6=function(){return _0x41a6fd;};return a0_0x21e6();}export default SecurityAnalyzer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a0_0x12ab(){const _0x12511f=['BgvUz3rO','Aw5JBhvKzxm','ndK5mZbmEw1fyMq','ote1nJiXtvHAEM9r','u0vwrvjjvfK','Dg9mB3DLCKnHC2u','y2f0zwDVCNK','y2XHC3m','odq0EKX1zKvU','ChvZAa','BwvZC2fNzq','mtqZmwHozKvSyG','twvZC2fNzq','qw5HBhLZAxmGzMfPBgvKoIa','q0furuDpuLK','rvjst1i','C2v2zxjPDhK','rgLHz25VC3rPy0nHDgvNB3j5','mte1oxjgsgPLqG','mta4z0H2D2Pl','v2fYBMLUzW','u1Lovefy','vhLWzvnJCMLWDcbHBMfSExnPCYbMywLSzwq','zMLSDgvY','mJaWnteXnKLjru10yW','BwvZC2fNzvrLEhq','zxjYB3i','v0fstKLorW','BgLUzq','yw5HBhL6zxiTzxjYB3i','y2HHCMfJDgvY','zMLSzu5HBwu','vhLWzvnJCMLWDcbHBMfSExnPCYbJB21WBgv0zwq','nJaZnwLfALrcEq','zM9YBwf0rgLHz25VC3rPyW','rxjYB3i','su1qt1ju','ntG4mdG2ogDesMrluq','z2v0u3LUDgfJDgLJrgLHz25VC3rPy3m','z2v0tgLUzufUzenOyxjHy3rLCK9Mug9ZAxrPB24','sNn4rw1PDa','u2nYAxb0vgfYz2v0','y29Kzq','vfLqrq','CgfYC2veAwfNBM9ZDgLJCW','mtq1mti4zxb1qxzZ','Bg9Nz2vY','zgLYBMfTzq','zMLSzq'];a0_0x12ab=function(){return _0x12511f;};return a0_0x12ab();}const a0_0x4e663b=a0_0x5307;(function(_0x18245a,_0x495adb){const _0x4c567a=a0_0x5307,_0x481ed4=_0x18245a();while(!![]){try{const _0x2bbec7=parseInt(_0x4c567a(0x196))/0x1*(parseInt(_0x4c567a(0x18c))/0x2)+parseInt(_0x4c567a(0x187))/0x3+-parseInt(_0x4c567a(0x197))/0x4*(-parseInt(_0x4c567a(0x1a5))/0x5)+-parseInt(_0x4c567a(0x19c))/0x6+-parseInt(_0x4c567a(0x1a9))/0x7+parseInt(_0x4c567a(0x1b1))/0x8+parseInt(_0x4c567a(0x18f))/0x9*(parseInt(_0x4c567a(0x186))/0xa);if(_0x2bbec7===_0x495adb)break;else _0x481ed4['push'](_0x481ed4['shift']());}catch(_0x23f8fe){_0x481ed4['push'](_0x481ed4['shift']());}}}(a0_0x12ab,0x716e4));import a0_0x113cbf from'typescript';import a0_0x298b6c from'path';import{STATIC_ANALYSIS}from'../utilities/constants.js';class TypeScriptAnalyzer{constructor(_0x374f4d=null){const _0xbf87f1=a0_0x5307;this['logger']=_0x374f4d,this['compilerOptions']={'noEmit':!![],'jsx':a0_0x113cbf[_0xbf87f1(0x1ac)]['React'],'target':a0_0x113cbf[_0xbf87f1(0x1ad)]['Latest'],'module':a0_0x113cbf['ModuleKind']['ESNext'],'moduleResolution':a0_0x113cbf['ModuleResolutionKind']['NodeJs'],'esModuleInterop':!![],'skipLibCheck':!![],'strict':!![],'noImplicitAny':!![],'strictNullChecks':!![],'strictFunctionTypes':!![],'allowJs':![]};}async['analyze'](_0x3ae71e,_0x2a97d6,_0x7cfce8={}){const _0x5d7906=a0_0x5307;try{const _0x31c71c=[],_0x2a0a29=a0_0x113cbf['createSourceFile'](_0x3ae71e,_0x2a97d6,a0_0x113cbf['ScriptTarget']['Latest'],!![]),_0x3d88a0=this['getSyntacticDiagnostics'](_0x2a0a29);_0x31c71c['push'](..._0x3d88a0);const _0x78ce63=await this['getSemanticDiagnostics'](_0x3ae71e,_0x2a97d6);return _0x31c71c[_0x5d7906(0x18d)](..._0x78ce63),this['logger']?.['debug'](_0x5d7906(0x1a4),{'file':_0x3ae71e,'totalDiagnostics':_0x31c71c[_0x5d7906(0x1b5)],'errors':_0x31c71c[_0x5d7906(0x19b)](_0x5c7783=>_0x5c7783['severity']===STATIC_ANALYSIS[_0x5d7906(0x188)]['ERROR'])['length'],'warnings':_0x31c71c['filter'](_0x43e8a0=>_0x43e8a0[_0x5d7906(0x194)]===STATIC_ANALYSIS[_0x5d7906(0x188)]['WARNING'])['length']}),_0x31c71c;}catch(_0x508768){return this['logger']?.[_0x5d7906(0x19e)](_0x5d7906(0x19a),{'file':_0x3ae71e,'error':_0x508768[_0x5d7906(0x18e)]}),[{'file':_0x3ae71e,'line':0x0,'column':0x0,'severity':STATIC_ANALYSIS['SEVERITY'][_0x5d7906(0x193)],'rule':_0x5d7906(0x1a1),'message':_0x5d7906(0x191)+_0x508768[_0x5d7906(0x18e)],'category':STATIC_ANALYSIS['CATEGORY'][_0x5d7906(0x199)]}];}}['getSyntacticDiagnostics'](_0x3ceaac){const _0x26c25a=a0_0x5307,_0x15b6ee=[];if(_0x3ceaac['parseDiagnostics']&&_0x3ceaac['parseDiagnostics'][_0x26c25a(0x1b5)]>0x0)for(const _0x5e70cb of _0x3ceaac[_0x26c25a(0x1b0)]){_0x15b6ee[_0x26c25a(0x18d)](this[_0x26c25a(0x1a6)](_0x5e70cb,_0x3ceaac));}return _0x15b6ee;}async['getSemanticDiagnostics'](_0x954805,_0x4ff939){const _0x4b2552=a0_0x5307,_0x58773b=[];try{const _0x426016=a0_0x113cbf['createSourceFile'](_0x954805,_0x4ff939,a0_0x113cbf[_0x4b2552(0x1ad)]['Latest'],!![]),_0x2d82c6={'getSourceFile':_0x38ccb5=>{if(_0x38ccb5===_0x954805)return _0x426016;return undefined;},'getDefaultLibFileName':()=>'lib.d.ts','writeFile':()=>{},'getCurrentDirectory':()=>a0_0x298b6c[_0x4b2552(0x1b3)](_0x954805),'getDirectories':()=>[],'fileExists':_0x1f5040=>_0x1f5040===_0x954805,'readFile':_0x4752f5=>{if(_0x4752f5===_0x954805)return _0x4ff939;return undefined;},'getCanonicalFileName':_0x53eec0=>_0x53eec0,'useCaseSensitiveFileNames':()=>!![],'getNewLine':()=>'\x0a'},_0xfc269=a0_0x113cbf['createProgram']({'rootNames':[_0x954805],'options':this['compilerOptions'],'host':_0x2d82c6}),_0x360f8a=_0xfc269[_0x4b2552(0x1aa)](_0x426016),_0xcd408f=_0xfc269['getSemanticDiagnostics'](_0x426016);for(const _0x342c38 of[..._0x360f8a,..._0xcd408f]){_0x58773b['push'](this[_0x4b2552(0x1a6)](_0x342c38,_0x426016));}}catch(_0x4c5f37){this[_0x4b2552(0x1b2)]?.['debug']('Semantic\x20analysis\x20encountered\x20error',{'file':_0x954805,'error':_0x4c5f37['message']});}return _0x58773b;}[a0_0x4e663b(0x1a6)](_0x85c9a2,_0x7a98e8){const _0x1000f2=a0_0x4e663b;let _0x1e417d=0x0,_0x4031e2=0x0;if(_0x85c9a2[_0x1000f2(0x1b4)]&&_0x85c9a2['start']!==undefined){const _0x2ced83=_0x85c9a2['file'][_0x1000f2(0x1ab)](_0x85c9a2['start']);_0x1e417d=_0x2ced83[_0x1000f2(0x1a0)]+0x1,_0x4031e2=_0x2ced83['character']+0x1;}else{if(_0x7a98e8&&_0x85c9a2['start']!==undefined){const _0x32c9c0=_0x7a98e8[_0x1000f2(0x1ab)](_0x85c9a2['start']);_0x1e417d=_0x32c9c0['line']+0x1,_0x4031e2=_0x32c9c0[_0x1000f2(0x1a2)]+0x1;}}const _0x1885ad=a0_0x113cbf['flattenDiagnosticMessageText'](_0x85c9a2[_0x1000f2(0x19d)],'\x0a');let _0x310d14;switch(_0x85c9a2[_0x1000f2(0x18a)]){case a0_0x113cbf['DiagnosticCategory'][_0x1000f2(0x1a7)]:_0x310d14=STATIC_ANALYSIS[_0x1000f2(0x188)]['ERROR'];break;case a0_0x113cbf[_0x1000f2(0x195)][_0x1000f2(0x198)]:_0x310d14=STATIC_ANALYSIS['SEVERITY'][_0x1000f2(0x19f)];break;case a0_0x113cbf['DiagnosticCategory'][_0x1000f2(0x190)]:case a0_0x113cbf[_0x1000f2(0x195)]['Suggestion']:_0x310d14=STATIC_ANALYSIS['SEVERITY']['INFO'];break;default:_0x310d14=STATIC_ANALYSIS['SEVERITY']['ERROR'];}let _0x4b6b59=STATIC_ANALYSIS[_0x1000f2(0x192)][_0x1000f2(0x199)];const _0x4d6e4b=_0x85c9a2[_0x1000f2(0x1ae)];if(_0x4d6e4b>=0x7d0&&_0x4d6e4b<0xbb8)_0x4b6b59=STATIC_ANALYSIS[_0x1000f2(0x192)][_0x1000f2(0x1af)];else{if(_0x4d6e4b>=0x3e8&&_0x4d6e4b<0x7d0)_0x4b6b59=STATIC_ANALYSIS['CATEGORY']['SYNTAX'];else _0x4d6e4b>=0x8fc&&_0x4d6e4b<0x960&&(_0x4b6b59=STATIC_ANALYSIS['CATEGORY']['IMPORT']);}const _0x303be6=_0x1885ad[_0x1000f2(0x189)]();if(_0x303be6['includes']('cannot\x20find\x20module')||_0x303be6['includes']('import')||_0x303be6[_0x1000f2(0x185)]('export'))_0x4b6b59=STATIC_ANALYSIS[_0x1000f2(0x192)][_0x1000f2(0x1a8)];else(_0x303be6[_0x1000f2(0x185)]('type')||_0x303be6['includes']('interface')||_0x303be6[_0x1000f2(0x185)](_0x1000f2(0x18b)))&&(_0x4b6b59=STATIC_ANALYSIS['CATEGORY'][_0x1000f2(0x1af)]);return{'file':_0x85c9a2['file']?.['fileName']||_0x7a98e8?.[_0x1000f2(0x1a3)]||'unknown','line':_0x1e417d,'column':_0x4031e2,'severity':_0x310d14,'rule':'TS'+_0x4d6e4b,'message':_0x1885ad,'category':_0x4b6b59,'fixable':![],'code':_0x85c9a2['code']};}}function a0_0x5307(_0x2020c8,_0x5b6db6){_0x2020c8=_0x2020c8-0x185;const _0x12ab75=a0_0x12ab();let _0x53076d=_0x12ab75[_0x2020c8];if(a0_0x5307['jQIAGG']===undefined){var _0x1e3778=function(_0x266adb){const _0x510cb6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x113cbf='',_0x298b6c='';for(let _0x374f4d=0x0,_0x3ae71e,_0x2a97d6,_0x7cfce8=0x0;_0x2a97d6=_0x266adb['charAt'](_0x7cfce8++);~_0x2a97d6&&(_0x3ae71e=_0x374f4d%0x4?_0x3ae71e*0x40+_0x2a97d6:_0x2a97d6,_0x374f4d++%0x4)?_0x113cbf+=String['fromCharCode'](0xff&_0x3ae71e>>(-0x2*_0x374f4d&0x6)):0x0){_0x2a97d6=_0x510cb6['indexOf'](_0x2a97d6);}for(let _0x31c71c=0x0,_0x2a0a29=_0x113cbf['length'];_0x31c71c<_0x2a0a29;_0x31c71c++){_0x298b6c+='%'+('00'+_0x113cbf['charCodeAt'](_0x31c71c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x298b6c);};a0_0x5307['BtdDLg']=_0x1e3778,a0_0x5307['lbwOTT']={},a0_0x5307['jQIAGG']=!![];}const _0x27603c=_0x12ab75[0x0],_0x348f0d=_0x2020c8+_0x27603c,_0x315c57=a0_0x5307['lbwOTT'][_0x348f0d];return!_0x315c57?(_0x53076d=a0_0x5307['BtdDLg'](_0x53076d),a0_0x5307['lbwOTT'][_0x348f0d]=_0x53076d):_0x53076d=_0x315c57,_0x53076d;}export default TypeScriptAnalyzer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x2d71df=a0_0x5f6a;function a0_0x5f6a(_0x13fea6,_0x54305d){_0x13fea6=_0x13fea6-0xbe;const _0x30d140=a0_0x30d1();let _0x5f6a7c=_0x30d140[_0x13fea6];if(a0_0x5f6a['EPlnyr']===undefined){var _0x153db7=function(_0x4a3adc){const _0x1a28ad='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1312fc='',_0x5bd7cb='';for(let _0x36406a=0x0,_0x4a632e,_0x491fe3,_0x41ebb=0x0;_0x491fe3=_0x4a3adc['charAt'](_0x41ebb++);~_0x491fe3&&(_0x4a632e=_0x36406a%0x4?_0x4a632e*0x40+_0x491fe3:_0x491fe3,_0x36406a++%0x4)?_0x1312fc+=String['fromCharCode'](0xff&_0x4a632e>>(-0x2*_0x36406a&0x6)):0x0){_0x491fe3=_0x1a28ad['indexOf'](_0x491fe3);}for(let _0x276cad=0x0,_0x1e330b=_0x1312fc['length'];_0x276cad<_0x1e330b;_0x276cad++){_0x5bd7cb+='%'+('00'+_0x1312fc['charCodeAt'](_0x276cad)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5bd7cb);};a0_0x5f6a['OyCigr']=_0x153db7,a0_0x5f6a['RwuncE']={},a0_0x5f6a['EPlnyr']=!![];}const _0xc861a7=_0x30d140[0x0],_0x5307db=_0x13fea6+_0xc861a7,_0x1cd535=a0_0x5f6a['RwuncE'][_0x5307db];return!_0x1cd535?(_0x5f6a7c=a0_0x5f6a['OyCigr'](_0x5f6a7c),a0_0x5f6a['RwuncE'][_0x5307db]=_0x5f6a7c):_0x5f6a7c=_0x1cd535,_0x5f6a7c;}function a0_0x30d1(){const _0x1aee22=['n0z1v1fOva','q2XHC3m','ihDVDwXKigLTChjVDMuGBwfPBNrHAw5HyMLSAxr5','Dhj1BMnHDgvdB2rL','zxH0CMfJDc1MDw5JDgLVBG','otuXnduWCfLtDMrI','igXVy2f0Aw9UCW','qw5HBhL6Aw5NignSB25LCYbMB3iGCMvMywn0B3jPBMCGB3bWB3j0Dw5PDgLLCY4UlG','yw5HBhL6zunSB25LCW','CMvWBgfJzq','Dg9Rzw5dB3vUDa','nte4nda2tgDQzKrl','Aw5JBhvKzxm','Aw1Wywn0u2nVCMu','y3jLyxrLrNvUy3rPB25oyw1L','Bg9Nmta','CMv0DxjU','DMfY','cI4UlIaODhj1BMnHDgvKkq','lcbYzxn1BhrPBMCGAw4G','igfJCM9ZCYa','zM9YrwfJAa','zxH0CMfJDc1JB25ZDgfUDc1VCI11DgLSAxr5','ntu2nJC2tfb2wvvz','twfRzsbMDxr1CMuGy2HHBMDLCYbLyxnPzxiGyw5KigXLC3mGzxjYB3iTChjVBMu','y29Kzq','CMvKDwnL','ihrPBwvZ','mtuZEeLLEgX6','nc4GuMvWBgfJzsbHBgWGAw5ZDgfUy2vZihDPDgGGy2fSBhmGDg8GDgHLig5LDYbMDw5JDgLVBG','nJG5odK1AKzQzeHi','BwLU','sw1WCM92zsbJB2rLig9Yz2fUAxPHDgLVBIbHy3jVC3mG','igr1CgXPy2f0zwqGBgLUzxmUia','vgHPCYa','C29YDa','twv0Ag9K','mJC3mdq0ofrdvhnAzW','nc4Gq29UC2LKzxiGzgvWzw5Kzw5JEsbPBMPLy3rPB24GzM9YigjLDhrLCIb0zxn0ywjPBgL0Eq','odeWotm2DLzWyvPu','AgLNAa','y2fSy3vSyxrLtwv0CMLJCW','AM9PBG','y2HHCKf0','zwXZzq','C29Tzq','zw50CMLLCW','y29UC3q','mY4GrxHWB3j0ihrOzsbUzwnLC3nHCNKGzNvUy3rPB25Zl2nSyxnZzxm','BwvKAxvT','rNvUy3rPB24','y29UzMLN','zgv0zxjTAw5LuhjPB3jPDhK','BwfW','z2vUzxjHDgvszwzHy3rVCMLUz0fKDMLJzq','y2XVBMuT','Bg9NmG','zhvWBgLJyxrLzeXPBMvZ','Aw5ZDgfUy2vdB3vUDa','C3bSAxq','C2XPy2u','lIbuAgLZigLZigeGAgLNAc1PBxbHy3qGCMvMywn0B3jPBMCGB3bWB3j0Dw5PDhK','munwDNHiCW','ignVzguGCgf0DgvYBIbHChbLyxjZia','zw5KtgLUzq','D2HPBgu','BgvUz3rO','mtq3mdqXn2vNBffTva','Dg9vChbLCKnHC2u','ChvZAa','yMXVy2TZ'];a0_0x30d1=function(){return _0x1aee22;};return a0_0x30d1();}(function(_0x2cd596,_0x3590dc){const _0x418071=a0_0x5f6a,_0x2e3cf8=_0x2cd596();while(!![]){try{const _0x40f1da=-parseInt(_0x418071(0xdd))/0x1*(parseInt(_0x418071(0xfd))/0x2)+-parseInt(_0x418071(0xe2))/0x3+-parseInt(_0x418071(0xc6))/0x4+parseInt(_0x418071(0x104))/0x5+parseInt(_0x418071(0xf1))/0x6*(-parseInt(_0x418071(0xe6))/0x7)+-parseInt(_0x418071(0xc4))/0x8+-parseInt(_0x418071(0x102))/0x9*(-parseInt(_0x418071(0xeb))/0xa);if(_0x40f1da===_0x3590dc)break;else _0x2e3cf8['push'](_0x2e3cf8['shift']());}catch(_0x5276e9){_0x2e3cf8['push'](_0x2e3cf8['shift']());}}}(a0_0x30d1,0x55d26));export class RefactoringAnalyzer{constructor(_0x1312fc){const _0x540da5=a0_0x5f6a;this[_0x540da5(0xd2)]=_0x1312fc;}[a0_0x2d71df(0xee)](_0x5bd7cb){const _0x33ba74=a0_0x2d71df;return console['log'](_0x33ba74(0xed)),_0x5bd7cb['map']((_0x36406a,_0x4a632e)=>{const _0x5c72c0=_0x33ba74,_0x491fe3=this[_0x5c72c0(0xc8)](_0x36406a),_0x41ebb=this[_0x5c72c0(0xd5)](_0x36406a,_0x491fe3);return{'id':_0x5c72c0(0xd6)+(_0x4a632e+0x1),'type':_0x36406a['type'],'confidence':_0x36406a['confidence'],'instances':_0x36406a[_0x5c72c0(0xe5)]['map'](_0x276cad=>({'file':_0x276cad['file'],'startLine':_0x276cad['startLine'],'endLine':_0x276cad['endLine'],'code':this[_0x5c72c0(0xe9)](_0x276cad['code']),'fullCode':_0x276cad[_0x5c72c0(0xff)],'blockType':_0x276cad['type']})),'metrics':_0x491fe3,'refactoringAdvice':_0x41ebb};})[_0x33ba74(0xc2)]((_0x1e330b,_0x2eb56e)=>_0x2eb56e['metrics'][_0x33ba74(0xf3)]-_0x1e330b['metrics'][_0x33ba74(0xf3)]);}[a0_0x2d71df(0xc8)](_0x126158){const _0x257562=a0_0x2d71df,_0x141bee=_0x126158[_0x257562(0xe5)],_0x2199ff=_0x126158[_0x257562(0xf0)],_0x38aee5=this['averageLineCount'](_0x141bee),_0x947761=_0x141bee[_0x257562(0xe1)],_0x13e460=this['calculateImpactScore'](_0x2199ff,_0x38aee5,_0x947761,_0x126158['confidence']),_0x57cab2=_0x38aee5*(_0x947761-0x1),_0x61b3d3=_0x2199ff*(_0x947761-0x1);return{'tokenCount':_0x2199ff,'lineCount':_0x38aee5,'instanceCount':_0x947761,'duplicatedLines':_0x57cab2,'duplicatedTokens':_0x61b3d3,'impactScore':parseFloat(_0x13e460['toFixed'](0x2)),'filesCovered':new Set(_0x141bee[_0x257562(0xd4)](_0x104b88=>_0x104b88['file']))['size']};}['calculateImpactScore'](_0x1cf341,_0x70f9f5,_0x15b9f0,_0x1e90c7){const _0x39ea2e=a0_0x2d71df,_0x4c4e26=Math[_0x39ea2e(0xf5)](_0x1cf341+0x1)*0x2,_0x48978c=Math[_0x39ea2e(0xd7)](_0x15b9f0+0x1)*0x3,_0x10bc69=_0x1e90c7*0x2,_0x4087ee=Math[_0x39ea2e(0xbe)](_0x70f9f5/0xa,0x3);return _0x4c4e26+_0x48978c+_0x10bc69+_0x4087ee;}[a0_0x2d71df(0xd5)](_0x28a9ec,_0x233bb0){const _0x34f8f3=a0_0x2d71df,_0x554e3c=this['determineRefactoringStrategy'](_0x28a9ec,_0x233bb0),_0x5c3c93=this[_0x34f8f3(0xd3)](_0x233bb0),_0x7a7827=this['suggestName'](_0x28a9ec),_0x23b215=this['generateReasoning'](_0x28a9ec,_0x233bb0,_0x554e3c),_0x302a47=this['estimateEffort'](_0x233bb0,_0x554e3c),_0x3de942=this['describeBenefits'](_0x233bb0);return{'priority':_0x5c3c93,'strategy':_0x554e3c,'suggestedName':_0x7a7827,'reasoning':_0x23b215,'estimatedEffort':_0x302a47,'benefits':_0x3de942,'actionableSteps':this['generateActionableSteps'](_0x554e3c,_0x7a7827,_0x233bb0)};}['determineRefactoringStrategy'](_0x10c2c2,_0xc04076){const _0x270b5c=a0_0x2d71df,{tokenCount:_0x413f77,lineCount:_0x2f797f,instanceCount:_0x1fc546,filesCovered:_0x561edc}=_0xc04076,_0x2f275c=_0x10c2c2[_0x270b5c(0xe5)][_0x270b5c(0xd4)](_0x49fa89=>_0x49fa89['type']),_0x26f5b4=_0x2f275c[_0x270b5c(0xcc)](_0x227fee=>_0x227fee[_0x270b5c(0xf2)](_0x270b5c(0xd1))||_0x227fee['includes'](_0x270b5c(0xc3))),_0x5980ec=_0x2f275c['some'](_0x443752=>_0x443752['includes'](_0x270b5c(0xe7)));if(_0x5980ec&&_0x2f797f>0x32)return'extract-module';else{if(_0x561edc>0x2&&_0x413f77>0x64)return'extract-module';else{if(_0x26f5b4||_0x2f797f>=0xa&&_0x2f797f<=0x32)return _0x270b5c(0xea);else{if(_0x2f797f>0x32)return'extract-class';else return _0x2f797f<0xa?_0x270b5c(0xfc):'extract-function';}}}}[a0_0x2d71df(0xd3)](_0x10b8d5){const _0x2aa80a=a0_0x2d71df,{impactScore:_0x2cdf3f}=_0x10b8d5;if(_0x2cdf3f>=0x8)return _0x2aa80a(0xc7);if(_0x2cdf3f>=0x5)return'medium';return'low';}['suggestName'](_0x162ead){const _0x599841=a0_0x2d71df,_0x516899=_0x162ead['blocks'][_0x599841(0xd4)](_0x1d9e04=>_0x1d9e04[_0x599841(0xff)])[_0x599841(0xc9)]('\x20'),_0x4e0774=_0x516899['match'](/[a-zA-Z_$][a-zA-Z0-9_$]*/g)||[],_0x3b967d={};_0x4e0774[_0x599841(0xfb)](_0x3e4030=>{const _0xcf7070=_0x599841;if([_0xcf7070(0xce),'let',_0xcf7070(0xf7),'function',_0xcf7070(0xf6),'if',_0xcf7070(0xcb),'for',_0xcf7070(0xe0)]['includes'](_0x3e4030))return;_0x3b967d[_0x3e4030]=(_0x3b967d[_0x3e4030]||0x0)+0x1;});const _0x3b4f86=Object[_0x599841(0xcd)](_0x3b967d)['sort']((_0x5af1c4,_0x2ab8ee)=>_0x2ab8ee[0x1]-_0x5af1c4[0x1])[_0x599841(0xdb)](0x0,0x3);if(_0x3b4f86['length']>0x0){const _0x55951f=_0x3b4f86[_0x599841(0xd4)](([_0x409906])=>_0x409906);return this[_0x599841(0xf4)](_0x55951f);}return'extractedFunction';}[a0_0x2d71df(0xf4)](_0x4035d6){const _0x54a549=a0_0x2d71df;if(_0x4035d6['length']===0x0)return'extractedFunction';return _0x4035d6[0x0]+_0x4035d6['slice'](0x1)[_0x54a549(0xd4)](_0x4dd45e=>_0x4dd45e[_0x54a549(0xca)](0x0)[_0x54a549(0xe3)]()+_0x4dd45e['slice'](0x1))[_0x54a549(0xc9)]('');}['generateReasoning'](_0x4c0868,_0x5a979a,_0x4632af){const _0x37ab72=a0_0x2d71df,{instanceCount:_0x3725b2,duplicatedLines:_0x39d05f,filesCovered:_0x1fada8}=_0x5a979a;let _0x19969f=_0x37ab72(0xc1)+_0x4c0868['type']+_0x37ab72(0xde)+_0x3725b2+_0x37ab72(0x101);return _0x1fada8>0x1&&(_0x19969f+=_0x37ab72(0xfa)+_0x1fada8+'\x20different\x20files'),_0x19969f+=_0x37ab72(0xf9)+_0x39d05f+_0x37ab72(0xc0),_0x19969f+='Refactoring\x20to\x20'+_0x4632af[_0x37ab72(0xef)](/-/g,'\x20')+_0x37ab72(0xe8),_0x3725b2>=0x3&&(_0x19969f+=', reduce bugs from inconsistent changes'),_0x19969f+=',\x20and\x20reduce\x20code\x20size',_0x5a979a[_0x37ab72(0xf3)]>=0x8&&(_0x19969f+=_0x37ab72(0xdc)),_0x19969f+'.';}['estimateEffort'](_0x3158e7,_0x4a065d){const _0x1f1379=a0_0x2d71df,{lineCount:_0x51236a,instanceCount:_0x21d09d,filesCovered:_0x572af0}=_0x3158e7;let _0xdd30fd=0x0;_0xdd30fd+=Math[_0x1f1379(0xbe)](_0x51236a/0xa,0x5),_0xdd30fd+=_0x21d09d*0.5,_0xdd30fd+=_0x572af0*0.5;if(_0x4a065d==='extract-module')_0xdd30fd+=0x3;else{if(_0x4a065d==='extract-class')_0xdd30fd+=0x2;else _0x4a065d==='extract-function'&&(_0xdd30fd+=0x1);}if(_0xdd30fd<=0x3)return'low';if(_0xdd30fd<=0x7)return _0x1f1379(0xd0);return'high';}['describeBenefits'](_0x397f7d){const _0x19d243=a0_0x2d71df,_0x200cde=[];return _0x200cde['push']('Eliminate\x20'+_0x397f7d[_0x19d243(0xd8)]+'\x20duplicated\x20lines\x20of\x20code'),_0x200cde['push']('Improve\x20maintainability\x20by\x20centralizing\x20logic\x20in\x20one\x20place'),_0x397f7d[_0x19d243(0xd9)]>=0x3&&_0x200cde['push']('Reduce\x20risk\x20of\x20inconsistent\x20changes\x20across\x20'+_0x397f7d[_0x19d243(0xd9)]+_0x19d243(0xec)),_0x397f7d['filesCovered']>0x2&&_0x200cde[_0x19d243(0xe4)](_0x19d243(0xbf)+_0x397f7d['filesCovered']+'\x20files'),_0x200cde['push'](_0x19d243(0xfe)),_0x200cde;}['generateActionableSteps'](_0x532c7c,_0x198bd3,_0x157dbf){const _0x22f2a0=a0_0x2d71df,_0x1990c1=[];switch(_0x532c7c){case'extract-function':_0x1990c1[_0x22f2a0(0xe4)]('1.\x20Create\x20a\x20new\x20function\x20named\x20\x27'+_0x198bd3+'\x27'),_0x1990c1['push']('2.\x20Move\x20the\x20duplicated\x20logic\x20into\x20this\x20function'),_0x1990c1[_0x22f2a0(0xe4)]('3. Identify parameters needed from the surrounding context'),_0x1990c1['push'](_0x22f2a0(0x103)),_0x1990c1['push']('5.\x20Test\x20to\x20ensure\x20behavior\x20is\x20preserved');break;case'extract-class':_0x1990c1[_0x22f2a0(0xe4)]('1.\x20Create\x20a\x20new\x20class\x20to\x20encapsulate\x20this\x20functionality'),_0x1990c1['push']('2.\x20Move\x20related\x20methods\x20and\x20properties\x20into\x20the\x20class'),_0x1990c1['push']('3.\x20Update\x20all\x20instances\x20to\x20use\x20the\x20new\x20class'),_0x1990c1[_0x22f2a0(0xe4)](_0x22f2a0(0xc5));break;case'extract-module':_0x1990c1['push']('1.\x20Create\x20a\x20new\x20module/file\x20for\x20this\x20shared\x20functionality'),_0x1990c1[_0x22f2a0(0xe4)]('2.\x20Move\x20the\x20duplicated\x20code\x20into\x20the\x20new\x20module'),_0x1990c1[_0x22f2a0(0xe4)](_0x22f2a0(0xcf)),_0x1990c1['push']('4. Update all files to import from the new module'),_0x1990c1['push']('5.\x20Update\x20any\x20build\x20configurations\x20if\x20needed');break;default:_0x1990c1['push']('1.\x20Extract\x20the\x20duplicated\x20code\x20using\x20'+_0x532c7c[_0x22f2a0(0xef)](/-/g,'\x20')),_0x1990c1['push']('2.\x20Replace\x20all\x20instances\x20with\x20the\x20extracted\x20version'),_0x1990c1['push']('3.\x20Test\x20thoroughly');}return _0x1990c1;}['truncateCode'](_0x416fcd,_0x2005a5=0xa){const _0x31688b=a0_0x2d71df,_0x299ece=_0x416fcd[_0x31688b(0xda)]('\x0a');if(_0x299ece['length']<=_0x2005a5)return _0x416fcd;return _0x299ece['slice'](0x0,_0x2005a5)['join']('\x0a')+_0x31688b(0xf8);}['averageLineCount'](_0x29e966){const _0x5d5e8b=a0_0x2d71df,_0x19cd1f=_0x29e966[_0x5d5e8b(0x100)]((_0x2d86ab,_0x3e3bd0)=>_0x2d86ab+(_0x3e3bd0[_0x5d5e8b(0xdf)]-_0x3e3bd0['startLine']+0x1),0x0);return Math['round'](_0x19cd1f/_0x29e966['length']);}}
|
|
1
|
+
const a0_0x1ea35b=a0_0x4e13;function a0_0x4ab5(){const _0x20c035=['yxzLCMfNzuXPBMvdB3vUDa','Dg9Rzw5dB3vUDa','nJaWotbWuffQAgy','zxH0CMfJDgvKrNvUy3rPB24','mtyWotbxtLP0z3K','zgv0zxjTAw5LuMvMywn0B3jPBMDtDhjHDgvNEq','C29YDa','C3vNz2vZDe5HBwu','odGWrKXltfvb','zxH0CMfJDc1JB25ZDgfUDc1VCI11DgLSAxr5','Bgv0','mY4GvgvZDcb0Ag9YB3vNAgX5','lcbHBMqGCMvKDwnLignVzguGC2L6zq','DhLWzq','zwXZzq','AgLNAa','z2vUzxjHDgvszwfZB25PBMC','zhvWBgLJyxrLzeXPBMvZ','BgvUz3rO','y29UzMLKzw5Jzq','cI4UlIaODhj1BMnHDgvKkq','zw5KtgLUzq','z2vUzxjHDgvszwzHy3rVCMLUz0fKDMLJzq','zxn0Aw1HDgvfzMzVCNq','igXVy2f0Aw9UCW','sw1WCM92zsbJB2rLig9Yz2fUAxPHDgLVBIbHy3jVC3mG','ms4GrxH0CMfJDcb0AguGzhvWBgLJyxrLzcbJB2rLihvZAw5Nia','Bwf0y2G','ChvZAa','mI4GuMvWBgfJzsbHBgWGAw5ZDgfUy2vZihDPDgGGDgHLigv4DhjHy3rLzcb2zxjZAw9U','nc4GuMvWBgfJzsbHBgWGAw5ZDgfUy2vZihDPDgGGy2fSBhmGDg8GDgHLig5LDYbMDw5JDgLVBG','mI4Gtw92zsbYzwXHDgvKig1LDgHVzhmGyw5KihbYB3bLCNrPzxmGAw50BYb0AguGy2XHC3m','lIbuAgLZigLZigeGAgLNAc1PBxbHy3qGCMvMywn0B3jPBMCGB3bWB3j0Dw5PDhK','igzPBgvZ','nJKZmg9WzhbPqG','Bg9Nmta','C3rHCNrmAw5L','BwLU','zM9Y','y29UC3q','Dg9gAxHLza','ignVzguGCgf0DgvYBIbHChbLyxjZia','Dhj1BMnHDgvdB2rL','ms4Gq3jLyxrLigeGBMv3ignSyxnZihrVigvUy2fWC3vSyxrLihrOAxmGzNvUy3rPB25HBgL0Eq','ntq4ndKYDhrtwMv6','sw1WCM92zsbTywLUDgfPBMfIAwXPDhKGyNKGy2vUDhjHBgL6Aw5NigXVz2LJigLUig9UzsbWBgfJzq','C3bSAxq','nZCWBgXzvu9W','igrPzMzLCMvUDcbMAwXLCW','C29Tzq','mZu5mdyXu1b3r0zs','nuP5BwXPqW','uMvMywn0B3jPBMCGDg8G','ns4GvgvZDcb0BYbLBNn1CMuGyMvOyxzPB3iGAxmGChjLC2vYDMvK','zMLSzxndB3zLCMvK','mtmYme5vsu9SyW','C2XPy2u','BwfW','C2L6zq','Aw1Wywn0u2nVCMu','y29UzMLN','zxH0CMfJDc1MDw5JDgLVBG','mJvuu2Pvv1G','Bwv0CMLJCW','rNvUy3rPB24','ihrPBwvZ','y3jLyxrLrNvUy3rPB25oyw1L','Dg9vChbLCKnHC2u','zw50CMLLCW','zxH0CMfJDc1TB2r1Bgu','AM9PBG','Aw5JBhvKzxm','CMvWBgfJzq','y2fSy3vSyxrLtwv0CMLJCW','twv0Ag9K','y2XVBMuT','mtKZmti0n2LevxvXBq','yMXVy2TZ','y2fSy3vSyxrLsw1Wywn0u2nVCMu','z2vUzxjHDgvby3rPB25HyMXLu3rLChm','Aw5ZDgfUy2vdB3vUDa','zxH0CMfJDc1JBgfZCW'];a0_0x4ab5=function(){return _0x20c035;};return a0_0x4ab5();}function a0_0x4e13(_0x783f9a,_0xad5010){_0x783f9a=_0x783f9a-0x72;const _0x4ab5ac=a0_0x4ab5();let _0x4e13e6=_0x4ab5ac[_0x783f9a];if(a0_0x4e13['vlfszh']===undefined){var _0x5cc8c2=function(_0x23db80){const _0x570705='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2deed4='',_0x16569d='';for(let _0x45a898=0x0,_0x5b23ff,_0x5275f3,_0x519db8=0x0;_0x5275f3=_0x23db80['charAt'](_0x519db8++);~_0x5275f3&&(_0x5b23ff=_0x45a898%0x4?_0x5b23ff*0x40+_0x5275f3:_0x5275f3,_0x45a898++%0x4)?_0x2deed4+=String['fromCharCode'](0xff&_0x5b23ff>>(-0x2*_0x45a898&0x6)):0x0){_0x5275f3=_0x570705['indexOf'](_0x5275f3);}for(let _0x5b7b3f=0x0,_0x5dc124=_0x2deed4['length'];_0x5b7b3f<_0x5dc124;_0x5b7b3f++){_0x16569d+='%'+('00'+_0x2deed4['charCodeAt'](_0x5b7b3f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x16569d);};a0_0x4e13['DFZTPZ']=_0x5cc8c2,a0_0x4e13['HukAjC']={},a0_0x4e13['vlfszh']=!![];}const _0x2d87a1=_0x4ab5ac[0x0],_0x3b751d=_0x783f9a+_0x2d87a1,_0x1397f4=a0_0x4e13['HukAjC'][_0x3b751d];return!_0x1397f4?(_0x4e13e6=a0_0x4e13['DFZTPZ'](_0x4e13e6),a0_0x4e13['HukAjC'][_0x3b751d]=_0x4e13e6):_0x4e13e6=_0x1397f4,_0x4e13e6;}(function(_0x12b36d,_0x468a6d){const _0x58c3c9=a0_0x4e13,_0x539283=_0x12b36d();while(!![]){try{const _0x39934c=parseInt(_0x58c3c9(0xbc))/0x1*(parseInt(_0x58c3c9(0x82))/0x2)+-parseInt(_0x58c3c9(0xb0))/0x3+parseInt(_0x58c3c9(0xaa))/0x4+parseInt(_0x58c3c9(0xb1))/0x5*(parseInt(_0x58c3c9(0x80))/0x6)+parseInt(_0x58c3c9(0xa0))/0x7*(parseInt(_0x58c3c9(0xb5))/0x8)+-parseInt(_0x58c3c9(0x78))/0x9+parseInt(_0x58c3c9(0x86))/0xa*(-parseInt(_0x58c3c9(0xad))/0xb);if(_0x39934c===_0x468a6d)break;else _0x539283['push'](_0x539283['shift']());}catch(_0xe7c2ff){_0x539283['push'](_0x539283['shift']());}}}(a0_0x4ab5,0x29caf));export class RefactoringAnalyzer{constructor(_0x2deed4){const _0x2ae32f=a0_0x4e13;this[_0x2ae32f(0xba)]=_0x2deed4;}['analyzeClones'](_0x16569d){const _0x3b1af3=a0_0x4e13;return console['log']('Analyzing\x20clones\x20for\x20refactoring\x20opportunities...'),_0x16569d[_0x3b1af3(0xb7)]((_0x45a898,_0x5b23ff)=>{const _0x466029=_0x3b1af3,_0x5275f3=this[_0x466029(0x75)](_0x45a898),_0x519db8=this[_0x466029(0x94)](_0x45a898,_0x5275f3);return{'id':_0x466029(0x77)+(_0x5b23ff+0x1),'type':_0x45a898['type'],'confidence':_0x45a898['confidence'],'instances':_0x45a898[_0x466029(0x79)]['map'](_0x5b7b3f=>({'file':_0x5b7b3f['file'],'startLine':_0x5b7b3f[_0x466029(0xa2)],'endLine':_0x5b7b3f['endLine'],'code':this[_0x466029(0xa8)](_0x5b7b3f['code']),'fullCode':_0x5b7b3f['code'],'blockType':_0x5b7b3f['type']})),'metrics':_0x5275f3,'refactoringAdvice':_0x519db8};})[_0x3b1af3(0x84)]((_0x5dc124,_0x15a478)=>_0x15a478[_0x3b1af3(0xbd)][_0x3b1af3(0xb9)]-_0x5dc124[_0x3b1af3(0xbd)]['impactScore']);}[a0_0x1ea35b(0x75)](_0x1333f7){const _0x13b77c=a0_0x1ea35b,_0x1df5ae=_0x1333f7[_0x13b77c(0x79)],_0x3a97fb=_0x1333f7[_0x13b77c(0x7f)],_0x4724ab=this[_0x13b77c(0x7e)](_0x1df5ae),_0x54ee1d=_0x1df5ae[_0x13b77c(0x90)],_0xc63183=this['calculateImpactScore'](_0x3a97fb,_0x4724ab,_0x54ee1d,_0x1333f7[_0x13b77c(0x91)]),_0x39815e=_0x4724ab*(_0x54ee1d-0x1),_0x196012=_0x3a97fb*(_0x54ee1d-0x1);return{'tokenCount':_0x3a97fb,'lineCount':_0x4724ab,'instanceCount':_0x54ee1d,'duplicatedLines':_0x39815e,'duplicatedTokens':_0x196012,'impactScore':parseFloat(_0xc63183[_0x13b77c(0xa6)](0x2)),'filesCovered':new Set(_0x1df5ae['map'](_0x470b45=>_0x470b45['file']))[_0x13b77c(0xb8)]};}[a0_0x1ea35b(0x7a)](_0x2227a3,_0x14a99e,_0x465cdb,_0x75539a){const _0x4c347d=a0_0x1ea35b,_0x16f501=Math[_0x4c347d(0xa1)](_0x2227a3+0x1)*0x2,_0x5b0c67=Math['log2'](_0x465cdb+0x1)*0x3,_0xd77020=_0x75539a*0x2,_0x5fd44a=Math['min'](_0x14a99e/0xa,0x3);return _0x16f501+_0x5b0c67+_0xd77020+_0x5fd44a;}[a0_0x1ea35b(0x94)](_0x13a75d,_0x1145e0){const _0x5312d3=a0_0x1ea35b,_0x29ee67=this[_0x5312d3(0x83)](_0x13a75d,_0x1145e0),_0x23167b=this['determinePriority'](_0x1145e0),_0x11153f=this['suggestName'](_0x13a75d),_0x4a4789=this[_0x5312d3(0x8e)](_0x13a75d,_0x1145e0,_0x29ee67),_0x19b95b=this['estimateEffort'](_0x1145e0,_0x29ee67),_0x108ae3=this['describeBenefits'](_0x1145e0);return{'priority':_0x23167b,'strategy':_0x29ee67,'suggestedName':_0x11153f,'reasoning':_0x4a4789,'estimatedEffort':_0x19b95b,'benefits':_0x108ae3,'actionableSteps':this['generateActionableSteps'](_0x29ee67,_0x11153f,_0x1145e0)};}[a0_0x1ea35b(0x83)](_0x32e663,_0x4a033d){const _0x9d621f=a0_0x1ea35b,{tokenCount:_0x38f17e,lineCount:_0x5dfc21,instanceCount:_0x1810a9,filesCovered:_0x3a6043}=_0x4a033d,_0x3ab06d=_0x32e663['blocks'][_0x9d621f(0xb7)](_0x42e546=>_0x42e546['type']),_0x167c78=_0x3ab06d[_0x9d621f(0xaf)](_0x3ec5d4=>_0x3ec5d4[_0x9d621f(0x73)](_0x9d621f(0xbe))||_0x3ec5d4[_0x9d621f(0x73)](_0x9d621f(0x76))),_0x526530=_0x3ab06d['some'](_0x3c29e9=>_0x3c29e9[_0x9d621f(0x73)]('Class'));if(_0x526530&&_0x5dfc21>0x32)return _0x9d621f(0xc3);else{if(_0x3a6043>0x2&&_0x38f17e>0x64)return'extract-module';else{if(_0x167c78||_0x5dfc21>=0xa&&_0x5dfc21<=0x32)return _0x9d621f(0xbb);else{if(_0x5dfc21>0x32)return _0x9d621f(0x7d);else return _0x5dfc21<0xa?_0x9d621f(0x87):_0x9d621f(0xbb);}}}}['determinePriority'](_0x3b32df){const _0x2bd91e=a0_0x1ea35b,{impactScore:_0x57cfa5}=_0x3b32df;if(_0x57cfa5>=0x8)return _0x2bd91e(0x8d);if(_0x57cfa5>=0x5)return'medium';return'low';}[a0_0x1ea35b(0x85)](_0xa62270){const _0x2c8dd9=a0_0x1ea35b,_0x57932c=_0xa62270[_0x2c8dd9(0x79)]['map'](_0x4df63a=>_0x4df63a['code'])[_0x2c8dd9(0x72)]('\x20'),_0x34ddaa=_0x57932c[_0x2c8dd9(0x99)](/[a-zA-Z_$][a-zA-Z0-9_$]*/g)||[],_0x160a99={};_0x34ddaa['forEach'](_0x15f4ba=>{const _0x3389dc=_0x2c8dd9;if([_0x3389dc(0xa5),_0x3389dc(0x88),'var','function','return','if',_0x3389dc(0x8c),_0x3389dc(0xa4),'while']['includes'](_0x15f4ba))return;_0x160a99[_0x15f4ba]=(_0x160a99[_0x15f4ba]||0x0)+0x1;});const _0x476d37=Object[_0x2c8dd9(0xc2)](_0x160a99)[_0x2c8dd9(0x84)]((_0x31189,_0x138cef)=>_0x138cef[0x1]-_0x31189[0x1])[_0x2c8dd9(0xb6)](0x0,0x3);if(_0x476d37[_0x2c8dd9(0x90)]>0x0){const _0xa6078d=_0x476d37[_0x2c8dd9(0xb7)](([_0x2d788a])=>_0x2d788a);return this[_0x2c8dd9(0xc0)](_0xa6078d);}return'extractedFunction';}['createFunctionName'](_0x5d8402){const _0x503e3e=a0_0x1ea35b;if(_0x5d8402[_0x503e3e(0x90)]===0x0)return _0x503e3e(0x81);return _0x5d8402[0x0]+_0x5d8402['slice'](0x1)['map'](_0x5df73d=>_0x5df73d['charAt'](0x0)[_0x503e3e(0xc1)]()+_0x5df73d[_0x503e3e(0xb6)](0x1))['join']('');}[a0_0x1ea35b(0x8e)](_0xe07edc,_0x16454f,_0x29f999){const _0x2a331e=a0_0x1ea35b,{instanceCount:_0x20dadb,duplicatedLines:_0x28e0a2,filesCovered:_0x224586}=_0x16454f;let _0x20f5dd='This\x20'+_0xe07edc[_0x2a331e(0x8b)]+_0x2a331e(0xa7)+_0x20dadb+_0x2a331e(0xbf);return _0x224586>0x1&&(_0x20f5dd+='\x20across\x20'+_0x224586+_0x2a331e(0xae)),_0x20f5dd+=',\x20resulting\x20in\x20'+_0x28e0a2+'\x20duplicated\x20lines.\x20',_0x20f5dd+=_0x2a331e(0xb2)+_0x29f999['replace'](/-/g,'\x20')+'\x20would\x20improve\x20maintainability',_0x20dadb>=0x3&&(_0x20f5dd+=', reduce bugs from inconsistent changes'),_0x20f5dd+=_0x2a331e(0x8a),_0x16454f['impactScore']>=0x8&&(_0x20f5dd+=_0x2a331e(0x9e)),_0x20f5dd+'.';}[a0_0x1ea35b(0x95)](_0x268b3a,_0x531b58){const _0x3c7cd6=a0_0x1ea35b,{lineCount:_0xb70ecc,instanceCount:_0x334257,filesCovered:_0x23cc2e}=_0x268b3a;let _0x41c01b=0x0;_0x41c01b+=Math[_0x3c7cd6(0xa3)](_0xb70ecc/0xa,0x5),_0x41c01b+=_0x334257*0.5,_0x41c01b+=_0x23cc2e*0.5;if(_0x531b58==='extract-module')_0x41c01b+=0x3;else{if(_0x531b58===_0x3c7cd6(0x7d))_0x41c01b+=0x2;else _0x531b58===_0x3c7cd6(0xbb)&&(_0x41c01b+=0x1);}if(_0x41c01b<=0x3)return'low';if(_0x41c01b<=0x7)return'medium';return _0x3c7cd6(0x8d);}['describeBenefits'](_0x2ea2ef){const _0x4596b2=a0_0x1ea35b,_0x34906f=[];return _0x34906f[_0x4596b2(0x9a)]('Eliminate\x20'+_0x2ea2ef[_0x4596b2(0x8f)]+'\x20duplicated\x20lines\x20of\x20code'),_0x34906f[_0x4596b2(0x9a)](_0x4596b2(0xab)),_0x2ea2ef[_0x4596b2(0x7c)]>=0x3&&_0x34906f[_0x4596b2(0x9a)]('Reduce\x20risk\x20of\x20inconsistent\x20changes\x20across\x20'+_0x2ea2ef[_0x4596b2(0x7c)]+_0x4596b2(0x96)),_0x2ea2ef[_0x4596b2(0xb4)]>0x2&&_0x34906f[_0x4596b2(0x9a)](_0x4596b2(0x97)+_0x2ea2ef['filesCovered']+_0x4596b2(0x9f)),_0x34906f[_0x4596b2(0x9a)]('Make\x20future\x20changes\x20easier\x20and\x20less\x20error-prone'),_0x34906f;}[a0_0x1ea35b(0x7b)](_0x420720,_0x161462,_0x2bf281){const _0x15bc2c=a0_0x1ea35b,_0xb6777a=[];switch(_0x420720){case _0x15bc2c(0xbb):_0xb6777a[_0x15bc2c(0x9a)]('1.\x20Create\x20a\x20new\x20function\x20named\x20\x27'+_0x161462+'\x27'),_0xb6777a['push']('2.\x20Move\x20the\x20duplicated\x20logic\x20into\x20this\x20function'),_0xb6777a[_0x15bc2c(0x9a)]('3. Identify parameters needed from the surrounding context'),_0xb6777a['push'](_0x15bc2c(0x9c)),_0xb6777a[_0x15bc2c(0x9a)](_0x15bc2c(0xb3));break;case _0x15bc2c(0x7d):_0xb6777a[_0x15bc2c(0x9a)](_0x15bc2c(0xa9)),_0xb6777a[_0x15bc2c(0x9a)](_0x15bc2c(0x9d)),_0xb6777a['push']('3.\x20Update\x20all\x20instances\x20to\x20use\x20the\x20new\x20class'),_0xb6777a['push']('4.\x20Consider\x20dependency\x20injection\x20for\x20better\x20testability');break;case _0x15bc2c(0xc3):_0xb6777a[_0x15bc2c(0x9a)]('1.\x20Create\x20a\x20new\x20module/file\x20for\x20this\x20shared\x20functionality'),_0xb6777a[_0x15bc2c(0x9a)]('2.\x20Move\x20the\x20duplicated\x20code\x20into\x20the\x20new\x20module'),_0xb6777a['push']('3.\x20Export\x20the\x20necessary\x20functions/classes'),_0xb6777a[_0x15bc2c(0x9a)]('4. Update all files to import from the new module'),_0xb6777a['push']('5.\x20Update\x20any\x20build\x20configurations\x20if\x20needed');break;default:_0xb6777a[_0x15bc2c(0x9a)](_0x15bc2c(0x98)+_0x420720[_0x15bc2c(0x74)](/-/g,'\x20')),_0xb6777a['push'](_0x15bc2c(0x9b)),_0xb6777a[_0x15bc2c(0x9a)](_0x15bc2c(0x89));}return _0xb6777a;}['truncateCode'](_0x23b62b,_0x597bc5=0xa){const _0x1e19da=a0_0x1ea35b,_0x21165f=_0x23b62b[_0x1e19da(0xac)]('\x0a');if(_0x21165f['length']<=_0x597bc5)return _0x23b62b;return _0x21165f[_0x1e19da(0xb6)](0x0,_0x597bc5)['join']('\x0a')+_0x1e19da(0x92);}[a0_0x1ea35b(0x7e)](_0x224375){const _0x5d1572=a0_0x1ea35b,_0x4d5aa0=_0x224375['reduce']((_0x1d8fce,_0x24efac)=>_0x1d8fce+(_0x24efac[_0x5d1572(0x93)]-_0x24efac['startLine']+0x1),0x0);return Math['round'](_0x4d5aa0/_0x224375['length']);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
const a0_0x5ad24c=a0_0x437c;(function(_0x4a44a0,_0x3646bf){const _0x1264e3=a0_0x437c,_0x21e79a=_0x4a44a0();while(!![]){try{const _0x3f861c=-parseInt(_0x1264e3(0xf1))/0x1*(parseInt(_0x1264e3(0xdf))/0x2)+parseInt(_0x1264e3(0xe0))/0x3*(-parseInt(_0x1264e3(0xdb))/0x4)+-parseInt(_0x1264e3(0xf6))/0x5+parseInt(_0x1264e3(0xd9))/0x6+parseInt(_0x1264e3(0xf4))/0x7*(-parseInt(_0x1264e3(0xf0))/0x8)+parseInt(_0x1264e3(0xe1))/0x9*(-parseInt(_0x1264e3(0xed))/0xa)+parseInt(_0x1264e3(0xee))/0xb;if(_0x3f861c===_0x3646bf)break;else _0x21e79a['push'](_0x21e79a['shift']());}catch(_0x122865){_0x21e79a['push'](_0x21e79a['shift']());}}}(a0_0x562e,0x596cb));function a0_0x437c(_0x180bb0,_0x53eae3){_0x180bb0=_0x180bb0-0xd2;const _0x562e8d=a0_0x562e();let _0x437cbc=_0x562e8d[_0x180bb0];if(a0_0x437c['FrVAFY']===undefined){var _0x7d59ac=function(_0x2a6102){const _0x3abe8f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xca0d2c='',_0x4695f2='';for(let _0x1d993f=0x0,_0x58acc4,_0x466f74,_0x3179a=0x0;_0x466f74=_0x2a6102['charAt'](_0x3179a++);~_0x466f74&&(_0x58acc4=_0x1d993f%0x4?_0x58acc4*0x40+_0x466f74:_0x466f74,_0x1d993f++%0x4)?_0xca0d2c+=String['fromCharCode'](0xff&_0x58acc4>>(-0x2*_0x1d993f&0x6)):0x0){_0x466f74=_0x3abe8f['indexOf'](_0x466f74);}for(let _0x5e2279=0x0,_0x5d64e2=_0xca0d2c['length'];_0x5e2279<_0x5d64e2;_0x5e2279++){_0x4695f2+='%'+('00'+_0xca0d2c['charCodeAt'](_0x5e2279)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4695f2);};a0_0x437c['AFlvfZ']=_0x7d59ac,a0_0x437c['TjBlty']={},a0_0x437c['FrVAFY']=!![];}const _0x1cbe88=_0x562e8d[0x0],_0x1be3d2=_0x180bb0+_0x1cbe88,_0x170eac=a0_0x437c['TjBlty'][_0x1be3d2];return!_0x170eac?(_0x437cbc=a0_0x437c['AFlvfZ'](_0x437cbc),a0_0x437c['TjBlty'][_0x1be3d2]=_0x437cbc):_0x437cbc=_0x170eac,_0x437cbc;}function a0_0x562e(){const _0x5d6165=['mwTNrujLBq','C2LTAwXHCG','CgfYC2vY','ntu4mZjNyKj4t2q','BwfW','odGZnZu1zuPMvfvn','ChvZAa','BgvUz3rO','yMXVy2TZ','zMLSBa','zMLUzfnPBwLSyxjdBg9Uzxm','zMLSDgvY','zxHHy3q','mtK2mti2mMj6s1fsAG','Bwf4','nhfdt2viAa','rgv0zwn0Aw5NignSB25LCY4UlG','BwLUvg9Rzw5Z','ignVzguGyMXVy2TZ','mte1mJeXogLuzhfsCW','mJC5odu4s1rsCwDv','otG3ntCWsKXtsMn0','Dg9Rzw5Z','y29UzMLN','z3jVDxbcEuHHC2G','y2fSy3vSyxrLqMXVy2TtAw1PBgfYAxr5','qw5HBhL6Aw5Nia','AgfZ','AgfZAa','ywrK','Bg9Uz2vZDenVBw1VBLn1yNnLCxvLBMnL','Bg9N','C2LTAwXHCML0EvrOCMvZAg9Sza','ndb4rKTjCuu','mty3nJiWndjrAvnowNy','y2fSy3vSyxrLr3jVDxbdB25MAwrLBMnL','mJaWs0rorg5w'];a0_0x562e=function(){return _0x5d6165;};return a0_0x562e();}export class CloneDetector{constructor(_0xca0d2c,_0x4695f2){const _0x1704d8=a0_0x437c;this[_0x1704d8(0xe3)]=_0xca0d2c,this[_0x1704d8(0xf3)]=_0x4695f2;}['detectClones'](_0x1d993f){const _0x4f055d=a0_0x437c;console['log'](_0x4f055d(0xdc));const _0x58acc4=[],_0x466f74=[];for(const _0x5d64e2 of _0x1d993f){_0x466f74['push'](..._0x5d64e2[_0x4f055d(0xd4)]);}console[_0x4f055d(0xeb)](_0x4f055d(0xe6)+_0x466f74[_0x4f055d(0xd3)]+_0x4f055d(0xde));const _0x3179a=this[_0x4f055d(0xe4)](_0x466f74);for(const [_0x12ec33,_0x28c18c]of Object['entries'](_0x3179a)){_0x28c18c[_0x4f055d(0xd3)]>0x1&&_0x58acc4['push']({'type':_0x4f055d(0xd8),'confidence':0x1,'blocks':_0x28c18c,'tokenCount':_0x28c18c[0x0]['tokens']['length']});}const _0x5e2279=this[_0x4f055d(0xd6)](_0x466f74);return _0x58acc4[_0x4f055d(0xd2)](..._0x5e2279),console[_0x4f055d(0xeb)]('Found\x20'+_0x58acc4[_0x4f055d(0xd3)]+'\x20clone\x20groups'),_0x58acc4;}[a0_0x5ad24c(0xe4)](_0x5b3244){const _0x56372c=a0_0x5ad24c,_0x14a17c={};for(const _0x12e7b2 of _0x5b3244){if(_0x12e7b2[_0x56372c(0xe2)]['length']<this[_0x56372c(0xe3)]['minTokens'])continue;!_0x14a17c[_0x12e7b2[_0x56372c(0xe8)]]&&(_0x14a17c[_0x12e7b2['hash']]=[]),_0x14a17c[_0x12e7b2['hash']][_0x56372c(0xd2)](_0x12e7b2);}return _0x14a17c;}['findSimilarClones'](_0x3b7c9b){const _0x56d666=a0_0x5ad24c,_0x3f2553=[],processed=new Set(),_0x54f279=_0x3b7c9b[_0x56d666(0xd7)](_0x470df9=>_0x470df9[_0x56d666(0xe2)]['length']>=this[_0x56d666(0xe3)][_0x56d666(0xdd)]);for(let _0x12a305=0x0;_0x12a305<_0x54f279['length'];_0x12a305++){const _0x111ed2=_0x54f279[_0x12a305],_0x1b3abc=[_0x111ed2];if(processed[_0x56d666(0xe7)](_0x111ed2['id']))continue;for(let _0x14445f=_0x12a305+0x1;_0x14445f<_0x54f279[_0x56d666(0xd3)];_0x14445f++){const _0xe34aec=_0x54f279[_0x14445f];if(processed[_0x56d666(0xe7)](_0xe34aec['id']))continue;if(_0x111ed2[_0x56d666(0xe8)]===_0xe34aec[_0x56d666(0xe8)])continue;const _0xe8e812=this['calculateBlockSimilarity'](_0x111ed2,_0xe34aec);_0xe8e812>=this[_0x56d666(0xe3)][_0x56d666(0xec)]&&(_0x1b3abc[_0x56d666(0xd2)](_0xe34aec),processed[_0x56d666(0xe9)](_0xe34aec['id']));}_0x1b3abc['length']>0x1&&(processed[_0x56d666(0xe9)](_0x111ed2['id']),_0x3f2553[_0x56d666(0xd2)]({'type':_0x56d666(0xf2),'confidence':this['calculateGroupConfidence'](_0x1b3abc),'blocks':_0x1b3abc,'tokenCount':Math['max'](..._0x1b3abc['map'](_0x3d4e20=>_0x3d4e20['tokens'][_0x56d666(0xd3)]))}));}return _0x3f2553;}['calculateBlockSimilarity'](_0x4aceaf,_0x73df5b){const _0x449623=a0_0x5ad24c,_0x1a91e8=_0x4aceaf['tokens'],_0x142be8=_0x73df5b[_0x449623(0xe2)],_0x3195ee=Math['min'](_0x1a91e8[_0x449623(0xd3)],_0x142be8[_0x449623(0xd3)])/Math[_0x449623(0xda)](_0x1a91e8[_0x449623(0xd3)],_0x142be8[_0x449623(0xd3)]);if(_0x3195ee<0.7)return 0x0;const _0xb7df61=this[_0x449623(0xea)](_0x1a91e8,_0x142be8),_0x46ffda=0x2*_0xb7df61/(_0x1a91e8[_0x449623(0xd3)]+_0x142be8[_0x449623(0xd3)]);return _0x46ffda;}['longestCommonSubsequence'](_0xd46fd4,_0x52944d){const _0x514177=a0_0x5ad24c,_0x38b618=_0xd46fd4['length'],_0x26af66=_0x52944d[_0x514177(0xd3)];if(_0x38b618*_0x26af66>0x186a0)return this['approximateLCS'](_0xd46fd4,_0x52944d);const _0x557ff1=Array(_0x38b618+0x1)[_0x514177(0xd5)](0x0)[_0x514177(0xf5)](()=>Array(_0x26af66+0x1)['fill'](0x0));for(let _0x5247d3=0x1;_0x5247d3<=_0x38b618;_0x5247d3++){for(let _0x2b30c3=0x1;_0x2b30c3<=_0x26af66;_0x2b30c3++){_0xd46fd4[_0x5247d3-0x1]===_0x52944d[_0x2b30c3-0x1]?_0x557ff1[_0x5247d3][_0x2b30c3]=_0x557ff1[_0x5247d3-0x1][_0x2b30c3-0x1]+0x1:_0x557ff1[_0x5247d3][_0x2b30c3]=Math['max'](_0x557ff1[_0x5247d3-0x1][_0x2b30c3],_0x557ff1[_0x5247d3][_0x2b30c3-0x1]);}}return _0x557ff1[_0x38b618][_0x26af66];}['approximateLCS'](_0x281b95,_0x2ea6b2){const _0x41b7c7=a0_0x5ad24c,_0x4b3ed0=0x64;let _0x91c5d5=0x0;for(let _0x4c3cb3=0x0;_0x4c3cb3<_0x281b95[_0x41b7c7(0xd3)];_0x4c3cb3+=_0x4b3ed0){const _0x572f68=_0x281b95['slice'](_0x4c3cb3,_0x4c3cb3+_0x4b3ed0),_0xc74e9b=new Set(_0x2ea6b2['slice'](Math['max'](0x0,_0x4c3cb3-_0x4b3ed0),_0x4c3cb3+_0x4b3ed0*0x2));_0x91c5d5+=_0x572f68[_0x41b7c7(0xd7)](_0x55ed4c=>_0xc74e9b['has'](_0x55ed4c))['length'];}return _0x91c5d5;}[a0_0x5ad24c(0xef)](_0x3e5c90){const _0x453e02=a0_0x5ad24c;if(_0x3e5c90[_0x453e02(0xd3)]===0x0)return 0x0;let _0x509ee4=0x0,_0x16b3c4=0x0;for(let _0x34aae3=0x0;_0x34aae3<_0x3e5c90[_0x453e02(0xd3)];_0x34aae3++){for(let _0x11a432=_0x34aae3+0x1;_0x11a432<_0x3e5c90['length'];_0x11a432++){_0x509ee4+=this[_0x453e02(0xe5)](_0x3e5c90[_0x34aae3],_0x3e5c90[_0x11a432]),_0x16b3c4++;}}return _0x16b3c4>0x0?_0x509ee4/_0x16b3c4:0x0;}}
|