@loxia-labs/loxia-autopilot-one 1.0.8 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/bin/cli.js +1 -1
- package/bin/loxia-terminal-v2.js +1 -1
- package/bin/loxia-terminal.js +1 -1
- package/bin/start-with-terminal.js +1 -1
- package/package.json +1 -1
- package/scripts/install-scanners.js +1 -1
- package/src/analyzers/CSSAnalyzer.js +1 -1
- package/src/analyzers/ConfigValidator.js +1 -1
- package/src/analyzers/ESLintAnalyzer.js +1 -1
- package/src/analyzers/JavaScriptAnalyzer.js +1 -1
- package/src/analyzers/PrettierFormatter.js +1 -1
- package/src/analyzers/PythonAnalyzer.js +1 -1
- package/src/analyzers/SecurityAnalyzer.js +1 -1
- package/src/analyzers/TypeScriptAnalyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/detector.js +1 -1
- package/src/analyzers/codeCloneDetector/index.js +1 -1
- package/src/analyzers/codeCloneDetector/parser.js +1 -1
- package/src/analyzers/codeCloneDetector/reporter.js +1 -1
- package/src/analyzers/codeCloneDetector/scanner.js +1 -1
- package/src/core/agentPool.js +1 -1
- package/src/core/agentScheduler.js +1 -1
- package/src/core/contextManager.js +1 -1
- package/src/core/messageProcessor.js +1 -1
- package/src/core/orchestrator.js +1 -1
- package/src/core/stateManager.js +1 -1
- package/src/index.js +1 -1
- package/src/interfaces/cli.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
- package/src/interfaces/terminal/api/apiClient.js +1 -1
- package/src/interfaces/terminal/api/messageRouter.js +1 -1
- package/src/interfaces/terminal/api/session.js +1 -1
- package/src/interfaces/terminal/api/websocket.js +1 -1
- package/src/interfaces/terminal/components/AgentCreator.js +1 -1
- package/src/interfaces/terminal/components/AgentEditor.js +1 -1
- package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
- package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
- package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
- package/src/interfaces/terminal/components/Header.js +1 -1
- package/src/interfaces/terminal/components/HelpPanel.js +1 -1
- package/src/interfaces/terminal/components/InputBox.js +1 -1
- package/src/interfaces/terminal/components/Layout.js +1 -1
- package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
- package/src/interfaces/terminal/components/MessageList.js +1 -1
- package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
- package/src/interfaces/terminal/components/SearchPanel.js +1 -1
- package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
- package/src/interfaces/terminal/components/StatusBar.js +1 -1
- package/src/interfaces/terminal/components/TextInput.js +1 -1
- package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
- package/src/interfaces/terminal/config/constants.js +1 -1
- package/src/interfaces/terminal/index.js +1 -1
- package/src/interfaces/terminal/state/useAgentControl.js +1 -1
- package/src/interfaces/terminal/state/useAgents.js +1 -1
- package/src/interfaces/terminal/state/useConnection.js +1 -1
- package/src/interfaces/terminal/state/useMessages.js +1 -1
- package/src/interfaces/terminal/state/useTools.js +1 -1
- package/src/interfaces/terminal/utils/debugLogger.js +1 -1
- package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
- package/src/interfaces/terminal/utils/theme.js +1 -1
- package/src/interfaces/webServer.js +1 -1
- package/src/modules/fileExplorer/controller.js +1 -1
- package/src/modules/fileExplorer/index.js +1 -1
- package/src/modules/fileExplorer/middleware.js +1 -1
- package/src/modules/fileExplorer/routes.js +1 -1
- package/src/services/aiService.js +1 -1
- package/src/services/apiKeyManager.js +1 -1
- package/src/services/benchmarkService.js +1 -1
- package/src/services/budgetService.js +1 -1
- package/src/services/contextInjectionService.js +1 -1
- package/src/services/conversationCompactionService.js +1 -1
- package/src/services/errorHandler.js +1 -1
- package/src/services/fileAttachmentService.js +1 -1
- package/src/services/modelRouterService.js +1 -1
- package/src/services/modelsService.js +1 -1
- package/src/services/qualityInspector.js +1 -1
- package/src/services/tokenCountingService.js +1 -1
- package/src/tools/agentCommunicationTool.js +1 -1
- package/src/tools/agentDelayTool.js +1 -1
- package/src/tools/asyncToolManager.js +1 -1
- package/src/tools/baseTool.js +1 -1
- package/src/tools/browserTool.js +1 -1
- package/src/tools/cloneDetectionTool.js +1 -1
- package/src/tools/dependencyResolverTool.js +1 -1
- package/src/tools/fileContentReplaceTool.js +1 -1
- package/src/tools/fileSystemTool.js +1 -1
- package/src/tools/fileTreeTool.js +1 -1
- package/src/tools/imageTool.js +1 -1
- package/src/tools/importAnalyzerTool.js +1 -1
- package/src/tools/jobDoneTool.js +1 -1
- package/src/tools/seekTool.js +1 -1
- package/src/tools/staticAnalysisTool.js +1 -1
- package/src/tools/taskManagerTool.js +1 -1
- package/src/tools/terminalTool.js +1 -1
- package/src/tools/webTool.js +1 -1
- package/src/types/agent.js +1 -1
- package/src/types/contextReference.js +1 -1
- package/src/types/conversation.js +1 -1
- package/src/types/toolCommand.js +1 -1
- package/src/utilities/attachmentValidator.js +1 -1
- package/src/utilities/configManager.js +1 -1
- package/src/utilities/constants.js +1 -1
- package/src/utilities/directoryAccessManager.js +1 -1
- package/src/utilities/fileProcessor.js +1 -1
- package/src/utilities/logger.js +1 -1
- package/src/utilities/tagParser.js +1 -1
- package/src/utilities/toolConstants.js +1 -1
- package/web-ui/build/index.html +2 -2
- package/web-ui/build/static/{index-BzXbDs8z.js → index-CoRE46V-.js} +28 -28
- package/web-ui/build/static/index-P281Rusr.css +1 -0
- package/web-ui/build/static/index-BmKxmRe3.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0xd183ba=a0_0x4e50;(function(_0x398262,_0x1a9119){const _0x495c24=a0_0x4e50,_0x95dc90=_0x398262();while(!![]){try{const _0x1cde3c=parseInt(_0x495c24(0x198))/0x1+parseInt(_0x495c24(0x193))/0x2*(-parseInt(_0x495c24(0x1a2))/0x3)+parseInt(_0x495c24(0x194))/0x4+-parseInt(_0x495c24(0x18d))/0x5*(-parseInt(_0x495c24(0x1b2))/0x6)+parseInt(_0x495c24(0x181))/0x7*(-parseInt(_0x495c24(0x1b0))/0x8)+-parseInt(_0x495c24(0x195))/0x9*(parseInt(_0x495c24(0x1a4))/0xa)+-parseInt(_0x495c24(0x1b4))/0xb;if(_0x1cde3c===_0x1a9119)break;else _0x95dc90['push'](_0x95dc90['shift']());}catch(_0x23268c){_0x95dc90['push'](_0x95dc90['shift']());}}}(a0_0xc08f,0xa070f));import a0_0x1a355f from'typescript';function a0_0x4e50(_0x565c4a,_0x490b32){_0x565c4a=_0x565c4a-0x17d;const _0xc08f23=a0_0xc08f();let _0x4e50b6=_0xc08f23[_0x565c4a];if(a0_0x4e50['QTJSeM']===undefined){var _0x30ce08=function(_0x38a931){const _0x530a94='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1a355f='',_0x15bd1b='';for(let _0x217a34=0x0,_0x3a986f,_0x5087cf,_0xf1947=0x0;_0x5087cf=_0x38a931['charAt'](_0xf1947++);~_0x5087cf&&(_0x3a986f=_0x217a34%0x4?_0x3a986f*0x40+_0x5087cf:_0x5087cf,_0x217a34++%0x4)?_0x1a355f+=String['fromCharCode'](0xff&_0x3a986f>>(-0x2*_0x217a34&0x6)):0x0){_0x5087cf=_0x530a94['indexOf'](_0x5087cf);}for(let _0x4944c5=0x0,_0x26d4f8=_0x1a355f['length'];_0x4944c5<_0x26d4f8;_0x4944c5++){_0x15bd1b+='%'+('00'+_0x1a355f['charCodeAt'](_0x4944c5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x15bd1b);};a0_0x4e50['jftRIQ']=_0x30ce08,a0_0x4e50['DEPjHx']={},a0_0x4e50['QTJSeM']=!![];}const _0x13a558=_0xc08f23[0x0],_0x270921=_0x565c4a+_0x13a558,_0x448570=a0_0x4e50['DEPjHx'][_0x270921];return!_0x448570?(_0x4e50b6=a0_0x4e50['jftRIQ'](_0x4e50b6),a0_0x4e50['DEPjHx'][_0x270921]=_0x4e50b6):_0x4e50b6=_0x448570,_0x4e50b6;}import a0_0x15bd1b from'path';function a0_0xc08f(){const _0x27bcef=['y29Kzq','su5gtW','y2HHCMfJDgvY','z2v0u3LUDgfJDgLJrgLHz25VC3rPy3m','nda4uKrJy0zz','Aw5JBhvKzxm','nJm4ndi0C1DtvNrk','z2v0u3rHCNq','ode4mZe2nfrVyxDMyW','tM9KzuPZ','zgLYBMfTzq','tw9KDwXLs2LUza','Dw5RBM93BG','qw5HBhLZAxmGzMfPBgvKoIa','mJKXotDzuujquxe','u0vwrvjjvfK','rxjYB3i','sNn4rw1PDa','BgvUz3rO','y3jLyxrLuhjVz3jHBq','zM9YrwfJAenOAwXK','uMvHy3q','BwvZC2fNzq','z2v0u2vTyw50AwneAwfNBM9ZDgLJCW','ChvZAa','y2f0zwDVCNK','mZv1rgfQsLm','q0furuDpuLK','rgLHz25VC3rPy0nHDgvNB3j5','tgf0zxn0','zMXHDhrLBKrPywDUB3n0AwnnzxnZywDLvgv4Da','zMLSzq','mtC4ufjky3rU','mZi4otyXmNPqzMPpqG','nZKXmtKWz2rztwPS','rvjst1i','BwvZC2fNzvrLEhq','nti1odi0sejbs1LA','u1Lovefy','yw5HBhL6zq','sMf2yvnJCMLWDcbHBMfSExnPCYbJB21WBgv0zwq','BgLUzq','v2fYBMLUzW','twvZC2fNzq','BgLIlMqUDhm','Bg9Nz2vY','Dg9mB3DLCKnHC2u','mtmXotfgzfzOv2i','u2nYAxb0vgfYz2v0','mtbuzw9frwK','y29TCgLSzxjpChrPB25Z','C3rHCNq','vw5RBM93BG','zMLSzu5HBwu','su1qt1ju','zxjYB3i','z2v0tgLUzufUzenOyxjHy3rLCK9Mug9ZAxrPB24'];a0_0xc08f=function(){return _0x27bcef;};return a0_0xc08f();}import{STATIC_ANALYSIS}from'../utilities/constants.js';class JavaScriptAnalyzer{constructor(_0x217a34=null){const _0x176c8d=a0_0x4e50;this['logger']=_0x217a34,this[_0x176c8d(0x1a5)]={'allowJs':!![],'checkJs':!![],'noEmit':!![],'jsx':a0_0x1a355f[_0x176c8d(0x184)][_0x176c8d(0x188)],'target':a0_0x1a355f['ScriptTarget'][_0x176c8d(0x190)],'module':a0_0x1a355f[_0x176c8d(0x17e)]['ESNext'],'moduleResolution':a0_0x1a355f['ModuleResolutionKind'][_0x176c8d(0x1b5)],'esModuleInterop':!![],'skipLibCheck':!![],'strict':![],'noImplicitAny':![]};}async[a0_0xd183ba(0x19a)](_0x3a986f,_0x5087cf,_0xf1947={}){const _0x5ea47f=a0_0xd183ba;try{const _0x4944c5=[],_0x26d4f8=a0_0x1a355f['createSourceFile'](_0x3a986f,_0x5087cf,a0_0x1a355f['ScriptTarget']['Latest'],!![]),_0x4c3ef5=this[_0x5ea47f(0x1af)](_0x26d4f8);_0x4944c5[_0x5ea47f(0x18b)](..._0x4c3ef5);const _0x51f3ad=await this['getSemanticDiagnostics'](_0x3a986f,_0x5087cf);return _0x4944c5[_0x5ea47f(0x18b)](..._0x51f3ad),this[_0x5ea47f(0x1a0)]?.['debug'](_0x5ea47f(0x19b),{'file':_0x3a986f,'totalDiagnostics':_0x4944c5['length'],'errors':_0x4944c5['filter'](_0x24886b=>_0x24886b['severity']===STATIC_ANALYSIS[_0x5ea47f(0x182)]['ERROR'])[_0x5ea47f(0x185)],'warnings':_0x4944c5['filter'](_0x2529fd=>_0x2529fd['severity']===STATIC_ANALYSIS['SEVERITY']['WARNING'])['length']}),_0x4944c5;}catch(_0x4eda41){return this['logger']?.[_0x5ea47f(0x1aa)]('JavaScript\x20analysis\x20failed',{'file':_0x3a986f,'error':_0x4eda41[_0x5ea47f(0x189)]}),[{'file':_0x3a986f,'line':0x0,'column':0x0,'severity':STATIC_ANALYSIS['SEVERITY'][_0x5ea47f(0x196)],'rule':'analyzer-error','message':_0x5ea47f(0x180)+_0x4eda41[_0x5ea47f(0x189)],'category':STATIC_ANALYSIS['CATEGORY'][_0x5ea47f(0x199)]}];}}['getSyntacticDiagnostics'](_0x1af54d){const _0x1e0ed9=[],_0x22f95c=_0x21bf27=>{const _0x12a294=a0_0x4e50;if(_0x21bf27['kind']===a0_0x1a355f['SyntaxKind'][_0x12a294(0x1a7)]){const _0x16df51=_0x1af54d['getLineAndCharacterOfPosition'](_0x21bf27[_0x12a294(0x1b3)]());_0x1e0ed9['push']({'file':_0x1af54d[_0x12a294(0x1a8)],'line':_0x16df51['line']+0x1,'column':_0x16df51['character']+0x1,'severity':STATIC_ANALYSIS[_0x12a294(0x182)][_0x12a294(0x196)],'rule':'syntax-error','message':'Syntax\x20error','category':STATIC_ANALYSIS['CATEGORY'][_0x12a294(0x199)],'fixable':![]});}a0_0x1a355f[_0x12a294(0x187)](_0x21bf27,_0x22f95c);};_0x22f95c(_0x1af54d);if(_0x1af54d['parseDiagnostics']&&_0x1af54d['parseDiagnostics']['length']>0x0)for(const _0x3b388d of _0x1af54d['parseDiagnostics']){_0x1e0ed9['push'](this['formatDiagnostic'](_0x3b388d,_0x1af54d));}return _0x1e0ed9;}async[a0_0xd183ba(0x18a)](_0x2c042d,_0x3374d0){const _0x105fe6=a0_0xd183ba,_0x194845=[];try{const _0x15d46a=a0_0x1a355f['createSourceFile'](_0x2c042d,_0x3374d0,a0_0x1a355f[_0x105fe6(0x1a3)]['Latest'],!![]),_0x32e562={'getSourceFile':_0x1b80d0=>{if(_0x1b80d0===_0x2c042d)return _0x15d46a;return undefined;},'getDefaultLibFileName':()=>_0x105fe6(0x19f),'writeFile':()=>{},'getCurrentDirectory':()=>a0_0x15bd1b[_0x105fe6(0x17d)](_0x2c042d),'getDirectories':()=>[],'fileExists':_0x598bda=>_0x598bda===_0x2c042d,'readFile':_0x400b26=>{if(_0x400b26===_0x2c042d)return _0x3374d0;return undefined;},'getCanonicalFileName':_0x3a4df3=>_0x3a4df3,'useCaseSensitiveFileNames':()=>!![],'getNewLine':()=>'\x0a'},_0x3d8070=a0_0x1a355f[_0x105fe6(0x186)]({'rootNames':[_0x2c042d],'options':this['compilerOptions'],'host':_0x32e562}),_0x38be19=_0x3d8070['getSemanticDiagnostics'](_0x15d46a);for(const _0x40fa93 of _0x38be19){_0x194845[_0x105fe6(0x18b)](this['formatDiagnostic'](_0x40fa93,_0x15d46a));}}catch(_0x372bda){this[_0x105fe6(0x1a0)]?.['debug']('Semantic\x20analysis\x20skipped',{'file':_0x2c042d,'reason':_0x372bda[_0x105fe6(0x189)]});}return _0x194845;}['formatDiagnostic'](_0x2f5c34,_0x164954){const _0x2a435a=a0_0xd183ba;let _0x291187=0x0,_0x15c9a1=0x0;if(_0x2f5c34[_0x2a435a(0x192)]&&_0x2f5c34[_0x2a435a(0x1a6)]!==undefined){const _0x59c962=_0x2f5c34[_0x2a435a(0x192)][_0x2a435a(0x1ab)](_0x2f5c34['start']);_0x291187=_0x59c962[_0x2a435a(0x19c)]+0x1,_0x15c9a1=_0x59c962[_0x2a435a(0x1ae)]+0x1;}else{if(_0x164954&&_0x2f5c34[_0x2a435a(0x1a6)]!==undefined){const _0x10c039=_0x164954[_0x2a435a(0x1ab)](_0x2f5c34['start']);_0x291187=_0x10c039[_0x2a435a(0x19c)]+0x1,_0x15c9a1=_0x10c039[_0x2a435a(0x1ae)]+0x1;}}const _0x402588=a0_0x1a355f[_0x2a435a(0x191)](_0x2f5c34[_0x2a435a(0x197)],'\x0a');let _0x2ce5a5;switch(_0x2f5c34[_0x2a435a(0x18c)]){case a0_0x1a355f[_0x2a435a(0x18f)][_0x2a435a(0x183)]:_0x2ce5a5=STATIC_ANALYSIS['SEVERITY'][_0x2a435a(0x196)];break;case a0_0x1a355f['DiagnosticCategory'][_0x2a435a(0x19d)]:_0x2ce5a5=STATIC_ANALYSIS['SEVERITY']['WARNING'];break;case a0_0x1a355f['DiagnosticCategory'][_0x2a435a(0x19e)]:case a0_0x1a355f['DiagnosticCategory']['Suggestion']:_0x2ce5a5=STATIC_ANALYSIS['SEVERITY'][_0x2a435a(0x1ad)];break;default:_0x2ce5a5=STATIC_ANALYSIS[_0x2a435a(0x182)][_0x2a435a(0x196)];}let _0x173b3f=STATIC_ANALYSIS['CATEGORY']['SYNTAX'];const _0x2332fe=_0x2f5c34[_0x2a435a(0x1ac)];if(_0x2332fe>=0x7d0&&_0x2332fe<0xbb8)_0x173b3f=STATIC_ANALYSIS['CATEGORY']['TYPE'];else{if(_0x2332fe>=0x3e8&&_0x2332fe<0x7d0)_0x173b3f=STATIC_ANALYSIS['CATEGORY'][_0x2a435a(0x199)];else _0x2332fe>=0x8fc&&_0x2332fe<0x960&&(_0x173b3f=STATIC_ANALYSIS['CATEGORY'][_0x2a435a(0x1a9)]);}return(_0x402588[_0x2a435a(0x1a1)]()['includes']('cannot\x20find\x20module')||_0x402588[_0x2a435a(0x1a1)]()[_0x2a435a(0x1b1)]('import'))&&(_0x173b3f=STATIC_ANALYSIS[_0x2a435a(0x18e)][_0x2a435a(0x1a9)]),{'file':_0x2f5c34[_0x2a435a(0x192)]?.['fileName']||_0x164954?.['fileName']||_0x2a435a(0x17f),'line':_0x291187,'column':_0x15c9a1,'severity':_0x2ce5a5,'rule':'TS'+_0x2332fe,'message':_0x402588,'category':_0x173b3f,'fixable':![],'code':_0x2f5c34[_0x2a435a(0x1ac)]};}}export default JavaScriptAnalyzer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x18d63b=a0_0x1be9;(function(_0x4800db,_0x2587e7){const _0x4e76c1=a0_0x1be9,_0x4f19fa=_0x4800db();while(!![]){try{const _0x3bedc8=parseInt(_0x4e76c1(0xa5))/0x1*(parseInt(_0x4e76c1(0xb8))/0x2)+-parseInt(_0x4e76c1(0xc3))/0x3+-parseInt(_0x4e76c1(0x9b))/0x4*(-parseInt(_0x4e76c1(0xad))/0x5)+-parseInt(_0x4e76c1(0xaf))/0x6*(-parseInt(_0x4e76c1(0xc1))/0x7)+-parseInt(_0x4e76c1(0xb0))/0x8*(-parseInt(_0x4e76c1(0xa1))/0x9)+parseInt(_0x4e76c1(0xa6))/0xa+-parseInt(_0x4e76c1(0xb2))/0xb;if(_0x3bedc8===_0x2587e7)break;else _0x4f19fa['push'](_0x4f19fa['shift']());}catch(_0x59309b){_0x4f19fa['push'](_0x4f19fa['shift']());}}}(a0_0x2d52,0xdc90e));function a0_0x1be9(_0x3f9fdf,_0x10c483){_0x3f9fdf=_0x3f9fdf-0x98;const _0x2d5242=a0_0x2d52();let _0x1be991=_0x2d5242[_0x3f9fdf];if(a0_0x1be9['YnvhGy']===undefined){var _0x318d1e=function(_0x2ef1d0){const _0x2acbaa='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x58f8b0='',_0x2b68e5='';for(let _0x38b8b7=0x0,_0x6e6a71,_0x11239e,_0x2d24c3=0x0;_0x11239e=_0x2ef1d0['charAt'](_0x2d24c3++);~_0x11239e&&(_0x6e6a71=_0x38b8b7%0x4?_0x6e6a71*0x40+_0x11239e:_0x11239e,_0x38b8b7++%0x4)?_0x58f8b0+=String['fromCharCode'](0xff&_0x6e6a71>>(-0x2*_0x38b8b7&0x6)):0x0){_0x11239e=_0x2acbaa['indexOf'](_0x11239e);}for(let _0x1eb749=0x0,_0x12b569=_0x58f8b0['length'];_0x1eb749<_0x12b569;_0x1eb749++){_0x2b68e5+='%'+('00'+_0x58f8b0['charCodeAt'](_0x1eb749)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2b68e5);};a0_0x1be9['vdeuvT']=_0x318d1e,a0_0x1be9['FeUwTD']={},a0_0x1be9['YnvhGy']=!![];}const _0x226b70=_0x2d5242[0x0],_0x4e07ed=_0x3f9fdf+_0x226b70,_0x48337=a0_0x1be9['FeUwTD'][_0x4e07ed];return!_0x48337?(_0x1be991=a0_0x1be9['vdeuvT'](_0x1be991),a0_0x1be9['FeUwTD'][_0x4e07ed]=_0x1be991):_0x1be991=_0x48337,_0x1be991;}import a0_0x58f8b0 from'prettier';import a0_0x2b68e5 from'path';import a0_0x38b8b7 from'fs/promises';class PrettierFormatter{constructor(_0x6e6a71=null){this['logger']=_0x6e6a71,this['configCache']=new Map();}async[a0_0x18d63b(0xc4)](_0x11239e,_0x2d24c3,_0x1eb749={}){const _0x42f068=a0_0x18d63b;try{const _0x12b569=await this[_0x42f068(0xa9)](_0x11239e,_0x1eb749['workingDir']),_0x5b5361=this['getParser'](_0x11239e),_0x428e79=await a0_0x58f8b0[_0x42f068(0xc4)](_0x2d24c3,{..._0x12b569,'filepath':_0x11239e,'parser':_0x5b5361}),_0x4f88ef=_0x428e79!==_0x2d24c3;return{'formatted':_0x4f88ef,'content':_0x428e79,'original':_0x2d24c3,'changes':_0x4f88ef?this['describeChanges'](_0x2d24c3,_0x428e79):[],'linesChanged':_0x4f88ef?this[_0x42f068(0xaa)](_0x2d24c3,_0x428e79):0x0};}catch(_0xcd9872){this[_0x42f068(0xa2)]?.['error'](_0x42f068(0x98),{'file':_0x11239e,'error':_0xcd9872['message']});throw new Error(_0x42f068(0xa4)+_0xcd9872['message']);}}async[a0_0x18d63b(0x9f)](_0x482043,_0x4ea727,_0x262059={}){const _0x306040=a0_0x18d63b;try{const _0x357096=await this[_0x306040(0xa9)](_0x482043,_0x262059['workingDir']),_0x3b94a0=this['getParser'](_0x482043),_0x3bd8cd=await a0_0x58f8b0['format'](_0x4ea727,{..._0x357096,'filepath':_0x482043,'parser':_0x3b94a0});return _0x3bd8cd!==_0x4ea727;}catch(_0x3fa706){return this[_0x306040(0xa2)]?.['warn']('Prettier\x20check\x20failed',{'file':_0x482043,'error':_0x3fa706[_0x306040(0xac)]}),![];}}async['getPrettierConfig'](_0xc2a4fd,_0x2e2e28){const _0x1ba9a0=a0_0x18d63b,_0x5009ad=_0x2e2e28||a0_0x2b68e5[_0x1ba9a0(0xbe)](_0xc2a4fd);if(this['configCache'][_0x1ba9a0(0xb7)](_0x5009ad))return this['configCache'][_0x1ba9a0(0xba)](_0x5009ad);let _0x156552={};if(_0x2e2e28)try{const _0x4ea5e7=await a0_0x58f8b0['resolveConfig'](_0xc2a4fd,{'config':_0x2e2e28});_0x4ea5e7&&(this[_0x1ba9a0(0xa2)]?.[_0x1ba9a0(0xb1)](_0x1ba9a0(0xbf),{'workingDir':_0x2e2e28}),_0x156552=_0x4ea5e7);}catch(_0x39798c){this['logger']?.[_0x1ba9a0(0xb1)]('No Prettier config found, using defaults');}const defaultConfig={'semi':!![],'singleQuote':!![],'tabWidth':0x2,'trailingComma':'es5','printWidth':0x64,'arrowParens':'avoid','endOfLine':'lf',..._0x156552};return this['configCache'][_0x1ba9a0(0xa0)](_0x5009ad,defaultConfig),defaultConfig;}['getParser'](_0x528ebe){const _0x483d32=a0_0x18d63b,_0x24c310=a0_0x2b68e5[_0x483d32(0xc0)](_0x528ebe)['toLowerCase'](),_0x572862={'.js':'babel','.jsx':'babel','.mjs':'babel','.cjs':_0x483d32(0xae),'.ts':_0x483d32(0x9a),'.tsx':_0x483d32(0x9a),'.json':_0x483d32(0xab),'.json5':_0x483d32(0xbd),'.css':'css','.scss':_0x483d32(0x9d),'.less':_0x483d32(0xb3),'.html':'html','.vue':'vue','.md':_0x483d32(0x9e),'.yaml':'yaml','.yml':'yaml'};return _0x572862[_0x24c310]||'babel';}['describeChanges'](_0x23facc,_0xecd5f8){const _0x4a55ea=a0_0x18d63b,_0x55f165=[],_0x561a08=_0x23facc['split']('\x0a'),_0x1f162c=_0xecd5f8[_0x4a55ea(0xa3)]('\x0a'),_0x561975=Math[_0x4a55ea(0x9c)](_0x561a08[_0x4a55ea(0xa7)],_0x1f162c[_0x4a55ea(0xa7)]);for(let _0x4249c9=0x0;_0x4249c9<_0x561975;_0x4249c9++){const _0x3e81c7=_0x561a08[_0x4249c9],_0x487efb=_0x1f162c[_0x4249c9];_0x3e81c7!==_0x487efb&&_0x55f165[_0x4a55ea(0xb6)]({'line':_0x4249c9+0x1,'type':_0x3e81c7!==undefined&&_0x487efb!==undefined?_0x4a55ea(0xbb):_0x3e81c7!==undefined?'removed':'added','original':_0x3e81c7||'','formatted':_0x487efb||''});}return _0x55f165;}[a0_0x18d63b(0xaa)](_0x20846c,_0x441ac0){const _0x5c4e58=a0_0x18d63b,_0x42d78d=_0x20846c['split']('\x0a'),_0x55970c=_0x441ac0['split']('\x0a');let _0x43f5f1=0x0;const _0x5c3440=Math[_0x5c4e58(0x9c)](_0x42d78d[_0x5c4e58(0xa7)],_0x55970c['length']);for(let _0x314a3f=0x0;_0x314a3f<_0x5c3440;_0x314a3f++){_0x42d78d[_0x314a3f]!==_0x55970c[_0x314a3f]&&_0x43f5f1++;}return _0x43f5f1;}['getSupportedExtensions'](){const _0x229e91=a0_0x18d63b;return['.js','.jsx','.mjs','.cjs',_0x229e91(0xa8),'.tsx','.json',_0x229e91(0xbc),_0x229e91(0x99),_0x229e91(0xb9),'.less','.html','.vue',_0x229e91(0xb4),'.yaml','.yml'];}['isSupported'](_0x534db4){const _0x1b5f95=a0_0x18d63b,_0x1f6e30=a0_0x2b68e5[_0x1b5f95(0xc0)](_0x534db4)['toLowerCase']();return this[_0x1b5f95(0xb5)]()[_0x1b5f95(0xc2)](_0x1f6e30);}}export default PrettierFormatter;function a0_0x2d52(){const _0x22cbc4=['z2v0uhjLDhrPzxjdB25MAwC','y291BNrdAgfUz2vKtgLUzxm','ANnVBG','BwvZC2fNzq','nZqYmZK1shfRy0Th','yMfIzwW','mZmYmZq1ngnWCgLvuG','ndG3mtK0neP5CNbVBq','zgvIDwC','mtuZmtq5mtvRCfbtre0','BgvZCW','lM1K','z2v0u3vWCg9YDgvKrxH0zw5ZAw9UCW','ChvZAa','AgfZ','mte4rMnOs2rV','lNnJC3m','z2v0','Bw9KAwzPzwq','lMPZB241','ANnVBJu','zgLYBMfTzq','rM91BMqGuhjLDhrPzxiGy29UzMLN','zxH0BMfTzq','mtrWvM1xreq','Aw5JBhvKzxm','ndGXmtC4nhnRDM9Ryq','zM9YBwf0','uhjLDhrPzxiGzM9YBwf0DgLUzYbMywLSzwq','lMnZCW','DhLWzxnJCMLWDa','mtj4DK9cqwC','Bwf4','C2nZCW','BwfYA2rVD24','y2HLy2S','C2v0','ovrguvjuEG','Bg9Nz2vY','C3bSAxq','uhjLDhrPzxiGzM9YBwf0DgLUzYbMywLSzwq6ia','mJm0mdjIDhz0tMS','mZu2nJy1mefVAuvRwa','BgvUz3rO','lNrZ'];a0_0x2d52=function(){return _0x22cbc4;};return a0_0x2d52();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a0_0x5e97(){const _0x558315=['zxjYB3jZ','C3LUDgf4x2nOzwnRxW','rvjst1i','C3vWCg9YDhnbDxrVrML4','D3jPDgvgAwXL','ndLxEhj3q1i','y29SDw1U','mZy2mJm0qwnxDKL5','ChL0Ag9UmW','C3rKB3v0','q29TBwfUzcb0Aw1LB3v0','zMLSDgvY','CNvUq29TBwfUza','zgf0yq','Dg1WzgLY','AM9PBG','z2v0uhL0Ag9Uq29TBwfUza','ChL0Ag9U','oti2mdKXmKPpv1josq','nZqYndG4B0vNyu96','Dw5SAw5R','ndqXndK1ovfICevOqW','ouzMuef4va','u1Lovefy','odi3odG1tM1YwePj','ChvZAa','BwvZC2fNzq','rMfPBgvKihrVihbHCNnLifb5DgHVBIbZEw50yxGGy2HLy2SGCMvZDwX0','C3vJy2vZCW','uhL0Ag9Uig5VDcbHDMfPBgfIBguSihnRAxbWAw5NigfUywX5C2LZ','D2fYBG','rM91BMqGuhL0Ag9UignVBw1HBMq','ChL0Ag9Uq29TBwfUza','q0furuDpuLK','ChL0Ag9UlwfZDa','lNb5','C2v2zxjPDhK','CNvUuhL0Ag9Uu2nYAxb0','mtK1ndq5otbOy2rrA0e','mtmWmtmWofbHue1HAq','uhL0Ag9UigfUywX5C2LZignVBxbSzxrLza','u0vwrvjjvfK','mtj0DhfzDMu','Bg9Nz2vY'];a0_0x5e97=function(){return _0x558315;};return a0_0x5e97();}const a0_0x4e0a14=a0_0x547c;(function(_0x2bf9ed,_0x46ac2b){const _0x419991=a0_0x547c,_0x4dd51a=_0x2bf9ed();while(!![]){try{const _0xce5ae5=parseInt(_0x419991(0x96))/0x1+parseInt(_0x419991(0xaa))/0x2+-parseInt(_0x419991(0x98))/0x3+-parseInt(_0x419991(0xad))/0x4*(-parseInt(_0x419991(0x9b))/0x5)+-parseInt(_0x419991(0xb6))/0x6*(parseInt(_0x419991(0xb4))/0x7)+-parseInt(_0x419991(0x95))/0x8+-parseInt(_0x419991(0x99))/0x9*(-parseInt(_0x419991(0xa9))/0xa);if(_0xce5ae5===_0x46ac2b)break;else _0x4dd51a['push'](_0x4dd51a['shift']());}catch(_0x2df36d){_0x4dd51a['push'](_0x4dd51a['shift']());}}}(a0_0x5e97,0xc0578));import{spawn}from'child_process';import{STATIC_ANALYSIS}from'../utilities/constants.js';import a0_0x506520 from'fs/promises';import a0_0x11f719 from'path';import a0_0x50e2f1 from'os';function a0_0x547c(_0x11fa10,_0xf944b2){_0x11fa10=_0x11fa10-0x92;const _0x5e9720=a0_0x5e97();let _0x547c17=_0x5e9720[_0x11fa10];if(a0_0x547c['xFmLxV']===undefined){var _0x5e8350=function(_0x28436a){const _0x5b71bd='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x506520='',_0x11f719='';for(let _0x50e2f1=0x0,_0x5734cc,_0x383b48,_0x1465e3=0x0;_0x383b48=_0x28436a['charAt'](_0x1465e3++);~_0x383b48&&(_0x5734cc=_0x50e2f1%0x4?_0x5734cc*0x40+_0x383b48:_0x383b48,_0x50e2f1++%0x4)?_0x506520+=String['fromCharCode'](0xff&_0x5734cc>>(-0x2*_0x50e2f1&0x6)):0x0){_0x383b48=_0x5b71bd['indexOf'](_0x383b48);}for(let _0x5e8fe1=0x0,_0x5318dd=_0x506520['length'];_0x5e8fe1<_0x5318dd;_0x5e8fe1++){_0x11f719+='%'+('00'+_0x506520['charCodeAt'](_0x5e8fe1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x11f719);};a0_0x547c['FmWrEe']=_0x5e8350,a0_0x547c['ZGVZWV']={},a0_0x547c['xFmLxV']=!![];}const _0x366da4=_0x5e9720[0x0],_0xbdc97e=_0x11fa10+_0x366da4,_0x5b4731=a0_0x547c['ZGVZWV'][_0xbdc97e];return!_0x5b4731?(_0x547c17=a0_0x547c['FmWrEe'](_0x547c17),a0_0x547c['ZGVZWV'][_0xbdc97e]=_0x547c17):_0x547c17=_0x5b4731,_0x547c17;}class PythonAnalyzer{constructor(_0x5734cc=null){const _0x2ece92=a0_0x547c;this[_0x2ece92(0xae)]=_0x5734cc,this['pythonCommand']=null;}async['analyze'](_0x383b48,_0x1465e3,_0x5e8fe1={}){const _0x54dd75=a0_0x547c;try{const _0x5318dd=[],_0x57aabd=await this[_0x54dd75(0x93)]();if(!_0x57aabd)return this['logger']?.[_0x54dd75(0xa1)](_0x54dd75(0xa0)),[];const _0x5d9f90=await this['checkSyntax'](_0x383b48,_0x1465e3,_0x57aabd);return _0x5318dd[_0x54dd75(0x9c)](..._0x5d9f90),this['logger']?.['debug'](_0x54dd75(0xab),{'file':_0x383b48,'totalDiagnostics':_0x5318dd['length'],'errors':_0x5318dd[_0x54dd75(0xba)](_0x5f52d5=>_0x5f52d5[_0x54dd75(0xa7)]===STATIC_ANALYSIS[_0x54dd75(0xac)][_0x54dd75(0xb1)])['length'],'warnings':_0x5318dd['filter'](_0x3e7abc=>_0x3e7abc['severity']===STATIC_ANALYSIS[_0x54dd75(0xac)]['WARNING'])['length']}),_0x5318dd;}catch(_0x11e188){return this[_0x54dd75(0xae)]?.['error']('Python\x20analysis\x20failed',{'file':_0x383b48,'error':_0x11e188['message']}),[];}}async['checkSyntax'](_0x1dd2d5,_0x4a1299,_0x78a1b){const _0x195559=a0_0x547c,_0x46e150=[],_0x29415e=a0_0x50e2f1[_0x195559(0xbd)](),_0x2822b0=a0_0x11f719[_0x195559(0x92)](_0x29415e,_0x195559(0xb0)+Date['now']()+_0x195559(0xa6)),_0x3ce61d=a0_0x11f719[_0x195559(0x92)](_0x29415e,'target_'+Date['now']()+_0x195559(0xa6));try{await a0_0x506520['writeFile'](_0x3ce61d,_0x4a1299,'utf-8');const _0xeb631a='\x0aimport\x20ast\x0aimport\x20sys\x0aimport\x20json\x0a\x0adef\x20check_syntax(filepath):\x0a\x20\x20\x20\x20try:\x0a\x20\x20\x20\x20\x20\x20\x20\x20with\x20open(filepath,\x20\x27r\x27,\x20encoding=\x27utf-8\x27)\x20as\x20f:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20source\x20=\x20f.read()\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20#\x20Try\x20to\x20parse\x20the\x20file\x0a\x20\x20\x20\x20\x20\x20\x20\x20ast.parse(source,\x20filename=filepath)\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20#\x20If\x20successful,\x20no\x20errors\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(json.dumps({\x22success\x22:\x20True,\x20\x22errors\x22:\x20[]}))\x0a\x0a\x20\x20\x20\x20except\x20SyntaxError\x20as\x20e:\x0a\x20\x20\x20\x20\x20\x20\x20\x20error\x20=\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22file\x22:\x20filepath,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22line\x22:\x20e.lineno\x20or\x201,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22column\x22:\x20e.offset\x20or\x201,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22message\x22:\x20str(e.msg),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22text\x22:\x20e.text.strip()\x20if\x20e.text\x20else\x20\x22\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(json.dumps({\x22success\x22:\x20False,\x20\x22errors\x22:\x20[error]}))\x0a\x0a\x20\x20\x20\x20except\x20Exception\x20as\x20e:\x0a\x20\x20\x20\x20\x20\x20\x20\x20error\x20=\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22file\x22:\x20filepath,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22line\x22:\x201,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22column\x22:\x201,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22message\x22:\x20str(e),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22text\x22:\x20\x22\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(json.dumps({\x22success\x22:\x20False,\x20\x22errors\x22:\x20[error]}))\x0a\x0aif\x20__name__\x20==\x20\x22__main__\x22:\x0a\x20\x20\x20\x20if\x20len(sys.argv)\x20>\x201:\x0a\x20\x20\x20\x20\x20\x20\x20\x20check_syntax(sys.argv[1])\x0a\x20\x20\x20\x20else:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(json.dumps({\x22success\x22:\x20False,\x20\x22errors\x22:\x20[{\x22message\x22:\x20\x22No\x20file\x20specified\x22}]}))\x0a';await a0_0x506520[_0x195559(0xb3)](_0x2822b0,_0xeb631a,'utf-8');const _0xfc4bf2=await this['runPythonScript'](_0x78a1b,_0x2822b0,[_0x3ce61d]);try{const _0x3f2723=JSON['parse'](_0xfc4bf2[_0x195559(0xb8)]);if(!_0x3f2723['success']&&_0x3f2723[_0x195559(0xaf)])for(const _0x234455 of _0x3f2723['errors']){_0x46e150[_0x195559(0x9c)]({'file':_0x1dd2d5,'line':_0x234455['line']||0x1,'column':_0x234455[_0x195559(0xb5)]||0x1,'severity':STATIC_ANALYSIS['SEVERITY']['ERROR'],'rule':'SyntaxError','message':_0x234455[_0x195559(0x9d)],'category':STATIC_ANALYSIS[_0x195559(0xa4)][_0x195559(0x9a)],'fixable':![],'source':_0x195559(0xa5),'code':_0x234455['text']||undefined});}}catch(_0x7aedce){this[_0x195559(0xae)]?.['warn'](_0x195559(0x9e),{'error':_0x7aedce['message'],'stdout':_0xfc4bf2['stdout']});}}finally{try{await a0_0x506520[_0x195559(0x97)](_0x2822b0),await a0_0x506520['unlink'](_0x3ce61d);}catch{}}return _0x46e150;}async['getPythonCommand'](){const _0x63596b=a0_0x547c;if(this[_0x63596b(0xa3)])return this['pythonCommand'];const _0x4213ad=[_0x63596b(0xb7),_0x63596b(0x94)];for(const _0x154332 of _0x4213ad){try{const _0x38f832=await this[_0x63596b(0xbb)](_0x154332,['--version']);if(_0x38f832[_0x63596b(0x9f)])return this[_0x63596b(0xa3)]=_0x154332,this['logger']?.['debug'](_0x63596b(0xa2),{'command':_0x154332,'version':_0x38f832[_0x63596b(0xb8)]['trim']()}),_0x154332;}catch{}}return null;}async[a0_0x4e0a14(0xa8)](_0x217829,_0x27eabb,_0x2109c9=[]){return this['runCommand'](_0x217829,[_0x27eabb,..._0x2109c9]);}async[a0_0x4e0a14(0xbb)](_0x1fbba2,_0x5afd15=[],_0x367a5d={}){return new Promise((_0x4bdb7d,_0x3a8f33)=>{const _0x13127b=a0_0x547c,_0x5661a6=spawn(_0x1fbba2,_0x5afd15,{..._0x367a5d,'shell':!![]});let _0x12c9a7='',_0x1925ea='';_0x5661a6['stdout']?.['on'](_0x13127b(0xbc),_0x36ea0b=>{_0x12c9a7+=_0x36ea0b['toString']();}),_0x5661a6['stderr']?.['on'](_0x13127b(0xbc),_0x280806=>{_0x1925ea+=_0x280806['toString']();}),_0x5661a6['on']('error',_0x7e666c=>{_0x3a8f33(_0x7e666c);}),_0x5661a6['on']('close',_0x3fde54=>{_0x4bdb7d({'success':_0x3fde54===0x0,'code':_0x3fde54,'stdout':_0x12c9a7,'stderr':_0x1925ea});}),setTimeout(()=>{const _0x4204c2=_0x13127b;_0x5661a6['kill'](),_0x3a8f33(new Error(_0x4204c2(0xb9)));},0x2710);});}['getSupportedExtensions'](){return['.py'];}[a0_0x4e0a14(0xb2)](){return![];}}export default PythonAnalyzer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function a0_0x51dc(_0x494c77,_0x14131f){_0x494c77=_0x494c77-0xd0;const _0x256b0d=a0_0x256b();let _0x51dc04=_0x256b0d[_0x494c77];if(a0_0x51dc['gStzQb']===undefined){var _0x5c5ade=function(_0x2ff081){const _0x8bf54c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x59ba5c='',_0x5cb32b='';for(let _0x3c8091=0x0,_0x1bb973,_0xd38f34,_0x211609=0x0;_0xd38f34=_0x2ff081['charAt'](_0x211609++);~_0xd38f34&&(_0x1bb973=_0x3c8091%0x4?_0x1bb973*0x40+_0xd38f34:_0xd38f34,_0x3c8091++%0x4)?_0x59ba5c+=String['fromCharCode'](0xff&_0x1bb973>>(-0x2*_0x3c8091&0x6)):0x0){_0xd38f34=_0x8bf54c['indexOf'](_0xd38f34);}for(let _0x4e7473=0x0,_0x80c13=_0x59ba5c['length'];_0x4e7473<_0x80c13;_0x4e7473++){_0x5cb32b+='%'+('00'+_0x59ba5c['charCodeAt'](_0x4e7473)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5cb32b);};a0_0x51dc['ZfJsbj']=_0x5c5ade,a0_0x51dc['BdIoHH']={},a0_0x51dc['gStzQb']=!![];}const _0x27486b=_0x256b0d[0x0],_0x107283=_0x494c77+_0x27486b,_0x3f7080=a0_0x51dc['BdIoHH'][_0x107283];return!_0x3f7080?(_0x51dc04=a0_0x51dc['ZfJsbj'](_0x51dc04),a0_0x51dc['BdIoHH'][_0x107283]=_0x51dc04):_0x51dc04=_0x3f7080,_0x51dc04;}const a0_0x3d5947=a0_0x51dc;(function(_0x3a5e13,_0x5130b7){const _0x15de8b=a0_0x51dc,_0x2ce71a=_0x3a5e13();while(!![]){try{const _0x5664fb=-parseInt(_0x15de8b(0xf3))/0x1*(-parseInt(_0x15de8b(0x122))/0x2)+-parseInt(_0x15de8b(0x120))/0x3*(parseInt(_0x15de8b(0xea))/0x4)+-parseInt(_0x15de8b(0x123))/0x5+-parseInt(_0x15de8b(0x12c))/0x6*(-parseInt(_0x15de8b(0x10d))/0x7)+parseInt(_0x15de8b(0x13d))/0x8*(parseInt(_0x15de8b(0x10a))/0x9)+parseInt(_0x15de8b(0xd7))/0xa*(parseInt(_0x15de8b(0x127))/0xb)+-parseInt(_0x15de8b(0x13b))/0xc;if(_0x5664fb===_0x5130b7)break;else _0x2ce71a['push'](_0x2ce71a['shift']());}catch(_0x3b0dc1){_0x2ce71a['push'](_0x2ce71a['shift']());}}}(a0_0x256b,0x36f64));import{exec}from'child_process';import{promisify}from'util';import a0_0x59ba5c from'path';import a0_0x5cb32b from'fs/promises';function a0_0x256b(){const _0x27a718=['C3rKB3v0','z2v0u2nHBM5LCLn0yxr1CW','zgvWzw5Kzw5JAwvZ','DgvZDf9Pza','C2vJDxjPDhK','DNvSBMvYywjPBgL0AwvZ','zw50CMLLCW','u2vJDxjPDhKGDNvSBMvYywjPBgL0Eq','DgvZDa','CMvMzxjLBMnLCW','Bw9YzuLUzM8','yMfUzgL0','CMvZDwX0CW','AxnbCNjHEq','BwfWtNbTu2v2zxjPDhK','ywr2AxnVCNK','m2XzwfHWvW','CNvUrvnmAw50u2vJDxjPDhK','mtaYCLbWDKrf','mJm3odeWzeroCMzs','C2vTz3jLCa','AxnZDwvFC2v2zxjPDhK','y29S','otuYotniyxnhshC','BNbTig5VDcbHDMfPBgfIBgu','DMLH','CgLWqxvKAxq','zxH0CMe','mJK0CfvIuhn5','qxzHAwXHyMXL','C3rHCNq','BwvKAxvT','Bgf0zxn0','CgLWlwf1zgL0igrLDgvJDgvK','rvnmAw50ihnLy3vYAxr5ihnJyw4GzMfPBgvK','z2v0sw5ZDgfSBfjLy29TBwvUzgf0Aw9UCW','ChvZAa','AM9PBG','q1Dflq','zgLYBMfTzq','ChL0Ag9U','y3DL','lNnJyw5UzxjZ','ndC1mZy5mK15vxblEq','BwfWrvnmAw50u2v2zxjPDhK','mZqWogPfAKfsAa','CNvUu2vTz3jLCa','BwvZC2fNzxm','zgv0zwn0tgfUz3vHz2u','DhLWzxnJCMLWDa','BM9YBwfSAxPLuMvZDwX0CW','zgv0zwn0qxzHAwXHyMXLu2nHBM5LCNm','yMfUzgL0ic1MigPZB24GiG','zxnSAw50lxbSDwDPBI1Zzwn1CML0EsbUB3qGyxzHAwXHyMXL','zgvIDwC','uhL0Ag9UihnLy3vYAxr5ihnJyw5Uzxi','Bwv0ywrHDge','AxnZDwvFy3DL','CgLWlwf1zgL0ig5VDcbHDMfPBgfIBgu','zxnSAw50lxbSDwDPBI1Zzwn1CML0Eq','tM8GCgfJA2fNzs5QC29UigzVDw5KlcbZA2LWCgLUzYbUCg0GyxvKAxq','Dg9vChbLCKnHC2u','Cgf0Aa','yxzHAwXHyMXLu2nHBM5LCNm','v0fstKLorW','zxnSAw50lxnLy3vYAxr5','CNvSzuLK','ndeWqwvcrg9X','C2vTz3jLCcaTlwnVBMzPzZ1HDxrVic0TANnVBIaI','CgfYC2u','B3DHC3a','BgLUzq','ywXPyxnLCW','CgLWlwf1zgL0ic0TDMvYC2LVBG','BwvZC2fNzq','sMf2yvnJCMLWDc9uExbLu2nYAxb0ihnLy3vYAxr5ihj1BgvZ','CgfYC2vcyw5KAxrszxn1BhrZ','CgLWlwf1zgL0ic0TzM9YBwf0igPZB24','CgLWlwf1zgL0','u2vTz3jLCcbZy2fUigzHAwXLza','zMLSzq','Bg93','Bw9Yzv9PBMzV','zML4ywjSzq','u2TPChbPBMCGDgvZDcbMAwXLigzVCIbZzwn1CML0EsbZy2fU','BNbTqxvKAxq','ntKZodCYuxfetMTJ','C29Tzq','yw5HBhL6zq','qMfUzgL0ihnJyw4GzMfPBgvK','u2vJDxjPDhKGAxnZDwuGzgv0zwn0zwq','BMfTzq','DNvSBNm','Bw9KDwXL','CNvUtNbTqxvKAxq','ndq2oxvuAvrRvW','BNbTlwf1zgL0','zML4x3zLCNnPB25Z','Bg9Nz2vY','ywnJzxnZ','AMf2yxnJCMLWDa','CgfYC2vqAxbbDwrPDfjLC3vSDhm','q1jjveLdquW','AgfZu2nHBM5LCNngB3jmyw5NDwfNzq','zxnSAw50u2vJDxjPDhK','C2v2zxjPDhK','tM9Uzq','yMfUzgL0ic0TDMvYC2LVBG','u0vwrvjjvfK','C2vJDxjPDhKV','CMvXDwLYzw1LBNrZlNr4Da','zxnSAw50','BNbTlq','y29Sx29MzNnLDa','CgfJA2fNzs5QC29U','rvjst1i','CgfYC2voCg1bDwrPDfjLC3vSDhm','Dw5RBM93BG','mZG5n3rjt1DKuW','zxjYB3i','CgfYC2vfu0XPBNrszxn1BhrZ','nZeWnuXTrLrcEq','BwfWqMfUzgL0u2v2zxjPDhK','rMfPBgvKihrVihbHCNnLiejHBMrPDcbVDxrWDxq'];a0_0x256b=function(){return _0x27a718;};return a0_0x256b();}import{STATIC_ANALYSIS}from'../utilities/constants.js';const execAsync=promisify(exec);class SecurityAnalyzer{constructor(_0x3c8091=null){const _0x4b28e5=a0_0x51dc;this[_0x4b28e5(0xf6)]=_0x3c8091,this['availableScanners']=null,this['scannerCache']=new Map(),this['localScannerDir']=a0_0x59ba5c[_0x4b28e5(0x135)](process['cwd'](),'node_modules',_0x4b28e5(0x13a));}async['detectAvailableScanners'](){const _0x560865=a0_0x51dc;if(this[_0x560865(0xd3)]!==null)return this[_0x560865(0xd3)];const _0x1bb973={'semgrep':![],'bandit':![],'npmAudit':![],'pipAudit':![],'eslintSecurity':![]};try{const _0xd38f34=a0_0x59ba5c[_0x560865(0x135)](this['localScannerDir'],'semgrep');try{await a0_0x5cb32b[_0x560865(0xf7)](_0xd38f34),_0x1bb973['semgrep']=!![],this[_0x560865(0xf6)]?.[_0x560865(0x146)]('Semgrep\x20scanner\x20detected\x20(local)');}catch{await execAsync('semgrep\x20--version',{'timeout':0x1388}),_0x1bb973[_0x560865(0x124)]=!![],this['logger']?.[_0x560865(0x146)]('Semgrep\x20scanner\x20detected\x20(system)');}}catch(_0x211609){this[_0x560865(0xf6)]?.['debug']('Semgrep\x20not\x20available',{'error':_0x211609[_0x560865(0xde)]});}try{await execAsync(_0x560865(0xff),{'timeout':0x1388}),_0x1bb973[_0x560865(0x11b)]=!![],this['logger']?.[_0x560865(0x146)]('Bandit\x20scanner\x20detected');}catch(_0x4e7473){this[_0x560865(0xf6)]?.[_0x560865(0x146)]('Bandit\x20not\x20available',{'error':_0x4e7473['message']});}try{await execAsync('npm\x20--version',{'timeout':0x1388}),_0x1bb973[_0x560865(0xe9)]=!![],this[_0x560865(0xf6)]?.['debug']('npm\x20audit\x20available');}catch(_0x80c13){this[_0x560865(0xf6)]?.[_0x560865(0x146)](_0x560865(0x128),{'error':_0x80c13[_0x560865(0xde)]});}try{await execAsync(_0x560865(0xdd),{'timeout':0x1388}),_0x1bb973[_0x560865(0x12a)]=!![],this[_0x560865(0xf6)]?.[_0x560865(0x146)](_0x560865(0x131));}catch(_0x3b6408){this[_0x560865(0xf6)]?.['debug'](_0x560865(0x14a),{'error':_0x3b6408[_0x560865(0xde)]});}try{const _0x71ddc3=await execAsync('npm\x20list\x20eslint-plugin-security\x20--depth=0\x20--json',{'timeout':0x1388,'cwd':process['cwd']()}),_0x581828=JSON[_0x560865(0xd9)](_0x71ddc3[_0x560865(0x110)]);_0x581828['dependencies']&&_0x581828['dependencies'][_0x560865(0x14b)]&&(_0x1bb973['eslintSecurity']=!![],this['logger']?.[_0x560865(0x146)]('eslint-plugin-security\x20detected'));}catch(_0x32abc9){this['logger']?.[_0x560865(0x146)](_0x560865(0x145),{'error':_0x32abc9[_0x560865(0xde)]});}return this['availableScanners']=_0x1bb973,_0x1bb973;}async[a0_0x3d5947(0xec)](_0x13181c,_0x381e47,_0x2861bd={}){const _0x1d3a63=a0_0x3d5947,_0x4ac426=[],_0x5a7d4c=await this['detectAvailableScanners'](),_0xd656f7=this[_0x1d3a63(0x140)](_0x13181c);if(_0x2861bd['skipTestFiles']!==![]&&this['isTestFile'](_0x13181c))return this[_0x1d3a63(0xf6)]?.[_0x1d3a63(0x146)](_0x1d3a63(0xe8),{'filePath':_0x13181c}),[];if(_0xd656f7===_0x1d3a63(0xf8)||_0xd656f7==='typescript'){if(_0x5a7d4c['semgrep']){const _0x14fb22=await this['runSemgrep'](_0x13181c,[_0xd656f7],_0x2861bd);_0x4ac426['push'](..._0x14fb22);}if(_0x5a7d4c['eslintSecurity']){const _0xc294fc=await this['runESLintSecurity'](_0x13181c,_0x381e47,_0x2861bd);_0x4ac426['push'](..._0xc294fc);}}if(_0xd656f7===_0x1d3a63(0x138)){if(_0x5a7d4c[_0x1d3a63(0x11b)]){const _0x3ba96f=await this['runBandit'](_0x13181c,_0x2861bd);_0x4ac426['push'](..._0x3ba96f);}if(_0x5a7d4c[_0x1d3a63(0x124)]){const _0x4022c2=await this[_0x1d3a63(0x13e)](_0x13181c,[_0xd656f7],_0x2861bd);_0x4ac426['push'](..._0x4022c2);}}return _0x4ac426['length']===0x0&&!this['hasScannersForLanguage'](_0x5a7d4c,_0xd656f7)&&this[_0x1d3a63(0xf6)]?.['warn']('No\x20security\x20scanners\x20available\x20for\x20language',{'language':_0xd656f7,'filePath':_0x13181c}),this[_0x1d3a63(0x142)](_0x4ac426);}async['analyzeProject'](_0x1e328a,_0x549ccb,_0x3b5bef={}){const _0x1b2024=a0_0x3d5947,_0x19a656=[],_0x48a48d=await this[_0x1b2024(0x143)]();if(_0x549ccb===_0x1b2024(0xf8)||_0x549ccb==='typescript'){if(_0x48a48d[_0x1b2024(0xe9)]){const _0x37e1fe=await this[_0x1b2024(0xf2)](_0x1e328a,_0x3b5bef);_0x19a656['push'](..._0x37e1fe);}}if(_0x549ccb===_0x1b2024(0x138)){if(_0x48a48d['pipAudit']){const _0x1cbb46=await this['runPipAudit'](_0x1e328a,_0x3b5bef);_0x19a656[_0x1b2024(0x134)](..._0x1cbb46);}}return this[_0x1b2024(0x142)](_0x19a656);}async['runSemgrep'](_0x36e5fc,_0x3e23f2,_0x1e6b2b={}){const _0x2ccd02=a0_0x3d5947;try{const _0x1c56af=a0_0x59ba5c[_0x2ccd02(0x137)](_0x36e5fc),_0x16e741=await execAsync(_0x2ccd02(0xd8)+_0x36e5fc+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530,'cwd':_0x1c56af}),_0x2a42bc=JSON['parse'](_0x16e741[_0x2ccd02(0x110)]);return this['parseSemgrepResults'](_0x2a42bc);}catch(_0x42d52f){if(_0x42d52f['stdout'])try{const _0x329bdf=JSON[_0x2ccd02(0xd9)](_0x42d52f['stdout']);return this['parseSemgrepResults'](_0x329bdf);}catch(_0x21f163){this[_0x2ccd02(0xf6)]?.['error']('Failed\x20to\x20parse\x20Semgrep\x20output',{'error':_0x21f163[_0x2ccd02(0xde)],'stdout':_0x42d52f[_0x2ccd02(0x110)]});}return this['logger']?.['error'](_0x2ccd02(0xe3),{'error':_0x42d52f['message']}),[];}}['parseSemgrepResults'](_0x53548a){const _0x2b3ac8=a0_0x3d5947,_0x4b5e58=[];if(_0x53548a['results']&&Array[_0x2b3ac8(0x11d)](_0x53548a[_0x2b3ac8(0x11c)]))for(const _0x813818 of _0x53548a['results']){_0x4b5e58['push']({'file':_0x813818[_0x2b3ac8(0xd2)],'line':_0x813818[_0x2b3ac8(0x12e)]?.['line']||0x1,'column':_0x813818[_0x2b3ac8(0x12e)]?.[_0x2b3ac8(0x126)]||0x1,'severity':this['mapSemgrepSeverity'](_0x813818[_0x2b3ac8(0x12b)]?.['severity']),'rule':_0x813818['check_id'],'message':_0x813818[_0x2b3ac8(0x12b)]?.[_0x2b3ac8(0xde)]||_0x813818['extra']?.['lines']||_0x2b3ac8(0xee),'category':_0x2b3ac8(0x114),'scanner':'semgrep','cwe':_0x813818[_0x2b3ac8(0x12b)]?.['metadata']?.['cwe'],'owasp':_0x813818['extra']?.[_0x2b3ac8(0x148)]?.['owasp'],'confidence':_0x813818[_0x2b3ac8(0x12b)]?.[_0x2b3ac8(0x148)]?.['confidence'],'references':_0x813818['extra']?.['metadata']?.['references']});}return _0x4b5e58;}async['runBandit'](_0x132cf9,_0x56c738={}){const _0x523a47=a0_0x3d5947;try{const _0x2fc166=await execAsync(_0x523a47(0x144)+_0x132cf9+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530}),_0x19cca9=JSON['parse'](_0x2fc166[_0x523a47(0x110)]);return this['parseBanditResults'](_0x19cca9);}catch(_0x50413f){if(_0x50413f['stdout'])try{const _0xdc4391=JSON[_0x523a47(0xd9)](_0x50413f['stdout']);return this[_0x523a47(0xe0)](_0xdc4391);}catch(_0x404895){this['logger']?.['error'](_0x523a47(0x10f),{'error':_0x404895['message']});}return this['logger']?.['error'](_0x523a47(0xed),{'error':_0x50413f['message']}),[];}}['parseBanditResults'](_0x598760){const _0x3165b2=a0_0x3d5947,_0x276fde=[];if(_0x598760['results']&&Array[_0x3165b2(0x11d)](_0x598760[_0x3165b2(0x11c)]))for(const _0x57cf9c of _0x598760[_0x3165b2(0x11c)]){_0x276fde['push']({'file':_0x57cf9c['filename'],'line':_0x57cf9c['line_number']||0x1,'column':_0x57cf9c[_0x3165b2(0x105)]||0x1,'severity':this[_0x3165b2(0x10e)](_0x57cf9c[_0x3165b2(0x125)]),'rule':_0x57cf9c[_0x3165b2(0x113)],'message':_0x57cf9c['issue_text'],'category':'security','scanner':_0x3165b2(0x11b),'cwe':_0x57cf9c['issue_cwe']?.['id']?_0x3165b2(0x136)+_0x57cf9c[_0x3165b2(0x149)]['id']:null,'confidence':_0x57cf9c['issue_confidence'],'moreInfo':_0x57cf9c[_0x3165b2(0xe6)]});}return _0x276fde;}async[a0_0x3d5947(0x121)](_0x732610,_0x3e294c,_0x4d3c32={}){const _0x5b8383=a0_0x3d5947;try{const {ESLint:_0x41c3d6}=await import(_0x5b8383(0x103)),_0x5f369e=new _0x41c3d6({'overrideConfig':{'plugins':['security'],'extends':['plugin:security/recommended'],'parserOptions':{'ecmaVersion':_0x5b8383(0x130),'sourceType':_0x5b8383(0xf1)}},'useEslintrc':![]}),_0x315119=await _0x5f369e['lintText'](_0x3e294c,{'filePath':_0x732610});return this[_0x5b8383(0x10c)](_0x315119,_0x732610);}catch(_0xef50e){return this[_0x5b8383(0xf6)]?.[_0x5b8383(0x10b)](_0x5b8383(0x132),{'error':_0xef50e[_0x5b8383(0xde)],'filePath':_0x732610}),[];}}[a0_0x3d5947(0x10c)](_0x59a798,_0x527f0e){const _0x1665fc=a0_0x3d5947,_0x465810=[];for(const _0x5791a5 of _0x59a798){if(_0x5791a5[_0x1665fc(0x13f)]&&Array[_0x1665fc(0x11d)](_0x5791a5[_0x1665fc(0x13f)]))for(const _0x46b044 of _0x5791a5[_0x1665fc(0x13f)]){_0x46b044[_0x1665fc(0xd6)]&&_0x46b044[_0x1665fc(0xd6)]['startsWith'](_0x1665fc(0x101))&&_0x465810[_0x1665fc(0x134)]({'file':_0x527f0e,'line':_0x46b044['line']||0x1,'column':_0x46b044['column']||0x1,'severity':this[_0x1665fc(0x13c)](_0x46b044['severity']),'rule':_0x46b044['ruleId'],'message':_0x46b044[_0x1665fc(0xde)],'category':_0x1665fc(0x114),'scanner':_0x1665fc(0xd5),'fixable':_0x46b044['fix']!==undefined});}}return _0x465810;}async[a0_0x3d5947(0xf2)](_0x3ac44f,_0x1e06de={}){const _0x192044=a0_0x3d5947;try{const _0x2b216b=a0_0x59ba5c[_0x192044(0x135)](_0x3ac44f,_0x192044(0x106));try{await a0_0x5cb32b['access'](_0x2b216b);}catch{return this[_0x192044(0xf6)]?.[_0x192044(0x146)](_0x192044(0xd0)),[];}const _0x835c8c=await execAsync('npm\x20audit\x20--json',{'cwd':_0x3ac44f,'maxBuffer':0xa*0x400*0x400,'timeout':0xea60}),_0x3c86f8=JSON[_0x192044(0xd9)](_0x835c8c['stdout']);return this[_0x192044(0x108)](_0x3c86f8);}catch(_0x387e56){if(_0x387e56[_0x192044(0x110)])try{const _0x102593=JSON[_0x192044(0xd9)](_0x387e56[_0x192044(0x110)]);return this[_0x192044(0x108)](_0x102593);}catch(_0x2994b8){this['logger']?.[_0x192044(0x10b)]('Failed\x20to\x20parse\x20npm\x20audit\x20output',{'error':_0x2994b8['message']});}return[];}}[a0_0x3d5947(0x108)](_0x4630af){const _0xa7ec5f=a0_0x3d5947,_0x42e26a=[];if(_0x4630af['vulnerabilities'])for(const [_0x2087a9,_0x435de2]of Object[_0xa7ec5f(0x116)](_0x4630af[_0xa7ec5f(0x115)])){_0x42e26a[_0xa7ec5f(0x134)]({'file':'package.json','line':0x1,'column':0x1,'severity':this[_0xa7ec5f(0x11e)](_0x435de2[_0xa7ec5f(0xfd)]),'rule':_0xa7ec5f(0x104)+(_0x435de2['via'][0x0]?.['source']||_0xa7ec5f(0x11f)),'message':_0x2087a9+':\x20'+(_0x435de2['via'][0x0]?.['title']||_0xa7ec5f(0x117)),'category':_0xa7ec5f(0x114),'scanner':_0xa7ec5f(0xf4),'package':_0x2087a9,'vulnerableVersions':_0x435de2['range'],'patchedVersions':_0x435de2['fixAvailable']?_0xa7ec5f(0x12d):_0xa7ec5f(0xfe),'cve':_0x435de2['via'][0x0]?.['cve'],'cvss':_0x435de2['via'][0x0]?.['cvss'],'references':_0x435de2['via'][0x0]?.['url']?[_0x435de2[_0xa7ec5f(0x129)][0x0]['url']]:[]});}return _0x42e26a;}async['runPipAudit'](_0x5e3c0b,_0x421476={}){const _0x4728cb=a0_0x3d5947;try{const requirementsPath=a0_0x59ba5c['join'](_0x5e3c0b,'requirements.txt');try{await a0_0x5cb32b['access'](requirementsPath);}catch{return this['logger']?.[_0x4728cb(0x146)]('No\x20requirements.txt\x20found,\x20skipping\x20pip-audit'),[];}const _0x44be13=await execAsync(_0x4728cb(0xe1),{'cwd':_0x5e3c0b,'maxBuffer':0xa*0x400*0x400,'timeout':0xea60}),_0x7e95e7=JSON['parse'](_0x44be13[_0x4728cb(0x110)]);return this[_0x4728cb(0xf9)](_0x7e95e7);}catch(_0x10bdf9){if(_0x10bdf9[_0x4728cb(0x110)])try{const _0xc9760d=JSON[_0x4728cb(0xd9)](_0x10bdf9[_0x4728cb(0x110)]);return this['parsePipAuditResults'](_0xc9760d);}catch(_0x3b82a1){this[_0x4728cb(0xf6)]?.[_0x4728cb(0x10b)]('Failed\x20to\x20parse\x20pip-audit\x20output',{'error':_0x3b82a1['message']});}return[];}}['parsePipAuditResults'](_0x341ddb){const _0xa37378=a0_0x3d5947,_0x286b63=[];if(_0x341ddb[_0xa37378(0x112)]&&Array['isArray'](_0x341ddb[_0xa37378(0x112)]))for(const _0x598fd2 of _0x341ddb[_0xa37378(0x112)]){if(_0x598fd2[_0xa37378(0xf0)]&&Array['isArray'](_0x598fd2['vulns']))for(const _0x2b61f3 of _0x598fd2[_0xa37378(0xf0)]){_0x286b63['push']({'file':_0xa37378(0x102),'line':0x1,'column':0x1,'severity':this['mapPipAuditSeverity'](_0x2b61f3['severity']),'rule':_0x2b61f3['id'],'message':_0x598fd2['name']+':\x20'+(_0x2b61f3['description']||'Security\x20vulnerability'),'category':_0xa37378(0x114),'scanner':_0xa37378(0xe2),'package':_0x598fd2[_0xa37378(0xef)],'vulnerableVersion':_0x598fd2['version'],'fixedVersions':_0x2b61f3[_0xa37378(0xf5)],'references':_0x2b61f3[_0xa37378(0xdc)]||[]});}}return _0x286b63;}[a0_0x3d5947(0x140)](_0x56cdee){const _0x33be40=a0_0x3d5947,_0x5c5d13=a0_0x59ba5c['extname'](_0x56cdee)['toLowerCase'](),_0x3cd4cd={'.js':'javascript','.jsx':_0x33be40(0xf8),'.mjs':'javascript','.cjs':'javascript','.ts':'typescript','.tsx':'typescript','.py':_0x33be40(0x138)};return _0x3cd4cd[_0x5c5d13]||null;}['isTestFile'](_0x4c993a){const _0x3f4333=a0_0x3d5947,_0x513c89=[/\.test\./,/\.spec\./,/__tests__\//,/\/tests?\//,/\.test$/,/\.spec$/];return _0x513c89[_0x3f4333(0xeb)](_0x40ff86=>_0x40ff86[_0x3f4333(0x118)](_0x4c993a));}[a0_0x3d5947(0xfb)](_0x58882c,_0x21e061){const _0x2203d2=a0_0x3d5947;if(_0x21e061==='javascript'||_0x21e061===_0x2203d2(0x141))return _0x58882c[_0x2203d2(0x124)]||_0x58882c['eslintSecurity'];if(_0x21e061===_0x2203d2(0x138))return _0x58882c[_0x2203d2(0x11b)]||_0x58882c['semgrep'];return![];}['normalizeResults'](_0x463741){const _0x267f34=a0_0x3d5947;return _0x463741['map'](_0x2a1dbb=>({'file':_0x2a1dbb[_0x267f34(0xe4)],'line':_0x2a1dbb[_0x267f34(0xdb)]||0x1,'column':_0x2a1dbb['column']||0x1,'severity':_0x2a1dbb['severity']||STATIC_ANALYSIS['SEVERITY']['WARNING'],'rule':_0x2a1dbb['rule']||_0x267f34(0x109),'message':_0x2a1dbb[_0x267f34(0xde)]||_0x267f34(0xee),'category':'security','scanner':_0x2a1dbb['scanner'],'cwe':_0x2a1dbb[_0x267f34(0x139)]||null,'owasp':_0x2a1dbb[_0x267f34(0xda)]||null,'confidence':_0x2a1dbb['confidence']||null,'fixable':_0x2a1dbb[_0x267f34(0xe7)]||![],'remediation':_0x2a1dbb['remediation']||_0x2a1dbb[_0x267f34(0x11a)]||null,'references':_0x2a1dbb[_0x267f34(0x119)]||[],'package':_0x2a1dbb['package']||null}));}['mapSemgrepSeverity'](_0xae436d){const _0xfd7654=a0_0x3d5947,_0x494eb2={'ERROR':STATIC_ANALYSIS[_0xfd7654(0x100)]['CRITICAL'],'WARNING':STATIC_ANALYSIS['SEVERITY'][_0xfd7654(0x107)],'INFO':STATIC_ANALYSIS['SEVERITY'][_0xfd7654(0xd4)]};return _0x494eb2[_0xae436d?.[_0xfd7654(0xd1)]()]||STATIC_ANALYSIS[_0xfd7654(0x100)][_0xfd7654(0xd4)];}['mapBanditSeverity'](_0x3f00a5){const _0x5b956d=a0_0x3d5947,_0x41c724={'HIGH':STATIC_ANALYSIS['SEVERITY']['CRITICAL'],'MEDIUM':STATIC_ANALYSIS['SEVERITY'][_0x5b956d(0x107)],'LOW':STATIC_ANALYSIS['SEVERITY'][_0x5b956d(0xd4)]};return _0x41c724[_0x3f00a5?.['toUpperCase']()]||STATIC_ANALYSIS['SEVERITY'][_0x5b956d(0xd4)];}['mapESLintSeverity'](_0x2eef4d){const _0x4d82fe=a0_0x3d5947;return _0x2eef4d===0x2?STATIC_ANALYSIS[_0x4d82fe(0x100)][_0x4d82fe(0x107)]:STATIC_ANALYSIS[_0x4d82fe(0x100)][_0x4d82fe(0xd4)];}['mapNpmSeverity'](_0x1c4a20){const _0x377041=a0_0x3d5947,_0xe439b2={'critical':STATIC_ANALYSIS['SEVERITY']['CRITICAL'],'high':STATIC_ANALYSIS[_0x377041(0x100)][_0x377041(0xfa)],'moderate':STATIC_ANALYSIS[_0x377041(0x100)]['ERROR'],'low':STATIC_ANALYSIS[_0x377041(0x100)]['WARNING'],'info':STATIC_ANALYSIS[_0x377041(0x100)]['INFO']};return _0xe439b2[_0x1c4a20?.['toLowerCase']()]||STATIC_ANALYSIS[_0x377041(0x100)][_0x377041(0xd4)];}['mapPipAuditSeverity'](_0x95bf83){const _0xb2c136=a0_0x3d5947;if(!_0x95bf83)return STATIC_ANALYSIS['SEVERITY']['ERROR'];const _0x3a7f61={'critical':STATIC_ANALYSIS['SEVERITY'][_0xb2c136(0xfa)],'high':STATIC_ANALYSIS['SEVERITY'][_0xb2c136(0xfa)],'medium':STATIC_ANALYSIS[_0xb2c136(0x100)][_0xb2c136(0x107)],'low':STATIC_ANALYSIS['SEVERITY']['WARNING']};return _0x3a7f61[_0x95bf83?.['toLowerCase']()]||STATIC_ANALYSIS['SEVERITY'][_0xb2c136(0x107)];}async[a0_0x3d5947(0x111)](){const _0x57735b=a0_0x3d5947,_0x2f863c=await this['detectAvailableScanners']();return{'scanners':_0x2f863c,'recommendations':this[_0x57735b(0x133)](_0x2f863c)};}['getInstallRecommendations'](_0x334f3c){const _0x497613=a0_0x3d5947,_0x1f1fd8=[];return!_0x334f3c[_0x497613(0x124)]&&_0x1f1fd8['push']({'scanner':'Semgrep','reason':'Multi-language\x20SAST\x20with\x20extensive\x20security\x20rules','install':'pip\x20install\x20semgrep\x20OR\x20use\x20Docker:\x20docker\x20pull\x20returntocorp/semgrep','priority':'high'}),!_0x334f3c['bandit']&&_0x1f1fd8[_0x497613(0x134)]({'scanner':'Bandit','reason':_0x497613(0x147),'install':'pip\x20install\x20bandit','priority':_0x497613(0x12f)}),!_0x334f3c[_0x497613(0xfc)]&&_0x1f1fd8[_0x497613(0x134)]({'scanner':_0x497613(0x14b),'reason':_0x497613(0xdf),'install':'npm\x20install\x20--save-dev\x20eslint-plugin-security','priority':_0x497613(0x12f)}),!_0x334f3c[_0x497613(0x12a)]&&_0x1f1fd8[_0x497613(0x134)]({'scanner':_0x497613(0xe2),'reason':'Python\x20dependency\x20vulnerability\x20scanner','install':'pip\x20install\x20pip-audit','priority':_0x497613(0xe5)}),_0x1f1fd8;}}export default SecurityAnalyzer;
|
|
1
|
+
const a0_0x3d5d56=a0_0x1496;function a0_0x1496(_0x4115d3,_0x8e421c){_0x4115d3=_0x4115d3-0x7e;const _0x60e289=a0_0x60e2();let _0x149605=_0x60e289[_0x4115d3];if(a0_0x1496['bQrMbd']===undefined){var _0x1bc6dd=function(_0x31305b){const _0xe9a0c6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x151447='',_0x34eaeb='';for(let _0x17600a=0x0,_0x43d1e9,_0x9d980f,_0xc2428d=0x0;_0x9d980f=_0x31305b['charAt'](_0xc2428d++);~_0x9d980f&&(_0x43d1e9=_0x17600a%0x4?_0x43d1e9*0x40+_0x9d980f:_0x9d980f,_0x17600a++%0x4)?_0x151447+=String['fromCharCode'](0xff&_0x43d1e9>>(-0x2*_0x17600a&0x6)):0x0){_0x9d980f=_0xe9a0c6['indexOf'](_0x9d980f);}for(let _0x283a1b=0x0,_0x51526e=_0x151447['length'];_0x283a1b<_0x51526e;_0x283a1b++){_0x34eaeb+='%'+('00'+_0x151447['charCodeAt'](_0x283a1b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x34eaeb);};a0_0x1496['dxnIvX']=_0x1bc6dd,a0_0x1496['KBmmvv']={},a0_0x1496['bQrMbd']=!![];}const _0x1cb079=_0x60e289[0x0],_0x3765bf=_0x4115d3+_0x1cb079,_0x4e2f27=a0_0x1496['KBmmvv'][_0x3765bf];return!_0x4e2f27?(_0x149605=a0_0x1496['dxnIvX'](_0x149605),a0_0x1496['KBmmvv'][_0x3765bf]=_0x149605):_0x149605=_0x4e2f27,_0x149605;}(function(_0x1e843,_0x5c6bcd){const _0xcad424=a0_0x1496,_0x90ba3f=_0x1e843();while(!![]){try{const _0x3407b9=-parseInt(_0xcad424(0xe3))/0x1*(parseInt(_0xcad424(0xf2))/0x2)+-parseInt(_0xcad424(0xcd))/0x3+parseInt(_0xcad424(0xa3))/0x4*(-parseInt(_0xcad424(0x81))/0x5)+parseInt(_0xcad424(0x9b))/0x6*(-parseInt(_0xcad424(0x95))/0x7)+parseInt(_0xcad424(0xda))/0x8+-parseInt(_0xcad424(0xf7))/0x9+parseInt(_0xcad424(0xb4))/0xa;if(_0x3407b9===_0x5c6bcd)break;else _0x90ba3f['push'](_0x90ba3f['shift']());}catch(_0x50a265){_0x90ba3f['push'](_0x90ba3f['shift']());}}}(a0_0x60e2,0xe54ca));import{exec}from'child_process';import{promisify}from'util';import a0_0x151447 from'path';function a0_0x60e2(){const _0x46a418=['Dg9vChbLCKnHC2u','C2TPCfrLC3rgAwXLCW','mu9nqLzmAq','y3DL','u2vTz3jLCcbUB3qGyxzHAwXHyMXL','Bg9Nz2vY','tM8GC2vJDxjPDhKGC2nHBM5LCNmGyxzHAwXHyMXLigzVCIbSyw5NDwfNzq','CMvXDwLYzw1LBNrZlNr4Da','DxjS','CgLWigLUC3rHBgWGCgLWlwf1zgL0','qxzHAwXHyMXL','zgvWzw5Kzw5JAwvZ','AxnbCNjHEq','DMLH','AxnZDwvFy29UzMLKzw5Jzq','DhLWzxnJCMLWDa','qMfUzgL0ihnJyw5UzxiGzgv0zwn0zwq','mtu0ndy2AKzmCK5L','CgfYC2vtzw1NCMvWuMvZDwX0CW','CgLWlwf1zgL0ic0TzM9YBwf0igPZB24','CMfUz2u','BM9YBwfSAxPLuMvZDwX0CW','mty0mZK3odDXwuXPu3K','zxnSAw50lxbSDwDPBI1Zzwn1CML0EsbUB3qGyxzHAwXHyMXL','ChvZAa','zxH0BMfTzq','zML4ywjSzq','BNbTigf1zgL0ic0TANnVBG','u0vwrvjjvfK','C3rKB3v0','CgfYC2vcyw5KAxrszxn1BhrZ','zxnSAw50lxbSDwDPBI1Zzwn1CML0Eq','mZu1otCWCMPMr2Xw','BgLUzq','u2vTz3jLCcbZy2fUBMvYigrLDgvJDgvKicHSB2nHBcK','rMfPBgvKihrVihbHCNnLifnLBwDYzxaGB3v0Chv0','CNvUu2vTz3jLCa','Dg9mB3DLCKnHC2u','BNbTigLUC3rHBgWGls1ZyxzLlwrLDIbLC2XPBNqTCgX1z2LUlxnLy3vYAxr5','tM8GCgfJA2fNzs5QC29UigzVDw5KlcbZA2LWCgLUzYbUCg0GyxvKAxq','CgfYC2vfu0XPBNrszxn1BhrZ','rMfPBgvKihrVihbHCNnLihbPCc1HDwrPDcbVDxrWDxq','rMfPBgvKihrVihbHCNnLiejHBMrPDcbVDxrWDxq','u2vJDxjPDhKGDNvSBMvYywjPBgL0Eq','yw5HBhL6zq','C2nHBM5LCKnHy2HL','BgLUzxm','qMfUzgL0ihnJyw4GzMfPBgvK','DgvZDf9Pza','BMfTzq','ChL0Ag9U','BwfWu2vTz3jLCfnLDMvYAxr5','mte4odm5mdDns1Lnz2y','zgv0zwn0qxzHAwXHyMXLu2nHBM5LCNm','CgfYC2vqAxbbDwrPDfjLC3vSDhm','DNvSBMvYywjPBgL0AwvZ','y29UzMLKzw5Jzq','CgfYC2u','nNzlDMDgAG','CgLWlwf1zgL0ig5VDcbHDMfPBgfIBgu','zgvIDwC','AxnZDwvFy3DL','BgLUDfrLEhq','CgfJA2fNzs5QC29U','ywXPyxnLCW','yMfUzgL0ic1MigPZB24GiG','nJHKqwzHuxq','yxzHAwXHyMXLu2nHBM5LCNm','zgLYBMfTzq','CgfJA2fNzq','Bwv0ywrHDge','ywnJzxnZ','rvjst1i','zxjYB3i','C2vJDxjPDhK','zxnSAw50u2vJDxjPDhK','v0fstKLorW','AxnZDwvFC2v2zxjPDhK','C3rHCNq','q1jjveLdquW','zxnSAw50lxbSDwDPBI1Zzwn1CML0EsbKzxrLy3rLza','qMfUzgL0','DNvSBNm','ntm0mZqWntbWEgfZuuK','BNbTic0TDMvYC2LVBG','u2vJDxjPDhKGAxnZDwuGzgv0zwn0zwq','zML4x3zLCNnPB25Z','BM9Kzv9TB2r1BgvZ','q1Dflq','Dw5RBM93BG','CgX1z2LUoNnLy3vYAxr5l3jLy29TBwvUzgvK','CNvUugLWqxvKAxq','Axnuzxn0rMLSzq','AgLNAa','BNbTlq','Bw9Yzv9PBMzV','yw5HBhL6zvbYB2PLy3q','Bg9JywXty2fUBMvYrgLY','AxnZDwvFDgv4Da','CNvUqMfUzgL0','u2vTz3jLCcbZy2fUigzHAwXLza','CgfYC2voCg1bDwrPDfjLC3vSDhm','y3zL','D2fYBG','BwfWtNbTu2v2zxjPDhK','uhL0Ag9UigrLCgvUzgvUy3KGDNvSBMvYywjPBgL0EsbZy2fUBMvY','C2vTz3jLCa','AM9PBG','ntu4ntm3vhfZC0Lx','BwfWugLWqxvKAxrtzxzLCML0Eq','Bgf0zxn0','C29Tzq','tM8GCMvXDwLYzw1LBNrZlNr4DcbMB3vUzcWGC2TPChbPBMCGCgLWlwf1zgL0','CgLWigLUC3rHBgWGyMfUzgL0','Bg93','y3zZCW','C2vJDxjPDhKV','CgLWqxvKAxq','y3DK','AMf2yxnJCMLWDa','BNbTigf1zgL0igf2ywLSywjSzq','ndC1mdG3mK1NB3bfwa','BwvZC2fNzq','CNvUtNbTqxvKAxq','zxH0CMe','zgv0zwn0tgfUz3vHz2u','yMfUzgL0','CMvZDwX0CW'];a0_0x60e2=function(){return _0x46a418;};return a0_0x60e2();}import a0_0x34eaeb from'fs/promises';import{STATIC_ANALYSIS}from'../utilities/constants.js';const execAsync=promisify(exec);class SecurityAnalyzer{constructor(_0x17600a=null){const _0x1eb503=a0_0x1496;this['logger']=_0x17600a,this['availableScanners']=null,this[_0x1eb503(0x8e)]=new Map(),this[_0x1eb503(0xc2)]=a0_0x151447[_0x1eb503(0xcc)](process[_0x1eb503(0xd7)](),_0x1eb503(0xb8),'.scanners');}async['detectAvailableScanners'](){const _0x4ef9fd=a0_0x1496;if(this['availableScanners']!==null)return this[_0x4ef9fd(0xa4)];const _0x43d1e9={'semgrep':![],'bandit':![],'npmAudit':![],'pipAudit':![],'eslintSecurity':![]};try{const _0x9d980f=a0_0x151447['join'](this[_0x4ef9fd(0xc2)],_0x4ef9fd(0xcb));try{await a0_0x34eaeb[_0x4ef9fd(0xa8)](_0x9d980f),_0x43d1e9['semgrep']=!![],this[_0x4ef9fd(0xe6)]?.['debug'](_0x4ef9fd(0x83));}catch{await execAsync('semgrep\x20--version',{'timeout':0x1388}),_0x43d1e9['semgrep']=!![],this[_0x4ef9fd(0xe6)]?.[_0x4ef9fd(0x9d)]('Semgrep\x20scanner\x20detected\x20(system)');}}catch(_0xc2428d){this[_0x4ef9fd(0xe6)]?.['debug'](_0x4ef9fd(0xe5),{'error':_0xc2428d[_0x4ef9fd(0xdb)]});}try{await execAsync('bandit\x20--version',{'timeout':0x1388}),_0x43d1e9['bandit']=!![],this['logger']?.[_0x4ef9fd(0x9d)](_0x4ef9fd(0xf1));}catch(_0x283a1b){this[_0x4ef9fd(0xe6)]?.['debug']('Bandit\x20not\x20available',{'error':_0x283a1b[_0x4ef9fd(0xdb)]});}try{await execAsync(_0x4ef9fd(0xb5),{'timeout':0x1388}),_0x43d1e9['npmAudit']=!![],this['logger']?.[_0x4ef9fd(0x9d)](_0x4ef9fd(0xd9));}catch(_0x51526e){this['logger']?.['debug']('npm\x20not\x20available',{'error':_0x51526e[_0x4ef9fd(0xdb)]});}try{await execAsync('pip-audit\x20--version',{'timeout':0x1388}),_0x43d1e9[_0x4ef9fd(0xd6)]=!![],this['logger']?.[_0x4ef9fd(0x9d)]('pip-audit\x20detected');}catch(_0x369d5a){this['logger']?.['debug'](_0x4ef9fd(0x9c),{'error':_0x369d5a['message']});}try{const _0x26e119=await execAsync('npm\x20list\x20eslint-plugin-security\x20--depth=0\x20--json',{'timeout':0x1388,'cwd':process['cwd']()}),_0x5e8c39=JSON['parse'](_0x26e119[_0x4ef9fd(0x7e)]);_0x5e8c39['dependencies']&&_0x5e8c39[_0x4ef9fd(0xec)]['eslint-plugin-security']&&(_0x43d1e9[_0x4ef9fd(0xac)]=!![],this['logger']?.['debug'](_0x4ef9fd(0xb1)));}catch(_0x1344ed){this[_0x4ef9fd(0xe6)]?.[_0x4ef9fd(0x9d)](_0x4ef9fd(0xf8),{'error':_0x1344ed[_0x4ef9fd(0xdb)]});}return this['availableScanners']=_0x43d1e9,_0x43d1e9;}async[a0_0x3d5d56(0x8d)](_0x1ede7b,_0x4bfadb,_0x1a3cc3={}){const _0x533648=a0_0x3d5d56,_0xa79a70=[],_0x38b497=await this[_0x533648(0x96)](),_0x230df1=this['detectLanguage'](_0x1ede7b);if(_0x1a3cc3[_0x533648(0xe2)]!==![]&&this[_0x533648(0xbd)](_0x1ede7b))return this['logger']?.['debug']('Skipping\x20test\x20file\x20for\x20security\x20scan',{'filePath':_0x1ede7b}),[];if(_0x230df1===_0x533648(0xd8)||_0x230df1===_0x533648(0xf0)){if(_0x38b497['semgrep']){const _0x55bd9d=await this[_0x533648(0x85)](_0x1ede7b,[_0x230df1],_0x1a3cc3);_0xa79a70['push'](..._0x55bd9d);}if(_0x38b497[_0x533648(0xac)]){const _0x2bce66=await this['runESLintSecurity'](_0x1ede7b,_0x4bfadb,_0x1a3cc3);_0xa79a70[_0x533648(0xf9)](..._0x2bce66);}}if(_0x230df1===_0x533648(0x93)){if(_0x38b497[_0x533648(0xdf)]){const _0x36155d=await this['runBandit'](_0x1ede7b,_0x1a3cc3);_0xa79a70[_0x533648(0xf9)](..._0x36155d);}if(_0x38b497[_0x533648(0xcb)]){const _0xe0cf28=await this['runSemgrep'](_0x1ede7b,[_0x230df1],_0x1a3cc3);_0xa79a70[_0x533648(0xf9)](..._0xe0cf28);}}return _0xa79a70['length']===0x0&&!this['hasScannersForLanguage'](_0x38b497,_0x230df1)&&this[_0x533648(0xe6)]?.[_0x533648(0xc8)](_0x533648(0xe7),{'language':_0x230df1,'filePath':_0x1ede7b}),this[_0x533648(0xf6)](_0xa79a70);}async[a0_0x3d5d56(0xc1)](_0x101061,_0x321730,_0x58445f={}){const _0x26e1f4=a0_0x3d5d56,_0x1accc1=[],_0x86fe70=await this[_0x26e1f4(0x96)]();if(_0x321730==='javascript'||_0x321730==='typescript'){if(_0x86fe70['npmAudit']){const _0x253bad=await this[_0x26e1f4(0xdc)](_0x101061,_0x58445f);_0x1accc1[_0x26e1f4(0xf9)](..._0x253bad);}}if(_0x321730==='python'){if(_0x86fe70[_0x26e1f4(0xd6)]){const _0x5b9b33=await this[_0x26e1f4(0xbc)](_0x101061,_0x58445f);_0x1accc1[_0x26e1f4(0xf9)](..._0x5b9b33);}}return this['normalizeResults'](_0x1accc1);}async[a0_0x3d5d56(0x85)](_0x27a4d3,_0xcfa58,_0x2f2e7a={}){const _0x18ac86=a0_0x3d5d56;try{const _0x4b1dee=a0_0x151447[_0x18ac86(0xa5)](_0x27a4d3),_0x45408b=await execAsync('semgrep\x20--config=auto\x20--json\x20\x22'+_0x27a4d3+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530,'cwd':_0x4b1dee}),_0x5d1ac5=JSON['parse'](_0x45408b['stdout']);return this['parseSemgrepResults'](_0x5d1ac5);}catch(_0x8c4554){if(_0x8c4554[_0x18ac86(0x7e)])try{const _0x4bf0ed=JSON['parse'](_0x8c4554[_0x18ac86(0x7e)]);return this[_0x18ac86(0xf3)](_0x4bf0ed);}catch(_0x3acb54){this[_0x18ac86(0xe6)]?.[_0x18ac86(0xaa)](_0x18ac86(0x84),{'error':_0x3acb54[_0x18ac86(0xdb)],'stdout':_0x8c4554[_0x18ac86(0x7e)]});}return this['logger']?.[_0x18ac86(0xaa)](_0x18ac86(0xc5),{'error':_0x8c4554[_0x18ac86(0xdb)]}),[];}}[a0_0x3d5d56(0xf3)](_0x4b13ee){const _0x3e6658=a0_0x3d5d56,_0xb6f15f=[];if(_0x4b13ee[_0x3e6658(0xe0)]&&Array[_0x3e6658(0xed)](_0x4b13ee['results']))for(const _0x4fc951 of _0x4b13ee[_0x3e6658(0xe0)]){_0xb6f15f[_0x3e6658(0xf9)]({'file':_0x4fc951['path'],'line':_0x4fc951[_0x3e6658(0xaf)]?.[_0x3e6658(0x82)]||0x1,'column':_0x4fc951['start']?.['col']||0x1,'severity':this[_0x3e6658(0x94)](_0x4fc951[_0x3e6658(0xdd)]?.['severity']),'rule':_0x4fc951['check_id'],'message':_0x4fc951['extra']?.[_0x3e6658(0xdb)]||_0x4fc951['extra']?.[_0x3e6658(0x8f)]||_0x3e6658(0xb6),'category':_0x3e6658(0xab),'scanner':'semgrep','cwe':_0x4fc951[_0x3e6658(0xdd)]?.['metadata']?.['cwe'],'owasp':_0x4fc951['extra']?.[_0x3e6658(0xa7)]?.['owasp'],'confidence':_0x4fc951[_0x3e6658(0xdd)]?.[_0x3e6658(0xa7)]?.[_0x3e6658(0x99)],'references':_0x4fc951[_0x3e6658(0xdd)]?.['metadata']?.['references']});}return _0xb6f15f;}async[a0_0x3d5d56(0xc4)](_0xf7657c,_0x18676d={}){const _0x455ac7=a0_0x3d5d56;try{const _0x735c17=await execAsync(_0x455ac7(0xa2)+_0xf7657c+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530}),_0x2cb19d=JSON['parse'](_0x735c17[_0x455ac7(0x7e)]);return this['parseBanditResults'](_0x2cb19d);}catch(_0x3ed7eb){if(_0x3ed7eb[_0x455ac7(0x7e)])try{const _0x323f37=JSON['parse'](_0x3ed7eb['stdout']);return this[_0x455ac7(0x7f)](_0x323f37);}catch(_0x222b2c){this['logger']?.['error'](_0x455ac7(0x8b),{'error':_0x222b2c[_0x455ac7(0xdb)]});}return this['logger']?.[_0x455ac7(0xaa)](_0x455ac7(0x90),{'error':_0x3ed7eb[_0x455ac7(0xdb)]}),[];}}[a0_0x3d5d56(0x7f)](_0x3cbce0){const _0x5eadfa=a0_0x3d5d56,_0x50bc0c=[];if(_0x3cbce0['results']&&Array[_0x5eadfa(0xed)](_0x3cbce0['results']))for(const _0x38d421 of _0x3cbce0['results']){_0x50bc0c['push']({'file':_0x38d421['filename'],'line':_0x38d421['line_number']||0x1,'column':_0x38d421['col_offset']||0x1,'severity':this['mapBanditSeverity'](_0x38d421[_0x5eadfa(0xae)]),'rule':_0x38d421[_0x5eadfa(0x91)],'message':_0x38d421[_0x5eadfa(0xc3)],'category':_0x5eadfa(0xab),'scanner':_0x5eadfa(0xdf),'cwe':_0x38d421[_0x5eadfa(0x9e)]?.['id']?_0x5eadfa(0xb9)+_0x38d421[_0x5eadfa(0x9e)]['id']:null,'confidence':_0x38d421[_0x5eadfa(0xef)],'moreInfo':_0x38d421[_0x5eadfa(0xc0)]});}return _0x50bc0c;}async['runESLintSecurity'](_0x341920,_0x4eed4a,_0x57be76={}){const _0x1337b5=a0_0x3d5d56;try{const {ESLint:_0x4be187}=await import('eslint'),_0x109a56=new _0x4be187({'overrideConfig':{'plugins':[_0x1337b5(0xab)],'extends':[_0x1337b5(0xbb)],'parserOptions':{'ecmaVersion':_0x1337b5(0xcf),'sourceType':'module'}},'useEslintrc':![]}),_0x11b93d=await _0x109a56[_0x1337b5(0x9f)](_0x4eed4a,{'filePath':_0x341920});return this[_0x1337b5(0x89)](_0x11b93d,_0x341920);}catch(_0x495e2f){return this['logger']?.['error']('ESLint\x20security\x20scan\x20failed',{'error':_0x495e2f[_0x1337b5(0xdb)],'filePath':_0x341920}),[];}}['parseESLintResults'](_0x273dc1,_0x2c6e7d){const _0x386450=a0_0x3d5d56,_0x45ed77=[];for(const _0x1d779e of _0x273dc1){if(_0x1d779e['messages']&&Array[_0x386450(0xed)](_0x1d779e['messages']))for(const _0x3c3a6f of _0x1d779e['messages']){_0x3c3a6f['ruleId']&&_0x3c3a6f['ruleId']['startsWith'](_0x386450(0xd5))&&_0x45ed77['push']({'file':_0x2c6e7d,'line':_0x3c3a6f[_0x386450(0x82)]||0x1,'column':_0x3c3a6f['column']||0x1,'severity':this['mapESLintSeverity'](_0x3c3a6f['severity']),'rule':_0x3c3a6f['ruleId'],'message':_0x3c3a6f[_0x386450(0xdb)],'category':'security','scanner':'eslint-security','fixable':_0x3c3a6f['fix']!==undefined});}}return _0x45ed77;}async['runNpmAudit'](_0x34181d,_0x2fbde3={}){const _0x2e95e5=a0_0x3d5d56;try{const _0x2b01f8=a0_0x151447[_0x2e95e5(0xcc)](_0x34181d,'package.json');try{await a0_0x34eaeb['access'](_0x2b01f8);}catch{return this['logger']?.[_0x2e95e5(0x9d)](_0x2e95e5(0x88)),[];}const _0x114d45=await execAsync(_0x2e95e5(0xfc),{'cwd':_0x34181d,'maxBuffer':0xa*0x400*0x400,'timeout':0xea60}),_0xd1c91b=JSON[_0x2e95e5(0x9a)](_0x114d45['stdout']);return this['parseNpmAuditResults'](_0xd1c91b);}catch(_0x2255ab){if(_0x2255ab['stdout'])try{const _0x11de27=JSON['parse'](_0x2255ab['stdout']);return this[_0x2e95e5(0xc6)](_0x11de27);}catch(_0x36df71){this[_0x2e95e5(0xe6)]?.[_0x2e95e5(0xaa)]('Failed\x20to\x20parse\x20npm\x20audit\x20output',{'error':_0x36df71[_0x2e95e5(0xdb)]});}return[];}}[a0_0x3d5d56(0xc6)](_0x3f2bbf){const _0x2dbaa0=a0_0x3d5d56,_0x30f052=[];if(_0x3f2bbf[_0x2dbaa0(0x98)])for(const [_0x58d6b8,_0x2d3c56]of Object['entries'](_0x3f2bbf['vulnerabilities'])){_0x30f052['push']({'file':_0x2dbaa0(0xa0),'line':0x1,'column':0x1,'severity':this[_0x2dbaa0(0xc9)](_0x2d3c56['severity']),'rule':_0x2dbaa0(0xbf)+(_0x2d3c56['via'][0x0]?.['source']||'advisory'),'message':_0x58d6b8+':\x20'+(_0x2d3c56['via'][0x0]?.['title']||'Security\x20vulnerability'),'category':_0x2dbaa0(0xab),'scanner':'npm-audit','package':_0x58d6b8,'vulnerableVersions':_0x2d3c56[_0x2dbaa0(0xf5)],'patchedVersions':_0x2d3c56['fixAvailable']?_0x2dbaa0(0xeb):'None','cve':_0x2d3c56[_0x2dbaa0(0xee)][0x0]?.[_0x2dbaa0(0xc7)],'cvss':_0x2d3c56[_0x2dbaa0(0xee)][0x0]?.[_0x2dbaa0(0xd4)],'references':_0x2d3c56['via'][0x0]?.['url']?[_0x2d3c56['via'][0x0][_0x2dbaa0(0xe9)]]:[]});}return _0x30f052;}async[a0_0x3d5d56(0xbc)](_0x1e7701,_0x97929={}){const _0x3d736c=a0_0x3d5d56;try{const requirementsPath=a0_0x151447[_0x3d736c(0xcc)](_0x1e7701,_0x3d736c(0xe8));try{await a0_0x34eaeb[_0x3d736c(0xa8)](requirementsPath);}catch{return this['logger']?.['debug'](_0x3d736c(0xd1)),[];}const _0x3b1e76=await execAsync(_0x3d736c(0xf4),{'cwd':_0x1e7701,'maxBuffer':0xa*0x400*0x400,'timeout':0xea60}),_0x2f79cc=JSON[_0x3d736c(0x9a)](_0x3b1e76[_0x3d736c(0x7e)]);return this['parsePipAuditResults'](_0x2f79cc);}catch(_0x2c066e){if(_0x2c066e['stdout'])try{const _0x52de47=JSON['parse'](_0x2c066e[_0x3d736c(0x7e)]);return this[_0x3d736c(0x97)](_0x52de47);}catch(_0x58c7e2){this['logger']?.[_0x3d736c(0xaa)](_0x3d736c(0x8a),{'error':_0x58c7e2[_0x3d736c(0xdb)]});}return[];}}[a0_0x3d5d56(0x97)](_0x1f5692){const _0x19ac24=a0_0x3d5d56,_0x1cc614=[];if(_0x1f5692[_0x19ac24(0xec)]&&Array['isArray'](_0x1f5692[_0x19ac24(0xec)]))for(const _0x4644c6 of _0x1f5692['dependencies']){if(_0x4644c6[_0x19ac24(0xb3)]&&Array['isArray'](_0x4644c6[_0x19ac24(0xb3)]))for(const _0x43d4df of _0x4644c6[_0x19ac24(0xb3)]){_0x1cc614['push']({'file':_0x19ac24(0xe8),'line':0x1,'column':0x1,'severity':this[_0x19ac24(0xce)](_0x43d4df['severity']),'rule':_0x43d4df['id'],'message':_0x4644c6['name']+':\x20'+(_0x43d4df['description']||_0x19ac24(0x8c)),'category':_0x19ac24(0xab),'scanner':'pip-audit','package':_0x4644c6[_0x19ac24(0x92)],'vulnerableVersion':_0x4644c6['version'],'fixedVersions':_0x43d4df[_0x19ac24(0xb7)],'references':_0x43d4df[_0x19ac24(0xa1)]||[]});}}return _0x1cc614;}[a0_0x3d5d56(0xde)](_0x404e49){const _0x152ec9=a0_0x3d5d56,_0x3e0c76=a0_0x151447[_0x152ec9(0xfa)](_0x404e49)[_0x152ec9(0x86)](),_0xc7e5ad={'.js':_0x152ec9(0xd8),'.jsx':'javascript','.mjs':'javascript','.cjs':_0x152ec9(0xd8),'.ts':'typescript','.tsx':_0x152ec9(0xf0),'.py':_0x152ec9(0x93)};return _0xc7e5ad[_0x3e0c76]||null;}[a0_0x3d5d56(0xbd)](_0x30c300){const _0x2fea4c=a0_0x3d5d56,_0xde677f=[/\.test\./,/\.spec\./,/__tests__\//,/\/tests?\//,/\.test$/,/\.spec$/];return _0xde677f[_0x2fea4c(0xd0)](_0x56bc44=>_0x56bc44['test'](_0x30c300));}['hasScannersForLanguage'](_0x5616bb,_0x52a2ff){const _0x4f7e2e=a0_0x3d5d56;if(_0x52a2ff==='javascript'||_0x52a2ff==='typescript')return _0x5616bb['semgrep']||_0x5616bb[_0x4f7e2e(0xac)];if(_0x52a2ff===_0x4f7e2e(0x93))return _0x5616bb[_0x4f7e2e(0xdf)]||_0x5616bb['semgrep'];return![];}[a0_0x3d5d56(0xf6)](_0x37f1ec){const _0x220dd2=a0_0x3d5d56;return _0x37f1ec['map'](_0x114d6c=>({'file':_0x114d6c['file'],'line':_0x114d6c[_0x220dd2(0x82)]||0x1,'column':_0x114d6c['column']||0x1,'severity':_0x114d6c['severity']||STATIC_ANALYSIS[_0x220dd2(0xfd)]['WARNING'],'rule':_0x114d6c['rule']||_0x220dd2(0xba),'message':_0x114d6c['message']||_0x220dd2(0xb6),'category':'security','scanner':_0x114d6c['scanner'],'cwe':_0x114d6c[_0x220dd2(0xe4)]||null,'owasp':_0x114d6c['owasp']||null,'confidence':_0x114d6c[_0x220dd2(0x99)]||null,'fixable':_0x114d6c[_0x220dd2(0xfb)]||![],'remediation':_0x114d6c['remediation']||_0x114d6c['moreInfo']||null,'references':_0x114d6c['references']||[],'package':_0x114d6c[_0x220dd2(0xa6)]||null}));}['mapSemgrepSeverity'](_0x3ef7c0){const _0x2e2012=a0_0x3d5d56,_0x11cef9={'ERROR':STATIC_ANALYSIS['SEVERITY']['CRITICAL'],'WARNING':STATIC_ANALYSIS[_0x2e2012(0xfd)][_0x2e2012(0xa9)],'INFO':STATIC_ANALYSIS['SEVERITY'][_0x2e2012(0xad)]};return _0x11cef9[_0x3ef7c0?.[_0x2e2012(0xe1)]()]||STATIC_ANALYSIS[_0x2e2012(0xfd)][_0x2e2012(0xad)];}['mapBanditSeverity'](_0x3d8132){const _0x34bedf=a0_0x3d5d56,_0x4e2e75={'HIGH':STATIC_ANALYSIS['SEVERITY']['CRITICAL'],'MEDIUM':STATIC_ANALYSIS['SEVERITY']['ERROR'],'LOW':STATIC_ANALYSIS['SEVERITY']['WARNING']};return _0x4e2e75[_0x3d8132?.[_0x34bedf(0xe1)]()]||STATIC_ANALYSIS[_0x34bedf(0xfd)][_0x34bedf(0xad)];}['mapESLintSeverity'](_0x40d120){const _0xffe4b7=a0_0x3d5d56;return _0x40d120===0x2?STATIC_ANALYSIS['SEVERITY'][_0xffe4b7(0xa9)]:STATIC_ANALYSIS['SEVERITY'][_0xffe4b7(0xad)];}['mapNpmSeverity'](_0xd68543){const _0x139c3b=a0_0x3d5d56,_0x5e3d0f={'critical':STATIC_ANALYSIS['SEVERITY']['CRITICAL'],'high':STATIC_ANALYSIS[_0x139c3b(0xfd)][_0x139c3b(0xb0)],'moderate':STATIC_ANALYSIS['SEVERITY'][_0x139c3b(0xa9)],'low':STATIC_ANALYSIS[_0x139c3b(0xfd)][_0x139c3b(0xad)],'info':STATIC_ANALYSIS[_0x139c3b(0xfd)]['INFO']};return _0x5e3d0f[_0xd68543?.[_0x139c3b(0x86)]()]||STATIC_ANALYSIS[_0x139c3b(0xfd)]['WARNING'];}['mapPipAuditSeverity'](_0x1eab7c){const _0x6f7b4=a0_0x3d5d56;if(!_0x1eab7c)return STATIC_ANALYSIS['SEVERITY'][_0x6f7b4(0xa9)];const _0x28419b={'critical':STATIC_ANALYSIS[_0x6f7b4(0xfd)][_0x6f7b4(0xb0)],'high':STATIC_ANALYSIS['SEVERITY']['CRITICAL'],'medium':STATIC_ANALYSIS[_0x6f7b4(0xfd)][_0x6f7b4(0xa9)],'low':STATIC_ANALYSIS['SEVERITY'][_0x6f7b4(0xad)]};return _0x28419b[_0x1eab7c?.['toLowerCase']()]||STATIC_ANALYSIS[_0x6f7b4(0xfd)]['ERROR'];}async['getScannerStatus'](){const _0x5a5b72=a0_0x3d5d56,_0x33c46b=await this[_0x5a5b72(0x96)]();return{'scanners':_0x33c46b,'recommendations':this['getInstallRecommendations'](_0x33c46b)};}['getInstallRecommendations'](_0x5e9d67){const _0x2d9dbf=a0_0x3d5d56,_0x3195c7=[];return!_0x5e9d67['semgrep']&&_0x3195c7[_0x2d9dbf(0xf9)]({'scanner':'Semgrep','reason':'Multi-language\x20SAST\x20with\x20extensive\x20security\x20rules','install':'pip\x20install\x20semgrep\x20OR\x20use\x20Docker:\x20docker\x20pull\x20returntocorp/semgrep','priority':_0x2d9dbf(0xbe)}),!_0x5e9d67['bandit']&&_0x3195c7['push']({'scanner':_0x2d9dbf(0xb2),'reason':'Python\x20security\x20scanner','install':_0x2d9dbf(0xd2),'priority':'medium'}),!_0x5e9d67[_0x2d9dbf(0xac)]&&_0x3195c7[_0x2d9dbf(0xf9)]({'scanner':_0x2d9dbf(0x80),'reason':'JavaScript/TypeScript\x20security\x20rules','install':_0x2d9dbf(0x87),'priority':'medium'}),!_0x5e9d67['pipAudit']&&_0x3195c7[_0x2d9dbf(0xf9)]({'scanner':'pip-audit','reason':_0x2d9dbf(0xca),'install':_0x2d9dbf(0xea),'priority':_0x2d9dbf(0xd3)}),_0x3195c7;}}export default SecurityAnalyzer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x45c408=a0_0x18fc;(function(_0x1e0966,_0x40ec89){const _0x39e2dc=a0_0x18fc,_0x3dd294=_0x1e0966();while(!![]){try{const _0x2f5fe3=-parseInt(_0x39e2dc(0x160))/0x1*(-parseInt(_0x39e2dc(0x156))/0x2)+-parseInt(_0x39e2dc(0x14d))/0x3*(parseInt(_0x39e2dc(0x13a))/0x4)+parseInt(_0x39e2dc(0x131))/0x5*(parseInt(_0x39e2dc(0x13b))/0x6)+-parseInt(_0x39e2dc(0x142))/0x7*(parseInt(_0x39e2dc(0x152))/0x8)+-parseInt(_0x39e2dc(0x140))/0x9*(parseInt(_0x39e2dc(0x15b))/0xa)+parseInt(_0x39e2dc(0x164))/0xb+parseInt(_0x39e2dc(0x155))/0xc*(-parseInt(_0x39e2dc(0x13c))/0xd);if(_0x2f5fe3===_0x40ec89)break;else _0x3dd294['push'](_0x3dd294['shift']());}catch(_0x5702de){_0x3dd294['push'](_0x3dd294['shift']());}}}(a0_0x1f1c,0x1cd0b));import a0_0x5a9d9d from'typescript';import a0_0x30cec6 from'path';import{STATIC_ANALYSIS}from'../utilities/constants.js';function a0_0x18fc(_0x369360,_0x133e58){_0x369360=_0x369360-0x130;const _0x1f1cf7=a0_0x1f1c();let _0x18fcca=_0x1f1cf7[_0x369360];if(a0_0x18fc['pVHeZI']===undefined){var _0x45c51b=function(_0x567e01){const _0x465dd0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5a9d9d='',_0x30cec6='';for(let _0x508990=0x0,_0xeb1397,_0x350cdb,_0x10c419=0x0;_0x350cdb=_0x567e01['charAt'](_0x10c419++);~_0x350cdb&&(_0xeb1397=_0x508990%0x4?_0xeb1397*0x40+_0x350cdb:_0x350cdb,_0x508990++%0x4)?_0x5a9d9d+=String['fromCharCode'](0xff&_0xeb1397>>(-0x2*_0x508990&0x6)):0x0){_0x350cdb=_0x465dd0['indexOf'](_0x350cdb);}for(let _0x46cf44=0x0,_0x2aa705=_0x5a9d9d['length'];_0x46cf44<_0x2aa705;_0x46cf44++){_0x30cec6+='%'+('00'+_0x5a9d9d['charCodeAt'](_0x46cf44)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x30cec6);};a0_0x18fc['WHQItW']=_0x45c51b,a0_0x18fc['SbDTDe']={},a0_0x18fc['pVHeZI']=!![];}const _0x4bcda9=_0x1f1cf7[0x0],_0x938c22=_0x369360+_0x4bcda9,_0x2f4a85=a0_0x18fc['SbDTDe'][_0x938c22];return!_0x2f4a85?(_0x18fcca=a0_0x18fc['WHQItW'](_0x18fcca),a0_0x18fc['SbDTDe'][_0x938c22]=_0x18fcca):_0x18fcca=_0x2f4a85,_0x18fcca;}class TypeScriptAnalyzer{constructor(_0x508990=null){const _0x35a26d=a0_0x18fc;this[_0x35a26d(0x14b)]=_0x508990,this[_0x35a26d(0x136)]={'noEmit':!![],'jsx':a0_0x5a9d9d['JsxEmit']['React'],'target':a0_0x5a9d9d[_0x35a26d(0x14c)]['Latest'],'module':a0_0x5a9d9d['ModuleKind'][_0x35a26d(0x132)],'moduleResolution':a0_0x5a9d9d[_0x35a26d(0x149)]['NodeJs'],'esModuleInterop':!![],'skipLibCheck':!![],'strict':!![],'noImplicitAny':!![],'strictNullChecks':!![],'strictFunctionTypes':!![],'allowJs':![]};}async['analyze'](_0xeb1397,_0x350cdb,_0x10c419={}){const _0x2400ed=a0_0x18fc;try{const _0x46cf44=[],_0x2aa705=a0_0x5a9d9d['createSourceFile'](_0xeb1397,_0x350cdb,a0_0x5a9d9d['ScriptTarget']['Latest'],!![]),_0x35f067=this['getSyntacticDiagnostics'](_0x2aa705);_0x46cf44[_0x2400ed(0x161)](..._0x35f067);const _0x5d2b6c=await this[_0x2400ed(0x13e)](_0xeb1397,_0x350cdb);return _0x46cf44[_0x2400ed(0x161)](..._0x5d2b6c),this['logger']?.['debug'](_0x2400ed(0x153),{'file':_0xeb1397,'totalDiagnostics':_0x46cf44['length'],'errors':_0x46cf44['filter'](_0x49ab6c=>_0x49ab6c['severity']===STATIC_ANALYSIS['SEVERITY'][_0x2400ed(0x15f)])['length'],'warnings':_0x46cf44[_0x2400ed(0x139)](_0x328745=>_0x328745[_0x2400ed(0x146)]===STATIC_ANALYSIS[_0x2400ed(0x154)][_0x2400ed(0x130)])['length']}),_0x46cf44;}catch(_0x1d2488){return this['logger']?.['error']('TypeScript\x20analysis\x20failed',{'file':_0xeb1397,'error':_0x1d2488['message']}),[{'file':_0xeb1397,'line':0x0,'column':0x0,'severity':STATIC_ANALYSIS[_0x2400ed(0x154)][_0x2400ed(0x15f)],'rule':_0x2400ed(0x135),'message':'Analysis\x20failed:\x20'+_0x1d2488[_0x2400ed(0x145)],'category':STATIC_ANALYSIS[_0x2400ed(0x163)]['SYNTAX']}];}}['getSyntacticDiagnostics'](_0x40afaf){const _0x2dd01c=a0_0x18fc,_0x405cba=[];if(_0x40afaf['parseDiagnostics']&&_0x40afaf['parseDiagnostics'][_0x2dd01c(0x15c)]>0x0)for(const _0x5b4df1 of _0x40afaf['parseDiagnostics']){_0x405cba[_0x2dd01c(0x161)](this['formatDiagnostic'](_0x5b4df1,_0x40afaf));}return _0x405cba;}async['getSemanticDiagnostics'](_0xa3bc4,_0x5dfbc8){const _0x11cc42=a0_0x18fc,_0x50500b=[];try{const _0x298bbd=a0_0x5a9d9d[_0x11cc42(0x158)](_0xa3bc4,_0x5dfbc8,a0_0x5a9d9d['ScriptTarget'][_0x11cc42(0x138)],!![]),_0x3beca9={'getSourceFile':_0x13fd96=>{if(_0x13fd96===_0xa3bc4)return _0x298bbd;return undefined;},'getDefaultLibFileName':()=>'lib.d.ts','writeFile':()=>{},'getCurrentDirectory':()=>a0_0x30cec6[_0x11cc42(0x143)](_0xa3bc4),'getDirectories':()=>[],'fileExists':_0x4adf60=>_0x4adf60===_0xa3bc4,'readFile':_0x53880b=>{if(_0x53880b===_0xa3bc4)return _0x5dfbc8;return undefined;},'getCanonicalFileName':_0x558317=>_0x558317,'useCaseSensitiveFileNames':()=>!![],'getNewLine':()=>'\x0a'},_0xc87a52=a0_0x5a9d9d['createProgram']({'rootNames':[_0xa3bc4],'options':this[_0x11cc42(0x136)],'host':_0x3beca9}),_0x50635a=_0xc87a52[_0x11cc42(0x13d)](_0x298bbd),_0x41f97f=_0xc87a52[_0x11cc42(0x13e)](_0x298bbd);for(const _0x4f73e8 of[..._0x50635a,..._0x41f97f]){_0x50500b[_0x11cc42(0x161)](this[_0x11cc42(0x147)](_0x4f73e8,_0x298bbd));}}catch(_0x50a66f){this['logger']?.[_0x11cc42(0x159)](_0x11cc42(0x165),{'file':_0xa3bc4,'error':_0x50a66f[_0x11cc42(0x145)]});}return _0x50500b;}[a0_0x45c408(0x147)](_0x3cab28,_0x297070){const _0x1d67c0=a0_0x45c408;let _0x59b2e3=0x0,_0x395f1b=0x0;if(_0x3cab28['file']&&_0x3cab28['start']!==undefined){const _0x377514=_0x3cab28['file']['getLineAndCharacterOfPosition'](_0x3cab28['start']);_0x59b2e3=_0x377514['line']+0x1,_0x395f1b=_0x377514[_0x1d67c0(0x134)]+0x1;}else{if(_0x297070&&_0x3cab28[_0x1d67c0(0x14a)]!==undefined){const _0x2a35ca=_0x297070[_0x1d67c0(0x137)](_0x3cab28[_0x1d67c0(0x14a)]);_0x59b2e3=_0x2a35ca[_0x1d67c0(0x162)]+0x1,_0x395f1b=_0x2a35ca[_0x1d67c0(0x134)]+0x1;}}const _0x5a242f=a0_0x5a9d9d['flattenDiagnosticMessageText'](_0x3cab28['messageText'],'\x0a');let _0x503878;switch(_0x3cab28['category']){case a0_0x5a9d9d['DiagnosticCategory'][_0x1d67c0(0x141)]:_0x503878=STATIC_ANALYSIS[_0x1d67c0(0x154)][_0x1d67c0(0x15f)];break;case a0_0x5a9d9d[_0x1d67c0(0x15e)]['Warning']:_0x503878=STATIC_ANALYSIS['SEVERITY']['WARNING'];break;case a0_0x5a9d9d['DiagnosticCategory']['Message']:case a0_0x5a9d9d['DiagnosticCategory'][_0x1d67c0(0x157)]:_0x503878=STATIC_ANALYSIS[_0x1d67c0(0x154)][_0x1d67c0(0x14e)];break;default:_0x503878=STATIC_ANALYSIS[_0x1d67c0(0x154)][_0x1d67c0(0x15f)];}let _0x1c6ff0=STATIC_ANALYSIS['CATEGORY'][_0x1d67c0(0x144)];const _0x3a3885=_0x3cab28[_0x1d67c0(0x15d)];if(_0x3a3885>=0x7d0&&_0x3a3885<0xbb8)_0x1c6ff0=STATIC_ANALYSIS[_0x1d67c0(0x163)][_0x1d67c0(0x151)];else{if(_0x3a3885>=0x3e8&&_0x3a3885<0x7d0)_0x1c6ff0=STATIC_ANALYSIS['CATEGORY'][_0x1d67c0(0x144)];else _0x3a3885>=0x8fc&&_0x3a3885<0x960&&(_0x1c6ff0=STATIC_ANALYSIS[_0x1d67c0(0x163)]['IMPORT']);}const _0xd5a3b2=_0x5a242f[_0x1d67c0(0x150)]();if(_0xd5a3b2[_0x1d67c0(0x133)]('cannot\x20find\x20module')||_0xd5a3b2[_0x1d67c0(0x133)]('import')||_0xd5a3b2[_0x1d67c0(0x133)]('export'))_0x1c6ff0=STATIC_ANALYSIS[_0x1d67c0(0x163)]['IMPORT'];else(_0xd5a3b2['includes'](_0x1d67c0(0x148))||_0xd5a3b2['includes']('interface')||_0xd5a3b2[_0x1d67c0(0x133)](_0x1d67c0(0x15a)))&&(_0x1c6ff0=STATIC_ANALYSIS['CATEGORY'][_0x1d67c0(0x151)]);return{'file':_0x3cab28['file']?.[_0x1d67c0(0x14f)]||_0x297070?.[_0x1d67c0(0x14f)]||_0x1d67c0(0x13f),'line':_0x59b2e3,'column':_0x395f1b,'severity':_0x503878,'rule':'TS'+_0x3a3885,'message':_0x5a242f,'category':_0x1c6ff0,'fixable':![],'code':_0x3cab28['code']};}}function a0_0x1f1c(){const _0x2273e0=['rvnozxH0','Aw5JBhvKzxm','y2HHCMfJDgvY','yw5HBhL6zxiTzxjYB3i','y29TCgLSzxjpChrPB25Z','z2v0tgLUzufUzenOyxjHy3rLCK9Mug9ZAxrPB24','tgf0zxn0','zMLSDgvY','mZy1ndmYCgXdEgjk','ndjtEKvpuwC','nta1ntDHy09IB2y','z2v0u3LUDgfJDgLJrgLHz25VC3rPy3m','z2v0u2vTyw50AwneAwfNBM9ZDgLJCW','Dw5RBM93BG','mti2rhrpsNHI','rxjYB3i','mtreC0XtDMu','zgLYBMfTzq','u1Lovefy','BwvZC2fNzq','C2v2zxjPDhK','zM9YBwf0rgLHz25VC3rPyW','DhLWzq','tw9KDwXLuMvZB2X1DgLVBKTPBMq','C3rHCNq','Bg9Nz2vY','u2nYAxb0vgfYz2v0','nLjeEgnrza','su5gtW','zMLSzu5HBwu','Dg9mB3DLCKnHC2u','vfLqrq','ody1mdy0A1fIvMnP','vhLWzvnJCMLWDcbHBMfSExnPCYbJB21WBgv0zwq','u0vwrvjjvfK','nJbTq3HNrLa','ndu0ntK4AvbpsLPu','u3vNz2vZDgLVBG','y3jLyxrLu291CMnLrMLSzq','zgvIDwC','y2XHC3m','odiXntbete1jDKu','BgvUz3rO','y29Kzq','rgLHz25VC3rPy0nHDgvNB3j5','rvjst1i','mxjuzujqrG','ChvZAa','BgLUzq','q0furuDpuLK','mJu1odG2ngrQAfnWua','u2vTyw50AwmGyw5HBhLZAxmGzw5JB3vUDgvYzwqGzxjYB3i','v0fstKLorW','mtm2ode1q2LhAKDJ'];a0_0x1f1c=function(){return _0x2273e0;};return a0_0x1f1c();}export default TypeScriptAnalyzer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x160ad8=a0_0x158e;function a0_0xe41f(){const _0x32401b=['y2HHCKf0','ms4Gq3jLyxrLigeGBMv3ignSyxnZihrVigvUy2fWC3vSyxrLihrOAxmGzNvUy3rPB25HBgL0Eq','AM9PBG','mI4GuMvWBgfJzsbHBgWGAw5ZDgfUy2vZihDPDgGGDgHLigv4DhjHy3rLzcb2zxjZAw9U','ns4GvgvZDcb0BYbLBNn1CMuGyMvOyxzPB3iGAxmGChjLC2vYDMvK','y29Kzq','y2XVBMuT','C3bSAxq','DhLWzq','BgvUz3rO','BwvKAxvT','CMvKDwnL','yxzLCMfNzuXPBMvdB3vUDa','zM9Y','AgLNAa','C2XPy2u','lIbuAgLZigLZigeGAgLNAc1PBxbHy3qGCMvMywn0B3jPBMCGB3bWB3j0Dw5PDhK','mti3otbqAvb1yum','ChvZAa','sw1WCM92zsbJB2rLig9Yz2fUAxPHDgLVBIbHy3jVC3mG','mtK1mdmWou93vK55Eq','y2fSy3vSyxrLsw1Wywn0u2nVCMu','Aw5JBhvKzxm','CMvWBgfJzq','Aw1Wywn0u2nVCMu','igXVy2f0Aw9UCW','zw5KtgLUzq','otGZnJG4uxDNBK9P','mtG2nMTnwKXNuG','igzPBgvZ','mI4Gtw92zsbYzwXHDgvKig1LDgHVzhmGyw5KihbYB3bLCNrPzxmGAw50BYb0AguGy2XHC3m','zxH0CMfJDc1MDw5JDgLVBG','z2vUzxjHDgvszwzHy3rVCMLUz0fKDMLJzq','igr1CgXPy2f0zwqGBgLUzxmUia','odC3nZq5Eunmyufz','zwXZzq','q2XHC3m','C3vNz2vZDe5HBwu','ogHJthvMsq','mZK2ndHxzKzeC28','mJu5nLz4DgjjwG','mtbxswrXsgm','z2vUzxjHDgvszwfZB25PBMC','twv0Ag9K','C29YDa','zgvZy3jPyMvczw5LzML0CW','igfJCM9ZCYa','nJmXntGYn0Pjq3vnva','ms4GrxH0CMfJDcb0AguGzhvWBgLJyxrLzcbJB2rLihvZAw5Nia','zgv0zxjTAw5LuMvMywn0B3jPBMDtDhjHDgvNEq','sw1WCM92zsbTywLUDgfPBMfIAwXPDhKGyNKGy2vUDhjHBgL6Aw5NigXVz2LJigLUig9UzsbWBgfJzq','C3rHCNrmAw5L','lcbHBMqGCMvKDwnLignVzguGC2L6zq','ms4Gq3jLyxrLigeGBMv3ig1VzhvSzs9MAwXLigzVCIb0AgLZihnOyxjLzcbMDw5JDgLVBMfSAxr5','Dg9vChbLCKnHC2u','ndy4odeYwxDoAg5e','vgHPCYa','mxzVq0fXAW','y3jLyxrLrNvUy3rPB25oyw1L','Bwf0y2G','BwfW','zM9YrwfJAa','Bwv0CMLJCW','zxH0CMfJDc1TB2r1Bgu','z2vUzxjHDgvby3rPB25HyMXLu3rLChm','yMXVy2TZ','BwLU','zMLSzxndB3zLCMvK','zxn0Aw1HDgvfzMzVCNq','zMLSzq','yw5HBhL6zunSB25LCW','Dg9Rzw5dB3vUDa','twfRzsbMDxr1CMuGy2HHBMDLCYbLyxnPzxiGyw5KigXLC3mGzxjYB3iTChjVBMu'];a0_0xe41f=function(){return _0x32401b;};return a0_0xe41f();}function a0_0x158e(_0x1557a2,_0x45310b){_0x1557a2=_0x1557a2-0xc2;const _0xe41f84=a0_0xe41f();let _0x158e51=_0xe41f84[_0x1557a2];if(a0_0x158e['yYqTVe']===undefined){var _0x898850=function(_0x4533b9){const _0x2f88f3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x476b91='',_0x383c6f='';for(let _0xc53d1d=0x0,_0x4023de,_0x566f67,_0x24da62=0x0;_0x566f67=_0x4533b9['charAt'](_0x24da62++);~_0x566f67&&(_0x4023de=_0xc53d1d%0x4?_0x4023de*0x40+_0x566f67:_0x566f67,_0xc53d1d++%0x4)?_0x476b91+=String['fromCharCode'](0xff&_0x4023de>>(-0x2*_0xc53d1d&0x6)):0x0){_0x566f67=_0x2f88f3['indexOf'](_0x566f67);}for(let _0x3b7e0f=0x0,_0x2982df=_0x476b91['length'];_0x3b7e0f<_0x2982df;_0x3b7e0f++){_0x383c6f+='%'+('00'+_0x476b91['charCodeAt'](_0x3b7e0f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x383c6f);};a0_0x158e['FhzVEX']=_0x898850,a0_0x158e['TnARPn']={},a0_0x158e['yYqTVe']=!![];}const _0x9ba0b2=_0xe41f84[0x0],_0x1e5ae0=_0x1557a2+_0x9ba0b2,_0xb157f5=a0_0x158e['TnARPn'][_0x1e5ae0];return!_0xb157f5?(_0x158e51=a0_0x158e['FhzVEX'](_0x158e51),a0_0x158e['TnARPn'][_0x1e5ae0]=_0x158e51):_0x158e51=_0xb157f5,_0x158e51;}(function(_0x5d5f6b,_0x30a854){const _0xd43f=a0_0x158e,_0x29922a=_0x5d5f6b();while(!![]){try{const _0xddb9f6=-parseInt(_0xd43f(0x100))/0x1*(parseInt(_0xd43f(0xfe))/0x2)+parseInt(_0xd43f(0xe9))/0x3+-parseInt(_0xd43f(0xe2))/0x4+parseInt(_0xd43f(0xd8))/0x5*(parseInt(_0xd43f(0xe3))/0x6)+parseInt(_0xd43f(0xf6))/0x7*(parseInt(_0xd43f(0xed))/0x8)+-parseInt(_0xd43f(0xdb))/0x9*(parseInt(_0xd43f(0xf0))/0xa)+-parseInt(_0xd43f(0xef))/0xb*(parseInt(_0xd43f(0xee))/0xc);if(_0xddb9f6===_0x30a854)break;else _0x29922a['push'](_0x29922a['shift']());}catch(_0x172e41){_0x29922a['push'](_0x29922a['shift']());}}}(a0_0xe41f,0x7d649));export class RefactoringAnalyzer{constructor(_0x476b91){this['config']=_0x476b91;}[a0_0x160ad8(0xc4)](_0x383c6f){const _0x212a8f=a0_0x160ad8;return console['log']('Analyzing\x20clones\x20for\x20refactoring\x20opportunities...'),_0x383c6f['map']((_0xc53d1d,_0x4023de)=>{const _0x35f91e=a0_0x158e,_0x566f67=this['calculateMetrics'](_0xc53d1d),_0x24da62=this[_0x35f91e(0xe7)](_0xc53d1d,_0x566f67);return{'id':_0x35f91e(0xcd)+(_0x4023de+0x1),'type':_0xc53d1d[_0x35f91e(0xcf)],'confidence':_0xc53d1d['confidence'],'instances':_0xc53d1d[_0x35f91e(0x108)]['map'](_0x3b7e0f=>({'file':_0x3b7e0f[_0x35f91e(0xc3)],'startLine':_0x3b7e0f[_0x35f91e(0xfa)],'endLine':_0x3b7e0f['endLine'],'code':this['truncateCode'](_0x3b7e0f['code']),'fullCode':_0x3b7e0f[_0x35f91e(0xcc)],'blockType':_0x3b7e0f['type']})),'metrics':_0x566f67,'refactoringAdvice':_0x24da62};})['sort']((_0x2982df,_0x1843c8)=>_0x1843c8[_0x212a8f(0x105)][_0x212a8f(0xdf)]-_0x2982df['metrics']['impactScore']);}['calculateMetrics'](_0x330b4d){const _0x48c59d=a0_0x160ad8,_0x1ead8c=_0x330b4d['blocks'],_0x419970=_0x330b4d[_0x48c59d(0xc5)],_0x201879=this['averageLineCount'](_0x1ead8c),_0x29073d=_0x1ead8c['length'],_0x550801=this['calculateImpactScore'](_0x419970,_0x201879,_0x29073d,_0x330b4d['confidence']),_0x65e019=_0x201879*(_0x29073d-0x1),_0x6de37e=_0x419970*(_0x29073d-0x1);return{'tokenCount':_0x419970,'lineCount':_0x201879,'instanceCount':_0x29073d,'duplicatedLines':_0x65e019,'duplicatedTokens':_0x6de37e,'impactScore':parseFloat(_0x550801['toFixed'](0x2)),'filesCovered':new Set(_0x1ead8c['map'](_0x291405=>_0x291405[_0x48c59d(0xc3)]))['size']};}[a0_0x160ad8(0xdc)](_0x2a097b,_0x22a388,_0x22fa9b,_0x2bc06c){const _0x3e780f=a0_0x160ad8,_0x4e770f=Math['log10'](_0x2a097b+0x1)*0x2,_0x704859=Math['log2'](_0x22fa9b+0x1)*0x3,_0x1fb18d=_0x2bc06c*0x2,_0x1fba79=Math[_0x3e780f(0x109)](_0x22a388/0xa,0x3);return _0x4e770f+_0x704859+_0x1fb18d+_0x1fba79;}[a0_0x160ad8(0xe7)](_0x2f958b,_0x3e0d3c){const _0x5ba89d=a0_0x160ad8,_0x345cdf=this['determineRefactoringStrategy'](_0x2f958b,_0x3e0d3c),_0xb63c2c=this['determinePriority'](_0x3e0d3c),_0x55e31d=this['suggestName'](_0x2f958b),_0x1e66f0=this[_0x5ba89d(0xf1)](_0x2f958b,_0x3e0d3c,_0x345cdf),_0x319685=this[_0x5ba89d(0xc2)](_0x3e0d3c,_0x345cdf),_0x5ee6e6=this['describeBenefits'](_0x3e0d3c);return{'priority':_0xb63c2c,'strategy':_0x345cdf,'suggestedName':_0x55e31d,'reasoning':_0x1e66f0,'estimatedEffort':_0x319685,'benefits':_0x5ee6e6,'actionableSteps':this['generateActionableSteps'](_0x345cdf,_0x55e31d,_0x3e0d3c)};}[a0_0x160ad8(0xf8)](_0x507341,_0x2cbe63){const _0x5cf275=a0_0x160ad8,{tokenCount:_0x1ab6f8,lineCount:_0x26366f,instanceCount:_0x2ff224,filesCovered:_0x4708dd}=_0x2cbe63,_0x4921a0=_0x507341[_0x5cf275(0x108)]['map'](_0x33a3ed=>_0x33a3ed[_0x5cf275(0xcf)]),_0x52542a=_0x4921a0['some'](_0x42d284=>_0x42d284[_0x5cf275(0xdd)]('Function')||_0x42d284['includes'](_0x5cf275(0xf2))),_0x6421c1=_0x4921a0['some'](_0x15f3e4=>_0x15f3e4['includes'](_0x5cf275(0xeb)));if(_0x6421c1&&_0x26366f>0x32)return'extract-module';else{if(_0x4708dd>0x2&&_0x1ab6f8>0x64)return _0x5cf275(0x106);else{if(_0x52542a||_0x26366f>=0xa&&_0x26366f<=0x32)return'extract-function';else{if(_0x26366f>0x32)return'extract-class';else return _0x26366f<0xa?'extract-constant-or-utility':'extract-function';}}}}['determinePriority'](_0x52ecf2){const _0x5b696a=a0_0x160ad8,{impactScore:_0x2aaa95}=_0x52ecf2;if(_0x2aaa95>=0x8)return _0x5b696a(0xd5);if(_0x2aaa95>=0x5)return _0x5b696a(0xd1);return'low';}[a0_0x160ad8(0xec)](_0x4c04ca){const _0x186d9b=a0_0x160ad8,_0x3ad781=_0x4c04ca['blocks']['map'](_0x1f5c0e=>_0x1f5c0e[_0x186d9b(0xcc)])['join']('\x20'),_0x178fdd=_0x3ad781[_0x186d9b(0x102)](/[a-zA-Z_$][a-zA-Z0-9_$]*/g)||[],_0x589954={};_0x178fdd[_0x186d9b(0x104)](_0x315f09=>{const _0x1eddee=_0x186d9b;if(['const','let','var','function','return','if',_0x1eddee(0xea),_0x1eddee(0xd4),'while'][_0x1eddee(0xdd)](_0x315f09))return;_0x589954[_0x315f09]=(_0x589954[_0x315f09]||0x0)+0x1;});const _0x4a3192=Object['entries'](_0x589954)[_0x186d9b(0xf3)]((_0x4cdf09,_0x576696)=>_0x576696[0x1]-_0x4cdf09[0x1])[_0x186d9b(0xd6)](0x0,0x3);if(_0x4a3192[_0x186d9b(0xd0)]>0x0){const _0x135534=_0x4a3192['map'](([_0x4914e0])=>_0x4914e0);return this[_0x186d9b(0x101)](_0x135534);}return'extractedFunction';}['createFunctionName'](_0x5c2ec5){const _0x37feb8=a0_0x160ad8;if(_0x5c2ec5['length']===0x0)return'extractedFunction';return _0x5c2ec5[0x0]+_0x5c2ec5[_0x37feb8(0xd6)](0x1)[_0x37feb8(0x103)](_0x17f2aa=>_0x17f2aa[_0x37feb8(0xc7)](0x0)[_0x37feb8(0xfd)]()+_0x17f2aa[_0x37feb8(0xd6)](0x1))[_0x37feb8(0xc9)]('');}['generateReasoning'](_0x1c4e50,_0x57e390,_0x321932){const _0x5c7c91=a0_0x160ad8,{instanceCount:_0x5c4e89,duplicatedLines:_0x18eec6,filesCovered:_0x545398}=_0x57e390;let _0x18e73b=_0x5c7c91(0xff)+_0x1c4e50[_0x5c7c91(0xcf)]+'\x20code\x20pattern\x20appears\x20'+_0x5c4e89+'\x20times';return _0x545398>0x1&&(_0x18e73b+=_0x5c7c91(0xf5)+_0x545398+'\x20different\x20files'),_0x18e73b+=',\x20resulting\x20in\x20'+_0x18eec6+_0x5c7c91(0xe8),_0x18e73b+='Refactoring\x20to\x20'+_0x321932['replace'](/-/g,'\x20')+'\x20would\x20improve\x20maintainability',_0x5c4e89>=0x3&&(_0x18e73b+=', reduce bugs from inconsistent changes'),_0x18e73b+=_0x5c7c91(0xfb),_0x57e390['impactScore']>=0x8&&(_0x18e73b+=_0x5c7c91(0xd7)),_0x18e73b+'.';}['estimateEffort'](_0x553bc8,_0x2ce878){const _0xb32ec3=a0_0x160ad8,{lineCount:_0x5931f8,instanceCount:_0x42400e,filesCovered:_0x3b987a}=_0x553bc8;let _0x31083c=0x0;_0x31083c+=Math['min'](_0x5931f8/0xa,0x5),_0x31083c+=_0x42400e*0.5,_0x31083c+=_0x3b987a*0.5;if(_0x2ce878==='extract-module')_0x31083c+=0x3;else{if(_0x2ce878==='extract-class')_0x31083c+=0x2;else _0x2ce878===_0xb32ec3(0xe6)&&(_0x31083c+=0x1);}if(_0x31083c<=0x3)return'low';if(_0x31083c<=0x7)return'medium';return _0xb32ec3(0xd5);}[a0_0x160ad8(0xf4)](_0x1c350d){const _0x4975db=a0_0x160ad8,_0x3348ab=[];return _0x3348ab[_0x4975db(0xd9)]('Eliminate\x20'+_0x1c350d['duplicatedLines']+'\x20duplicated\x20lines\x20of\x20code'),_0x3348ab['push'](_0x4975db(0xf9)),_0x1c350d['instanceCount']>=0x3&&_0x3348ab[_0x4975db(0xd9)]('Reduce\x20risk\x20of\x20inconsistent\x20changes\x20across\x20'+_0x1c350d['instanceCount']+_0x4975db(0xe0)),_0x1c350d[_0x4975db(0x10a)]>0x2&&_0x3348ab['push'](_0x4975db(0xda)+_0x1c350d[_0x4975db(0x10a)]+_0x4975db(0xe4)),_0x3348ab['push'](_0x4975db(0xc6)),_0x3348ab;}[a0_0x160ad8(0x107)](_0x282eca,_0x4515cd,_0x5bf139){const _0xd42369=a0_0x160ad8,_0x235eca=[];switch(_0x282eca){case _0xd42369(0xe6):_0x235eca[_0xd42369(0xd9)]('1.\x20Create\x20a\x20new\x20function\x20named\x20\x27'+_0x4515cd+'\x27'),_0x235eca['push']('2.\x20Move\x20the\x20duplicated\x20logic\x20into\x20this\x20function'),_0x235eca[_0xd42369(0xd9)]('3. Identify parameters needed from the surrounding context'),_0x235eca['push']('4.\x20Replace\x20all\x20instances\x20with\x20calls\x20to\x20the\x20new\x20function'),_0x235eca[_0xd42369(0xd9)](_0xd42369(0xcb));break;case'extract-class':_0x235eca[_0xd42369(0xd9)](_0xd42369(0xc8)),_0x235eca['push'](_0xd42369(0xe5)),_0x235eca[_0xd42369(0xd9)]('3.\x20Update\x20all\x20instances\x20to\x20use\x20the\x20new\x20class'),_0x235eca[_0xd42369(0xd9)]('4.\x20Consider\x20dependency\x20injection\x20for\x20better\x20testability');break;case'extract-module':_0x235eca['push'](_0xd42369(0xfc)),_0x235eca['push']('2.\x20Move\x20the\x20duplicated\x20code\x20into\x20the\x20new\x20module'),_0x235eca['push']('3.\x20Export\x20the\x20necessary\x20functions/classes'),_0x235eca['push']('4. Update all files to import from the new module'),_0x235eca['push']('5.\x20Update\x20any\x20build\x20configurations\x20if\x20needed');break;default:_0x235eca[_0xd42369(0xd9)](_0xd42369(0xf7)+_0x282eca[_0xd42369(0xde)](/-/g,'\x20')),_0x235eca[_0xd42369(0xd9)](_0xd42369(0xca)),_0x235eca[_0xd42369(0xd9)]('3.\x20Test\x20thoroughly');}return _0x235eca;}['truncateCode'](_0x248a63,_0x3a2f92=0xa){const _0x5ac9ef=a0_0x160ad8,_0x582824=_0x248a63[_0x5ac9ef(0xce)]('\x0a');if(_0x582824['length']<=_0x3a2f92)return _0x248a63;return _0x582824['slice'](0x0,_0x3a2f92)['join']('\x0a')+'\x0a...\x20(truncated)';}[a0_0x160ad8(0xd3)](_0x6eed25){const _0x3be295=a0_0x160ad8,_0x2e4b3d=_0x6eed25[_0x3be295(0xd2)]((_0x1c6696,_0x1a92ed)=>_0x1c6696+(_0x1a92ed[_0x3be295(0xe1)]-_0x1a92ed[_0x3be295(0xfa)]+0x1),0x0);return Math['round'](_0x2e4b3d/_0x6eed25[_0x3be295(0xd0)]);}}
|
|
1
|
+
const a0_0x5f464d=a0_0xc339;(function(_0x21858d,_0x57674c){const _0xa5a118=a0_0xc339,_0x3bf548=_0x21858d();while(!![]){try{const _0x5eb8a6=-parseInt(_0xa5a118(0x117))/0x1*(-parseInt(_0xa5a118(0xcf))/0x2)+-parseInt(_0xa5a118(0xf2))/0x3+parseInt(_0xa5a118(0xf5))/0x4+parseInt(_0xa5a118(0xe4))/0x5+-parseInt(_0xa5a118(0xe3))/0x6+parseInt(_0xa5a118(0x119))/0x7*(-parseInt(_0xa5a118(0x107))/0x8)+parseInt(_0xa5a118(0x10a))/0x9;if(_0x5eb8a6===_0x57674c)break;else _0x3bf548['push'](_0x3bf548['shift']());}catch(_0x2feac7){_0x3bf548['push'](_0x3bf548['shift']());}}}(a0_0x4e3e,0x60fc3));function a0_0x4e3e(){const _0x369166=['Bg9N','mY4GvgvZDcb0Ag9YB3vNAgX5','CM91BMq','zNvUy3rPB24','BgvUz3rO','Dhj1BMnHDgvdB2rL','DMfY','y2XVBMuT','C2L6zq','z2vUzxjHDgvby3rPB25HyMXLu3rLChm','Bg93','lcbHBMqGCMvKDwnLignVzguGC2L6zq','mty0mZGYrKD3vMLP','Bwv0CMLJCW','z2vUzxjHDgvszwfZB25PBMC','mJa5nZiYmerxtePLwq','ChvZAa','zw5KtgLUzq','lIbuAgLZigLZigeGAgLNAc1PBxbHy3qGCMvMywn0B3jPBMCGB3bWB3j0Dw5PDhK','zgvZy3jPyMvczw5LzML0CW','mI4Gtw92zsb0AguGzhvWBgLJyxrLzcbJB2rLigLUDg8GDgHLig5LDYbTB2r1Bgu','C2XPy2u','y2HHCKf0','y2fSy3vSyxrLsw1Wywn0u2nVCMu','ns4GvgvZDcb0BYbLBNn1CMuGyMvOyxzPB3iGAxmGChjLC2vYDMvK','mY4GvxbKyxrLigfSBcbPBNn0yw5JzxmGDg8GDxnLihrOzsbUzxCGy2XHC3m','lcbYzxn1BhrPBMCGAw4G','ihrPBwvZ','BwfW','CMvWBgfJzq','C3vNz2vZDe5HBwu','yMXVy2TZ','Dg9gAxHLza','og1HEenQra','C29Tzq','Aw1Wywn0u2nVCMu','mtiZndK2mKvsDuvrBG','D2HPBgu','yw5HBhL6zunSB25LCW','uMvMywn0B3jPBMCGDg8G','Dg9vChbLCKnHC2u','zxH0CMfJDc1TB2r1Bgu','z2vUzxjHDgvszwzHy3rVCMLUz0fKDMLJzq','Bwf0y2G','mI4GuMvWBgfJzsbHBgWGAw5ZDgfUy2vZihDPDgGGDgHLigv4DhjHy3rLzcb2zxjZAw9U','y29UzMLKzw5Jzq','DhLWzq','cI4UlIaODhj1BMnHDgvKkq','rNvUy3rPB24','ndyWmdLtu1LiB3K','ms4Gq3jLyxrLigeGBMv3ignSyxnZihrVigvUy2fWC3vSyxrLihrOAxmGzNvUy3rPB25HBgL0Eq','mJK5oduZnfvIvvDQta','y29UzMLN','zMLSzxndB3zLCMvK','Aw5JBhvKzxm','mtHivw1pu1y','q2XHC3m','zwXZzq','Bgv0','ihDVDwXKigLTChjVDMuGBwfPBNrHAw5HyMLSAxr5','ms4Gq3jLyxrLigeGBMv3ig1VzhvSzs9MAwXLigzVCIb0AgLZihnOyxjLzcbMDw5JDgLVBMfSAxr5','ms4Gq3jLyxrLigeGBMv3igz1BMn0Aw9Uig5HBwvKicC','nc4GuMvWBgfJzsbHBgWGAw5ZDgfUy2vZihDPDgGGy2fSBhmGDg8GDgHLig5LDYbMDw5JDgLVBG','BwLU','yxzLCMfNzuXPBMvdB3vUDa','C29YDa','zgv0zxjTAw5LuhjPB3jPDhK','y29Kzq','mY4GrxHWB3j0ihrOzsbUzwnLC3nHCNKGzNvUy3rPB25Zl2nSyxnZzxm','zxH0CMfJDc1JBgfZCW','zxH0CMfJDgvKrNvUy3rPB24','y2fSy3vSyxrLtwv0CMLJCW','C3bSAxq','ns4GvxbKyxrLigfUEsbIDwLSzcbJB25MAwD1CMf0Aw9UCYbPzIbUzwvKzwq','BwvKAxvT','mZqZnZqWnMzUv2jyzq','mtG4oduYmgvYrfj0vq','zw50CMLLCW'];a0_0x4e3e=function(){return _0x369166;};return a0_0x4e3e();}function a0_0xc339(_0x231186,_0x196245){_0x231186=_0x231186-0xce;const _0x4e3eee=a0_0x4e3e();let _0xc339c0=_0x4e3eee[_0x231186];if(a0_0xc339['nSzTBl']===undefined){var _0x1411bd=function(_0x18cddf){const _0x4940dd='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1b9e3f='',_0x558bbb='';for(let _0x3fc4af=0x0,_0x1337d6,_0x45bc69,_0x9c44c=0x0;_0x45bc69=_0x18cddf['charAt'](_0x9c44c++);~_0x45bc69&&(_0x1337d6=_0x3fc4af%0x4?_0x1337d6*0x40+_0x45bc69:_0x45bc69,_0x3fc4af++%0x4)?_0x1b9e3f+=String['fromCharCode'](0xff&_0x1337d6>>(-0x2*_0x3fc4af&0x6)):0x0){_0x45bc69=_0x4940dd['indexOf'](_0x45bc69);}for(let _0x33880c=0x0,_0x3aadc1=_0x1b9e3f['length'];_0x33880c<_0x3aadc1;_0x33880c++){_0x558bbb+='%'+('00'+_0x1b9e3f['charCodeAt'](_0x33880c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x558bbb);};a0_0xc339['fCMlNM']=_0x1411bd,a0_0xc339['VziezK']={},a0_0xc339['nSzTBl']=!![];}const _0x2f2d6a=_0x4e3eee[0x0],_0x30048a=_0x231186+_0x2f2d6a,_0x3086b1=a0_0xc339['VziezK'][_0x30048a];return!_0x3086b1?(_0xc339c0=a0_0xc339['fCMlNM'](_0xc339c0),a0_0xc339['VziezK'][_0x30048a]=_0xc339c0):_0xc339c0=_0x3086b1,_0xc339c0;}export class RefactoringAnalyzer{constructor(_0x1b9e3f){const _0x219637=a0_0xc339;this[_0x219637(0x11a)]=_0x1b9e3f;}[a0_0x5f464d(0x10c)](_0x558bbb){const _0xffd87a=a0_0x5f464d;return console[_0xffd87a(0xe6)]('Analyzing\x20clones\x20for\x20refactoring\x20opportunities...'),_0x558bbb[_0xffd87a(0x102)]((_0x3fc4af,_0x1337d6)=>{const _0x1b33e8=_0xffd87a,_0x45bc69=this[_0x1b33e8(0xdf)](_0x3fc4af),_0x9c44c=this[_0x1b33e8(0x110)](_0x3fc4af,_0x45bc69);return{'id':_0x1b33e8(0xed)+(_0x1337d6+0x1),'type':_0x3fc4af['type'],'confidence':_0x3fc4af['confidence'],'instances':_0x3fc4af['blocks'][_0x1b33e8(0x102)](_0x33880c=>({'file':_0x33880c['file'],'startLine':_0x33880c['startLine'],'endLine':_0x33880c[_0x1b33e8(0xf7)],'code':this['truncateCode'](_0x33880c['code']),'fullCode':_0x33880c[_0x1b33e8(0xdb)],'blockType':_0x33880c['type']})),'metrics':_0x45bc69,'refactoringAdvice':_0x9c44c};})['sort']((_0x3aadc1,_0x54ae4b)=>_0x54ae4b[_0xffd87a(0xf3)][_0xffd87a(0x109)]-_0x3aadc1['metrics'][_0xffd87a(0x109)]);}[a0_0x5f464d(0xdf)](_0x510e1b){const _0xe2119f=a0_0x5f464d,_0x1d9032=_0x510e1b[_0xe2119f(0x105)],_0xe45863=_0x510e1b['tokenCount'],_0x322bcc=this[_0xe2119f(0xd8)](_0x1d9032),_0x5c7d92=_0x1d9032[_0xe2119f(0xea)],_0x3bea3a=this['calculateImpactScore'](_0xe45863,_0x322bcc,_0x5c7d92,_0x510e1b[_0xe2119f(0x113)]),_0x216624=_0x322bcc*(_0x5c7d92-0x1),_0x4b65b3=_0xe45863*(_0x5c7d92-0x1);return{'tokenCount':_0xe45863,'lineCount':_0x322bcc,'instanceCount':_0x5c7d92,'duplicatedLines':_0x216624,'duplicatedTokens':_0x4b65b3,'impactScore':parseFloat(_0x3bea3a[_0xe2119f(0x106)](0x2)),'filesCovered':new Set(_0x1d9032['map'](_0x2a0fe4=>_0x2a0fe4['file']))[_0xe2119f(0xee)]};}[a0_0x5f464d(0xfd)](_0x29c588,_0x29f5a2,_0x3e5196,_0x4880a7){const _0x5803c4=Math['log10'](_0x29c588+0x1)*0x2,_0x467f69=Math['log2'](_0x3e5196+0x1)*0x3,_0x349525=_0x4880a7*0x2,_0x4e9992=Math['min'](_0x29f5a2/0xa,0x3);return _0x5803c4+_0x467f69+_0x349525+_0x4e9992;}[a0_0x5f464d(0x110)](_0x4e5784,_0x56ac57){const _0x2973ef=a0_0x5f464d,_0x1fc323=this['determineRefactoringStrategy'](_0x4e5784,_0x56ac57),_0x180e41=this[_0x2973ef(0xda)](_0x56ac57),_0x482ddd=this[_0x2973ef(0x104)](_0x4e5784),_0x511ec8=this[_0x2973ef(0xf4)](_0x4e5784,_0x56ac57,_0x1fc323),_0x304f49=this['estimateEffort'](_0x56ac57,_0x1fc323),_0x12f61f=this[_0x2973ef(0xf9)](_0x56ac57);return{'priority':_0x180e41,'strategy':_0x1fc323,'suggestedName':_0x482ddd,'reasoning':_0x511ec8,'estimatedEffort':_0x304f49,'benefits':_0x12f61f,'actionableSteps':this[_0x2973ef(0xef)](_0x1fc323,_0x482ddd,_0x56ac57)};}['determineRefactoringStrategy'](_0x20abdc,_0x357e0a){const _0x30e20b=a0_0x5f464d,{tokenCount:_0x25e90f,lineCount:_0x2e9e93,instanceCount:_0x431f86,filesCovered:_0x14f591}=_0x357e0a,_0x4e1b28=_0x20abdc['blocks']['map'](_0x3858f8=>_0x3858f8[_0x30e20b(0x114)]),_0x3859ba=_0x4e1b28[_0x30e20b(0x108)](_0x1a01ab=>_0x1a01ab[_0x30e20b(0xce)](_0x30e20b(0x116))||_0x1a01ab['includes']('Method')),_0x9d06a4=_0x4e1b28[_0x30e20b(0x108)](_0x2fcbbf=>_0x2fcbbf[_0x30e20b(0xce)](_0x30e20b(0xd0)));if(_0x9d06a4&&_0x2e9e93>0x32)return _0x30e20b(0x10f);else{if(_0x14f591>0x2&&_0x25e90f>0x64)return'extract-module';else{if(_0x3859ba||_0x2e9e93>=0xa&&_0x2e9e93<=0x32)return'extract-function';else{if(_0x2e9e93>0x32)return _0x30e20b(0xdd);else return _0x2e9e93<0xa?'extract-constant-or-utility':'extract-function';}}}}[a0_0x5f464d(0xda)](_0x2e4b3c){const _0x12655f=a0_0x5f464d,{impactScore:_0x4466eb}=_0x2e4b3c;if(_0x4466eb>=0x8)return'high';if(_0x4466eb>=0x5)return'medium';return _0x12655f(0xf0);}['suggestName'](_0x2e38cd){const _0x4acad3=a0_0x5f464d,_0x37db8e=_0x2e38cd['blocks'][_0x4acad3(0x102)](_0x4ac2ae=>_0x4ac2ae['code'])['join']('\x20'),_0x3f8303=_0x37db8e[_0x4acad3(0x111)](/[a-zA-Z_$][a-zA-Z0-9_$]*/g)||[],_0x5b5907={};_0x3f8303['forEach'](_0x3ec536=>{const _0x3a5a6e=_0x4acad3;if(['const',_0x3a5a6e(0xd2),_0x3a5a6e(0xec),_0x3a5a6e(0xe9),'return','if',_0x3a5a6e(0xd1),'for',_0x3a5a6e(0x10b)]['includes'](_0x3ec536))return;_0x5b5907[_0x3ec536]=(_0x5b5907[_0x3ec536]||0x0)+0x1;});const _0x178244=Object[_0x4acad3(0xe5)](_0x5b5907)[_0x4acad3(0xd9)]((_0x58ab08,_0x4ebee9)=>_0x4ebee9[0x1]-_0x58ab08[0x1])[_0x4acad3(0xfb)](0x0,0x3);if(_0x178244['length']>0x0){const _0x26f024=_0x178244['map'](([_0x1939d9])=>_0x1939d9);return this['createFunctionName'](_0x26f024);}return _0x4acad3(0xde);}['createFunctionName'](_0x14e157){const _0x382034=a0_0x5f464d;if(_0x14e157['length']===0x0)return'extractedFunction';return _0x14e157[0x0]+_0x14e157[_0x382034(0xfb)](0x1)['map'](_0x56d79a=>_0x56d79a[_0x382034(0xfc)](0x0)[_0x382034(0x10e)]()+_0x56d79a[_0x382034(0xfb)](0x1))['join']('');}[a0_0x5f464d(0xf4)](_0xf5bfc6,_0x145d91,_0x3a675d){const _0x4a5b66=a0_0x5f464d,{instanceCount:_0x508acb,duplicatedLines:_0x5157d1,filesCovered:_0x52df2e}=_0x145d91;let _0x79cd2='This\x20'+_0xf5bfc6[_0x4a5b66(0x114)]+'\x20code\x20pattern\x20appears\x20'+_0x508acb+_0x4a5b66(0x101);return _0x52df2e>0x1&&(_0x79cd2+='\x20across\x20'+_0x52df2e+'\x20different\x20files'),_0x79cd2+=_0x4a5b66(0x100)+_0x5157d1+'\x20duplicated\x20lines.\x20',_0x79cd2+=_0x4a5b66(0x10d)+_0x3a675d[_0x4a5b66(0x103)](/-/g,'\x20')+_0x4a5b66(0xd3),_0x508acb>=0x3&&(_0x79cd2+=', reduce bugs from inconsistent changes'),_0x79cd2+=_0x4a5b66(0xf1),_0x145d91[_0x4a5b66(0x109)]>=0x8&&(_0x79cd2+=_0x4a5b66(0xf8)),_0x79cd2+'.';}['estimateEffort'](_0x31b4fc,_0x5b57e6){const _0x3675e1=a0_0x5f464d,{lineCount:_0x2be4ff,instanceCount:_0x2faae3,filesCovered:_0x4f3e8d}=_0x31b4fc;let _0x3d7bcf=0x0;_0x3d7bcf+=Math[_0x3675e1(0xd7)](_0x2be4ff/0xa,0x5),_0x3d7bcf+=_0x2faae3*0.5,_0x3d7bcf+=_0x4f3e8d*0.5;if(_0x5b57e6===_0x3675e1(0x10f))_0x3d7bcf+=0x3;else{if(_0x5b57e6===_0x3675e1(0xdd))_0x3d7bcf+=0x2;else _0x5b57e6==='extract-function'&&(_0x3d7bcf+=0x1);}if(_0x3d7bcf<=0x3)return'low';if(_0x3d7bcf<=0x7)return _0x3675e1(0xe2);return'high';}['describeBenefits'](_0x1fb001){const _0x18947f=a0_0x5f464d,_0x22e083=[];return _0x22e083[_0x18947f(0xf6)]('Eliminate\x20'+_0x1fb001['duplicatedLines']+'\x20duplicated\x20lines\x20of\x20code'),_0x22e083['push']('Improve\x20maintainability\x20by\x20centralizing\x20logic\x20in\x20one\x20place'),_0x1fb001['instanceCount']>=0x3&&_0x22e083[_0x18947f(0xf6)]('Reduce\x20risk\x20of\x20inconsistent\x20changes\x20across\x20'+_0x1fb001['instanceCount']+'\x20locations'),_0x1fb001[_0x18947f(0x11b)]>0x2&&_0x22e083[_0x18947f(0xf6)]('Improve\x20code\x20organization\x20across\x20'+_0x1fb001['filesCovered']+'\x20files'),_0x22e083[_0x18947f(0xf6)]('Make\x20future\x20changes\x20easier\x20and\x20less\x20error-prone'),_0x22e083;}[a0_0x5f464d(0xef)](_0x588513,_0x3f18ed,_0xc26603){const _0xa0dbb6=a0_0x5f464d,_0x48a82a=[];switch(_0x588513){case'extract-function':_0x48a82a['push'](_0xa0dbb6(0xd5)+_0x3f18ed+'\x27'),_0x48a82a[_0xa0dbb6(0xf6)]('2.\x20Move\x20the\x20duplicated\x20logic\x20into\x20this\x20function'),_0x48a82a['push']('3. Identify parameters needed from the surrounding context'),_0x48a82a[_0xa0dbb6(0xf6)](_0xa0dbb6(0xd6)),_0x48a82a[_0xa0dbb6(0xf6)](_0xa0dbb6(0xfe));break;case'extract-class':_0x48a82a['push'](_0xa0dbb6(0x118)),_0x48a82a[_0xa0dbb6(0xf6)]('2.\x20Move\x20related\x20methods\x20and\x20properties\x20into\x20the\x20class'),_0x48a82a['push'](_0xa0dbb6(0xff)),_0x48a82a[_0xa0dbb6(0xf6)]('4.\x20Consider\x20dependency\x20injection\x20for\x20better\x20testability');break;case _0xa0dbb6(0x10f):_0x48a82a['push'](_0xa0dbb6(0xd4)),_0x48a82a['push'](_0xa0dbb6(0xfa)),_0x48a82a[_0xa0dbb6(0xf6)](_0xa0dbb6(0xdc)),_0x48a82a['push']('4. Update all files to import from the new module'),_0x48a82a[_0xa0dbb6(0xf6)](_0xa0dbb6(0xe1));break;default:_0x48a82a[_0xa0dbb6(0xf6)]('1.\x20Extract\x20the\x20duplicated\x20code\x20using\x20'+_0x588513['replace'](/-/g,'\x20')),_0x48a82a['push'](_0xa0dbb6(0x112)),_0x48a82a[_0xa0dbb6(0xf6)](_0xa0dbb6(0xe7));}return _0x48a82a;}[a0_0x5f464d(0xeb)](_0x2c47f8,_0x3a4b2f=0xa){const _0x1602ae=a0_0x5f464d,_0x3da252=_0x2c47f8[_0x1602ae(0xe0)]('\x0a');if(_0x3da252['length']<=_0x3a4b2f)return _0x2c47f8;return _0x3da252[_0x1602ae(0xfb)](0x0,_0x3a4b2f)['join']('\x0a')+_0x1602ae(0x115);}[a0_0x5f464d(0xd8)](_0x5efd72){const _0x2638fb=a0_0x5f464d,_0x306769=_0x5efd72['reduce']((_0x3d4208,_0x4b205d)=>_0x3d4208+(_0x4b205d[_0x2638fb(0xf7)]-_0x4b205d['startLine']+0x1),0x0);return Math[_0x2638fb(0xe8)](_0x306769/_0x5efd72['length']);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x437a2e=a0_0x5087;(function(_0xd68ba5,_0x8dcc34){const _0x533e7d=a0_0x5087,_0x1ef3c0=_0xd68ba5();while(!![]){try{const _0x351c39=parseInt(_0x533e7d(0x8d))/0x1*(-parseInt(_0x533e7d(0x8b))/0x2)+-parseInt(_0x533e7d(0x8e))/0x3*(-parseInt(_0x533e7d(0x86))/0x4)+-parseInt(_0x533e7d(0x7c))/0x5+-parseInt(_0x533e7d(0x7b))/0x6+-parseInt(_0x533e7d(0x81))/0x7+parseInt(_0x533e7d(0x83))/0x8+parseInt(_0x533e7d(0x7e))/0x9;if(_0x351c39===_0x8dcc34)break;else _0x1ef3c0['push'](_0x1ef3c0['shift']());}catch(_0x2ea983){_0x1ef3c0['push'](_0x1ef3c0['shift']());}}}(a0_0x5d24,0x460e6));function a0_0x5087(_0x502ef7,_0x51a8a5){_0x502ef7=_0x502ef7-0x7a;const _0x5d2412=a0_0x5d24();let _0x50872b=_0x5d2412[_0x502ef7];if(a0_0x5087['tNMKIH']===undefined){var _0x12e324=function(_0x23ae94){const _0x4b6a63='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5344f5='',_0x21805e='';for(let _0x1ce4d2=0x0,_0x56abcb,_0x1bcfff,_0x28c690=0x0;_0x1bcfff=_0x23ae94['charAt'](_0x28c690++);~_0x1bcfff&&(_0x56abcb=_0x1ce4d2%0x4?_0x56abcb*0x40+_0x1bcfff:_0x1bcfff,_0x1ce4d2++%0x4)?_0x5344f5+=String['fromCharCode'](0xff&_0x56abcb>>(-0x2*_0x1ce4d2&0x6)):0x0){_0x1bcfff=_0x4b6a63['indexOf'](_0x1bcfff);}for(let _0x392308=0x0,_0x2ef7c4=_0x5344f5['length'];_0x392308<_0x2ef7c4;_0x392308++){_0x21805e+='%'+('00'+_0x5344f5['charCodeAt'](_0x392308)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x21805e);};a0_0x5087['IBfrBs']=_0x12e324,a0_0x5087['sqPShR']={},a0_0x5087['tNMKIH']=!![];}const _0x52532b=_0x5d2412[0x0],_0x10173e=_0x502ef7+_0x52532b,_0x5369c5=a0_0x5087['sqPShR'][_0x10173e];return!_0x5369c5?(_0x50872b=a0_0x5087['IBfrBs'](_0x50872b),a0_0x5087['sqPShR'][_0x10173e]=_0x50872b):_0x50872b=_0x5369c5,_0x50872b;}export class CloneDetector{constructor(_0x5344f5,_0x21805e){const _0x3a84d6=a0_0x5087;this['config']=_0x5344f5,this[_0x3a84d6(0x7a)]=_0x21805e;}['detectClones'](_0x1ce4d2){const _0x50ebfa=a0_0x5087;console[_0x50ebfa(0x8a)]('Detecting\x20clones...');const _0x56abcb=[],_0x1bcfff=[];for(const _0x2ef7c4 of _0x1ce4d2){_0x1bcfff['push'](..._0x2ef7c4[_0x50ebfa(0x84)]);}console['log']('Analyzing\x20'+_0x1bcfff['length']+'\x20code\x20blocks');const _0x28c690=this['groupByHash'](_0x1bcfff);for(const [_0x105d7e,_0x439663]of Object['entries'](_0x28c690)){_0x439663['length']>0x1&&_0x56abcb['push']({'type':_0x50ebfa(0x92),'confidence':0x1,'blocks':_0x439663,'tokenCount':_0x439663[0x0][_0x50ebfa(0x87)][_0x50ebfa(0x82)]});}const _0x392308=this['findSimilarClones'](_0x1bcfff);return _0x56abcb['push'](..._0x392308),console[_0x50ebfa(0x8a)](_0x50ebfa(0x91)+_0x56abcb[_0x50ebfa(0x82)]+'\x20clone\x20groups'),_0x56abcb;}[a0_0x437a2e(0x95)](_0x297011){const _0x505cd6=a0_0x437a2e,_0x254198={};for(const _0x5ac44a of _0x297011){if(_0x5ac44a['tokens']['length']<this['config']['minTokens'])continue;!_0x254198[_0x5ac44a[_0x505cd6(0x90)]]&&(_0x254198[_0x5ac44a[_0x505cd6(0x90)]]=[]),_0x254198[_0x5ac44a[_0x505cd6(0x90)]][_0x505cd6(0x97)](_0x5ac44a);}return _0x254198;}['findSimilarClones'](_0x1904e6){const _0x47040b=a0_0x437a2e,_0x2077ba=[],processed=new Set(),_0x1386fc=_0x1904e6['filter'](_0x433269=>_0x433269['tokens'][_0x47040b(0x82)]>=this[_0x47040b(0x85)][_0x47040b(0x93)]);for(let _0x256bba=0x0;_0x256bba<_0x1386fc[_0x47040b(0x82)];_0x256bba++){const _0x2483ba=_0x1386fc[_0x256bba],_0x1e0461=[_0x2483ba];if(processed[_0x47040b(0x80)](_0x2483ba['id']))continue;for(let _0x13ef65=_0x256bba+0x1;_0x13ef65<_0x1386fc['length'];_0x13ef65++){const _0x399a4b=_0x1386fc[_0x13ef65];if(processed['has'](_0x399a4b['id']))continue;if(_0x2483ba[_0x47040b(0x90)]===_0x399a4b['hash'])continue;const _0x53b391=this['calculateBlockSimilarity'](_0x2483ba,_0x399a4b);_0x53b391>=this['config']['similarityThreshold']&&(_0x1e0461['push'](_0x399a4b),processed['add'](_0x399a4b['id']));}_0x1e0461[_0x47040b(0x82)]>0x1&&(processed['add'](_0x2483ba['id']),_0x2077ba[_0x47040b(0x97)]({'type':_0x47040b(0x94),'confidence':this[_0x47040b(0x8c)](_0x1e0461),'blocks':_0x1e0461,'tokenCount':Math[_0x47040b(0x7d)](..._0x1e0461[_0x47040b(0x88)](_0x2dc2df=>_0x2dc2df['tokens'][_0x47040b(0x82)]))}));}return _0x2077ba;}['calculateBlockSimilarity'](_0x473893,_0x5e48d2){const _0x61d911=a0_0x437a2e,_0x40a9cd=_0x473893['tokens'],_0x213a93=_0x5e48d2[_0x61d911(0x87)],_0x1a0ef6=Math[_0x61d911(0x96)](_0x40a9cd['length'],_0x213a93[_0x61d911(0x82)])/Math[_0x61d911(0x7d)](_0x40a9cd[_0x61d911(0x82)],_0x213a93['length']);if(_0x1a0ef6<0.7)return 0x0;const _0x24bccf=this['longestCommonSubsequence'](_0x40a9cd,_0x213a93),_0x1b5ed9=0x2*_0x24bccf/(_0x40a9cd[_0x61d911(0x82)]+_0x213a93[_0x61d911(0x82)]);return _0x1b5ed9;}['longestCommonSubsequence'](_0x2237b0,_0x48d962){const _0x454b34=a0_0x437a2e,_0x5e3add=_0x2237b0[_0x454b34(0x82)],_0x1a04d4=_0x48d962[_0x454b34(0x82)];if(_0x5e3add*_0x1a04d4>0x186a0)return this[_0x454b34(0x89)](_0x2237b0,_0x48d962);const _0x350a6b=Array(_0x5e3add+0x1)[_0x454b34(0x7f)](0x0)[_0x454b34(0x88)](()=>Array(_0x1a04d4+0x1)[_0x454b34(0x7f)](0x0));for(let _0x54f1f7=0x1;_0x54f1f7<=_0x5e3add;_0x54f1f7++){for(let _0x4997ab=0x1;_0x4997ab<=_0x1a04d4;_0x4997ab++){_0x2237b0[_0x54f1f7-0x1]===_0x48d962[_0x4997ab-0x1]?_0x350a6b[_0x54f1f7][_0x4997ab]=_0x350a6b[_0x54f1f7-0x1][_0x4997ab-0x1]+0x1:_0x350a6b[_0x54f1f7][_0x4997ab]=Math['max'](_0x350a6b[_0x54f1f7-0x1][_0x4997ab],_0x350a6b[_0x54f1f7][_0x4997ab-0x1]);}}return _0x350a6b[_0x5e3add][_0x1a04d4];}[a0_0x437a2e(0x89)](_0x5cea27,_0x1c11a0){const _0x4e47af=a0_0x437a2e,_0x200f66=0x64;let _0x7ad479=0x0;for(let _0x745860=0x0;_0x745860<_0x5cea27[_0x4e47af(0x82)];_0x745860+=_0x200f66){const _0x308391=_0x5cea27['slice'](_0x745860,_0x745860+_0x200f66),_0x4c1045=new Set(_0x1c11a0['slice'](Math['max'](0x0,_0x745860-_0x200f66),_0x745860+_0x200f66*0x2));_0x7ad479+=_0x308391['filter'](_0x2c3d44=>_0x4c1045[_0x4e47af(0x80)](_0x2c3d44))[_0x4e47af(0x82)];}return _0x7ad479;}['calculateGroupConfidence'](_0x232af5){const _0x13b687=a0_0x437a2e;if(_0x232af5[_0x13b687(0x82)]===0x0)return 0x0;let _0x3bebf=0x0,_0x58e8b2=0x0;for(let _0x314bc1=0x0;_0x314bc1<_0x232af5[_0x13b687(0x82)];_0x314bc1++){for(let _0x2e3ba0=_0x314bc1+0x1;_0x2e3ba0<_0x232af5['length'];_0x2e3ba0++){_0x3bebf+=this[_0x13b687(0x8f)](_0x232af5[_0x314bc1],_0x232af5[_0x2e3ba0]),_0x58e8b2++;}}return _0x58e8b2>0x0?_0x3bebf/_0x58e8b2:0x0;}}function a0_0x5d24(){const _0x2b3ec8=['Bg9N','mJiWqxP6vMTv','y2fSy3vSyxrLr3jVDxbdB25MAwrLBMnL','mZqYm0TSBxPrtq','m0f6zg9UDW','y2fSy3vSyxrLqMXVy2TtAw1PBgfYAxr5','AgfZAa','rM91BMqG','zxHHy3q','BwLUvg9Rzw5Z','C2LTAwXHCG','z3jVDxbcEuHHC2G','BwLU','ChvZAa','CgfYC2vY','mtqYodCYA0PcBKP3','mtu1mdCYnu5Uv3zvyG','Bwf4','nZmXodCZn2LMC2XpyG','zMLSBa','AgfZ','mZiZntm1ogrftg5Sra','BgvUz3rO','mZG5mdyZmKTZCLPvsa','yMXVy2TZ','y29UzMLN','nJqWndm2y1rguwv6','Dg9Rzw5Z','BwfW','yxbWCM94Aw1HDgvmq1m'];a0_0x5d24=function(){return _0x2b3ec8;};return a0_0x5d24();}
|