@loxia-labs/loxia-autopilot-one 1.0.11 → 1.0.13

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.
Files changed (120) hide show
  1. package/bin/cli.js +1 -1
  2. package/bin/loxia-terminal-v2.js +1 -1
  3. package/bin/loxia-terminal.js +1 -1
  4. package/bin/start-with-terminal.js +1 -1
  5. package/package.json +1 -2
  6. package/scripts/install-scanners.js +1 -1
  7. package/src/analyzers/CSSAnalyzer.js +1 -1
  8. package/src/analyzers/ConfigValidator.js +1 -1
  9. package/src/analyzers/ESLintAnalyzer.js +1 -1
  10. package/src/analyzers/JavaScriptAnalyzer.js +1 -1
  11. package/src/analyzers/PrettierFormatter.js +1 -1
  12. package/src/analyzers/PythonAnalyzer.js +1 -1
  13. package/src/analyzers/SecurityAnalyzer.js +1 -1
  14. package/src/analyzers/TypeScriptAnalyzer.js +1 -1
  15. package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
  16. package/src/analyzers/codeCloneDetector/detector.js +1 -1
  17. package/src/analyzers/codeCloneDetector/index.js +1 -1
  18. package/src/analyzers/codeCloneDetector/parser.js +1 -1
  19. package/src/analyzers/codeCloneDetector/reporter.js +1 -1
  20. package/src/analyzers/codeCloneDetector/scanner.js +1 -1
  21. package/src/core/agentPool.js +1 -1
  22. package/src/core/agentScheduler.js +1 -1
  23. package/src/core/contextManager.js +1 -1
  24. package/src/core/messageProcessor.js +1 -1
  25. package/src/core/orchestrator.js +1 -1
  26. package/src/core/stateManager.js +1 -1
  27. package/src/index.js +1 -1
  28. package/src/interfaces/cli.js +1 -1
  29. package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
  30. package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
  31. package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
  32. package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
  33. package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
  34. package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
  35. package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
  36. package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
  37. package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
  38. package/src/interfaces/terminal/api/apiClient.js +1 -1
  39. package/src/interfaces/terminal/api/messageRouter.js +1 -1
  40. package/src/interfaces/terminal/api/session.js +1 -1
  41. package/src/interfaces/terminal/api/websocket.js +1 -1
  42. package/src/interfaces/terminal/components/AgentCreator.js +1 -1
  43. package/src/interfaces/terminal/components/AgentEditor.js +1 -1
  44. package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
  45. package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
  46. package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
  47. package/src/interfaces/terminal/components/Header.js +1 -1
  48. package/src/interfaces/terminal/components/HelpPanel.js +1 -1
  49. package/src/interfaces/terminal/components/InputBox.js +1 -1
  50. package/src/interfaces/terminal/components/Layout.js +1 -1
  51. package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
  52. package/src/interfaces/terminal/components/MessageList.js +1 -1
  53. package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
  54. package/src/interfaces/terminal/components/SearchPanel.js +1 -1
  55. package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
  56. package/src/interfaces/terminal/components/StatusBar.js +1 -1
  57. package/src/interfaces/terminal/components/TextInput.js +1 -1
  58. package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
  59. package/src/interfaces/terminal/config/constants.js +1 -1
  60. package/src/interfaces/terminal/index.js +1 -1
  61. package/src/interfaces/terminal/state/useAgentControl.js +1 -1
  62. package/src/interfaces/terminal/state/useAgents.js +1 -1
  63. package/src/interfaces/terminal/state/useConnection.js +1 -1
  64. package/src/interfaces/terminal/state/useMessages.js +1 -1
  65. package/src/interfaces/terminal/state/useTools.js +1 -1
  66. package/src/interfaces/terminal/utils/debugLogger.js +1 -1
  67. package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
  68. package/src/interfaces/terminal/utils/theme.js +1 -1
  69. package/src/interfaces/webServer.js +1 -1
  70. package/src/modules/fileExplorer/controller.js +1 -1
  71. package/src/modules/fileExplorer/index.js +1 -1
  72. package/src/modules/fileExplorer/middleware.js +1 -1
  73. package/src/modules/fileExplorer/routes.js +1 -1
  74. package/src/services/aiService.js +1 -1
  75. package/src/services/apiKeyManager.js +1 -1
  76. package/src/services/benchmarkService.js +1 -1
  77. package/src/services/budgetService.js +1 -1
  78. package/src/services/contextInjectionService.js +1 -1
  79. package/src/services/conversationCompactionService.js +1 -1
  80. package/src/services/errorHandler.js +1 -1
  81. package/src/services/fileAttachmentService.js +1 -1
  82. package/src/services/modelRouterService.js +1 -1
  83. package/src/services/modelsService.js +1 -1
  84. package/src/services/qualityInspector.js +1 -1
  85. package/src/services/tokenCountingService.js +1 -1
  86. package/src/tools/agentCommunicationTool.js +1 -1
  87. package/src/tools/agentDelayTool.js +1 -1
  88. package/src/tools/asyncToolManager.js +1 -1
  89. package/src/tools/baseTool.js +1 -1
  90. package/src/tools/browserTool.js +1 -1
  91. package/src/tools/cloneDetectionTool.js +1 -1
  92. package/src/tools/dependencyResolverTool.js +1 -1
  93. package/src/tools/fileContentReplaceTool.js +1 -1
  94. package/src/tools/fileSystemTool.js +1 -1
  95. package/src/tools/fileTreeTool.js +1 -1
  96. package/src/tools/imageTool.js +1 -1
  97. package/src/tools/importAnalyzerTool.js +1 -1
  98. package/src/tools/jobDoneTool.js +1 -1
  99. package/src/tools/seekTool.js +1 -1
  100. package/src/tools/staticAnalysisTool.js +1 -1
  101. package/src/tools/taskManagerTool.js +1 -1
  102. package/src/tools/terminalTool.js +1 -1
  103. package/src/tools/webTool.js +1 -1
  104. package/src/types/agent.js +1 -1
  105. package/src/types/contextReference.js +1 -1
  106. package/src/types/conversation.js +1 -1
  107. package/src/types/toolCommand.js +1 -1
  108. package/src/utilities/attachmentValidator.js +1 -1
  109. package/src/utilities/configManager.js +1 -1
  110. package/src/utilities/constants.js +1 -1
  111. package/src/utilities/directoryAccessManager.js +1 -1
  112. package/src/utilities/fileProcessor.js +1 -1
  113. package/src/utilities/logger.js +1 -1
  114. package/src/utilities/tagParser.js +1 -1
  115. package/src/utilities/toolConstants.js +1 -1
  116. package/src/utilities/userDataDir.js +1 -0
  117. package/web-ui/build/index.html +2 -2
  118. package/web-ui/build/static/{index-C5X7qBNF.js → index-DXN850Y2.js} +69 -65
  119. package/web-ui/build/static/index-an-YRzUX.css +1 -0
  120. package/web-ui/build/static/index-g2UFuTwG.css +0 -1
package/bin/cli.js CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- const a0_0x219500=a0_0x13ce;(function(_0x139ca9,_0x521000){const _0x45d9d5=a0_0x13ce,_0xcedb2=_0x139ca9();while(!![]){try{const _0x379397=parseInt(_0x45d9d5(0x10f))/0x1+parseInt(_0x45d9d5(0x13e))/0x2+parseInt(_0x45d9d5(0x130))/0x3*(-parseInt(_0x45d9d5(0x114))/0x4)+parseInt(_0x45d9d5(0x136))/0x5+-parseInt(_0x45d9d5(0x142))/0x6+-parseInt(_0x45d9d5(0x106))/0x7*(parseInt(_0x45d9d5(0x117))/0x8)+parseInt(_0x45d9d5(0x13b))/0x9*(parseInt(_0x45d9d5(0x129))/0xa);if(_0x379397===_0x521000)break;else _0xcedb2['push'](_0xcedb2['shift']());}catch(_0x280530){_0xcedb2['push'](_0xcedb2['shift']());}}}(a0_0xa139,0x6a0d8));import{fileURLToPath}from'url';import{dirname,join}from'path';import{spawn,exec}from'child_process';import{readFileSync}from'fs';import a0_0x4571f8 from'http';function a0_0x13ce(_0xcad0f1,_0x369f49){_0xcad0f1=_0xcad0f1-0x106;const _0xa13997=a0_0xa139();let _0x13ce55=_0xa13997[_0xcad0f1];return _0x13ce55;}const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename),DEFAULT_PORT=0x1f90,DEFAULT_HOST=a0_0x219500(0x10d),SERVER_STARTUP_TIMEOUT=0x3a98,SERVER_CHECK_INTERVAL=0x1f4,args=process[a0_0x219500(0x108)][a0_0x219500(0x13f)](0x2),command=args[0x0]&&!args[0x0][a0_0x219500(0x112)]('--')?args[0x0]:null,flags={'port':null,'host':null,'help':args[a0_0x219500(0x14a)](a0_0x219500(0x120))||args[a0_0x219500(0x14a)]('-h'),'version':args[a0_0x219500(0x14a)]('--version')||args[a0_0x219500(0x14a)]('-v')};for(let i=0x0;i<args[a0_0x219500(0x139)];i++){args[i]===a0_0x219500(0x111)&&args[i+0x1]&&(flags[a0_0x219500(0x10c)]=parseInt(args[i+0x1],0xa)),args[i]===a0_0x219500(0x13a)&&args[i+0x1]&&(flags[a0_0x219500(0x149)]=args[i+0x1]);}const port=flags[a0_0x219500(0x10c)]||DEFAULT_PORT,host=flags[a0_0x219500(0x149)]||DEFAULT_HOST,serverUrl=a0_0x219500(0x131)+host+':'+port;if(flags['version']){const pkgPath=join(__dirname,'..',a0_0x219500(0x110)),pkg=JSON[a0_0x219500(0x123)](readFileSync(pkgPath,a0_0x219500(0x125)));console[a0_0x219500(0x14d)](a0_0x219500(0x145)+pkg[a0_0x219500(0x116)]),process[a0_0x219500(0x132)](0x0);}function a0_0xa139(){const _0x4ca4f5=['xdg-open\x20\x22','Checking\x20if\x20server\x20is\x20running...','host','includes','help','pid','log','7TpSvcz','index.js','argv','\x0aShutting\x20down\x20server...','ignore','\x0aLoxia\x20Autopilot\x20One\x20v','port','localhost','unref','23067EFVvdR','package.json','--port','startsWith','error','12nyEeyq','\x0aServer\x20is\x20not\x20running\x20at\x20','version','5321696hqnoJR','Could\x20not\x20open\x20browser\x20automatically.','start\x20\x22\x22\x20\x22','statusCode','Run\x20\x22loxia\x20--help\x22\x20for\x20usage\x20information.','SIGINT','Waiting\x20for\x20server\x20to\x20start...',')\x0a\x20\x20--host\x20<host>\x20\x20\x20\x20\x20Specify\x20host\x20(default:\x20','\x0aPlease\x20start\x20the\x20server\x20first:','--help','web','inherit','parse','get','utf8','open\x20\x22','destroy','\x0aOpening\x20Web\x20UI\x20at\x20','90UsijtE','env','catch','darwin','LOXIA_HOST','Error:','kill','324243EPyqOd','http://','exit','SIGTERM','Starting\x20Loxia\x20server...\x0a','\x20\x20loxia\x20web\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20Start\x20server\x20+\x20Web\x20UI','116750mgfZfC','src','node','length','--host','1685601VPzBQg','\x20\x20loxia\x20plus-terminal\x20\x20#\x20Start\x20server\x20+\x20Terminal\x20UI\x0a','loxia-terminal.js','859518xKavFD','slice','Starting\x20Terminal\x20UI...\x0a','toString','4427580lnzuZu','Server\x20is\x20running\x20at\x20','\x0aServer\x20failed\x20to\x20start.\x20Please\x20check\x20logs.','Loxia\x20Autopilot\x20One\x20v','message'];a0_0xa139=function(){return _0x4ca4f5;};return a0_0xa139();}if(flags[a0_0x219500(0x14b)]||!command){const pkgPath=join(__dirname,'..',a0_0x219500(0x110)),pkg=JSON[a0_0x219500(0x123)](readFileSync(pkgPath,a0_0x219500(0x125)));console[a0_0x219500(0x14d)](a0_0x219500(0x10b)+pkg[a0_0x219500(0x116)]+'\x20-\x20AI\x20Agent\x20System\x0a\x0aUsage:\x0a\x20\x20loxia\x20<command>\x20[options]\x0a\x0aCommands:\x0a\x20\x20web\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Start\x20server\x20+\x20open\x20Web\x20UI\x20in\x20browser\x0a\x20\x20terminal\x20\x20\x20\x20\x20\x20\x20\x20Start\x20Terminal\x20UI\x20(server\x20must\x20be\x20running)\x0a\x20\x20plus-web\x20\x20\x20\x20\x20\x20\x20\x20Alias\x20for\x20\x27web\x27\x0a\x20\x20plus-terminal\x20\x20\x20Start\x20server\x20+\x20Terminal\x20UI\x20together\x0a\x0aOptions:\x0a\x20\x20--port\x20<number>\x20\x20\x20Specify\x20port\x20(default:\x20'+DEFAULT_PORT+a0_0x219500(0x11e)+DEFAULT_HOST+')\x0a\x20\x20-h,\x20--help\x20\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20message\x0a\x20\x20-v,\x20--version\x20\x20\x20\x20\x20Show\x20version\x20number\x0a\x0aExamples:\x0a\x20\x20loxia\x20web\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20Start\x20server\x20+\x20open\x20browser\x0a\x20\x20loxia\x20terminal\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20Connect\x20Terminal\x20UI\x20to\x20running\x20server\x0a\x20\x20loxia\x20plus-terminal\x20\x20\x20\x20\x20\x20#\x20Start\x20server\x20+\x20Terminal\x20UI\x0a\x20\x20loxia\x20web\x20--port\x203000\x20\x20\x20\x20#\x20Use\x20custom\x20port\x0a\x0aQuick\x20Start:\x0a\x20\x201.\x20Run\x20\x27loxia\x20web\x27\x20to\x20start\x20with\x20Web\x20UI\x0a\x20\x202.\x20Or\x20run\x20\x27loxia\x20plus-terminal\x27\x20for\x20Terminal\x20UI\x20experience\x0a\x0aDocumentation:\x0a\x20\x20https://autopilot.loxia.ai\x0a\x0a'),process[a0_0x219500(0x132)](0x0);}async function checkServerRunning(_0x12d7b2,_0x3d9964,_0x3bdc3d=0x1){for(let _0x4fc805=0x0;_0x4fc805<_0x3bdc3d;_0x4fc805++){const _0x5743cf=await new Promise(_0x40769c=>{const _0x37baf3=a0_0x13ce,_0x443980=a0_0x4571f8[_0x37baf3(0x124)](_0x37baf3(0x131)+_0x12d7b2+':'+_0x3d9964+'/api/health',_0x2b806c=>{const _0x50c468=_0x37baf3;_0x40769c(_0x2b806c[_0x50c468(0x11a)]===0xc8);});_0x443980['on'](_0x37baf3(0x113),()=>_0x40769c(![])),_0x443980['setTimeout'](0x7d0,()=>{const _0x5c49ea=_0x37baf3;_0x443980[_0x5c49ea(0x127)](),_0x40769c(![]);});});if(_0x5743cf)return!![];_0x4fc805<_0x3bdc3d-0x1&&await new Promise(_0x1d3d15=>setTimeout(_0x1d3d15,SERVER_CHECK_INTERVAL));}return![];}async function waitForServer(_0x5bad26,_0x490c1c,_0x4488e8=SERVER_STARTUP_TIMEOUT){const _0x2cc23d=Math['ceil'](_0x4488e8/SERVER_CHECK_INTERVAL);return checkServerRunning(_0x5bad26,_0x490c1c,_0x2cc23d);}function openBrowser(_0x530156){const _0x346b83=a0_0x219500,_0x28694c=process['platform'];let _0x4f0a32;if(_0x28694c===_0x346b83(0x12c))_0x4f0a32=_0x346b83(0x126)+_0x530156+'\x22';else _0x28694c==='win32'?_0x4f0a32=_0x346b83(0x119)+_0x530156+'\x22':_0x4f0a32=_0x346b83(0x147)+_0x530156+'\x22';exec(_0x4f0a32,_0x1a948c=>{const _0x5e8dca=_0x346b83;_0x1a948c&&(console[_0x5e8dca(0x14d)](_0x5e8dca(0x118)),console[_0x5e8dca(0x14d)]('Please\x20open\x20manually:\x20'+_0x530156));});}function startServer(_0xc66b98=![]){const _0x34ba44=a0_0x219500,_0x41ebd6={...process[_0x34ba44(0x12a)],'LOXIA_PORT':port[_0x34ba44(0x141)](),'PORT':port['toString']()};flags[_0x34ba44(0x149)]&&(_0x41ebd6[_0x34ba44(0x12d)]=flags[_0x34ba44(0x149)]);const _0x1451d1=join(__dirname,'..',_0x34ba44(0x137),_0x34ba44(0x107)),_0x55713f=spawn(_0x34ba44(0x138),[_0x1451d1],{'cwd':join(__dirname,'..'),'env':_0x41ebd6,'stdio':_0xc66b98?[_0x34ba44(0x10a),_0x34ba44(0x10a),'ignore']:_0x34ba44(0x122),'detached':_0xc66b98});return _0xc66b98&&_0x55713f[_0x34ba44(0x10e)](),_0x55713f;}function startTerminalUI(){const _0xbb074=a0_0x219500,_0xd489b6=join(__dirname,_0xbb074(0x13d)),_0x4f8091={...process[_0xbb074(0x12a)],'LOXIA_PORT':port[_0xbb074(0x141)](),'LOXIA_HOST':host},_0x5c86b6=spawn('node',[_0xd489b6],{'cwd':join(__dirname,'..'),'env':_0x4f8091,'stdio':_0xbb074(0x122)});return _0x5c86b6;}const commands={'web':async()=>{const _0x96861f=a0_0x219500;console['log'](_0x96861f(0x134));const _0x52f5b2=startServer(![]);console[_0x96861f(0x14d)](_0x96861f(0x11d));const _0x245c43=await waitForServer(host,port);_0x245c43?(console[_0x96861f(0x14d)](_0x96861f(0x128)+serverUrl),openBrowser(serverUrl)):console[_0x96861f(0x14d)]('\x0aServer\x20may\x20still\x20be\x20starting.\x20Open\x20'+serverUrl+'\x20manually.'),process['on']('SIGINT',()=>_0x52f5b2[_0x96861f(0x12f)](_0x96861f(0x11c))),process['on'](_0x96861f(0x133),()=>_0x52f5b2[_0x96861f(0x12f)](_0x96861f(0x133))),_0x52f5b2['on'](_0x96861f(0x132),_0x213b61=>process['exit'](_0x213b61||0x0));},'plus-web':async()=>{const _0x325394=a0_0x219500;await commands[_0x325394(0x121)]();},'terminal':async()=>{const _0x470c6a=a0_0x219500;console[_0x470c6a(0x14d)](_0x470c6a(0x148));const _0x14d49f=await checkServerRunning(host,port);!_0x14d49f&&(console[_0x470c6a(0x113)](_0x470c6a(0x115)+serverUrl),console['error'](_0x470c6a(0x11f)),console[_0x470c6a(0x113)](_0x470c6a(0x135)),console[_0x470c6a(0x113)](_0x470c6a(0x13c)),process[_0x470c6a(0x132)](0x1));console[_0x470c6a(0x14d)](_0x470c6a(0x143)+serverUrl),console['log'](_0x470c6a(0x140));const _0x161019=startTerminalUI();process['on'](_0x470c6a(0x11c),()=>_0x161019[_0x470c6a(0x12f)](_0x470c6a(0x11c))),process['on']('SIGTERM',()=>_0x161019[_0x470c6a(0x12f)](_0x470c6a(0x133))),_0x161019['on'](_0x470c6a(0x132),_0x3a9a3f=>process[_0x470c6a(0x132)](_0x3a9a3f||0x0));},'plus-terminal':async()=>{const _0x578c3e=a0_0x219500;console['log']('Starting\x20Loxia\x20server\x20in\x20background...');const _0x29827a=startServer(!![]),_0x5a54e8=await waitForServer(host,port);!_0x5a54e8&&(console[_0x578c3e(0x113)](_0x578c3e(0x144)),process[_0x578c3e(0x132)](0x1));console[_0x578c3e(0x14d)]('Server\x20running\x20at\x20'+serverUrl),console['log'](_0x578c3e(0x140));const _0x2f709a=startTerminalUI();_0x2f709a['on']('exit',_0x1ee213=>{const _0x3448d9=_0x578c3e;console[_0x3448d9(0x14d)](_0x3448d9(0x109));try{process[_0x3448d9(0x12f)](_0x29827a[_0x3448d9(0x14c)],_0x3448d9(0x133));}catch(_0xd8a9c9){}process[_0x3448d9(0x132)](_0x1ee213||0x0);}),process['on'](_0x578c3e(0x11c),()=>{const _0x172e4f=_0x578c3e;_0x2f709a[_0x172e4f(0x12f)](_0x172e4f(0x11c));}),process['on'](_0x578c3e(0x133),()=>{const _0x2ddaf8=_0x578c3e;_0x2f709a[_0x2ddaf8(0x12f)]('SIGTERM');});}};commands[command]?commands[command]()[a0_0x219500(0x12b)](_0x32c88c=>{const _0xf6be41=a0_0x219500;console[_0xf6be41(0x113)](_0xf6be41(0x12e),_0x32c88c[_0xf6be41(0x146)]),process[_0xf6be41(0x132)](0x1);}):(console[a0_0x219500(0x113)]('Unknown\x20command:\x20'+command),console['error'](a0_0x219500(0x11b)),process[a0_0x219500(0x132)](0x1));
3
+ const a0_0xbede4f=a0_0x1417;(function(_0x1edeb3,_0x41efbd){const _0x4689af=a0_0x1417,_0x4b6977=_0x1edeb3();while(!![]){try{const _0x2c1c6d=parseInt(_0x4689af(0x10e))/0x1*(-parseInt(_0x4689af(0x122))/0x2)+parseInt(_0x4689af(0xfb))/0x3+-parseInt(_0x4689af(0xe8))/0x4*(parseInt(_0x4689af(0xe7))/0x5)+-parseInt(_0x4689af(0x11a))/0x6*(parseInt(_0x4689af(0xff))/0x7)+-parseInt(_0x4689af(0x121))/0x8*(-parseInt(_0x4689af(0x10b))/0x9)+parseInt(_0x4689af(0xf3))/0xa+parseInt(_0x4689af(0xe4))/0xb;if(_0x2c1c6d===_0x41efbd)break;else _0x4b6977['push'](_0x4b6977['shift']());}catch(_0x397cc9){_0x4b6977['push'](_0x4b6977['shift']());}}}(a0_0x1af8,0x2160d));import{fileURLToPath}from'url';import{dirname,join}from'path';import{spawn,exec}from'child_process';import{readFileSync}from'fs';function a0_0x1af8(){const _0x49242e=['destroy','\x0aLoxia\x20Autopilot\x20One\x20v','port','log','src','696xQJRZu','web','Could\x20not\x20open\x20browser\x20automatically.','parse','\x0aServer\x20is\x20not\x20running\x20at\x20','--help','Please\x20open\x20manually:\x20','1510656SyMbTs','32eGKcym','help','utf8','1959188tnDQoF','win32','SIGINT','15ZTdwJq','346660UNmUie','statusCode','Checking\x20if\x20server\x20is\x20running...','node','env','\x0aShutting\x20down\x20server...','host','toString','Unknown\x20command:\x20','LOXIA_HOST','Error:','748200QbKvYW','catch','open\x20\x22','package.json','includes','http://','Waiting\x20for\x20server\x20to\x20start...','startsWith','396348SxQFDP','ignore','SIGTERM','\x20manually.','6377BhBDef','xdg-open\x20\x22','\x20\x20loxia\x20plus-terminal\x20\x20#\x20Start\x20server\x20+\x20Terminal\x20UI\x0a','version',')\x0a\x20\x20-h,\x20--help\x20\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20message\x0a\x20\x20-v,\x20--version\x20\x20\x20\x20\x20Show\x20version\x20number\x0a\x0aExamples:\x0a\x20\x20loxia\x20web\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20Start\x20server\x20+\x20open\x20browser\x0a\x20\x20loxia\x20terminal\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20Connect\x20Terminal\x20UI\x20to\x20running\x20server\x0a\x20\x20loxia\x20plus-terminal\x20\x20\x20\x20\x20\x20#\x20Start\x20server\x20+\x20Terminal\x20UI\x0a\x20\x20loxia\x20web\x20--port\x203000\x20\x20\x20\x20#\x20Use\x20custom\x20port\x0a\x0aQuick\x20Start:\x0a\x20\x201.\x20Run\x20\x27loxia\x20web\x27\x20to\x20start\x20with\x20Web\x20UI\x0a\x20\x202.\x20Or\x20run\x20\x27loxia\x20plus-terminal\x27\x20for\x20Terminal\x20UI\x20experience\x0a\x0aDocumentation:\x0a\x20\x20https://autopilot.loxia.ai\x0a\x0a','/api/health','argv','error','Starting\x20Terminal\x20UI...\x0a','--port','inherit','Starting\x20Loxia\x20server...\x0a','9ZTbndg','Starting\x20Loxia\x20server\x20in\x20background...','exit','4468WGDMRZ','Server\x20is\x20running\x20at\x20','\x0aPlease\x20start\x20the\x20server\x20first:','kill','slice','ceil','loxia-terminal.js'];a0_0x1af8=function(){return _0x49242e;};return a0_0x1af8();}import a0_0x76563a from'http';function a0_0x1417(_0xd3e514,_0x4b1e98){_0xd3e514=_0xd3e514-0xe2;const _0x1af868=a0_0x1af8();let _0x1417b1=_0x1af868[_0xd3e514];return _0x1417b1;}const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename),DEFAULT_PORT=0x1f90,DEFAULT_HOST='localhost',SERVER_STARTUP_TIMEOUT=0x3a98,SERVER_CHECK_INTERVAL=0x1f4,args=process[a0_0xbede4f(0x105)][a0_0xbede4f(0x112)](0x2),command=args[0x0]&&!args[0x0][a0_0xbede4f(0xfa)]('--')?args[0x0]:null,flags={'port':null,'host':null,'help':args[a0_0xbede4f(0xf7)](a0_0xbede4f(0x11f))||args['includes']('-h'),'version':args[a0_0xbede4f(0xf7)]('--version')||args[a0_0xbede4f(0xf7)]('-v')};for(let i=0x0;i<args['length'];i++){args[i]===a0_0xbede4f(0x108)&&args[i+0x1]&&(flags[a0_0xbede4f(0x117)]=parseInt(args[i+0x1],0xa)),args[i]==='--host'&&args[i+0x1]&&(flags['host']=args[i+0x1]);}const port=flags[a0_0xbede4f(0x117)]||DEFAULT_PORT,host=flags[a0_0xbede4f(0xee)]||DEFAULT_HOST,serverUrl=a0_0xbede4f(0xf8)+host+':'+port;if(flags[a0_0xbede4f(0x102)]){const pkgPath=join(__dirname,'..',a0_0xbede4f(0xf6)),pkg=JSON[a0_0xbede4f(0x11d)](readFileSync(pkgPath,a0_0xbede4f(0xe3)));console[a0_0xbede4f(0x118)]('Loxia\x20Autopilot\x20One\x20v'+pkg[a0_0xbede4f(0x102)]),process[a0_0xbede4f(0x10d)](0x0);}if(flags[a0_0xbede4f(0xe2)]||!command){const pkgPath=join(__dirname,'..','package.json'),pkg=JSON[a0_0xbede4f(0x11d)](readFileSync(pkgPath,a0_0xbede4f(0xe3)));console['log'](a0_0xbede4f(0x116)+pkg[a0_0xbede4f(0x102)]+'\x20-\x20AI\x20Agent\x20System\x0a\x0aUsage:\x0a\x20\x20loxia\x20<command>\x20[options]\x0a\x0aCommands:\x0a\x20\x20web\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Start\x20server\x20+\x20open\x20Web\x20UI\x20in\x20browser\x0a\x20\x20terminal\x20\x20\x20\x20\x20\x20\x20\x20Start\x20Terminal\x20UI\x20(server\x20must\x20be\x20running)\x0a\x20\x20plus-web\x20\x20\x20\x20\x20\x20\x20\x20Alias\x20for\x20\x27web\x27\x0a\x20\x20plus-terminal\x20\x20\x20Start\x20server\x20+\x20Terminal\x20UI\x20together\x0a\x0aOptions:\x0a\x20\x20--port\x20<number>\x20\x20\x20Specify\x20port\x20(default:\x20'+DEFAULT_PORT+')\x0a\x20\x20--host\x20<host>\x20\x20\x20\x20\x20Specify\x20host\x20(default:\x20'+DEFAULT_HOST+a0_0xbede4f(0x103)),process['exit'](0x0);}async function checkServerRunning(_0x438e2e,_0x1089f1,_0x4d8384=0x1){for(let _0x28a420=0x0;_0x28a420<_0x4d8384;_0x28a420++){const _0x3f54a0=await new Promise(_0x235735=>{const _0x3b3026=a0_0x1417,_0x359924=a0_0x76563a['get'](_0x3b3026(0xf8)+_0x438e2e+':'+_0x1089f1+_0x3b3026(0x104),_0x4f0f74=>{const _0x54c757=_0x3b3026;_0x235735(_0x4f0f74[_0x54c757(0xe9)]===0xc8);});_0x359924['on']('error',()=>_0x235735(![])),_0x359924['setTimeout'](0x7d0,()=>{const _0x368466=_0x3b3026;_0x359924[_0x368466(0x115)](),_0x235735(![]);});});if(_0x3f54a0)return!![];_0x28a420<_0x4d8384-0x1&&await new Promise(_0x3421ff=>setTimeout(_0x3421ff,SERVER_CHECK_INTERVAL));}return![];}async function waitForServer(_0x15fe32,_0x4a979,_0x498a82=SERVER_STARTUP_TIMEOUT){const _0x557e5a=a0_0xbede4f,_0x422ad2=Math[_0x557e5a(0x113)](_0x498a82/SERVER_CHECK_INTERVAL);return checkServerRunning(_0x15fe32,_0x4a979,_0x422ad2);}function openBrowser(_0x526b9e){const _0x3962a6=a0_0xbede4f,_0x5b480e=process['platform'];let _0x358219;if(_0x5b480e==='darwin')_0x358219=_0x3962a6(0xf5)+_0x526b9e+'\x22';else _0x5b480e===_0x3962a6(0xe5)?_0x358219='start\x20\x22\x22\x20\x22'+_0x526b9e+'\x22':_0x358219=_0x3962a6(0x100)+_0x526b9e+'\x22';exec(_0x358219,_0x4a9e42=>{const _0x2e2348=_0x3962a6;_0x4a9e42&&(console[_0x2e2348(0x118)](_0x2e2348(0x11c)),console[_0x2e2348(0x118)](_0x2e2348(0x120)+_0x526b9e));});}function startServer(_0x2a5526=![]){const _0x5a87d4=a0_0xbede4f,_0x540087={...process['env'],'LOXIA_PORT':port[_0x5a87d4(0xef)](),'PORT':port[_0x5a87d4(0xef)]()};flags[_0x5a87d4(0xee)]&&(_0x540087[_0x5a87d4(0xf1)]=flags[_0x5a87d4(0xee)]);const _0x58e424=join(__dirname,'..',_0x5a87d4(0x119),'index.js'),_0x6c82ef=spawn(_0x5a87d4(0xeb),[_0x58e424],{'cwd':join(__dirname,'..'),'env':_0x540087,'stdio':_0x2a5526?[_0x5a87d4(0xfc),_0x5a87d4(0xfc),_0x5a87d4(0xfc)]:_0x5a87d4(0x109),'detached':_0x2a5526});return _0x2a5526&&_0x6c82ef['unref'](),_0x6c82ef;}function startTerminalUI(){const _0x32f9d2=a0_0xbede4f,_0x128e9e=join(__dirname,_0x32f9d2(0x114)),_0x5438de={...process[_0x32f9d2(0xec)],'LOXIA_PORT':port[_0x32f9d2(0xef)](),'LOXIA_HOST':host},_0x1554c9=spawn(_0x32f9d2(0xeb),[_0x128e9e],{'cwd':join(__dirname,'..'),'env':_0x5438de,'stdio':_0x32f9d2(0x109)});return _0x1554c9;}const commands={'web':async()=>{const _0x3099c9=a0_0xbede4f;console[_0x3099c9(0x118)](_0x3099c9(0x10a));const _0x365622=startServer(![]);console[_0x3099c9(0x118)](_0x3099c9(0xf9));const _0x13c03a=await waitForServer(host,port);_0x13c03a?(console['log']('\x0aOpening\x20Web\x20UI\x20at\x20'+serverUrl),openBrowser(serverUrl)):console[_0x3099c9(0x118)]('\x0aServer\x20may\x20still\x20be\x20starting.\x20Open\x20'+serverUrl+_0x3099c9(0xfe)),process['on'](_0x3099c9(0xe6),()=>_0x365622[_0x3099c9(0x111)](_0x3099c9(0xe6))),process['on']('SIGTERM',()=>_0x365622[_0x3099c9(0x111)](_0x3099c9(0xfd))),_0x365622['on'](_0x3099c9(0x10d),_0x5ad9f9=>process[_0x3099c9(0x10d)](_0x5ad9f9||0x0));},'plus-web':async()=>{const _0x246639=a0_0xbede4f;await commands[_0x246639(0x11b)]();},'terminal':async()=>{const _0x5f18cc=a0_0xbede4f;console['log'](_0x5f18cc(0xea));const _0x57176a=await checkServerRunning(host,port);!_0x57176a&&(console['error'](_0x5f18cc(0x11e)+serverUrl),console[_0x5f18cc(0x106)](_0x5f18cc(0x110)),console[_0x5f18cc(0x106)]('\x20\x20loxia\x20web\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20Start\x20server\x20+\x20Web\x20UI'),console['error'](_0x5f18cc(0x101)),process[_0x5f18cc(0x10d)](0x1));console[_0x5f18cc(0x118)](_0x5f18cc(0x10f)+serverUrl),console[_0x5f18cc(0x118)](_0x5f18cc(0x107));const _0x3955fa=startTerminalUI();process['on']('SIGINT',()=>_0x3955fa[_0x5f18cc(0x111)](_0x5f18cc(0xe6))),process['on'](_0x5f18cc(0xfd),()=>_0x3955fa[_0x5f18cc(0x111)](_0x5f18cc(0xfd))),_0x3955fa['on']('exit',_0x1fcde0=>process[_0x5f18cc(0x10d)](_0x1fcde0||0x0));},'plus-terminal':async()=>{const _0x493a93=a0_0xbede4f;console['log'](_0x493a93(0x10c));const _0x2f9cfd=startServer(!![]),_0x256bf8=await waitForServer(host,port);!_0x256bf8&&(console[_0x493a93(0x106)]('\x0aServer\x20failed\x20to\x20start.\x20Please\x20check\x20logs.'),process['exit'](0x1));console['log']('Server\x20running\x20at\x20'+serverUrl),console[_0x493a93(0x118)](_0x493a93(0x107));const _0x5a6726=startTerminalUI();_0x5a6726['on']('exit',_0x282de8=>{const _0xefad54=_0x493a93;console[_0xefad54(0x118)](_0xefad54(0xed));try{process['kill'](_0x2f9cfd['pid'],_0xefad54(0xfd));}catch(_0x1f79db){}process[_0xefad54(0x10d)](_0x282de8||0x0);}),process['on'](_0x493a93(0xe6),()=>{const _0x1807ab=_0x493a93;_0x5a6726[_0x1807ab(0x111)](_0x1807ab(0xe6));}),process['on']('SIGTERM',()=>{const _0x2ba298=_0x493a93;_0x5a6726[_0x2ba298(0x111)]('SIGTERM');});}};commands[command]?commands[command]()[a0_0xbede4f(0xf4)](_0x174ba3=>{const _0x30446a=a0_0xbede4f;console[_0x30446a(0x106)](_0x30446a(0xf2),_0x174ba3['message']),process[_0x30446a(0x10d)](0x1);}):(console['error'](a0_0xbede4f(0xf0)+command),console[a0_0xbede4f(0x106)]('Run\x20\x22loxia\x20--help\x22\x20for\x20usage\x20information.'),process['exit'](0x1));
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- const a0_0x2927d3=a0_0x1793;(function(_0x10e616,_0xeb10bc){const _0x4efcb8=a0_0x1793,_0x577eaf=_0x10e616();while(!![]){try{const _0x1e443f=parseInt(_0x4efcb8(0x91))/0x1*(-parseInt(_0x4efcb8(0x9d))/0x2)+-parseInt(_0x4efcb8(0xa6))/0x3+-parseInt(_0x4efcb8(0xaf))/0x4*(-parseInt(_0x4efcb8(0xa5))/0x5)+-parseInt(_0x4efcb8(0xb2))/0x6*(-parseInt(_0x4efcb8(0xac))/0x7)+parseInt(_0x4efcb8(0xb8))/0x8+-parseInt(_0x4efcb8(0xbc))/0x9*(parseInt(_0x4efcb8(0x99))/0xa)+parseInt(_0x4efcb8(0x9f))/0xb*(parseInt(_0x4efcb8(0xab))/0xc);if(_0x1e443f===_0xeb10bc)break;else _0x577eaf['push'](_0x577eaf['shift']());}catch(_0x45bb5e){_0x577eaf['push'](_0x577eaf['shift']());}}}(a0_0x1c93,0x3969a));function a0_0x1793(_0x583bec,_0x292291){_0x583bec=_0x583bec-0x8e;const _0x1c93e3=a0_0x1c93();let _0x179377=_0x1c93e3[_0x583bec];return _0x179377;}function a0_0x1c93(){const _0x444891=['dirname','━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━','slice','join','✗\x20Server\x20is\x20not\x20running','302567fIhxpx','log','toString','--ui','stdout','LOXIA_HOST','node','--port','1367390OlHTMF','env','exit','Socket','2hokMnm','message','682RrRtGw','bin/cli.js','destroy','✓\x20Server\x20is\x20already\x20running\x20at\x20','now','connect','25030nmGJfq','1119294gWtiql','argv','🔍\x20Checking\x20if\x20server\x20is\x20running\x20at\x20','error','length','72372REEMXJ','21UzxfVy','\x20\x20\x203.\x20Check\x20logs\x20for\x20more\x20details','data','132vVZgTL','Server\x20startup\x20timeout','../src/interfaces/terminal/index.js','419532IsIfiZ','\x20\x20\x202.\x20Try\x20running\x20the\x20server\x20manually:\x20node\x20bin/cli.js','timeout','--host','✓\x20Server\x20started\x20at\x20','LOXIA_PORT','3483352qWdfMt','web','Failed\x20to\x20start\x20server:','💡\x20Troubleshooting:','18yTrBOE','pipe','stderr','\x20\x20\x201.\x20Make\x20sure\x20no\x20other\x20process\x20is\x20using\x20port\x208080'];a0_0x1c93=function(){return _0x444891;};return a0_0x1c93();}import{spawn}from'child_process';import a0_0x44b4f6 from'net';import a0_0x3456d9 from'path';import{fileURLToPath}from'url';const __filename=fileURLToPath(import.meta.url),__dirname=a0_0x3456d9[a0_0x2927d3(0xc0)](__filename),projectRoot=a0_0x3456d9[a0_0x2927d3(0xc0)](__dirname),DEFAULT_PORT=0x1f90,DEFAULT_HOST='localhost',SERVER_STARTUP_TIMEOUT=0x2710;async function isServerRunning(_0xda3f66,_0x2fa078){return new Promise(_0x1909cd=>{const _0xfc3d4c=a0_0x1793,_0x3fa23b=new a0_0x44b4f6[(_0xfc3d4c(0x9c))]();_0x3fa23b['setTimeout'](0x7d0),_0x3fa23b['on'](_0xfc3d4c(0xa4),()=>{const _0x5539d7=_0xfc3d4c;_0x3fa23b[_0x5539d7(0xa1)](),_0x1909cd(!![]);}),_0x3fa23b['on'](_0xfc3d4c(0xb4),()=>{_0x3fa23b['destroy'](),_0x1909cd(![]);}),_0x3fa23b['on'](_0xfc3d4c(0xa9),()=>{const _0x57a15b=_0xfc3d4c;_0x3fa23b[_0x57a15b(0xa1)](),_0x1909cd(![]);}),_0x3fa23b[_0xfc3d4c(0xa4)](_0x2fa078,_0xda3f66);});}async function startServer(_0x8720a9,_0x46b597){return console['log']('🚀\x20Starting\x20Loxia\x20server...'),new Promise((_0xfbf8ed,_0x5015f0)=>{const _0x54e5e8=a0_0x1793,_0x476a8a=spawn(_0x54e5e8(0x97),[a0_0x3456d9[_0x54e5e8(0x8f)](projectRoot,_0x54e5e8(0xa0)),_0x54e5e8(0x94),_0x54e5e8(0xb9),_0x54e5e8(0xb5),_0x8720a9,_0x54e5e8(0x98),_0x46b597[_0x54e5e8(0x93)]()],{'detached':![],'stdio':['ignore',_0x54e5e8(0xbd),_0x54e5e8(0xbd)]});_0x476a8a[_0x54e5e8(0x95)]['on']('data',()=>{}),_0x476a8a[_0x54e5e8(0xbe)]['on'](_0x54e5e8(0xae),()=>{}),_0x476a8a['on'](_0x54e5e8(0xa9),_0x31c62e=>{const _0xb397d4=_0x54e5e8;console['error'](_0xb397d4(0xba),_0x31c62e[_0xb397d4(0x9e)]),_0x5015f0(_0x31c62e);});const _0x54e3e5=Date[_0x54e5e8(0xa3)](),_0x571f16=setInterval(async()=>{const _0x4f712c=_0x54e5e8,_0x1e80d3=await isServerRunning(_0x8720a9,_0x46b597);if(_0x1e80d3)clearInterval(_0x571f16),console[_0x4f712c(0x92)](_0x4f712c(0xb6)+_0x8720a9+':'+_0x46b597),_0xfbf8ed();else Date[_0x4f712c(0xa3)]()-_0x54e3e5>SERVER_STARTUP_TIMEOUT&&(clearInterval(_0x571f16),_0x476a8a['kill'](),_0x5015f0(new Error(_0x4f712c(0xb0))));},0x1f4);});}async function main(){const _0x434c62=a0_0x2927d3;try{console['log'](_0x434c62(0xc1)),console['log']('\x20\x20Loxia\x20Autopilot\x20One\x20-\x20Terminal\x20UI'),console[_0x434c62(0x92)](_0x434c62(0xc1)),console[_0x434c62(0x92)]('');const _0x5268d8=process[_0x434c62(0xa7)][_0x434c62(0x8e)](0x2);let _0x47d820=DEFAULT_HOST,_0x21f79c=DEFAULT_PORT;for(let _0x7cb245=0x0;_0x7cb245<_0x5268d8[_0x434c62(0xaa)];_0x7cb245++){if(_0x5268d8[_0x7cb245]===_0x434c62(0xb5)&&_0x5268d8[_0x7cb245+0x1])_0x47d820=_0x5268d8[_0x7cb245+0x1],_0x7cb245++;else _0x5268d8[_0x7cb245]===_0x434c62(0x98)&&_0x5268d8[_0x7cb245+0x1]&&(_0x21f79c=parseInt(_0x5268d8[_0x7cb245+0x1],0xa),_0x7cb245++);}console[_0x434c62(0x92)](_0x434c62(0xa8)+_0x47d820+':'+_0x21f79c+'...');const _0x2c8901=await isServerRunning(_0x47d820,_0x21f79c);!_0x2c8901?(console[_0x434c62(0x92)](_0x434c62(0x90)),await startServer(_0x47d820,_0x21f79c)):console[_0x434c62(0x92)](_0x434c62(0xa2)+_0x47d820+':'+_0x21f79c),console[_0x434c62(0x92)](''),console[_0x434c62(0x92)]('🎨\x20Launching\x20Ink-based\x20Terminal\x20UI...'),console['log'](''),await new Promise(_0x38b186=>setTimeout(_0x38b186,0x1f4)),process['env'][_0x434c62(0x96)]=_0x47d820,process[_0x434c62(0x9a)][_0x434c62(0xb7)]=_0x21f79c[_0x434c62(0x93)](),await import(_0x434c62(0xb1));}catch(_0x3083ec){console[_0x434c62(0xa9)](''),console[_0x434c62(0xa9)]('❌\x20Failed\x20to\x20start\x20Terminal\x20UI:'),console[_0x434c62(0xa9)]('\x20\x20',_0x3083ec['message']),console['error'](''),console[_0x434c62(0xa9)](_0x434c62(0xbb)),console[_0x434c62(0xa9)](_0x434c62(0xbf)),console[_0x434c62(0xa9)](_0x434c62(0xb3)),console[_0x434c62(0xa9)](_0x434c62(0xad)),console[_0x434c62(0xa9)](''),process[_0x434c62(0x9b)](0x1);}}main();
3
+ const a0_0xc4adb2=a0_0x540f;(function(_0x4939e4,_0x3765f9){const _0x539cd2=a0_0x540f,_0x5555a0=_0x4939e4();while(!![]){try{const _0x4af12d=parseInt(_0x539cd2(0xc8))/0x1*(-parseInt(_0x539cd2(0xb3))/0x2)+parseInt(_0x539cd2(0xb7))/0x3*(-parseInt(_0x539cd2(0xc3))/0x4)+parseInt(_0x539cd2(0xb9))/0x5+-parseInt(_0x539cd2(0xc5))/0x6+parseInt(_0x539cd2(0xda))/0x7*(parseInt(_0x539cd2(0xbd))/0x8)+-parseInt(_0x539cd2(0xc9))/0x9*(-parseInt(_0x539cd2(0xb4))/0xa)+-parseInt(_0x539cd2(0xcc))/0xb;if(_0x4af12d===_0x3765f9)break;else _0x5555a0['push'](_0x5555a0['shift']());}catch(_0x22befb){_0x5555a0['push'](_0x5555a0['shift']());}}}(a0_0x5e39,0x266cb));import{spawn}from'child_process';import a0_0x389655 from'net';import a0_0x55ed40 from'path';import{fileURLToPath}from'url';function a0_0x5e39(){const _0x39ead4=['argv','pipe','data','389711nEsrcr','🚀\x20Starting\x20Loxia\x20server...','ignore','env','LOXIA_PORT','node','Server\x20startup\x20timeout','--ui','localhost','🔍\x20Checking\x20if\x20server\x20is\x20running\x20at\x20','2lPMoVq','8100AXjLYo','log','--host','5058iFAljz','Failed\x20to\x20start\x20server:','1549245QAHXcD','exit','toString','kill','24SkpTjy','✗\x20Server\x20is\x20not\x20running','🎨\x20Launching\x20Ink-based\x20Terminal\x20UI...','...','connect','now','32tBKxBZ','\x20\x20Loxia\x20Autopilot\x20One\x20-\x20Terminal\x20UI','2370EeTUfV','LOXIA_HOST','error','14229jjNKUZ','1467hrJZSq','join','\x20\x20\x203.\x20Check\x20logs\x20for\x20more\x20details','4657389YtvQjj','dirname','slice','length','━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━','destroy','Socket','../src/interfaces/terminal/index.js','--port','bin/cli.js','stdout'];a0_0x5e39=function(){return _0x39ead4;};return a0_0x5e39();}const __filename=fileURLToPath(import.meta.url),__dirname=a0_0x55ed40[a0_0xc4adb2(0xcd)](__filename),projectRoot=a0_0x55ed40['dirname'](__dirname),DEFAULT_PORT=0x1f90,DEFAULT_HOST=a0_0xc4adb2(0xb1),SERVER_STARTUP_TIMEOUT=0x2710;async function isServerRunning(_0x4e3f07,_0x27b512){return new Promise(_0x193c80=>{const _0x590ed2=a0_0x540f,_0x12f700=new a0_0x389655[(_0x590ed2(0xd2))]();_0x12f700['setTimeout'](0x7d0),_0x12f700['on'](_0x590ed2(0xc1),()=>{const _0x1e97f7=_0x590ed2;_0x12f700[_0x1e97f7(0xd1)](),_0x193c80(!![]);}),_0x12f700['on']('timeout',()=>{const _0x521718=_0x590ed2;_0x12f700[_0x521718(0xd1)](),_0x193c80(![]);}),_0x12f700['on'](_0x590ed2(0xc7),()=>{const _0x439cc6=_0x590ed2;_0x12f700[_0x439cc6(0xd1)](),_0x193c80(![]);}),_0x12f700[_0x590ed2(0xc1)](_0x27b512,_0x4e3f07);});}async function startServer(_0x5bc551,_0x38e27a){const _0x59002f=a0_0xc4adb2;return console[_0x59002f(0xb5)](_0x59002f(0xdb)),new Promise((_0x2b236c,_0x2e11c2)=>{const _0x5a1590=_0x59002f,_0x3e5d66=spawn(_0x5a1590(0xae),[a0_0x55ed40[_0x5a1590(0xca)](projectRoot,_0x5a1590(0xd5)),_0x5a1590(0xb0),'web','--host',_0x5bc551,_0x5a1590(0xd4),_0x38e27a[_0x5a1590(0xbb)]()],{'detached':![],'stdio':[_0x5a1590(0xdc),_0x5a1590(0xd8),_0x5a1590(0xd8)]});_0x3e5d66[_0x5a1590(0xd6)]['on']('data',()=>{}),_0x3e5d66['stderr']['on'](_0x5a1590(0xd9),()=>{}),_0x3e5d66['on']('error',_0x1c2feb=>{const _0x4ee7bb=_0x5a1590;console[_0x4ee7bb(0xc7)](_0x4ee7bb(0xb8),_0x1c2feb['message']),_0x2e11c2(_0x1c2feb);});const _0x4fa94f=Date[_0x5a1590(0xc2)](),_0x11605c=setInterval(async()=>{const _0x5b2f38=_0x5a1590,_0x32cff6=await isServerRunning(_0x5bc551,_0x38e27a);if(_0x32cff6)clearInterval(_0x11605c),console['log']('✓\x20Server\x20started\x20at\x20'+_0x5bc551+':'+_0x38e27a),_0x2b236c();else Date[_0x5b2f38(0xc2)]()-_0x4fa94f>SERVER_STARTUP_TIMEOUT&&(clearInterval(_0x11605c),_0x3e5d66[_0x5b2f38(0xbc)](),_0x2e11c2(new Error(_0x5b2f38(0xaf))));},0x1f4);});}function a0_0x540f(_0x5b7457,_0x28c16c){_0x5b7457=_0x5b7457-0xad;const _0x5e3937=a0_0x5e39();let _0x540fb1=_0x5e3937[_0x5b7457];return _0x540fb1;}async function main(){const _0x3419f7=a0_0xc4adb2;try{console['log'](_0x3419f7(0xd0)),console[_0x3419f7(0xb5)](_0x3419f7(0xc4)),console[_0x3419f7(0xb5)](_0x3419f7(0xd0)),console['log']('');const _0x39f45e=process[_0x3419f7(0xd7)][_0x3419f7(0xce)](0x2);let _0x40137e=DEFAULT_HOST,_0x37e48a=DEFAULT_PORT;for(let _0x1ce2dc=0x0;_0x1ce2dc<_0x39f45e[_0x3419f7(0xcf)];_0x1ce2dc++){if(_0x39f45e[_0x1ce2dc]===_0x3419f7(0xb6)&&_0x39f45e[_0x1ce2dc+0x1])_0x40137e=_0x39f45e[_0x1ce2dc+0x1],_0x1ce2dc++;else _0x39f45e[_0x1ce2dc]===_0x3419f7(0xd4)&&_0x39f45e[_0x1ce2dc+0x1]&&(_0x37e48a=parseInt(_0x39f45e[_0x1ce2dc+0x1],0xa),_0x1ce2dc++);}console[_0x3419f7(0xb5)](_0x3419f7(0xb2)+_0x40137e+':'+_0x37e48a+_0x3419f7(0xc0));const _0x3ab40d=await isServerRunning(_0x40137e,_0x37e48a);!_0x3ab40d?(console[_0x3419f7(0xb5)](_0x3419f7(0xbe)),await startServer(_0x40137e,_0x37e48a)):console[_0x3419f7(0xb5)]('✓\x20Server\x20is\x20already\x20running\x20at\x20'+_0x40137e+':'+_0x37e48a),console[_0x3419f7(0xb5)](''),console[_0x3419f7(0xb5)](_0x3419f7(0xbf)),console[_0x3419f7(0xb5)](''),await new Promise(_0x3b2e81=>setTimeout(_0x3b2e81,0x1f4)),process[_0x3419f7(0xdd)][_0x3419f7(0xc6)]=_0x40137e,process[_0x3419f7(0xdd)][_0x3419f7(0xad)]=_0x37e48a[_0x3419f7(0xbb)](),await import(_0x3419f7(0xd3));}catch(_0x931e03){console[_0x3419f7(0xc7)](''),console['error']('❌\x20Failed\x20to\x20start\x20Terminal\x20UI:'),console[_0x3419f7(0xc7)]('\x20\x20',_0x931e03['message']),console[_0x3419f7(0xc7)](''),console['error']('💡\x20Troubleshooting:'),console['error']('\x20\x20\x201.\x20Make\x20sure\x20no\x20other\x20process\x20is\x20using\x20port\x208080'),console[_0x3419f7(0xc7)]('\x20\x20\x202.\x20Try\x20running\x20the\x20server\x20manually:\x20node\x20bin/cli.js'),console[_0x3419f7(0xc7)](_0x3419f7(0xcb)),console[_0x3419f7(0xc7)](''),process[_0x3419f7(0xba)](0x1);}}main();
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- const a0_0x37cd60=a0_0x57eb;(function(_0x476f1e,_0x535b78){const _0x487552=a0_0x57eb,_0x3338de=_0x476f1e();while(!![]){try{const _0x109714=parseInt(_0x487552(0xbd))/0x1*(-parseInt(_0x487552(0xb8))/0x2)+parseInt(_0x487552(0xb0))/0x3+parseInt(_0x487552(0xae))/0x4+-parseInt(_0x487552(0xc3))/0x5+parseInt(_0x487552(0xb9))/0x6*(parseInt(_0x487552(0xb5))/0x7)+parseInt(_0x487552(0xa1))/0x8*(-parseInt(_0x487552(0xad))/0x9)+parseInt(_0x487552(0xc1))/0xa;if(_0x109714===_0x535b78)break;else _0x3338de['push'](_0x3338de['shift']());}catch(_0x3c2315){_0x3338de['push'](_0x3338de['shift']());}}}(a0_0xbe30,0xb72db));function a0_0x57eb(_0x2578c2,_0x145b6a){_0x2578c2=_0x2578c2-0x9e;const _0xbe3043=a0_0xbe30();let _0x57eb7c=_0xbe3043[_0x2578c2];return _0x57eb7c;}import{startTerminalUI}from'../src/interfaces/terminal/index.js';function a0_0xbe30(){const _0x5e5294=['18EDCLhl','262788HWQJKz','env','3272244VjWPcm','LOXIA_HOST','log','then','error','322zYySON','localhost','\x0aLoxia\x20Terminal\x20UI\x0a\x0aUsage:\x0a\x20\x20loxia-terminal\x20[options]\x0a\x0aOptions:\x0a\x20\x20--host,\x20-h\x20<host>\x20\x20\x20\x20Backend\x20host\x20(default:\x20localhost)\x0a\x20\x20--port,\x20-p\x20<port>\x20\x20\x20\x20Backend\x20port\x20(default:\x208080)\x0a\x20\x20--help\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20message\x0a\x0aEnvironment\x20Variables:\x0a\x20\x20LOXIA_HOST\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Backend\x20host\x0a\x20\x20LOXIA_PORT\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Backend\x20port\x0a\x0aExamples:\x0a\x20\x20loxia-terminal\x0a\x20\x20loxia-terminal\x20--host\x20192.168.1.100\x20--port\x203000\x0a\x20\x20LOXIA_HOST=api.example.com\x20LOXIA_PORT=443\x20loxia-terminal\x0a','148024EaSixu','42726EYdhFQ','--help','argv','--host','17WhLvuO','catch','length','--port','26435410EJppvA','ERROR:\x20Terminal\x20UI\x20requires\x20an\x20interactive\x20terminal\x20(TTY).','3635235MPMuVP','\x20\x20-\x20Some\x20CI/CD\x20environments','\x0aTerminal\x20UI\x20error:','stdin','\x0aTerminal\x20UI\x20exited','5568008vYKZNO','\x20\x20npm\x20run\x20terminal-ui','Connecting\x20to:\x20','\x20\x20npm\x20start','LOXIA_PORT','exit','Please\x20run\x20this\x20command\x20in\x20a\x20real\x20terminal\x20without\x20pipes\x20or\x20redirection:','Or\x20use\x20the\x20web\x20UI\x20instead:','host','port','Starting\x20Loxia\x20Terminal\x20UI...','\x20\x20-\x20Piped\x20environments\x20(e.g.,\x20|\x20head,\x20|\x20grep)'];a0_0xbe30=function(){return _0x5e5294;};return a0_0xbe30();}const args=process[a0_0x37cd60(0xbb)]['slice'](0x2),options={'host':a0_0x37cd60(0xb6),'port':0x1f90};for(let i=0x0;i<args[a0_0x37cd60(0xbf)];i++){const arg=args[i];if(arg===a0_0x37cd60(0xbc)||arg==='-h')options[a0_0x37cd60(0xa9)]=args[++i];else{if(arg===a0_0x37cd60(0xc0)||arg==='-p')options[a0_0x37cd60(0xaa)]=parseInt(args[++i],0xa);else arg===a0_0x37cd60(0xba)&&(console['log'](a0_0x37cd60(0xb7)),process[a0_0x37cd60(0xa6)](0x0));}}process[a0_0x37cd60(0xaf)][a0_0x37cd60(0xb1)]&&(options['host']=process[a0_0x37cd60(0xaf)][a0_0x37cd60(0xb1)]);process[a0_0x37cd60(0xaf)]['LOXIA_PORT']&&(options[a0_0x37cd60(0xaa)]=parseInt(process[a0_0x37cd60(0xaf)][a0_0x37cd60(0xa5)],0xa));!process[a0_0x37cd60(0x9f)]['isTTY']&&(console[a0_0x37cd60(0xb4)](a0_0x37cd60(0xc2)),console['error'](''),console[a0_0x37cd60(0xb4)]('The\x20terminal\x20UI\x20cannot\x20run\x20in:'),console[a0_0x37cd60(0xb4)](a0_0x37cd60(0xac)),console[a0_0x37cd60(0xb4)]('\x20\x20-\x20Redirected\x20output\x20(e.g.,\x20>\x20file.txt,\x202>&1\x20|\x20...)'),console[a0_0x37cd60(0xb4)]('\x20\x20-\x20Background\x20processes\x20(e.g.,\x20&\x20at\x20the\x20end)'),console[a0_0x37cd60(0xb4)](a0_0x37cd60(0xc4)),console[a0_0x37cd60(0xb4)](''),console[a0_0x37cd60(0xb4)](a0_0x37cd60(0xa7)),console[a0_0x37cd60(0xb4)](a0_0x37cd60(0xa2)),console['error'](''),console['error'](a0_0x37cd60(0xa8)),console[a0_0x37cd60(0xb4)](a0_0x37cd60(0xa4)),process['exit'](0x1));console[a0_0x37cd60(0xb2)](a0_0x37cd60(0xab)),console[a0_0x37cd60(0xb2)](a0_0x37cd60(0xa3)+options[a0_0x37cd60(0xa9)]+':'+options[a0_0x37cd60(0xaa)]),console['log']('Press\x20Ctrl+C\x20to\x20exit\x0a');const instance=startTerminalUI(options);instance['waitUntilExit']()[a0_0x37cd60(0xb3)](()=>{const _0x8a74b3=a0_0x37cd60;console[_0x8a74b3(0xb2)](_0x8a74b3(0xa0)),process[_0x8a74b3(0xa6)](0x0);})[a0_0x37cd60(0xbe)](_0x4a76fa=>{const _0x8badb7=a0_0x37cd60;console[_0x8badb7(0xb4)](_0x8badb7(0x9e),_0x4a76fa),process[_0x8badb7(0xa6)](0x1);});
3
+ const a0_0x532ec4=a0_0x4ef3;(function(_0x135556,_0x1f9f38){const _0x102523=a0_0x4ef3,_0x42994e=_0x135556();while(!![]){try{const _0x454709=parseInt(_0x102523(0xcd))/0x1+-parseInt(_0x102523(0xb3))/0x2+parseInt(_0x102523(0xc0))/0x3*(-parseInt(_0x102523(0xb4))/0x4)+-parseInt(_0x102523(0xbe))/0x5+parseInt(_0x102523(0xbd))/0x6*(parseInt(_0x102523(0xb6))/0x7)+parseInt(_0x102523(0xba))/0x8*(parseInt(_0x102523(0xaf))/0x9)+parseInt(_0x102523(0xc3))/0xa*(parseInt(_0x102523(0xae))/0xb);if(_0x454709===_0x1f9f38)break;else _0x42994e['push'](_0x42994e['shift']());}catch(_0x847fa9){_0x42994e['push'](_0x42994e['shift']());}}}(a0_0x1c43,0xeb819));import{startTerminalUI}from'../src/interfaces/terminal/index.js';const args=process[a0_0x532ec4(0xb8)][a0_0x532ec4(0xd3)](0x2),options={'host':'localhost','port':0x1f90};function a0_0x4ef3(_0x570eec,_0x429747){_0x570eec=_0x570eec-0xac;const _0x1c4318=a0_0x1c43();let _0x4ef36e=_0x1c4318[_0x570eec];return _0x4ef36e;}for(let i=0x0;i<args[a0_0x532ec4(0xac)];i++){const arg=args[i];if(arg===a0_0x532ec4(0xd6)||arg==='-h')options[a0_0x532ec4(0xbc)]=args[++i];else{if(arg===a0_0x532ec4(0xb7)||arg==='-p')options['port']=parseInt(args[++i],0xa);else arg===a0_0x532ec4(0xcf)&&(console['log'](a0_0x532ec4(0xd2)),process[a0_0x532ec4(0xb1)](0x0));}}process[a0_0x532ec4(0xc7)][a0_0x532ec4(0xbf)]&&(options[a0_0x532ec4(0xbc)]=process[a0_0x532ec4(0xc7)][a0_0x532ec4(0xbf)]);process['env']['LOXIA_PORT']&&(options[a0_0x532ec4(0xb5)]=parseInt(process[a0_0x532ec4(0xc7)][a0_0x532ec4(0xbb)],0xa));function a0_0x1c43(){const _0x25e47f=['host','6cYLxJi','3593915EQICLR','LOXIA_HOST','6JaBtVA','isTTY','\x20\x20-\x20Redirected\x20output\x20(e.g.,\x20>\x20file.txt,\x202>&1\x20|\x20...)','89890QMdvJC','error','catch','The\x20terminal\x20UI\x20cannot\x20run\x20in:','env','log','Or\x20use\x20the\x20web\x20UI\x20instead:','stdin','\x20\x20npm\x20start','Connecting\x20to:\x20','415362UuzFUV','\x20\x20-\x20Background\x20processes\x20(e.g.,\x20&\x20at\x20the\x20end)','--help','waitUntilExit','\x0aTerminal\x20UI\x20exited','\x0aLoxia\x20Terminal\x20UI\x0a\x0aUsage:\x0a\x20\x20loxia-terminal\x20[options]\x0a\x0aOptions:\x0a\x20\x20--host,\x20-h\x20<host>\x20\x20\x20\x20Backend\x20host\x20(default:\x20localhost)\x0a\x20\x20--port,\x20-p\x20<port>\x20\x20\x20\x20Backend\x20port\x20(default:\x208080)\x0a\x20\x20--help\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20message\x0a\x0aEnvironment\x20Variables:\x0a\x20\x20LOXIA_HOST\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Backend\x20host\x0a\x20\x20LOXIA_PORT\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Backend\x20port\x0a\x0aExamples:\x0a\x20\x20loxia-terminal\x0a\x20\x20loxia-terminal\x20--host\x20192.168.1.100\x20--port\x203000\x0a\x20\x20LOXIA_HOST=api.example.com\x20LOXIA_PORT=443\x20loxia-terminal\x0a','slice','\x20\x20npm\x20run\x20terminal-ui','\x0aTerminal\x20UI\x20error:','--host','length','Starting\x20Loxia\x20Terminal\x20UI...','1199llnOyO','4518UwfMqi','\x20\x20-\x20Some\x20CI/CD\x20environments','exit','then','2453856aUlZZq','2776504JwILjB','port','12175065AbJKOz','--port','argv','Press\x20Ctrl+C\x20to\x20exit\x0a','18552IsCcjw','LOXIA_PORT'];a0_0x1c43=function(){return _0x25e47f;};return a0_0x1c43();}!process[a0_0x532ec4(0xca)][a0_0x532ec4(0xc1)]&&(console['error']('ERROR:\x20Terminal\x20UI\x20requires\x20an\x20interactive\x20terminal\x20(TTY).'),console[a0_0x532ec4(0xc4)](''),console['error'](a0_0x532ec4(0xc6)),console[a0_0x532ec4(0xc4)]('\x20\x20-\x20Piped\x20environments\x20(e.g.,\x20|\x20head,\x20|\x20grep)'),console[a0_0x532ec4(0xc4)](a0_0x532ec4(0xc2)),console[a0_0x532ec4(0xc4)](a0_0x532ec4(0xce)),console[a0_0x532ec4(0xc4)](a0_0x532ec4(0xb0)),console[a0_0x532ec4(0xc4)](''),console[a0_0x532ec4(0xc4)]('Please\x20run\x20this\x20command\x20in\x20a\x20real\x20terminal\x20without\x20pipes\x20or\x20redirection:'),console[a0_0x532ec4(0xc4)](a0_0x532ec4(0xd4)),console['error'](''),console[a0_0x532ec4(0xc4)](a0_0x532ec4(0xc9)),console[a0_0x532ec4(0xc4)](a0_0x532ec4(0xcb)),process[a0_0x532ec4(0xb1)](0x1));console[a0_0x532ec4(0xc8)](a0_0x532ec4(0xad)),console[a0_0x532ec4(0xc8)](a0_0x532ec4(0xcc)+options[a0_0x532ec4(0xbc)]+':'+options[a0_0x532ec4(0xb5)]),console[a0_0x532ec4(0xc8)](a0_0x532ec4(0xb9));const instance=startTerminalUI(options);instance[a0_0x532ec4(0xd0)]()[a0_0x532ec4(0xb2)](()=>{const _0x1cf5e5=a0_0x532ec4;console[_0x1cf5e5(0xc8)](_0x1cf5e5(0xd1)),process[_0x1cf5e5(0xb1)](0x0);})[a0_0x532ec4(0xc5)](_0x56f543=>{const _0x39e36e=a0_0x532ec4;console[_0x39e36e(0xc4)](_0x39e36e(0xd5),_0x56f543),process[_0x39e36e(0xb1)](0x1);});
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- function a0_0x1d7a(){const _0x189bcc=['destroy','SIGTERM','exit','🖥️\x20\x20Starting\x20Terminal\x20UI...','trim','stderr','229145DwqaKT','457517RBLjra','24pmQIaH','index.js','\x0a⚠️\x20\x20Received\x20SIGINT,\x20shutting\x20down...','2348758BPoGKd','🚀\x20Starting\x20Loxia\x20server...','setTimeout','kill','\x0a👋\x20Terminal\x20UI\x20closed.','data','pipe','bin','env','error','🛑\x20Stopping\x20server...','src','includes','inherit','7611608QZJmij','✅\x20Server\x20is\x20ready!','[SERVER\x20ERROR]\x20','toString','╔════════════════════════════════════════════════╗','Failed\x20to\x20start\x20Terminal\x20UI:','║\x20\x20\x20Loxia\x20AI\x20Agents\x20-\x20Server\x20+\x20Terminal\x20UI\x20\x20\x20\x20\x20\x20║','Server\x20exited\x20with\x20code\x20','Error\x20during\x20startup:','283199ZHOsuL','4555476uImJAc','log','statusCode','node','message','killed','get','/health','loxia-terminal.js','stdout','79530CLpUWI','Failed\x20to\x20start\x20server:'];a0_0x1d7a=function(){return _0x189bcc;};return a0_0x1d7a();}const a0_0x110849=a0_0x4477;(function(_0x51771e,_0x3361f6){const _0x554cbe=a0_0x4477,_0x3685db=_0x51771e();while(!![]){try{const _0xaaddc3=-parseInt(_0x554cbe(0xef))/0x1+parseInt(_0x554cbe(0xf3))/0x2+-parseInt(_0x554cbe(0xe6))/0x3+parseInt(_0x554cbe(0xf0))/0x4*(-parseInt(_0x554cbe(0xee))/0x5)+-parseInt(_0x554cbe(0x10b))/0x6+parseInt(_0x554cbe(0x10a))/0x7+parseInt(_0x554cbe(0x101))/0x8;if(_0xaaddc3===_0x3361f6)break;else _0x3685db['push'](_0x3685db['shift']());}catch(_0x398342){_0x3685db['push'](_0x3685db['shift']());}}}(a0_0x1d7a,0x9e368));import{spawn}from'child_process';import{fileURLToPath}from'url';import{dirname,join}from'path';import a0_0x41c7d4 from'http';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename),rootDir=join(__dirname,'..'),SERVER_PORT=process[a0_0x110849(0xfb)]['PORT']||0x1f90,STARTUP_WAIT=0x7d0;let serverProcess=null;async function checkServerReady(_0x23e74e=0xa,_0x3880cf=0x1f4){const _0x14f262=a0_0x110849;for(let _0xb80f5b=0x0;_0xb80f5b<_0x23e74e;_0xb80f5b++){try{return await new Promise((_0x148a88,_0x30f63c)=>{const _0x4d000e=a0_0x4477,_0x530c99=a0_0x41c7d4[_0x4d000e(0xe2)]('http://localhost:'+SERVER_PORT+_0x4d000e(0xe3),_0x3140ef=>{const _0x2c57f2=_0x4d000e;_0x3140ef[_0x2c57f2(0x10d)]===0xc8?_0x148a88():_0x30f63c(new Error('Server\x20returned\x20'+_0x3140ef[_0x2c57f2(0x10d)]));});_0x530c99['on'](_0x4d000e(0xfc),_0x30f63c),_0x530c99[_0x4d000e(0xf5)](0x3e8,()=>{const _0x35fa12=_0x4d000e;_0x530c99[_0x35fa12(0xe8)](),_0x30f63c(new Error('Timeout'));});}),console[_0x14f262(0x10c)](_0x14f262(0x102)),!![];}catch(_0x378825){_0xb80f5b<_0x23e74e-0x1&&await new Promise(_0x349f1a=>setTimeout(_0x349f1a,_0x3880cf));}}return console['log']('⚠️\x20\x20Server\x20may\x20not\x20be\x20fully\x20ready,\x20but\x20continuing\x20anyway...'),![];}async function startServer(){return new Promise(_0x40b1b9=>{const _0xbb1112=a0_0x4477;console['log'](_0xbb1112(0xf4));const _0x206d14=join(rootDir,_0xbb1112(0xfe),_0xbb1112(0xf1));serverProcess=spawn(_0xbb1112(0x10e),[_0x206d14],{'cwd':rootDir,'env':{...process[_0xbb1112(0xfb)]},'stdio':['ignore',_0xbb1112(0xf9),_0xbb1112(0xf9)],'detached':![]}),serverProcess[_0xbb1112(0xe5)]['on'](_0xbb1112(0xf8),_0x53b29a=>{const _0x56d779=_0xbb1112,_0x13bc7e=_0x53b29a['toString']()['trim']();_0x13bc7e&&console[_0x56d779(0x10c)]('[SERVER]\x20'+_0x13bc7e);}),serverProcess[_0xbb1112(0xed)]['on'](_0xbb1112(0xf8),_0x469e0f=>{const _0x592353=_0xbb1112,_0x2918a9=_0x469e0f[_0x592353(0x104)]()[_0x592353(0xec)]();_0x2918a9&&!_0x2918a9[_0x592353(0xff)]('ExperimentalWarning')&&console[_0x592353(0xfc)](_0x592353(0x103)+_0x2918a9);}),serverProcess['on']('error',_0x4facc5=>{const _0x1abbe5=_0xbb1112;console[_0x1abbe5(0xfc)](_0x1abbe5(0xe7),_0x4facc5[_0x1abbe5(0x10f)]),process[_0x1abbe5(0xea)](0x1);}),serverProcess['on'](_0xbb1112(0xea),(_0x485354,_0x4ecb4b)=>{const _0x237b5a=_0xbb1112;_0x485354!==null&&_0x485354!==0x0&&(console[_0x237b5a(0xfc)](_0x237b5a(0x108)+_0x485354),process[_0x237b5a(0xea)](_0x485354));}),setTimeout(_0x40b1b9,STARTUP_WAIT);});}function a0_0x4477(_0x5b7f03,_0x525123){_0x5b7f03=_0x5b7f03-0xe2;const _0x1d7a2a=a0_0x1d7a();let _0x447707=_0x1d7a2a[_0x5b7f03];return _0x447707;}async function startTerminalUI(){const _0x3380f6=a0_0x110849;console[_0x3380f6(0x10c)](_0x3380f6(0xeb)),console[_0x3380f6(0x10c)]('');const _0x5d00eb=join(rootDir,_0x3380f6(0xfa),_0x3380f6(0xe4)),_0x24a3df=spawn(_0x3380f6(0x10e),[_0x5d00eb],{'cwd':rootDir,'env':{...process['env']},'stdio':_0x3380f6(0x100)});return _0x24a3df['on'](_0x3380f6(0xfc),_0x48fd87=>{const _0x19e4c9=_0x3380f6;console[_0x19e4c9(0xfc)](_0x19e4c9(0x106),_0x48fd87[_0x19e4c9(0x10f)]),cleanup(),process['exit'](0x1);}),_0x24a3df['on']('exit',_0x243965=>{const _0x1e11e1=_0x3380f6;console[_0x1e11e1(0x10c)](_0x1e11e1(0xf7)),cleanup(),process[_0x1e11e1(0xea)](_0x243965||0x0);}),_0x24a3df;}function cleanup(){const _0x3e00a8=a0_0x110849;serverProcess&&!serverProcess[_0x3e00a8(0x110)]&&(console[_0x3e00a8(0x10c)](_0x3e00a8(0xfd)),serverProcess[_0x3e00a8(0xf6)]('SIGTERM'),setTimeout(()=>{const _0x25beb4=_0x3e00a8;!serverProcess[_0x25beb4(0x110)]&&serverProcess['kill']('SIGKILL');},0x1388));}process['on']('SIGINT',()=>{const _0x5da8c5=a0_0x110849;console[_0x5da8c5(0x10c)](_0x5da8c5(0xf2)),cleanup(),process['exit'](0x0);}),process['on'](a0_0x110849(0xe9),()=>{const _0x5ce051=a0_0x110849;console[_0x5ce051(0x10c)]('\x0a⚠️\x20\x20Received\x20SIGTERM,\x20shutting\x20down...'),cleanup(),process['exit'](0x0);}),process['on'](a0_0x110849(0xea),()=>{cleanup();});async function main(){const _0x94083a=a0_0x110849;console['log'](_0x94083a(0x105)),console[_0x94083a(0x10c)](_0x94083a(0x107)),console['log']('╚════════════════════════════════════════════════╝'),console[_0x94083a(0x10c)]('');try{await startServer(),await checkServerReady(),await startTerminalUI(),await new Promise(()=>{});}catch(_0x5eb9d1){console['error'](_0x94083a(0x109),_0x5eb9d1['message']),cleanup(),process[_0x94083a(0xea)](0x1);}}main();
3
+ function a0_0x2983(_0x3886ba,_0x11b1bf){_0x3886ba=_0x3886ba-0x6b;const _0x4d8960=a0_0x4d89();let _0x298359=_0x4d8960[_0x3886ba];return _0x298359;}const a0_0x1775eb=a0_0x2983;(function(_0x494f6b,_0x1a0c36){const _0x5b3c0f=a0_0x2983,_0x2a71d0=_0x494f6b();while(!![]){try{const _0x3bb9a5=-parseInt(_0x5b3c0f(0x95))/0x1*(-parseInt(_0x5b3c0f(0x9b))/0x2)+parseInt(_0x5b3c0f(0x83))/0x3+-parseInt(_0x5b3c0f(0x8a))/0x4*(-parseInt(_0x5b3c0f(0x6d))/0x5)+-parseInt(_0x5b3c0f(0x79))/0x6+-parseInt(_0x5b3c0f(0x92))/0x7*(-parseInt(_0x5b3c0f(0x93))/0x8)+-parseInt(_0x5b3c0f(0x7e))/0x9+parseInt(_0x5b3c0f(0x9f))/0xa*(parseInt(_0x5b3c0f(0x7f))/0xb);if(_0x3bb9a5===_0x1a0c36)break;else _0x2a71d0['push'](_0x2a71d0['shift']());}catch(_0x471dcf){_0x2a71d0['push'](_0x2a71d0['shift']());}}}(a0_0x4d89,0x669b9));import{spawn}from'child_process';import{fileURLToPath}from'url';import{dirname,join}from'path';import a0_0x3bb7d7 from'http';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename),rootDir=join(__dirname,'..'),SERVER_PORT=process[a0_0x1775eb(0x73)][a0_0x1775eb(0x6e)]||0x1f90,STARTUP_WAIT=0x7d0;let serverProcess=null;async function checkServerReady(_0x3ec69c=0xa,_0x47f70b=0x1f4){const _0x3babf8=a0_0x1775eb;for(let _0x583282=0x0;_0x583282<_0x3ec69c;_0x583282++){try{return await new Promise((_0x36a01f,_0x477dd7)=>{const _0x1540e8=a0_0x2983,_0x8fc168=a0_0x3bb7d7[_0x1540e8(0x8b)](_0x1540e8(0x7c)+SERVER_PORT+_0x1540e8(0x87),_0x2c286c=>{const _0x2edade=_0x1540e8;_0x2c286c[_0x2edade(0x84)]===0xc8?_0x36a01f():_0x477dd7(new Error('Server\x20returned\x20'+_0x2c286c[_0x2edade(0x84)]));});_0x8fc168['on'](_0x1540e8(0x7d),_0x477dd7),_0x8fc168['setTimeout'](0x3e8,()=>{const _0x5128aa=_0x1540e8;_0x8fc168[_0x5128aa(0x80)](),_0x477dd7(new Error('Timeout'));});}),console[_0x3babf8(0x88)](_0x3babf8(0x75)),!![];}catch(_0x13a35f){_0x583282<_0x3ec69c-0x1&&await new Promise(_0x28b8d4=>setTimeout(_0x28b8d4,_0x47f70b));}}return console[_0x3babf8(0x88)](_0x3babf8(0x7a)),![];}async function startServer(){return new Promise(_0x2982b5=>{const _0x4144ea=a0_0x2983;console['log'](_0x4144ea(0x8d));const _0x112044=join(rootDir,_0x4144ea(0x94),_0x4144ea(0xa0));serverProcess=spawn(_0x4144ea(0x89),[_0x112044],{'cwd':rootDir,'env':{...process[_0x4144ea(0x73)]},'stdio':[_0x4144ea(0x6f),_0x4144ea(0x6b),_0x4144ea(0x6b)],'detached':![]}),serverProcess[_0x4144ea(0x78)]['on']('data',_0x240e06=>{const _0x52ae1a=_0x4144ea,_0x5c3466=_0x240e06[_0x52ae1a(0x8c)]()[_0x52ae1a(0x9c)]();_0x5c3466&&console[_0x52ae1a(0x88)](_0x52ae1a(0x9a)+_0x5c3466);}),serverProcess[_0x4144ea(0x77)]['on'](_0x4144ea(0x86),_0x5cd899=>{const _0x13dddf=_0x4144ea,_0xdb78fb=_0x5cd899[_0x13dddf(0x8c)]()[_0x13dddf(0x9c)]();_0xdb78fb&&!_0xdb78fb[_0x13dddf(0x96)](_0x13dddf(0x81))&&console[_0x13dddf(0x7d)](_0x13dddf(0x98)+_0xdb78fb);}),serverProcess['on'](_0x4144ea(0x7d),_0x41068a=>{const _0x4d4471=_0x4144ea;console[_0x4d4471(0x7d)](_0x4d4471(0x85),_0x41068a['message']),process['exit'](0x1);}),serverProcess['on'](_0x4144ea(0x99),(_0x3e70c7,_0x6f79d7)=>{const _0x59f20b=_0x4144ea;_0x3e70c7!==null&&_0x3e70c7!==0x0&&(console[_0x59f20b(0x7d)](_0x59f20b(0x97)+_0x3e70c7),process['exit'](_0x3e70c7));}),setTimeout(_0x2982b5,STARTUP_WAIT);});}async function startTerminalUI(){const _0x285f63=a0_0x1775eb;console[_0x285f63(0x88)]('🖥️\x20\x20Starting\x20Terminal\x20UI...'),console['log']('');const _0x503ae2=join(rootDir,_0x285f63(0x90),'loxia-terminal.js'),_0x3a5869=spawn(_0x285f63(0x89),[_0x503ae2],{'cwd':rootDir,'env':{...process[_0x285f63(0x73)]},'stdio':_0x285f63(0x6c)});return _0x3a5869['on']('error',_0x202f25=>{const _0x16f596=_0x285f63;console['error'](_0x16f596(0x72),_0x202f25[_0x16f596(0x71)]),cleanup(),process['exit'](0x1);}),_0x3a5869['on'](_0x285f63(0x99),_0x274803=>{const _0x2effd0=_0x285f63;console['log'](_0x2effd0(0x91)),cleanup(),process[_0x2effd0(0x99)](_0x274803||0x0);}),_0x3a5869;}function cleanup(){const _0x4e691e=a0_0x1775eb;serverProcess&&!serverProcess['killed']&&(console[_0x4e691e(0x88)](_0x4e691e(0x9d)),serverProcess[_0x4e691e(0x70)]('SIGTERM'),setTimeout(()=>{const _0x34e583=_0x4e691e;!serverProcess['killed']&&serverProcess[_0x34e583(0x70)](_0x34e583(0x9e));},0x1388));}function a0_0x4d89(){const _0x4f7932=['index.js','SIGINT','pipe','inherit','20BkAhQh','PORT','ignore','kill','message','Failed\x20to\x20start\x20Terminal\x20UI:','env','SIGTERM','✅\x20Server\x20is\x20ready!','\x0a⚠️\x20\x20Received\x20SIGTERM,\x20shutting\x20down...','stderr','stdout','2914182kzpUrq','⚠️\x20\x20Server\x20may\x20not\x20be\x20fully\x20ready,\x20but\x20continuing\x20anyway...','\x0a⚠️\x20\x20Received\x20SIGINT,\x20shutting\x20down...','http://localhost:','error','7242939DqTCik','1750837tpprGy','destroy','ExperimentalWarning','╔════════════════════════════════════════════════╗','1841268fYXdEc','statusCode','Failed\x20to\x20start\x20server:','data','/health','log','node','86168zZAuzy','get','toString','🚀\x20Starting\x20Loxia\x20server...','║\x20\x20\x20Loxia\x20AI\x20Agents\x20-\x20Server\x20+\x20Terminal\x20UI\x20\x20\x20\x20\x20\x20║','Error\x20during\x20startup:','bin','\x0a👋\x20Terminal\x20UI\x20closed.','26733wALyTG','1016gShVOW','src','15BUAqdg','includes','Server\x20exited\x20with\x20code\x20','[SERVER\x20ERROR]\x20','exit','[SERVER]\x20','48886yglSFM','trim','🛑\x20Stopping\x20server...','SIGKILL','10qTOMvi'];a0_0x4d89=function(){return _0x4f7932;};return a0_0x4d89();}process['on'](a0_0x1775eb(0xa1),()=>{const _0x2cb1a0=a0_0x1775eb;console[_0x2cb1a0(0x88)](_0x2cb1a0(0x7b)),cleanup(),process['exit'](0x0);}),process['on'](a0_0x1775eb(0x74),()=>{const _0x151ff5=a0_0x1775eb;console[_0x151ff5(0x88)](_0x151ff5(0x76)),cleanup(),process[_0x151ff5(0x99)](0x0);}),process['on'](a0_0x1775eb(0x99),()=>{cleanup();});async function main(){const _0x4ce4d6=a0_0x1775eb;console[_0x4ce4d6(0x88)](_0x4ce4d6(0x82)),console[_0x4ce4d6(0x88)](_0x4ce4d6(0x8e)),console[_0x4ce4d6(0x88)]('╚════════════════════════════════════════════════╝'),console[_0x4ce4d6(0x88)]('');try{await startServer(),await checkServerReady(),await startTerminalUI(),await new Promise(()=>{});}catch(_0x413283){console[_0x4ce4d6(0x7d)](_0x4ce4d6(0x8f),_0x413283['message']),cleanup(),process['exit'](0x1);}}main();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loxia-labs/loxia-autopilot-one",
3
- "version": "1.0.11",
3
+ "version": "1.0.13",
4
4
  "description": "Loxia AI Agents System - No-code/vibe-code/companion-coder platform",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
@@ -50,7 +50,6 @@
50
50
  "express": "^4.18.2",
51
51
  "glob": "^10.4.5",
52
52
  "ink": "^5.2.1",
53
- "node-fetch": "^3.3.2",
54
53
  "pdf-parse": "^2.2.2",
55
54
  "postcss": "^8.5.6",
56
55
  "postcss-less": "^6.0.0",
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- const a0_0xb8fada=a0_0x1d51;(function(_0x574061,_0x1adf98){const _0x446a95=a0_0x1d51,_0x37c1ec=_0x574061();while(!![]){try{const _0x3ffa19=parseInt(_0x446a95(0x126))/0x1*(-parseInt(_0x446a95(0x111))/0x2)+parseInt(_0x446a95(0xff))/0x3*(parseInt(_0x446a95(0x114))/0x4)+parseInt(_0x446a95(0x11a))/0x5*(parseInt(_0x446a95(0x12c))/0x6)+parseInt(_0x446a95(0xec))/0x7*(-parseInt(_0x446a95(0xfb))/0x8)+parseInt(_0x446a95(0x109))/0x9+-parseInt(_0x446a95(0xed))/0xa*(parseInt(_0x446a95(0xfe))/0xb)+parseInt(_0x446a95(0xf5))/0xc*(parseInt(_0x446a95(0xf1))/0xd);if(_0x3ffa19===_0x1adf98)break;else _0x37c1ec['push'](_0x37c1ec['shift']());}catch(_0x4576d2){_0x37c1ec['push'](_0x37c1ec['shift']());}}}(a0_0x47b7,0x6ebfa));import{exec}from'child_process';import{promisify}from'util';import a0_0x49c047 from'https';import a0_0xe2e62e from'http';import a0_0x28a62c from'fs';import a0_0x22d47c from'path';import{fileURLToPath}from'url';import{createWriteStream}from'fs';import{pipeline}from'stream/promises';function a0_0x47b7(){const _0x352aea=['error','\x20\x20\x20✅\x20','12MWzift','\x0aYou\x20can\x20manually\x20install\x20scanners:','exit','\x20\x20\x20⚠️\x20\x20Python\x20not\x20found\x20-\x20skipping\x20Python\x20scanners','\x20\x20\x20✅\x20eslint-plugin-security\x20is\x20installed\x0a','log','\x20\x20\x20✅\x20Python\x20found:\x20','\x20\x20npm\x20install\x20--save-dev\x20eslint-plugin-security','chmod','📦\x20Checking\x20ESLint\x20Security\x20Plugin...','🐍\x20Checking\x20Python\x20scanners...','arch','\x20\x20\x20⚠️\x20\x20Failed\x20to\x20install\x20','platform','bandit','message','trim','7CishUn','293510djbJnz','yamllint','\x20\x20\x20Downloading\x20from\x20','https','13fdcrzU','eslint-plugin-security','python3\x20--version','headers','106944QMBJVu','═══════════════════════════════════════════════════════════','semgrep\x20--version','statusCode','\x20\x20\x20pip\x20install\x20semgrep\x0a','\x20\x20\x20Run:\x20npm\x20install\x20--save-dev\x20eslint-plugin-security\x0a','3845992DZlpEN','promises','\x20\x20\x20You\x20can\x20install\x20manually:\x20pip\x20install\x20','33RevZsz','138GHAUOL','\x20\x20\x20⚠️\x20\x20Failed\x20to\x20install\x20Semgrep:\x20','startsWith','node_modules','🔍\x20Installing\x20Semgrep...','pipe','\x20\x20\x20You\x20can\x20install\x20manually:\x20pip\x20install\x20semgrep\x0a','\x20\x20\x20⚠️\x20\x20eslint-plugin-security\x20not\x20found','\x20\x20\x20Please\x20install\x20manually:\x20https://semgrep.dev/docs/getting-started/\x0a','python','1329192EqbrNo','❌\x20Installation\x20failed:','Failed\x20to\x20download:\x20HTTP\x20','\x20\x20Installation\x20Complete','join','\x20\x20\x20Note:\x20To\x20use\x20system-wide,\x20add\x20to\x20PATH\x20or\x20install\x20globally:','dirname','catch','2412EstXSC','mkdir','...','32216KbRLKd','python3','\x20-m\x20pip\x20install\x20--user\x20','\x20\x20\x20✅\x20Semgrep\x20already\x20installed:\x20','stdout','location','1398155iUdwmd','\x20\x20pip\x20install\x20semgrep\x20bandit\x20pip-audit','\x20-m\x20pip\x20show\x20','\x20\x20\x20pip\x20install\x20semgrep\x20bandit\x20pip-audit\x20checkov\x20yamllint\x0a','\x20\x20\x20Semgrep\x20not\x20found\x20in\x20PATH,\x20installing\x20standalone\x20binary...','\x20\x20\x20Installing\x20','v1.55.0','pip-audit','url','\x20\x20\x20Location:\x20','semgrep','unlink','53zEeAIj','\x20\x20\x20Using\x20system-installed\x20Semgrep\x0a','═══════════════════════════════════════════════════════════\x0a','\x20\x20Installing\x20Security\x20Scanners'];a0_0x47b7=function(){return _0x352aea;};return a0_0x47b7();}const execAsync=promisify(exec),__filename=fileURLToPath(import.meta.url),__dirname=a0_0x22d47c[a0_0xb8fada(0x10f)](__filename),SCANNER_DIR=a0_0x22d47c[a0_0xb8fada(0x10d)](__dirname,'..',a0_0xb8fada(0x102),'.scanners'),SEMGREP_VERSION=a0_0xb8fada(0x120);console['log'](a0_0xb8fada(0xf6)),console['log'](a0_0xb8fada(0x129)),console[a0_0xb8fada(0xe0)](a0_0xb8fada(0x128));async function installScanners(){const _0x1b8933=a0_0xb8fada;await a0_0x28a62c[_0x1b8933(0xfc)][_0x1b8933(0x112)](SCANNER_DIR,{'recursive':!![]}),await checkESLintSecurity(),await installSemgrep(),await installPythonScanners(),console[_0x1b8933(0xe0)]('\x0a═══════════════════════════════════════════════════════════'),console['log'](_0x1b8933(0x10c)),console[_0x1b8933(0xe0)](_0x1b8933(0x128));}function a0_0x1d51(_0x38d02e,_0x2740c6){_0x38d02e=_0x38d02e-0xdf;const _0x47b79d=a0_0x47b7();let _0x1d51ea=_0x47b79d[_0x38d02e];return _0x1d51ea;}async function checkESLintSecurity(){const _0x3f901e=a0_0xb8fada;console[_0x3f901e(0xe0)](_0x3f901e(0xe4));try{await import(_0x3f901e(0xf2)),console[_0x3f901e(0xe0)](_0x3f901e(0xdf));}catch(_0x4e120e){console['log'](_0x3f901e(0x106)),console[_0x3f901e(0xe0)](_0x3f901e(0xfa));}}async function installSemgrep(){const _0x23c78e=a0_0xb8fada;console['log'](_0x23c78e(0x103));const _0xf83ef4=process[_0x23c78e(0xe8)],_0x202101=process[_0x23c78e(0xe6)];try{const _0x5d800a=await execAsync(_0x23c78e(0xf7),{'timeout':0x1388});console[_0x23c78e(0xe0)](_0x23c78e(0x117)+_0x5d800a[_0x23c78e(0x118)][_0x23c78e(0xeb)]()),console['log'](_0x23c78e(0x127));return;}catch(_0x5abba5){console[_0x23c78e(0xe0)](_0x23c78e(0x11e));}const _0x2f746b=getSemgrepBinaryInfo(_0xf83ef4,_0x202101);if(!_0x2f746b){console['log']('\x20\x20\x20⚠️\x20\x20No\x20Semgrep\x20binary\x20available\x20for\x20'+_0xf83ef4+'-'+_0x202101),console[_0x23c78e(0xe0)](_0x23c78e(0x107));return;}try{const _0x3af34b=a0_0x22d47c[_0x23c78e(0x10d)](SCANNER_DIR,_0x23c78e(0x124));console[_0x23c78e(0xe0)](_0x23c78e(0xef)+_0x2f746b[_0x23c78e(0x122)]+_0x23c78e(0x113)),await downloadFile(_0x2f746b[_0x23c78e(0x122)],_0x3af34b),await a0_0x28a62c[_0x23c78e(0xfc)][_0x23c78e(0xe3)](_0x3af34b,0x1ed),console[_0x23c78e(0xe0)]('\x20\x20\x20✅\x20Semgrep\x20installed\x20successfully'),console[_0x23c78e(0xe0)](_0x23c78e(0x123)+_0x3af34b+'\x0a'),console[_0x23c78e(0xe0)](_0x23c78e(0x10e)),console['log'](_0x23c78e(0xf9));}catch(_0x12ec93){console[_0x23c78e(0xe0)](_0x23c78e(0x100)+_0x12ec93[_0x23c78e(0xea)]),console[_0x23c78e(0xe0)](_0x23c78e(0x105));}}function getSemgrepBinaryInfo(_0x1007d4,_0x5ef846){return null;}async function installPythonScanners(){const _0xf55292=a0_0xb8fada;console[_0xf55292(0xe0)](_0xf55292(0xe5));let _0x1c6b11=null;try{await execAsync(_0xf55292(0xf3),{'timeout':0x1388}),_0x1c6b11=_0xf55292(0x115);}catch(_0x55209b){try{await execAsync('python\x20--version',{'timeout':0x1388}),_0x1c6b11=_0xf55292(0x108);}catch(_0x2db472){console[_0xf55292(0xe0)](_0xf55292(0x12f)),console[_0xf55292(0xe0)]('\x20\x20\x20To\x20enable\x20Python\x20scanning,\x20install\x20Python\x20and\x20run:'),console[_0xf55292(0xe0)](_0xf55292(0x11d));return;}}console[_0xf55292(0xe0)](_0xf55292(0xe1)+_0x1c6b11),await installViaPip(_0xf55292(0x124),_0x1c6b11),await installViaPip(_0xf55292(0xe9),_0x1c6b11),await installViaPip(_0xf55292(0x121),_0x1c6b11),await installViaPip('checkov',_0x1c6b11),await installViaPip(_0xf55292(0xee),_0x1c6b11),console[_0xf55292(0xe0)]('');}async function installViaPip(_0x248883,_0x27b8e0){const _0x273dc7=a0_0xb8fada;try{const _0x21ad4f=await execAsync(_0x27b8e0+_0x273dc7(0x11c)+_0x248883,{'timeout':0x1388});return console['log'](_0x273dc7(0x12b)+_0x248883+'\x20already\x20installed'),!![];}catch(_0x27d14d){console[_0x273dc7(0xe0)](_0x273dc7(0x11f)+_0x248883+'...');try{return await execAsync(_0x27b8e0+_0x273dc7(0x116)+_0x248883,{'timeout':0xea60}),console['log'](_0x273dc7(0x12b)+_0x248883+'\x20installed\x20successfully'),!![];}catch(_0x5ecdad){return console['log'](_0x273dc7(0xe7)+_0x248883+':\x20'+_0x5ecdad['message']),console[_0x273dc7(0xe0)](_0x273dc7(0xfd)+_0x248883),![];}}}async function downloadFile(_0x5f201f,_0xbecb71){return new Promise((_0x23afb0,_0x152268)=>{const _0x4d1a86=a0_0x1d51,_0xa580fc=_0x5f201f[_0x4d1a86(0x101)](_0x4d1a86(0xf0))?a0_0x49c047:a0_0xe2e62e;_0xa580fc['get'](_0x5f201f,_0xff2f68=>{const _0x5a8479=_0x4d1a86;if(_0xff2f68['statusCode']===0x12e||_0xff2f68[_0x5a8479(0xf8)]===0x12d){downloadFile(_0xff2f68[_0x5a8479(0xf4)][_0x5a8479(0x119)],_0xbecb71)['then'](_0x23afb0)[_0x5a8479(0x110)](_0x152268);return;}if(_0xff2f68[_0x5a8479(0xf8)]!==0xc8){_0x152268(new Error(_0x5a8479(0x10b)+_0xff2f68[_0x5a8479(0xf8)]));return;}const _0x10a3ba=createWriteStream(_0xbecb71);_0xff2f68[_0x5a8479(0x104)](_0x10a3ba),_0x10a3ba['on']('finish',()=>{_0x10a3ba['close'](),_0x23afb0();}),_0x10a3ba['on']('error',_0x18b40e=>{const _0x58172f=_0x5a8479;a0_0x28a62c[_0x58172f(0x125)](_0xbecb71,()=>{}),_0x152268(_0x18b40e);});})['on'](_0x4d1a86(0x12a),_0x152268);});}installScanners()['catch'](_0x2c8309=>{const _0x3192fa=a0_0xb8fada;console['error'](_0x3192fa(0x10a),_0x2c8309[_0x3192fa(0xea)]),console[_0x3192fa(0x12a)](_0x3192fa(0x12d)),console[_0x3192fa(0x12a)](_0x3192fa(0xe2)),console['error'](_0x3192fa(0x11b)),process[_0x3192fa(0x12e)](0x0);});
2
+ const a0_0x4b4a5e=a0_0x1490;(function(_0x1ab850,_0x35fd63){const _0x28d16e=a0_0x1490,_0x141487=_0x1ab850();while(!![]){try{const _0xf0d71f=-parseInt(_0x28d16e(0x17e))/0x1*(parseInt(_0x28d16e(0x176))/0x2)+parseInt(_0x28d16e(0x150))/0x3*(-parseInt(_0x28d16e(0x17f))/0x4)+parseInt(_0x28d16e(0x160))/0x5+parseInt(_0x28d16e(0x162))/0x6+parseInt(_0x28d16e(0x188))/0x7+-parseInt(_0x28d16e(0x14f))/0x8+parseInt(_0x28d16e(0x184))/0x9*(parseInt(_0x28d16e(0x161))/0xa);if(_0xf0d71f===_0x35fd63)break;else _0x141487['push'](_0x141487['shift']());}catch(_0x181488){_0x141487['push'](_0x141487['shift']());}}}(a0_0x169a,0xd7079));import{exec}from'child_process';function a0_0x169a(){const _0x1aa626=['log','v1.55.0','🐍\x20Checking\x20Python\x20scanners...','═══════════════════════════════════════════════════════════\x0a','semgrep','\x20\x20Installation\x20Complete','❌\x20Installation\x20failed:','then','\x20\x20\x20Please\x20install\x20manually:\x20https://semgrep.dev/docs/getting-started/\x0a','close','\x20\x20\x20pip\x20install\x20semgrep\x0a','\x20\x20\x20Run:\x20npm\x20install\x20--save-dev\x20eslint-plugin-security\x0a','Failed\x20to\x20download:\x20HTTP\x20','🔍\x20Installing\x20Semgrep...','3536285WzPEFC','3356220SzXHFq','5560950PBhzJT','\x20\x20\x20⚠️\x20\x20Failed\x20to\x20install\x20','\x20-m\x20pip\x20show\x20','\x20\x20\x20Installing\x20','\x20\x20\x20pip\x20install\x20semgrep\x20bandit\x20pip-audit\x20checkov\x20yamllint\x0a','\x20\x20\x20✅\x20','headers','promises','\x20installed\x20successfully','python3\x20--version','\x20\x20Installing\x20Security\x20Scanners','\x20\x20\x20✅\x20Python\x20found:\x20','error','📦\x20Checking\x20ESLint\x20Security\x20Plugin...','...','\x20\x20\x20You\x20can\x20install\x20manually:\x20pip\x20install\x20semgrep\x0a','message','trim','chmod','\x20\x20\x20⚠️\x20\x20Python\x20not\x20found\x20-\x20skipping\x20Python\x20scanners','75234vaGWsH','get','startsWith','catch','stdout','\x20\x20\x20Downloading\x20from\x20','python\x20--version','\x0a═══════════════════════════════════════════════════════════','35cOULYi','4OLqDPw','unlink','\x20\x20\x20✅\x20Semgrep\x20installed\x20successfully','url','\x20-m\x20pip\x20install\x20--user\x20','9hLvAsl','mkdir','\x20\x20npm\x20install\x20--save-dev\x20eslint-plugin-security','semgrep\x20--version','7505561QcbXfR','═══════════════════════════════════════════════════════════','statusCode','\x20\x20\x20Location:\x20','checkov','\x20\x20\x20Semgrep\x20not\x20found\x20in\x20PATH,\x20installing\x20standalone\x20binary...','dirname','python','yamllint','\x20\x20\x20Using\x20system-installed\x20Semgrep\x0a','join','node_modules','1307744SiHnBj','2043309QObrlc','location'];a0_0x169a=function(){return _0x1aa626;};return a0_0x169a();}import{promisify}from'util';import a0_0x317743 from'https';import a0_0x524f7b from'http';import a0_0x26eb04 from'fs';import a0_0x17eea3 from'path';import{fileURLToPath}from'url';import{createWriteStream}from'fs';import{pipeline}from'stream/promises';const execAsync=promisify(exec),__filename=fileURLToPath(import.meta.url),__dirname=a0_0x17eea3[a0_0x4b4a5e(0x18e)](__filename),SCANNER_DIR=a0_0x17eea3[a0_0x4b4a5e(0x192)](__dirname,'..',a0_0x4b4a5e(0x193),'.scanners'),SEMGREP_VERSION=a0_0x4b4a5e(0x153);console[a0_0x4b4a5e(0x152)](a0_0x4b4a5e(0x189)),console[a0_0x4b4a5e(0x152)](a0_0x4b4a5e(0x16c)),console['log'](a0_0x4b4a5e(0x155));async function installScanners(){const _0x4fb9d5=a0_0x4b4a5e;await a0_0x26eb04['promises'][_0x4fb9d5(0x185)](SCANNER_DIR,{'recursive':!![]}),await checkESLintSecurity(),await installSemgrep(),await installPythonScanners(),console['log'](_0x4fb9d5(0x17d)),console['log'](_0x4fb9d5(0x157)),console['log'](_0x4fb9d5(0x155));}async function checkESLintSecurity(){const _0x5baeb5=a0_0x4b4a5e;console['log'](_0x5baeb5(0x16f));try{await import('eslint-plugin-security'),console[_0x5baeb5(0x152)]('\x20\x20\x20✅\x20eslint-plugin-security\x20is\x20installed\x0a');}catch(_0x45e5c2){console[_0x5baeb5(0x152)]('\x20\x20\x20⚠️\x20\x20eslint-plugin-security\x20not\x20found'),console[_0x5baeb5(0x152)](_0x5baeb5(0x15d));}}async function installSemgrep(){const _0x15bbee=a0_0x4b4a5e;console[_0x15bbee(0x152)](_0x15bbee(0x15f));const _0x1a5cae=process['platform'],_0x502b7e=process['arch'];try{const _0xc4b779=await execAsync(_0x15bbee(0x187),{'timeout':0x1388});console['log']('\x20\x20\x20✅\x20Semgrep\x20already\x20installed:\x20'+_0xc4b779[_0x15bbee(0x17a)][_0x15bbee(0x173)]()),console[_0x15bbee(0x152)](_0x15bbee(0x191));return;}catch(_0x18323d){console[_0x15bbee(0x152)](_0x15bbee(0x18d));}const _0x52237c=getSemgrepBinaryInfo(_0x1a5cae,_0x502b7e);if(!_0x52237c){console[_0x15bbee(0x152)]('\x20\x20\x20⚠️\x20\x20No\x20Semgrep\x20binary\x20available\x20for\x20'+_0x1a5cae+'-'+_0x502b7e),console[_0x15bbee(0x152)](_0x15bbee(0x15a));return;}try{const _0x5f1d8c=a0_0x17eea3[_0x15bbee(0x192)](SCANNER_DIR,_0x15bbee(0x156));console['log'](_0x15bbee(0x17b)+_0x52237c[_0x15bbee(0x182)]+_0x15bbee(0x170)),await downloadFile(_0x52237c[_0x15bbee(0x182)],_0x5f1d8c),await a0_0x26eb04[_0x15bbee(0x169)][_0x15bbee(0x174)](_0x5f1d8c,0x1ed),console['log'](_0x15bbee(0x181)),console[_0x15bbee(0x152)](_0x15bbee(0x18b)+_0x5f1d8c+'\x0a'),console[_0x15bbee(0x152)]('\x20\x20\x20Note:\x20To\x20use\x20system-wide,\x20add\x20to\x20PATH\x20or\x20install\x20globally:'),console[_0x15bbee(0x152)](_0x15bbee(0x15c));}catch(_0xf69d03){console[_0x15bbee(0x152)]('\x20\x20\x20⚠️\x20\x20Failed\x20to\x20install\x20Semgrep:\x20'+_0xf69d03['message']),console['log'](_0x15bbee(0x171));}}function a0_0x1490(_0x4916aa,_0x685829){_0x4916aa=_0x4916aa-0x14f;const _0x169a01=a0_0x169a();let _0x1490d0=_0x169a01[_0x4916aa];return _0x1490d0;}function getSemgrepBinaryInfo(_0x24dcb9,_0xd103f8){return null;}async function installPythonScanners(){const _0x5e7b8d=a0_0x4b4a5e;console[_0x5e7b8d(0x152)](_0x5e7b8d(0x154));let _0x5a1167=null;try{await execAsync(_0x5e7b8d(0x16b),{'timeout':0x1388}),_0x5a1167='python3';}catch(_0x2354c0){try{await execAsync(_0x5e7b8d(0x17c),{'timeout':0x1388}),_0x5a1167=_0x5e7b8d(0x18f);}catch(_0x1962bc){console[_0x5e7b8d(0x152)](_0x5e7b8d(0x175)),console[_0x5e7b8d(0x152)]('\x20\x20\x20To\x20enable\x20Python\x20scanning,\x20install\x20Python\x20and\x20run:'),console[_0x5e7b8d(0x152)](_0x5e7b8d(0x166));return;}}console['log'](_0x5e7b8d(0x16d)+_0x5a1167),await installViaPip(_0x5e7b8d(0x156),_0x5a1167),await installViaPip('bandit',_0x5a1167),await installViaPip('pip-audit',_0x5a1167),await installViaPip(_0x5e7b8d(0x18c),_0x5a1167),await installViaPip(_0x5e7b8d(0x190),_0x5a1167),console[_0x5e7b8d(0x152)]('');}async function installViaPip(_0x57c211,_0x272195){const _0x50f9ec=a0_0x4b4a5e;try{const _0x4e7fda=await execAsync(_0x272195+_0x50f9ec(0x164)+_0x57c211,{'timeout':0x1388});return console[_0x50f9ec(0x152)]('\x20\x20\x20✅\x20'+_0x57c211+'\x20already\x20installed'),!![];}catch(_0x1863ab){console[_0x50f9ec(0x152)](_0x50f9ec(0x165)+_0x57c211+'...');try{return await execAsync(_0x272195+_0x50f9ec(0x183)+_0x57c211,{'timeout':0xea60}),console[_0x50f9ec(0x152)](_0x50f9ec(0x167)+_0x57c211+_0x50f9ec(0x16a)),!![];}catch(_0x12cf72){return console[_0x50f9ec(0x152)](_0x50f9ec(0x163)+_0x57c211+':\x20'+_0x12cf72[_0x50f9ec(0x172)]),console[_0x50f9ec(0x152)]('\x20\x20\x20You\x20can\x20install\x20manually:\x20pip\x20install\x20'+_0x57c211),![];}}}async function downloadFile(_0x193038,_0x1c4a01){return new Promise((_0x33ab40,_0x16ae02)=>{const _0x531b7f=a0_0x1490,_0x3fdc33=_0x193038[_0x531b7f(0x178)]('https')?a0_0x317743:a0_0x524f7b;_0x3fdc33[_0x531b7f(0x177)](_0x193038,_0x1c1ce5=>{const _0xe2977a=_0x531b7f;if(_0x1c1ce5[_0xe2977a(0x18a)]===0x12e||_0x1c1ce5[_0xe2977a(0x18a)]===0x12d){downloadFile(_0x1c1ce5[_0xe2977a(0x168)][_0xe2977a(0x151)],_0x1c4a01)[_0xe2977a(0x159)](_0x33ab40)[_0xe2977a(0x179)](_0x16ae02);return;}if(_0x1c1ce5[_0xe2977a(0x18a)]!==0xc8){_0x16ae02(new Error(_0xe2977a(0x15e)+_0x1c1ce5[_0xe2977a(0x18a)]));return;}const _0x1852be=createWriteStream(_0x1c4a01);_0x1c1ce5['pipe'](_0x1852be),_0x1852be['on']('finish',()=>{const _0x13c173=_0xe2977a;_0x1852be[_0x13c173(0x15b)](),_0x33ab40();}),_0x1852be['on'](_0xe2977a(0x16e),_0x325351=>{const _0x5887f0=_0xe2977a;a0_0x26eb04[_0x5887f0(0x180)](_0x1c4a01,()=>{}),_0x16ae02(_0x325351);});})['on'](_0x531b7f(0x16e),_0x16ae02);});}installScanners()['catch'](_0x21e0ac=>{const _0x5bb720=a0_0x4b4a5e;console['error'](_0x5bb720(0x158),_0x21e0ac[_0x5bb720(0x172)]),console[_0x5bb720(0x16e)]('\x0aYou\x20can\x20manually\x20install\x20scanners:'),console[_0x5bb720(0x16e)](_0x5bb720(0x186)),console['error']('\x20\x20pip\x20install\x20semgrep\x20bandit\x20pip-audit'),process['exit'](0x0);});
@@ -1 +1 @@
1
- function a0_0x5df7(_0x1444b4,_0x5aa038){_0x1444b4=_0x1444b4-0x1a9;const _0x3ca1eb=a0_0x3ca1();let _0x5df7bf=_0x3ca1eb[_0x1444b4];if(a0_0x5df7['VOPMxo']===undefined){var _0x3c2063=function(_0x103309){const _0x3846e3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x284c9e='',_0xc6e326='';for(let _0x1a1dc2=0x0,_0x226398,_0x1e077b,_0x231263=0x0;_0x1e077b=_0x103309['charAt'](_0x231263++);~_0x1e077b&&(_0x226398=_0x1a1dc2%0x4?_0x226398*0x40+_0x1e077b:_0x1e077b,_0x1a1dc2++%0x4)?_0x284c9e+=String['fromCharCode'](0xff&_0x226398>>(-0x2*_0x1a1dc2&0x6)):0x0){_0x1e077b=_0x3846e3['indexOf'](_0x1e077b);}for(let _0x36de3e=0x0,_0x1913fe=_0x284c9e['length'];_0x36de3e<_0x1913fe;_0x36de3e++){_0xc6e326+='%'+('00'+_0x284c9e['charCodeAt'](_0x36de3e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xc6e326);};a0_0x5df7['Xrudti']=_0x3c2063,a0_0x5df7['qpYMFc']={},a0_0x5df7['VOPMxo']=!![];}const _0x5d2deb=_0x3ca1eb[0x0],_0xf2cb8f=_0x1444b4+_0x5d2deb,_0x5667fa=a0_0x5df7['qpYMFc'][_0xf2cb8f];return!_0x5667fa?(_0x5df7bf=a0_0x5df7['Xrudti'](_0x5df7bf),a0_0x5df7['qpYMFc'][_0xf2cb8f]=_0x5df7bf):_0x5df7bf=_0x5667fa,_0x5df7bf;}const a0_0x5a7d58=a0_0x5df7;(function(_0x121551,_0x7c88d4){const _0xb44e51=a0_0x5df7,_0xcdd8f4=_0x121551();while(!![]){try{const _0x4d6460=parseInt(_0xb44e51(0x1ba))/0x1+-parseInt(_0xb44e51(0x1c9))/0x2+parseInt(_0xb44e51(0x1d2))/0x3*(parseInt(_0xb44e51(0x1e1))/0x4)+parseInt(_0xb44e51(0x1df))/0x5+parseInt(_0xb44e51(0x1dd))/0x6*(-parseInt(_0xb44e51(0x1ae))/0x7)+parseInt(_0xb44e51(0x1cb))/0x8*(-parseInt(_0xb44e51(0x1b2))/0x9)+parseInt(_0xb44e51(0x1cf))/0xa;if(_0x4d6460===_0x7c88d4)break;else _0xcdd8f4['push'](_0xcdd8f4['shift']());}catch(_0x15ecde){_0xcdd8f4['push'](_0xcdd8f4['shift']());}}}(a0_0x3ca1,0x7adff));function a0_0x3ca1(){const _0xce4370=['mtq4nJu5CLDdBLzy','C2nZCW','zM9YBwf0ug9ZDentu0vYCM9Y','zNvUy3rPB24','mJDlwK1uuu0','BgvZCW','y2f0zwDVCML6zvn0EwXLBgLUDfj1Bgu','BM8TDw5RBM93BG','C3LUDgf4','zw5KC1DPDgG','lNnHC3m','v0fstKLorW','otGYotKXEvHLALLK','CMvZDwX0CW','zxH0zw5K','zwXZzq','CMvHC29U','Cg9ZDgnZCW','C2v2zxjPDhK','Cg9ZDgnZC1nJC3m','BgLUDfn0EwXLCW','BwL4Aw4','Cg9ZDgnZC0XLC3m','q0furuDpuLK','y2HLy2TtEw50yxG','u1rzteu','Dg9mB3DLCKnHC2u','nJe5mJm4CxPtBxni','CNvSzq','mJmXota2nfjxqMndqW','Bg9Nz2vY','B3b0Aw1PEMu','zM9Y','mtK4ndyXmhfyseHKyG','CMvJB21Tzw5Kzwq','u3r5BgvSAw50igfUywX5C2LZigzHAwXLza','ntCYmZDLyvbHs3i','ChvZAa','yw5HBhL6zq','uevsrK9stufoq0u','C3r5BgvSAw50','lMXLC3m','CgvYzM9YBwfUy2u','zgvMyxvSDa','zg91yMXL','y29SDw1U','lMnZCW','mtu2wNLSC09I','BwvZC2fNzq','mJeXodmZmhn5AK1pvW','BgLUzq','mtmYu2PptwzI','ChjVy2vZCW','u1Lovefy','Aw5JBhvKzxm','zgvIDwC','BM8Tzw1WDhK','u0vwrvjjvfK','DxnL','q1ntigfUywX5C2LZigzHAwXLza','Cg9ZDgnZCY1SzxnZ'];a0_0x3ca1=function(){return _0xce4370;};return a0_0x3ca1();}import{STATIC_ANALYSIS}from'../utilities/constants.js';class CSSAnalyzer{constructor(_0x284c9e=null){const _0x29a94b=a0_0x5df7;this[_0x29a94b(0x1cc)]=_0x284c9e,this[_0x29a94b(0x1d6)]=null,this['postcss']=null,this[_0x29a94b(0x1c1)]=null,this[_0x29a94b(0x1c4)]=null;}async[a0_0x5a7d58(0x1d4)](_0xc6e326,_0x1a1dc2,_0x226398={}){const _0x4bf927=a0_0x5a7d58;try{const _0x1e077b=[],_0x231263=this['detectLanguage'](_0xc6e326),_0x36de3e=await this[_0x4bf927(0x1c6)](_0xc6e326,_0x1a1dc2,_0x231263);_0x1e077b['push'](..._0x36de3e);if(_0x36de3e['length']===0x0){const _0x1913fe=await this[_0x4bf927(0x1c2)](_0xc6e326,_0x1a1dc2,_0x231263);_0x1e077b['push'](..._0x1913fe);}return this[_0x4bf927(0x1cc)]?.['debug']('CSS\x20analysis\x20completed',{'file':_0xc6e326,'language':_0x231263,'totalDiagnostics':_0x1e077b['length'],'errors':_0x1e077b['filter'](_0x10fe61=>_0x10fe61['severity']===STATIC_ANALYSIS['SEVERITY']['ERROR'])['length'],'warnings':_0x1e077b['filter'](_0x34f003=>_0x34f003['severity']===STATIC_ANALYSIS['SEVERITY']['WARNING'])['length']}),_0x1e077b;}catch(_0xa38063){return this[_0x4bf927(0x1cc)]?.['error'](_0x4bf927(0x1ac),{'file':_0xc6e326,'error':_0xa38063['message']}),[];}}async[a0_0x5a7d58(0x1c6)](_0x39ce07,_0x4782d9,_0x215d13){const _0x3b02f9=a0_0x5a7d58,_0x71d397=[];try{if(!this[_0x3b02f9(0x1bf)]){const _0x23609f=await import(_0x3b02f9(0x1bf));this['postcss']=_0x23609f['default'];}let _0x187364=null;if(_0x215d13===_0x3b02f9(0x1af)){if(!this['postcssScss']){const _0x321327=await import('postcss-scss');this['postcssScss']=_0x321327['default'];}_0x187364=this[_0x3b02f9(0x1c1)];}else{if(_0x215d13===_0x3b02f9(0x1b3)){if(!this[_0x3b02f9(0x1c4)]){const _0x10c79d=await import(_0x3b02f9(0x1ad));this[_0x3b02f9(0x1c4)]=_0x10c79d[_0x3b02f9(0x1d9)];}_0x187364=this['postcssLess'];}}const _0x4ef29e=this['postcss']()[_0x3b02f9(0x1e2)](_0x4782d9,{'from':_0x39ce07,'syntax':_0x187364}),_0x3c047b=_0x4ef29e['root'];this[_0x3b02f9(0x1cc)]?.[_0x3b02f9(0x1e5)]('PostCSS\x20syntax\x20check\x20passed',{'file':_0x39ce07});}catch(_0x1e1296){const _0x3ad597=this[_0x3b02f9(0x1b0)](_0x1e1296,_0x39ce07);_0x3ad597&&_0x71d397[_0x3b02f9(0x1d3)](_0x3ad597);}return _0x71d397;}async['lintStyles'](_0x1f0863,_0x4af19f,_0x3539d3){const _0x33dc41=a0_0x5a7d58,_0x41ee84=[];try{if(!this[_0x33dc41(0x1d6)]){const _0x133253=await import(_0x33dc41(0x1d6));this[_0x33dc41(0x1d6)]=_0x133253[_0x33dc41(0x1d9)];}const _0x144920={'extends':['stylelint-config-standard'],'rules':{'color-no-invalid-hex':!![],'font-family-no-duplicate-names':!![],'function-calc-no-invalid':!![],'string-no-newline':!![],'unit-no-unknown':!![],'property-no-unknown':!![],'declaration-block-no-duplicate-properties':!![],'selector-pseudo-class-no-unknown':!![],'selector-pseudo-element-no-unknown':!![],'selector-type-no-unknown':[!![],{'ignoreTypes':['/^custom-/','ng-deep']}],'media-feature-name-no-unknown':!![],'at-rule-no-unknown':_0x3539d3==='scss'?[!![],{'ignoreAtRules':[_0x33dc41(0x1c3),'include',_0x33dc41(0x1bc),'if',_0x33dc41(0x1bd),_0x33dc41(0x1ce),'each','while',_0x33dc41(0x1b1),'return','content',_0x33dc41(0x1ab),'forward']}]:_0x3539d3==='less'?[!![],{'ignoreAtRules':['plugin']}]:!![],'comment-no-empty':!![],'no-duplicate-selectors':!![],'no-empty-source':null,'block-no-empty':!![],'declaration-block-no-shorthand-property-overrides':!![],'font-family-no-missing-generic-family-keyword':!![],'function-linear-gradient-no-nonstandard-direction':!![],'no-descending-specificity':null,'no-duplicate-at-import-rules':!![],'no-extra-semicolons':!![],'no-invalid-double-slash-comments':!![],'selector-pseudo-element-colon-notation':_0x33dc41(0x1da),'selector-type-case':'lower'},'customSyntax':_0x3539d3===_0x33dc41(0x1af)?'postcss-scss':_0x3539d3==='less'?_0x33dc41(0x1ad):undefined},_0x2d5650=await this['stylelint']['lint']({'code':_0x4af19f,'codeFilename':_0x1f0863,'config':_0x144920});if(_0x2d5650[_0x33dc41(0x1bb)]&&_0x2d5650[_0x33dc41(0x1bb)]['length']>0x0){const _0x4de259=_0x2d5650['results'][0x0];if(_0x4de259['warnings'])for(const _0x1b2b12 of _0x4de259['warnings']){_0x41ee84['push']({'file':_0x1f0863,'line':_0x1b2b12[_0x33dc41(0x1e0)]||0x1,'column':_0x1b2b12[_0x33dc41(0x1db)]||0x1,'severity':_0x1b2b12[_0x33dc41(0x1c0)]==='error'?STATIC_ANALYSIS['SEVERITY']['ERROR']:STATIC_ANALYSIS['SEVERITY'][_0x33dc41(0x1b9)],'rule':_0x1b2b12[_0x33dc41(0x1ca)]||'unknown','message':_0x1b2b12['text'],'category':this[_0x33dc41(0x1b4)](_0x1b2b12['rule']),'fixable':![],'source':'stylelint'});}}}catch(_0xf0ff65){this['logger']?.['warn'](_0x33dc41(0x1d1),{'file':_0x1f0863,'error':_0xf0ff65[_0x33dc41(0x1de)]});}return _0x41ee84;}[a0_0x5a7d58(0x1b0)](_0x5874c4,_0x293733){const _0x53b9c5=a0_0x5a7d58;return{'file':_0x293733,'line':_0x5874c4['line']||0x1,'column':_0x5874c4[_0x53b9c5(0x1db)]||0x1,'severity':STATIC_ANALYSIS[_0x53b9c5(0x1aa)]['ERROR'],'rule':_0x5874c4['name']||'CssSyntaxError','message':_0x5874c4[_0x53b9c5(0x1be)]||_0x5874c4['message'],'category':STATIC_ANALYSIS['CATEGORY'][_0x53b9c5(0x1e3)],'fixable':![],'source':'postcss','code':_0x5874c4['source']||undefined};}['categorizeStylelintRule'](_0x5e0b95){const _0x64a6d6=a0_0x5a7d58;if(!_0x5e0b95)return STATIC_ANALYSIS[_0x64a6d6(0x1c5)][_0x64a6d6(0x1c7)];const _0x230c47=_0x5e0b95['toLowerCase']();if(_0x230c47[_0x64a6d6(0x1e4)]('no-invalid')||_0x230c47[_0x64a6d6(0x1e4)](_0x64a6d6(0x1b5))||_0x230c47['includes'](_0x64a6d6(0x1a9))||_0x230c47[_0x64a6d6(0x1e4)](_0x64a6d6(0x1b6)))return STATIC_ANALYSIS['CATEGORY']['SYNTAX'];if(_0x230c47[_0x64a6d6(0x1e4)](_0x64a6d6(0x1d8))||_0x230c47[_0x64a6d6(0x1e4)](_0x64a6d6(0x1cd)))return STATIC_ANALYSIS['CATEGORY'][_0x64a6d6(0x1d5)];if(_0x230c47[_0x64a6d6(0x1e4)]('best-practice')||_0x230c47['includes'](_0x64a6d6(0x1d0)))return STATIC_ANALYSIS['CATEGORY']['BEST_PRACTICE'];return STATIC_ANALYSIS['CATEGORY'][_0x64a6d6(0x1c7)];}['detectLanguage'](_0x26c835){const _0x5ec0b5=a0_0x5a7d58,_0x5aef42=_0x26c835[_0x5ec0b5(0x1c8)]();if(_0x5aef42[_0x5ec0b5(0x1b7)]('.scss')||_0x5aef42['endsWith'](_0x5ec0b5(0x1b8)))return'scss';if(_0x5aef42[_0x5ec0b5(0x1b7)]('.less'))return'less';return'css';}['getSupportedExtensions'](){const _0x3c7d06=a0_0x5a7d58;return[_0x3c7d06(0x1dc),'.scss','.sass',_0x3c7d06(0x1d7)];}['supportsAutoFix'](){return![];}}export default CSSAnalyzer;
1
+ function a0_0x413b(){const _0x3c1263=['B3b0Aw1PEMu','CMvHC29U','C291CMnL','Bg9Nz2vY','rvjst1i','BMCTzgvLCa','ChjVy2vZCW','BwL4Aw4','C3r5BgvSAw50lwnVBMzPzY1ZDgfUzgfYza','zNvUy3rPB24','n05vzwDPBa','CM9VDa','y2HLy2TtEw50yxG','Cg9ZDgnZCY1Zy3nZ','mJmZnZi5nNn5B3b2ta','zM9YD2fYza','zM9Y','BgLUzq','lMnZCW','BgLUDfn0EwXLCW','mtGXmZm0nLfWzKLpAW','ofDUCerNCa','Cg9ZDgnZCW','lNnHC3m','ug9ZDentuYbZEw50yxGGy2HLy2SGCgfZC2vK','zwfJAa','zgvMyxvSDa','Aw5JBhvKzxm','C2v2zxjPDhK','Cg9ZDgnZCY1SzxnZ','qKvtvf9quKfdveLdrq','C3r5BgvSAw50','BM8TAw52ywXPza','ChvZAa','C3vWCg9YDhnbDxrVrML4','q0furuDpuLK','q1ntigfUywX5C2LZignVBxbSzxrLza','BgvZCW','BgLUDa','l15JDxn0B20TlW','Dw5RBM93BG','C3LUDgf4','CNvSzq','zM9YBwf0ug9ZDentu0vYCM9Y','ndC0mJa1mKDwrMjZDG','mZe0otu0ndbWu2Put1i','zgvIDwC','zw5KC1DPDgG','v0fstKLorW','DxnL','ntC4ntaWmMv4tvjfzG','BM8TDw5RBM93BG','u3r5BgvSAw50igfUywX5C2LZigzHAwXLza','BgvUz3rO','y29UDgvUDa','z2v0u3vWCg9YDgvKrxH0zw5ZAw9UCW','BwvZC2fNzq','zMLSDgvY','Cg9ZDgnZC0XLC3m','CMvZDwX0CW','CMvJB21Tzw5Kzwq','y29SDw1U','BMfTzq','y2f0zwDVCML6zvn0EwXLBgLUDfj1Bgu','u1rzteu','CgvYzM9YBwfUy2u','mZu2mdK3m25ywNbxCq','BM8Tzw1WDhK','lMXLC3m','Bg93zxi','u0vwrvjjvfK','mJyYmZvyz2jrvxa','mujgzxDOqq','u1Lovefy','D2fYBMLUz3m','yMvZDc1WCMfJDgLJzq','C2nZCW'];a0_0x413b=function(){return _0x3c1263;};return a0_0x413b();}function a0_0x13d2(_0x546047,_0x270734){_0x546047=_0x546047-0xd6;const _0x413be5=a0_0x413b();let _0x13d209=_0x413be5[_0x546047];if(a0_0x13d2['HbcOqP']===undefined){var _0x3d165a=function(_0x297df6){const _0x412769='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2d0184='',_0x31c6e0='';for(let _0x18e19a=0x0,_0x316761,_0x2672b4,_0x195f46=0x0;_0x2672b4=_0x297df6['charAt'](_0x195f46++);~_0x2672b4&&(_0x316761=_0x18e19a%0x4?_0x316761*0x40+_0x2672b4:_0x2672b4,_0x18e19a++%0x4)?_0x2d0184+=String['fromCharCode'](0xff&_0x316761>>(-0x2*_0x18e19a&0x6)):0x0){_0x2672b4=_0x412769['indexOf'](_0x2672b4);}for(let _0x111079=0x0,_0x1f18a8=_0x2d0184['length'];_0x111079<_0x1f18a8;_0x111079++){_0x31c6e0+='%'+('00'+_0x2d0184['charCodeAt'](_0x111079)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x31c6e0);};a0_0x13d2['DWIyfN']=_0x3d165a,a0_0x13d2['upSdMu']={},a0_0x13d2['HbcOqP']=!![];}const _0x50aad4=_0x413be5[0x0],_0x1924d8=_0x546047+_0x50aad4,_0x3f7f7b=a0_0x13d2['upSdMu'][_0x1924d8];return!_0x3f7f7b?(_0x13d209=a0_0x13d2['DWIyfN'](_0x13d209),a0_0x13d2['upSdMu'][_0x1924d8]=_0x13d209):_0x13d209=_0x3f7f7b,_0x13d209;}const a0_0x57b9bf=a0_0x13d2;(function(_0x576f16,_0x46563d){const _0x9c847f=a0_0x13d2,_0x42a597=_0x576f16();while(!![]){try{const _0x2c51bf=parseInt(_0x9c847f(0xdd))/0x1*(-parseInt(_0x9c847f(0xf6))/0x2)+-parseInt(_0x9c847f(0xd7))/0x3+-parseInt(_0x9c847f(0xf0))/0x4+-parseInt(_0x9c847f(0xdc))/0x5+-parseInt(_0x9c847f(0x10e))/0x6*(-parseInt(_0x9c847f(0xec))/0x7)+-parseInt(_0x9c847f(0xf7))/0x8*(parseInt(_0x9c847f(0x114))/0x9)+parseInt(_0x9c847f(0x10f))/0xa;if(_0x2c51bf===_0x46563d)break;else _0x42a597['push'](_0x42a597['shift']());}catch(_0x4dc4d7){_0x42a597['push'](_0x42a597['shift']());}}}(a0_0x413b,0x95df1));import{STATIC_ANALYSIS}from'../utilities/constants.js';class CSSAnalyzer{constructor(_0x2d0184=null){const _0xe69fb=a0_0x13d2;this[_0xe69fb(0xe5)]=_0x2d0184,this[_0xe69fb(0x101)]=null,this['postcss']=null,this['postcssScss']=null,this[_0xe69fb(0x11c)]=null;}async['analyze'](_0x31c6e0,_0x18e19a,_0x316761={}){const _0x3f1bef=a0_0x13d2;try{const _0x2672b4=[],_0x195f46=this['detectLanguage'](_0x31c6e0),_0x111079=await this[_0x3f1bef(0xee)](_0x31c6e0,_0x18e19a,_0x195f46);_0x2672b4[_0x3f1bef(0x103)](..._0x111079);if(_0x111079['length']===0x0){const _0x1f18a8=await this[_0x3f1bef(0xf5)](_0x31c6e0,_0x18e19a,_0x195f46);_0x2672b4[_0x3f1bef(0x103)](..._0x1f18a8);}return this['logger']?.[_0x3f1bef(0x110)](_0x3f1bef(0x106),{'file':_0x31c6e0,'language':_0x195f46,'totalDiagnostics':_0x2672b4[_0x3f1bef(0x117)],'errors':_0x2672b4[_0x3f1bef(0x11b)](_0x2b6745=>_0x2b6745['severity']===STATIC_ANALYSIS['SEVERITY']['ERROR'])[_0x3f1bef(0x117)],'warnings':_0x2672b4['filter'](_0x403a56=>_0x403a56[_0x3f1bef(0xfe)]===STATIC_ANALYSIS['SEVERITY']['WARNING'])['length']}),_0x2672b4;}catch(_0x5acdb2){return this['logger']?.['error']('CSS\x20analysis\x20failed',{'file':_0x31c6e0,'error':_0x5acdb2['message']}),[];}}async[a0_0x57b9bf(0xee)](_0x141ce9,_0x1b196f,_0x4bc73f){const _0x4884e6=a0_0x57b9bf,_0x283f94=[];try{if(!this['postcss']){const _0x549270=await import(_0x4884e6(0xf8));this[_0x4884e6(0xf8)]=_0x549270[_0x4884e6(0xfc)];}let _0x136e74=null;if(_0x4bc73f===_0x4884e6(0xe1)){if(!this['postcssScss']){const _0x3ea416=await import(_0x4884e6(0xef));this['postcssScss']=_0x3ea416[_0x4884e6(0xfc)];}_0x136e74=this['postcssScss'];}else{if(_0x4bc73f===_0x4884e6(0x107)){if(!this['postcssLess']){const _0x105650=await import(_0x4884e6(0xff));this['postcssLess']=_0x105650['default'];}_0x136e74=this['postcssLess'];}}const _0x22c404=this['postcss']()[_0x4884e6(0xe8)](_0x1b196f,{'from':_0x141ce9,'syntax':_0x136e74}),_0x16d128=_0x22c404[_0x4884e6(0xed)];this['logger']?.['debug'](_0x4884e6(0xfa),{'file':_0x141ce9});}catch(_0x249a22){const _0xa2c668=this[_0x4884e6(0x10d)](_0x249a22,_0x141ce9);_0xa2c668&&_0x283f94['push'](_0xa2c668);}return _0x283f94;}async[a0_0x57b9bf(0xf5)](_0x1a1401,_0x8d9a4a,_0x39e60f){const _0x30520f=a0_0x57b9bf,_0xfebc08=[];try{if(!this[_0x30520f(0x101)]){const _0x35d8aa=await import(_0x30520f(0x101));this['stylelint']=_0x35d8aa[_0x30520f(0xfc)];}const _0x1582ee={'extends':[_0x30520f(0xea)],'rules':{'color-no-invalid-hex':!![],'font-family-no-duplicate-names':!![],'function-calc-no-invalid':!![],'string-no-newline':!![],'unit-no-unknown':!![],'property-no-unknown':!![],'declaration-block-no-duplicate-properties':!![],'selector-pseudo-class-no-unknown':!![],'selector-pseudo-element-no-unknown':!![],'selector-type-no-unknown':[!![],{'ignoreTypes':[_0x30520f(0x109),_0x30520f(0xe7)]}],'media-feature-name-no-unknown':!![],'at-rule-no-unknown':_0x39e60f===_0x30520f(0xe1)?[!![],{'ignoreAtRules':[_0x30520f(0xe9),'include','extend','if','else',_0x30520f(0xf2),_0x30520f(0xfb),'while',_0x30520f(0xeb),'return',_0x30520f(0x118),_0x30520f(0x113),_0x30520f(0xf1)]}]:_0x39e60f==='less'?[!![],{'ignoreAtRules':['plugin']}]:!![],'comment-no-empty':!![],'no-duplicate-selectors':!![],'no-empty-source':null,'block-no-empty':!![],'declaration-block-no-shorthand-property-overrides':!![],'font-family-no-missing-generic-family-keyword':!![],'function-linear-gradient-no-nonstandard-direction':!![],'no-descending-specificity':null,'no-duplicate-at-import-rules':!![],'no-extra-semicolons':!![],'no-invalid-double-slash-comments':!![],'selector-pseudo-element-colon-notation':'double','selector-type-case':_0x30520f(0xda)},'customSyntax':_0x39e60f===_0x30520f(0xe1)?'postcss-scss':_0x39e60f==='less'?_0x30520f(0xff):undefined},_0x331d36=await this[_0x30520f(0x101)][_0x30520f(0x108)]({'code':_0x8d9a4a,'codeFilename':_0x1a1401,'config':_0x1582ee});if(_0x331d36['results']&&_0x331d36['results'][_0x30520f(0x117)]>0x0){const _0x5465f8=_0x331d36[_0x30520f(0x11d)][0x0];if(_0x5465f8[_0x30520f(0xdf)])for(const _0x185539 of _0x5465f8['warnings']){_0xfebc08['push']({'file':_0x1a1401,'line':_0x185539[_0x30520f(0xf3)]||0x1,'column':_0x185539[_0x30520f(0x11f)]||0x1,'severity':_0x185539['severity']==='error'?STATIC_ANALYSIS['SEVERITY']['ERROR']:STATIC_ANALYSIS[_0x30520f(0xdb)][_0x30520f(0x112)],'rule':_0x185539[_0x30520f(0x10c)]||_0x30520f(0x10a),'message':_0x185539['text'],'category':this[_0x30520f(0x121)](_0x185539[_0x30520f(0x10c)]),'fixable':![],'source':_0x30520f(0x101)});}}}catch(_0x1b506b){this['logger']?.['warn'](_0x30520f(0x116),{'file':_0x1a1401,'error':_0x1b506b[_0x30520f(0x11a)]});}return _0xfebc08;}['formatPostCSSError'](_0x49d1a6,_0xee41ea){const _0x2d6632=a0_0x57b9bf;return{'file':_0xee41ea,'line':_0x49d1a6[_0x2d6632(0xf3)]||0x1,'column':_0x49d1a6['column']||0x1,'severity':STATIC_ANALYSIS['SEVERITY'][_0x2d6632(0xe6)],'rule':_0x49d1a6[_0x2d6632(0x120)]||'CssSyntaxError','message':_0x49d1a6[_0x2d6632(0xe3)]||_0x49d1a6['message'],'category':STATIC_ANALYSIS[_0x2d6632(0x105)][_0x2d6632(0xde)],'fixable':![],'source':_0x2d6632(0xf8),'code':_0x49d1a6[_0x2d6632(0xe4)]||undefined};}['categorizeStylelintRule'](_0x3fa787){const _0x19fa46=a0_0x57b9bf;if(!_0x3fa787)return STATIC_ANALYSIS['CATEGORY'][_0x19fa46(0x122)];const _0x17d1c1=_0x3fa787['toLowerCase']();if(_0x17d1c1['includes'](_0x19fa46(0x102))||_0x17d1c1['includes'](_0x19fa46(0x115))||_0x17d1c1['includes'](_0x19fa46(0xd8))||_0x17d1c1[_0x19fa46(0xfd)](_0x19fa46(0x10b)))return STATIC_ANALYSIS[_0x19fa46(0x105)]['SYNTAX'];if(_0x17d1c1[_0x19fa46(0xfd)](_0x19fa46(0xd6))||_0x17d1c1[_0x19fa46(0xfd)](_0x19fa46(0xe2)))return STATIC_ANALYSIS[_0x19fa46(0x105)]['PERFORMANCE'];if(_0x17d1c1[_0x19fa46(0xfd)](_0x19fa46(0xe0))||_0x17d1c1['includes'](_0x19fa46(0x11e)))return STATIC_ANALYSIS[_0x19fa46(0x105)][_0x19fa46(0x100)];return STATIC_ANALYSIS[_0x19fa46(0x105)][_0x19fa46(0x122)];}['detectLanguage'](_0xe47fb3){const _0x5e44ce=a0_0x57b9bf,_0x142d17=_0xe47fb3['toLowerCase']();if(_0x142d17['endsWith']('.scss')||_0x142d17[_0x5e44ce(0x111)](_0x5e44ce(0xf9)))return'scss';if(_0x142d17['endsWith']('.less'))return _0x5e44ce(0x107);return'css';}[a0_0x57b9bf(0x119)](){const _0x2b909e=a0_0x57b9bf;return[_0x2b909e(0xf4),'.scss','.sass',_0x2b909e(0xd9)];}[a0_0x57b9bf(0x104)](){return![];}}export default CSSAnalyzer;
@@ -1 +1 @@
1
- const a0_0x139174=a0_0x4c0b;(function(_0x5f1c09,_0xb22bfa){const _0xa4c00=a0_0x4c0b,_0x1589b2=_0x5f1c09();while(!![]){try{const _0x11b80e=-parseInt(_0xa4c00(0xa5))/0x1*(parseInt(_0xa4c00(0xc8))/0x2)+parseInt(_0xa4c00(0x117))/0x3+parseInt(_0xa4c00(0xb1))/0x4+parseInt(_0xa4c00(0xa6))/0x5*(parseInt(_0xa4c00(0x10c))/0x6)+parseInt(_0xa4c00(0xdf))/0x7*(-parseInt(_0xa4c00(0xed))/0x8)+parseInt(_0xa4c00(0xaf))/0x9+-parseInt(_0xa4c00(0x104))/0xa*(-parseInt(_0xa4c00(0x10e))/0xb);if(_0x11b80e===_0xb22bfa)break;else _0x1589b2['push'](_0x1589b2['shift']());}catch(_0x584cb9){_0x1589b2['push'](_0x1589b2['shift']());}}}(a0_0x2125,0x47502));import{exec}from'child_process';import{promisify}from'util';function a0_0x4c0b(_0x3e4144,_0x1f8f61){_0x3e4144=_0x3e4144-0xa1;const _0x212586=a0_0x2125();let _0x4c0bbb=_0x212586[_0x3e4144];if(a0_0x4c0b['IAtogF']===undefined){var _0x25f521=function(_0x2913f3){const _0x14fafe='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x540e72='',_0x11a307='';for(let _0x5df910=0x0,_0x543086,_0x5747a7,_0xad5b6c=0x0;_0x5747a7=_0x2913f3['charAt'](_0xad5b6c++);~_0x5747a7&&(_0x543086=_0x5df910%0x4?_0x543086*0x40+_0x5747a7:_0x5747a7,_0x5df910++%0x4)?_0x540e72+=String['fromCharCode'](0xff&_0x543086>>(-0x2*_0x5df910&0x6)):0x0){_0x5747a7=_0x14fafe['indexOf'](_0x5747a7);}for(let _0x496448=0x0,_0x4a511c=_0x540e72['length'];_0x496448<_0x4a511c;_0x496448++){_0x11a307+='%'+('00'+_0x540e72['charCodeAt'](_0x496448)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x11a307);};a0_0x4c0b['bJyoAD']=_0x25f521,a0_0x4c0b['KRtixn']={},a0_0x4c0b['IAtogF']=!![];}const _0x489ee9=_0x212586[0x0],_0x9cda41=_0x3e4144+_0x489ee9,_0x42f87d=a0_0x4c0b['KRtixn'][_0x9cda41];return!_0x42f87d?(_0x4c0bbb=a0_0x4c0b['bJyoAD'](_0x4c0bbb),a0_0x4c0b['KRtixn'][_0x9cda41]=_0x4c0bbb):_0x4c0bbb=_0x42f87d,_0x4c0bbb;}import a0_0x540e72 from'path';function a0_0x2125(){const _0x45f04e=['DMfSAwrHDgvzqu1m','Aw5ZDgfUy2vqyxrO','ANnVBI1Zy2HLBwe','CgfYC2viywrVBgLUDfjLC3vSDhm','zMfPBgvKx2nOzwnRCW','odaZodrUufrTt0q','yMvZDc1WCMfJDgLJzq','z2v0vMfSAwrHDg9Yu3rHDhvZ','BwvKAxvT','zw52lxzHBgLKyxrVCG','zMLSzv9SAw5Lx3jHBMDL','DMfSAwrHDgLVBG','DMfSAwrHDgvuC0nVBMzPzW','DhnJB25MAwCTDMfSAwrHDg9Y','Dw5RBM93BG','qvbjigTLEq','rgLZywjSAw5Nig5Vsw1WBgLJAxrbBNKGCMvKDwnLCYb0ExbLihnHzMv0Eq','lMPZB24','zMLSDgvY','zw5KC1DPDgG','zMLSzq','D2fYBG','qvDtignYzwrLBNrPywXZ','EwfTBgXPBNq','DMfSAwrHDgvxAxrOq2HLy2TVDG','y29TCgLSzq','BwLZC2LUz1bYB3bLCNr5','BM9YBwfSAxPLuMvZDwX0CW','mtbTzwzdvxG','rvjst1i','DgvYCMfMB3jT','u0vwrvjjvfK','DhjPBq','AxnbCNjHEq','yxzHAwXHyMXLu2nHBM5LCNm','rMfPBgvKihrVihbHCNnLignOzwnRB3yGB3v0Chv0','mtaXmZi4zwj1CeXP','BMfTzq','mtq0nZmWm29rwurQAq','zg9JA2vYlwnVBxbVC2u','CgfYC2vzyw1SBgLUDfjLC3vSDhm','zg9JA2vYzMLSzq','CgfJA2fNzs5QC29U','DxrMltG','CMvZDwX0CW','C3rYAw5N','AgfKB2XPBNqGls1MB3jTyxqGANnVBIaI','mtyWntaXoeToEK1pEG','sLnptIbty2HLBweGDMfSAwrHDgLVBIbHDMfPBgfIBgu','BwvZC2fNzq','C3rYAwn0lw1Vzgu','Bw9KDwXL','AgfKB2XPBNqGzgv0zwn0zwq','EwfTBgXPBNqGBM90igf2ywLSywjSzq','zgLYBMfTzq','zgvIDwC','B2jQzwn0','zgv0zwn0qxzHAwXHyMXLvMfSAwrHDg9YCW','zxjYB3i','CgLWigLUC3rHBgWGEwfTBgXPBNq','oda2nJj3zfDeBxa','ndvdzuvIy3i','AgLNAa','C3bSAxq','Bgv2zwW','y2HLy2TVDIaTlxzLCNnPB24','q1jjveLdquW','y2HLy2TFBMfTzq','y2HHBMDLBwu','vMfSAwrHDgLVBIbPC3n1zsbKzxrLy3rLza','mtaXmJG2CfHtCNn1','y2f0zwDVCNK','mJyXnZi0weLbBNbA','A3vIzxjUzxrLCW','y29TCgLSzxjpChrPB25Z','ywP2ig5VDcbHDMfPBgfIBgu','rg9JA2vYzMLSzsbSAw50Aw5NigfUzcbIzxn0ihbYywn0AwnLCW','CgfYC2vdAgvJA292uMvZDwX0CW','Bg9Nz2vY','xIG/oKbBys16mc05lx5Dw2eTEJaTos0Ux35DkI8Pp1THlxOWltKTFL1Bys16mc05ls5FFL0Qja','BgLUzq','C3LUDgf4','y2HLy2TVDIaTzIaI','BxvZDcbOyxzLihjLCxvPCMvKihbYB3bLCNr5icC','iIaTlwzYyw1LD29YAYa','z3vPzgvSAw5L','BNbTigLUC3rHBgWGywP2igfQDI1MB3jTyxrZ','DMfSAwrHDgveB2nRzxjMAwXL','y2HLy2TVDG','sw5MCMfZDhj1y3r1CMuGyxmGq29KzsbZzwn1CML0EsbZy2fUBMLUzYaOrg9JA2vYlcblDwjLCM5LDgvZlcbuzxjYywzVCM0P','DMfSAwrHDgu','lMvUDG','CMvMzxjLBMnLCW','ANnVBLnJAgvTyq','v0fstKLorW','mLLAyKXtuq','zg9JA2vYx2nVBxbVC2u','DMfSAwrHDg9Y','EwfTBa','Aw5JBhvKzxm','DMfSAwrHDgvfBNzgAwXL','AZHZ','y2HLy2TFy2XHC3m','CgfZC3DVCMq','su5gtW','CMvTzwrPyxrPB24','BM9jBxbSAwnPDefUEq','ANnVBG','BwfWwwfTBgXPBNrtzxzLCML0Eq','CgfYC2u','ChvZAa','z2v0sw5ZDgfSBfjLy29TBwvUzgf0Aw9UCW','y29SDw1U','zxH0BMfTzq','ANnVBI1WyxjZzq','BM8TAw1WBgLJAxqTyw55','ywP2','CMvHzezPBgu','mZy0BLjJvhnT','DMvYC2LVBG','y2HLy2TVDIb2ywXPzgf0Aw9UigzHAwXLza','C3rKB3v0','y29Kzq','AgfKB2XPBNq','DhnJB25MAwCUANnVBIb2ywXPzgf0Aw9UigzHAwXLza','C2nHBM5LCKnHy2HL','zw52'];a0_0x2125=function(){return _0x45f04e;};return a0_0x2125();}import a0_0x11a307 from'fs/promises';import{STATIC_ANALYSIS}from'../utilities/constants.js';const execAsync=promisify(exec);class ConfigValidator{constructor(_0x5df910=null){const _0x3331d1=a0_0x4c0b;this['logger']=_0x5df910,this[_0x3331d1(0x10a)]=null,this[_0x3331d1(0xe6)]=new Map();}async['detectAvailableValidators'](){const _0xf621e6=a0_0x4c0b;if(this['availableScanners']!==null)return this['availableScanners'];const _0x543086={'checkov':![],'hadolint':![],'yamllint':![],'jsonSchema':![]};try{await execAsync(_0xf621e6(0xaa),{'timeout':0x1388}),_0x543086[_0xf621e6(0xc1)]=!![],this[_0xf621e6(0xb7)]?.['debug']('checkov\x20detected');}catch(_0x5747a7){this['logger']?.['debug']('checkov\x20not\x20available',{'error':_0x5747a7['message']});}try{await execAsync('hadolint\x20--version',{'timeout':0x1388}),_0x543086[_0xf621e6(0xe4)]=!![],this['logger']?.[_0xf621e6(0x11f)](_0xf621e6(0x11c));}catch(_0xad5b6c){this[_0xf621e6(0xb7)]?.[_0xf621e6(0x11f)]('hadolint\x20not\x20available',{'error':_0xad5b6c[_0xf621e6(0x119)]});}try{await execAsync('yamllint\x20--version',{'timeout':0x1388}),_0x543086[_0xf621e6(0xff)]=!![],this[_0xf621e6(0xb7)]?.[_0xf621e6(0x11f)]('yamllint\x20detected');}catch(_0x496448){this['logger']?.[_0xf621e6(0x11f)](_0xf621e6(0x11d),{'error':_0x496448[_0xf621e6(0x119)]});}try{await import(_0xf621e6(0xdd)),_0x543086['jsonSchema']=!![],this[_0xf621e6(0xb7)]?.['debug'](_0xf621e6(0x118));}catch(_0x4a511c){this[_0xf621e6(0xb7)]?.[_0xf621e6(0x11f)](_0xf621e6(0xb4),{'error':_0x4a511c['message']});}return this[_0xf621e6(0x10a)]=_0x543086,_0x543086;}async[a0_0x139174(0xc3)](_0x4a1e59,_0x5cf3fe={}){const _0xcb4374=a0_0x139174,_0x3eceb9=[],_0x14d43f=await this['detectAvailableValidators'](),_0xf47cd8=this['detectFileType'](_0x4a1e59);this[_0xcb4374(0xb7)]?.['debug']('Validating\x20config\x20file',{'filePath':_0x4a1e59,'fileType':_0xf47cd8});switch(_0xf47cd8){case _0xcb4374(0x111):if(_0x14d43f[_0xcb4374(0xe4)]){const _0x8b6624=await this[_0xcb4374(0xc0)](_0x4a1e59,_0x5cf3fe);_0x3eceb9['push'](..._0x8b6624);}if(_0x14d43f['checkov']){const _0x295a6c=await this['validateWithCheckov'](_0x4a1e59,'dockerfile',_0x5cf3fe);_0x3eceb9[_0xcb4374(0xd7)](..._0x295a6c);}break;case _0xcb4374(0x10f):if(_0x14d43f[_0xcb4374(0xff)]){const _0x370c28=await this[_0xcb4374(0xe8)](_0x4a1e59,_0x5cf3fe);_0x3eceb9['push'](..._0x370c28);}if(_0x14d43f['checkov']){const _0x165e83=await this[_0xcb4374(0x100)](_0x4a1e59,_0xcb4374(0xc9),_0x5cf3fe);_0x3eceb9[_0xcb4374(0xd7)](..._0x165e83);}break;case'kubernetes':if(_0x14d43f[_0xcb4374(0xff)]){const _0x47e036=await this[_0xcb4374(0xe8)](_0x4a1e59,_0x5cf3fe);_0x3eceb9[_0xcb4374(0xd7)](..._0x47e036);}if(_0x14d43f[_0xcb4374(0xc1)]){const _0x31fec2=await this['validateWithCheckov'](_0x4a1e59,'kubernetes',_0x5cf3fe);_0x3eceb9['push'](..._0x31fec2);}break;case _0xcb4374(0x106):if(_0x14d43f[_0xcb4374(0xc1)]){const _0x571777=await this['validateWithCheckov'](_0x4a1e59,'terraform',_0x5cf3fe);_0x3eceb9['push'](..._0x571777);}break;case'package.json':if(_0x14d43f[_0xcb4374(0xc6)]){const _0x1cf00b=await this['validatePackageJson'](_0x4a1e59,_0x5cf3fe);_0x3eceb9[_0xcb4374(0xd7)](..._0x1cf00b);}break;case'tsconfig.json':if(_0x14d43f[_0xcb4374(0xc6)]){const _0x3ebc98=await this['validateTsConfig'](_0x4a1e59,_0x5cf3fe);_0x3eceb9['push'](..._0x3ebc98);}break;case'github-actions':if(_0x14d43f[_0xcb4374(0xff)]){const _0x5d0137=await this[_0xcb4374(0xe8)](_0x4a1e59,_0x5cf3fe);_0x3eceb9['push'](..._0x5d0137);}break;case _0xcb4374(0xe7):const _0x22eede=await this[_0xcb4374(0xcd)](_0x4a1e59,_0x5cf3fe);_0x3eceb9[_0xcb4374(0xd7)](..._0x22eede);break;case _0xcb4374(0xcb):if(_0x14d43f['yamllint']){const _0x410ee8=await this['validateYAML'](_0x4a1e59,_0x5cf3fe);_0x3eceb9[_0xcb4374(0xd7)](..._0x410ee8);}break;default:this[_0xcb4374(0xb7)]?.[_0xcb4374(0xfd)]('Unknown\x20config\x20file\x20type',{'filePath':_0x4a1e59,'fileType':_0xf47cd8});return[];}return this[_0xcb4374(0x103)](_0x3eceb9);}async[a0_0x139174(0xc0)](_0x3dadb1,_0x16dea7={}){const _0x35019b=a0_0x139174;try{const _0x17b6a6=await execAsync(_0x35019b(0x116)+_0x3dadb1+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530}),_0xe8ffb1=JSON[_0x35019b(0xd6)](_0x17b6a6[_0x35019b(0xe2)]);return this[_0x35019b(0xeb)](_0xe8ffb1,_0x3dadb1);}catch(_0x522163){if(_0x522163['stdout'])try{const _0x29913e=JSON[_0x35019b(0xd6)](_0x522163[_0x35019b(0xe2)]);return this['parseHadolintResults'](_0x29913e,_0x3dadb1);}catch(_0x50a703){this[_0x35019b(0xb7)]?.['error']('Failed\x20to\x20parse\x20hadolint\x20output',{'error':_0x50a703[_0x35019b(0x119)]});}return this[_0x35019b(0xb7)]?.['error']('hadolint\x20validation\x20failed',{'error':_0x522163['message']}),[];}}[a0_0x139174(0xeb)](_0x3324a2,_0xf06f28){const _0x4ea50e=a0_0x139174,_0x6e14b=[];if(Array[_0x4ea50e(0x109)](_0x3324a2))for(const _0x1b8539 of _0x3324a2){_0x6e14b['push']({'file':_0xf06f28,'line':_0x1b8539['line']||0x1,'column':_0x1b8539['column']||0x1,'severity':this['mapHadolintSeverity'](_0x1b8539[_0x4ea50e(0xa9)]),'rule':_0x1b8539[_0x4ea50e(0xe3)],'message':_0x1b8539[_0x4ea50e(0x119)],'category':'dockerfile','validator':'hadolint'});}return _0x6e14b;}async[a0_0x139174(0xe8)](_0x4baf84,_0x214011={}){const _0x181b2a=a0_0x139174;try{const _0x2f9df1=await execAsync('yamllint\x20-f\x20parsable\x20\x22'+_0x4baf84+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530});return this['parseYamllintResults'](_0x2f9df1[_0x181b2a(0xe2)],_0x4baf84);}catch(_0x2c1dfe){if(_0x2c1dfe[_0x181b2a(0xe2)])return this[_0x181b2a(0x110)](_0x2c1dfe['stdout'],_0x4baf84);return this['logger']?.['error']('yamllint\x20validation\x20failed',{'error':_0x2c1dfe['message']}),[];}}[a0_0x139174(0x110)](_0x231d67,_0x26cf3e){const _0x248696=a0_0x139174,_0x1594dc=[],_0x556488=_0x231d67['split']('\x0a')[_0x248696(0xfa)](_0x6c67fb=>_0x6c67fb[_0x248696(0x108)]());for(const _0x330a60 of _0x556488){const _0x2aff0f=_0x330a60['match'](/^(.+?):(\d+):(\d+):\s*\[(\w+)\]\s*(.+?)\s*\((.+?)\)/);if(_0x2aff0f){const [,_0x4bee1e,_0x5c2d76,_0x58ea7d,_0xcfa77b,_0xb7e7d3,_0x488e86]=_0x2aff0f;_0x1594dc['push']({'file':_0x26cf3e,'line':parseInt(_0x5c2d76,0xa),'column':parseInt(_0x58ea7d,0xa),'severity':this[_0x248696(0xd5)](_0xcfa77b),'rule':_0x488e86,'message':_0xb7e7d3,'category':_0x248696(0xcb),'validator':'yamllint'});}}return _0x1594dc;}async['validateWithCheckov'](_0x18d8df,_0x237633,_0x39d821={}){const _0x37ebef=a0_0x139174;try{const _0x4a3a58=await execAsync(_0x37ebef(0xbb)+_0x18d8df+_0x37ebef(0xbd)+_0x237633+'\x20--output\x20json\x20--compact',{'maxBuffer':0xa*0x400*0x400,'timeout':0xea60}),_0x132980=JSON[_0x37ebef(0xd6)](_0x4a3a58['stdout']);return this[_0x37ebef(0xb6)](_0x132980,_0x18d8df);}catch(_0x177ee8){if(_0x177ee8['stdout'])try{const _0x59fc1c=JSON['parse'](_0x177ee8[_0x37ebef(0xe2)]);return this['parseCheckovResults'](_0x59fc1c,_0x18d8df);}catch(_0x50dc7c){this[_0x37ebef(0xb7)]?.[_0x37ebef(0xa3)](_0x37ebef(0x10b),{'error':_0x50dc7c['message']});}return this[_0x37ebef(0xb7)]?.[_0x37ebef(0xa3)](_0x37ebef(0xe1),{'error':_0x177ee8[_0x37ebef(0x119)]}),[];}}['parseCheckovResults'](_0x9b4ac5,_0x3424c6){const _0xf53fd2=a0_0x139174,_0x5c06bc=[];if(_0x9b4ac5['results']&&_0x9b4ac5[_0xf53fd2(0x114)][_0xf53fd2(0xec)])for(const _0x34267a of _0x9b4ac5[_0xf53fd2(0x114)]['failed_checks']){_0x5c06bc['push']({'file':_0x3424c6,'line':_0x34267a[_0xf53fd2(0xf2)]?_0x34267a[_0xf53fd2(0xf2)][0x0]:0x1,'column':0x1,'severity':this['mapCheckovSeverity'](_0x34267a[_0xf53fd2(0xcf)]),'rule':_0x34267a['check_id'],'message':_0x34267a[_0xf53fd2(0xac)]||_0x34267a['check_id'],'category':'security','validator':_0xf53fd2(0xc1),'remediation':_0x34267a['guideline'],'cwe':_0x34267a['cwe'],'references':_0x34267a['guideline']?[_0x34267a[_0xf53fd2(0xbe)]]:[]});}return _0x5c06bc;}async['validatePackageJson'](_0x666994,_0xe9feca={}){const _0x5e7203=a0_0x139174;try{const _0x55b227=(await import(_0x5e7203(0xdd)))['default'],_0x1788aa=(await import('ajv-formats'))['default'],_0x13bba2=await a0_0x11a307[_0x5e7203(0xde)](_0x666994,'utf-8'),_0x5dd2f6=JSON['parse'](_0x13bba2),_0x1fb457=new _0x55b227({'allErrors':!![],'strict':![]});_0x1788aa(_0x1fb457);const _0x1ca704={'type':_0x5e7203(0xa1),'required':[_0x5e7203(0x10d),_0x5e7203(0xe0)],'properties':{'name':{'type':_0x5e7203(0x115),'pattern':_0x5e7203(0xb8)},'version':{'type':_0x5e7203(0x115)},'description':{'type':_0x5e7203(0x115)},'main':{'type':'string'},'type':{'type':'string','enum':[_0x5e7203(0x11b),'commonjs']},'scripts':{'type':'object'},'dependencies':{'type':_0x5e7203(0xa1)},'devDependencies':{'type':_0x5e7203(0xa1)}},'additionalProperties':!![]},_0x4df503=_0x1fb457[_0x5e7203(0x101)](_0x1ca704),_0x42341d=_0x4df503(_0x5dd2f6);if(!_0x42341d&&_0x4df503['errors'])return _0x4df503['errors']['map'](_0xbdc974=>({'file':_0x666994,'line':0x1,'column':0x1,'severity':STATIC_ANALYSIS[_0x5e7203(0x107)]['ERROR'],'rule':_0x5e7203(0xea),'message':_0xbdc974[_0x5e7203(0xe9)]?_0xbdc974[_0x5e7203(0xe9)]+'\x20'+_0xbdc974[_0x5e7203(0x119)]:_0x5e7203(0xbc)+_0xbdc974['params'][_0x5e7203(0x102)]+'\x27','category':_0x5e7203(0xf3),'validator':_0x5e7203(0xea)}));return[];}catch(_0x4f80de){return this[_0x5e7203(0xb7)]?.[_0x5e7203(0xa3)]('package.json\x20validation\x20failed',{'error':_0x4f80de[_0x5e7203(0x119)]}),[{'file':_0x666994,'line':0x1,'column':0x1,'severity':STATIC_ANALYSIS[_0x5e7203(0x107)]['ERROR'],'rule':'json-parse','message':'Invalid\x20JSON:\x20'+_0x4f80de[_0x5e7203(0x119)],'category':_0x5e7203(0xba),'validator':_0x5e7203(0xdb)}];}}async[a0_0x139174(0xf4)](_0x3ce75a,_0x18eba7={}){const _0x2fc977=a0_0x139174;try{const _0x116a72=await a0_0x11a307['readFile'](_0x3ce75a,'utf-8'),_0x6105dd=JSON['parse'](_0x116a72),_0x10b297=[];if(_0x6105dd['compilerOptions']){const _0x4a8883=_0x6105dd[_0x2fc977(0xb3)];!_0x4a8883['strict']&&_0x10b297['push']({'file':_0x3ce75a,'line':0x1,'column':0x1,'severity':STATIC_ANALYSIS[_0x2fc977(0x107)]['WARNING'],'rule':_0x2fc977(0x11a),'message':'Consider\x20enabling\x20\x22strict\x22\x20mode\x20for\x20better\x20type\x20safety','category':_0x2fc977(0xee),'validator':'tsconfig-validator'}),_0x4a8883[_0x2fc977(0xd3)]===![]&&_0x10b297[_0x2fc977(0xd7)]({'file':_0x3ce75a,'line':0x1,'column':0x1,'severity':STATIC_ANALYSIS[_0x2fc977(0x107)]['WARNING'],'rule':_0x2fc977(0xdc),'message':_0x2fc977(0xf8),'category':'best-practice','validator':_0x2fc977(0xf5)});}return _0x10b297;}catch(_0x3223ac){return this[_0x2fc977(0xb7)]?.['error'](_0x2fc977(0xe5),{'error':_0x3223ac['message']}),[{'file':_0x3ce75a,'line':0x1,'column':0x1,'severity':STATIC_ANALYSIS['SEVERITY']['ERROR'],'rule':'json-parse','message':'Invalid\x20JSON:\x20'+_0x3223ac[_0x2fc977(0x119)],'category':'syntax','validator':'json-parse'}];}}async[a0_0x139174(0xcd)](_0x3683e7,_0x23905d={}){const _0x4abb6b=a0_0x139174;try{const _0x41aa08=await a0_0x11a307['readFile'](_0x3683e7,_0x4abb6b(0x113)),_0x567c10=[],_0x2f0d14=_0x41aa08[_0x4abb6b(0xa8)]('\x0a'),_0x2e496e=[{'pattern':/password|passwd|pwd/i,'name':_0x4abb6b(0xd0)},{'pattern':/api[_-]?key/i,'name':_0x4abb6b(0xf7)},{'pattern':/secret/i,'name':'secret'},{'pattern':/token/i,'name':'token'},{'pattern':/private[_-]?key/i,'name':'private\x20key'},{'pattern':/aws[_-]?access/i,'name':_0x4abb6b(0xfe)}];return _0x2f0d14['forEach']((_0x8d4845,_0x1a5023)=>{const _0x52dbd6=_0x4abb6b,_0x572620=_0x8d4845['trim']();if(!_0x572620||_0x572620['startsWith']('#'))return;if(_0x572620[_0x52dbd6(0xcc)]('=')){const [_0x2e30a2,_0x209831]=_0x572620['split']('='),_0x3dfc84=_0x2e30a2['toLowerCase'](),_0x39cdbd=_0x209831?.['trim']()||'',_0x5cee4f=_0x39cdbd&&_0x39cdbd!==''&&!_0x39cdbd['startsWith']('$')&&_0x39cdbd!=='your-key-here'&&_0x39cdbd!==_0x52dbd6(0xad)&&_0x39cdbd['length']>0x5;if(_0x5cee4f)for(const {pattern:_0x5d1dfe,name:_0x4eb37a}of _0x2e496e){if(_0x5d1dfe['test'](_0x3dfc84)){_0x567c10[_0x52dbd6(0xd7)]({'file':_0x3683e7,'line':_0x1a5023+0x1,'column':0x1,'severity':STATIC_ANALYSIS['SEVERITY'][_0x52dbd6(0xab)],'rule':'hardcoded-secret','message':'Potential\x20hardcoded\x20'+_0x4eb37a+'\x20detected\x20in\x20.env\x20file','category':'security','validator':_0x52dbd6(0xf1),'remediation':'Use\x20environment-specific\x20.env\x20files\x20and\x20add\x20.env\x20to\x20.gitignore'});break;}}}}),_0x567c10;}catch(_0x2a7eb4){return this[_0x4abb6b(0xb7)]?.[_0x4abb6b(0xa3)]('.env\x20validation\x20failed',{'error':_0x2a7eb4[_0x4abb6b(0x119)]}),[];}}['detectFileType'](_0x2b8479){const _0x30622a=a0_0x139174,_0x5b195a=a0_0x540e72['basename'](_0x2b8479)['toLowerCase'](),_0x2394ff=a0_0x540e72[_0x30622a(0x11e)](_0x2b8479);if(_0x5b195a===_0x30622a(0x111))return'dockerfile';if(_0x5b195a==='docker-compose.yml'||_0x5b195a==='docker-compose.yaml')return'docker-compose';if(_0x5b195a===_0x30622a(0x112))return _0x30622a(0x112);if(_0x5b195a==='tsconfig.json')return'tsconfig.json';if(_0x5b195a==='.env'||_0x5b195a[_0x30622a(0xfb)](_0x30622a(0xc4)))return'env';if(_0x2394ff[_0x30622a(0xcc)]('.github/workflows'))return'github-actions';if(_0x2394ff['includes'](_0x30622a(0xb2))||_0x2394ff['includes'](_0x30622a(0xce)))return _0x30622a(0xb2);const _0x2f7dc1=a0_0x540e72[_0x30622a(0xda)](_0x2b8479)['toLowerCase']();if(_0x2f7dc1==='.tf'||_0x2f7dc1==='.tfvars')return'terraform';if(_0x2f7dc1==='.yml'||_0x2f7dc1==='.yaml')return'yaml';if(_0x2f7dc1===_0x30622a(0xf9))return _0x30622a(0xd4);return'unknown';}['normalizeResults'](_0x1c0acb){const _0x3b65dc=a0_0x139174;return _0x1c0acb['map'](_0x1eb77a=>({'file':_0x1eb77a[_0x3b65dc(0xfc)],'line':_0x1eb77a[_0x3b65dc(0xb9)]||0x1,'column':_0x1eb77a[_0x3b65dc(0xd9)]||0x1,'severity':_0x1eb77a['severity']||STATIC_ANALYSIS['SEVERITY']['WARNING'],'rule':_0x1eb77a['rule']||_0x3b65dc(0xf6),'message':_0x1eb77a['message']||_0x3b65dc(0xae),'category':_0x1eb77a[_0x3b65dc(0xb0)]||_0x3b65dc(0xf3),'validator':_0x1eb77a[_0x3b65dc(0xca)],'cwe':_0x1eb77a['cwe']||null,'remediation':_0x1eb77a[_0x3b65dc(0xd2)]||null,'references':_0x1eb77a[_0x3b65dc(0xc5)]||[]}));}['mapHadolintSeverity'](_0x25636b){const _0x489655=a0_0x139174,_0x599a03={'error':STATIC_ANALYSIS[_0x489655(0x107)]['ERROR'],'warning':STATIC_ANALYSIS['SEVERITY'][_0x489655(0xc7)],'info':STATIC_ANALYSIS[_0x489655(0x107)][_0x489655(0xd1)],'style':STATIC_ANALYSIS[_0x489655(0x107)][_0x489655(0xd1)]};return _0x599a03[_0x25636b?.['toLowerCase']()]||STATIC_ANALYSIS['SEVERITY'][_0x489655(0xc7)];}['mapYamllintSeverity'](_0x412bef){const _0x4f48e7=a0_0x139174,_0x5dbf7d={'error':STATIC_ANALYSIS['SEVERITY'][_0x4f48e7(0x105)],'warning':STATIC_ANALYSIS[_0x4f48e7(0x107)]['WARNING']};return _0x5dbf7d[_0x412bef?.['toLowerCase']()]||STATIC_ANALYSIS[_0x4f48e7(0x107)]['WARNING'];}['mapCheckovSeverity'](_0x55c748){return STATIC_ANALYSIS['SEVERITY']['ERROR'];}async[a0_0x139174(0xef)](){const _0x543270=a0_0x139174,_0x335a65=await this[_0x543270(0xa2)]();return{'validators':_0x335a65,'recommendations':this[_0x543270(0xd8)](_0x335a65)};}[a0_0x139174(0xd8)](_0x34c020){const _0x22281b=a0_0x139174,_0x34acf6=[];return!_0x34c020[_0x22281b(0xc1)]&&_0x34acf6['push']({'validator':'checkov','reason':_0x22281b(0xc2),'install':'pip\x20install\x20checkov','priority':_0x22281b(0xa7)}),!_0x34c020[_0x22281b(0xe4)]&&_0x34acf6['push']({'validator':_0x22281b(0xe4),'reason':_0x22281b(0xb5),'install':'Download from https://github.com/hadolint/hadolint/releases','priority':'high'}),!_0x34c020['yamllint']&&_0x34acf6['push']({'validator':_0x22281b(0xff),'reason':'YAML\x20file\x20validation','install':_0x22281b(0xa4),'priority':'medium'}),!_0x34c020['jsonSchema']&&_0x34acf6['push']({'validator':'ajv\x20(JSON\x20Schema)','reason':'JSON\x20configuration\x20validation','install':_0x22281b(0xbf),'priority':_0x22281b(0xf0)}),_0x34acf6;}}export default ConfigValidator;
1
+ const a0_0x4236f8=a0_0x3744;(function(_0x389901,_0x4b6445){const _0x51cf05=a0_0x3744,_0x19338e=_0x389901();while(!![]){try{const _0x140004=parseInt(_0x51cf05(0x24c))/0x1+parseInt(_0x51cf05(0x23d))/0x2+parseInt(_0x51cf05(0x218))/0x3+parseInt(_0x51cf05(0x232))/0x4*(parseInt(_0x51cf05(0x233))/0x5)+-parseInt(_0x51cf05(0x1ee))/0x6*(parseInt(_0x51cf05(0x25c))/0x7)+parseInt(_0x51cf05(0x213))/0x8+-parseInt(_0x51cf05(0x222))/0x9;if(_0x140004===_0x4b6445)break;else _0x19338e['push'](_0x19338e['shift']());}catch(_0x5ef1ec){_0x19338e['push'](_0x19338e['shift']());}}}(a0_0x101e,0x490e7));import{exec}from'child_process';import{promisify}from'util';import a0_0x47ce9b from'path';import a0_0x5ca916 from'fs/promises';import{STATIC_ANALYSIS}from'../utilities/constants.js';function a0_0x3744(_0x4282a0,_0x4495f0){_0x4282a0=_0x4282a0-0x1df;const _0x101e15=a0_0x101e();let _0x3744cb=_0x101e15[_0x4282a0];if(a0_0x3744['BxinHg']===undefined){var _0x1662da=function(_0x5b62f8){const _0x51ce92='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x47ce9b='',_0x5ca916='';for(let _0x3dce79=0x0,_0x472eb4,_0x4ef07f,_0x53548e=0x0;_0x4ef07f=_0x5b62f8['charAt'](_0x53548e++);~_0x4ef07f&&(_0x472eb4=_0x3dce79%0x4?_0x472eb4*0x40+_0x4ef07f:_0x4ef07f,_0x3dce79++%0x4)?_0x47ce9b+=String['fromCharCode'](0xff&_0x472eb4>>(-0x2*_0x3dce79&0x6)):0x0){_0x4ef07f=_0x51ce92['indexOf'](_0x4ef07f);}for(let _0x362e34=0x0,_0x1587d8=_0x47ce9b['length'];_0x362e34<_0x1587d8;_0x362e34++){_0x5ca916+='%'+('00'+_0x47ce9b['charCodeAt'](_0x362e34)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5ca916);};a0_0x3744['vpMdRX']=_0x1662da,a0_0x3744['CrVIAa']={},a0_0x3744['BxinHg']=!![];}const _0xc3979a=_0x101e15[0x0],_0x3bf210=_0x4282a0+_0xc3979a,_0x2e1332=a0_0x3744['CrVIAa'][_0x3bf210];return!_0x2e1332?(_0x3744cb=a0_0x3744['vpMdRX'](_0x3744cb),a0_0x3744['CrVIAa'][_0x3bf210]=_0x3744cb):_0x3744cb=_0x2e1332,_0x3744cb;}const execAsync=promisify(exec);function a0_0x101e(){const _0x3381fd=['v0fstKLorW','CgfYyw1Z','DhnJB25MAwCUANnVBG','qvDtignYzwrLBNrPywXZ','EwfTBgXPBNqGlwyGCgfYC2fIBguGiG','Dw5RBM93BG','ANnVBI1WyxjZzq','DMfSAwrHDgvxAxrOq2HLy2TVDG','DgvZDa','su5gtW','C2nHBM5LCKnHy2HL','lNLTBa','zxH0BMfTzq','y29TBw9UANm','y2HLy2TVDG','mtG1mJrAv1blzNK','mJuWufD3t1vm','AgLNAa','zgvMyxvSDa','EwfTBgXPBNq','CgfYC2u','DhjPBq','y29TCgLSzxjpChrPB25Z','ywP2','Bg9Nz2vY','y3DL','nZqYmtK2veLzExvH','igrLDgvJDgvKigLUic5LBNyGzMLSzq','sw52ywXPzcbku09ooIa','zw52','ChvZAa','DgvYCMfMB3jT','CgLWigLUC3rHBgWGy2HLy2TVDG','DhnJB25MAwCUANnVBIb2ywXPzgf0Aw9UigzHAwXLza','zgv0zwn0rMLSzvr5Cgu','DMfSAwrHDgu','CgfYC2viywrVBgLUDfjLC3vSDhm','y2HHBMDLBwu','ywP2lwzVCM1HDhm','y2HLy2TVDIbKzxrLy3rLza','Bwf0y2G','mti2mtqWvhbtzgHb','ANnVBI1Zy2HLBwe','BwfW','BwfWq2HLy2TVDLnLDMvYAxr5','ChjPDMf0zsbRzxK','C3rKB3v0','BwfWsgfKB2XPBNrtzxzLCML0Eq','Aw5JBhvKzxm','sLnptIbty2HLBweGDMfSAwrHDgLVBIbHDMfPBgfIBgu','yMfZzw5HBwu','ANnVBLnJAgvTyq','BNbTigLUC3rHBgWGywP2igfQDI1MB3jTyxrZ','CgfJA2fNzs5QC29U','BgvUz3rO','vw5RBM93BIbJB25MAwCGzMLSzsb0ExbL','Bw9KDwXL','mJi4nJqXwM9Lwfjz','DMfSAwrHDgvzqu1m','AZHZ','y2HLy2TFAwq','CgfYC2vdAgvJA292uMvZDwX0CW','rMfPBgvKihrVihbHCNnLignOzwnRB3yGB3v0Chv0','z2L0AhvIlwfJDgLVBNm','rMfPBgvKihrVihbHCNnLigHHzg9SAw50ig91Dhb1Da','y2f0zwDVCNK','y29Kzq','zg9JA2vYlwnVBxbVC2uUEwfTBa','C2vJDxjPDhK','lMvUDG','q29UC2LKzxiGzw5HyMXPBMCGiNn0CMLJDciGBw9KzsbMB3iGyMv0DgvYihr5CguGC2fMzxr5','rvjst1i','Aw5ZDgfUy2vqyxrO','nZH0ugH5Eey','DMfSAwrHDgvuC0nVBMzPzW','AgfKB2XPBNqGDMfSAwrHDgLVBIbMywLSzwq','CgfZC3DVCMq','A3vIzxjUzxrLCW','BM8TAw1WBgLJAxqTyw55','BwfWwwfTBgXPBNrtzxzLCML0Eq','z3vPzgvSAw5L','CMvZDwX0CW','zM9YrwfJAa','z2v0sw5ZDgfSBfjLy29TBwvUzgf0Aw9UCW','zg9JA2vYlwnVBxbVC2u','DMfSAwrHDgvqywnRywDLsNnVBG','C3bSAxq','zg9JA2vYzMLSzq','y29SDw1U','BwvZC2fNzq','zgLYBMfTzq','zgvIDwC','BwvKAxvT','BM9YBwfSAxPLuMvZDwX0CW','vxnLigvUDMLYB25Tzw50lxnWzwnPzMLJic5LBNyGzMLSzxmGyw5KigfKzcaUzw52ihrVic5NAxrPz25VCMu','Dg9mB3DLCKnHC2u','zg9JA2vYlwnVBxbVC2uUEw1S','AgfKB2XPBNqGls1MB3jTyxqGANnVBIaI','C3rYAw5N','zxjYB3i','EwfTBgXPBNqGls12zxjZAw9U','y2HLy2TFy2XHC3m','DMfSAwrHDgveB2nRzxjMAwXL','zMLSzv9SAw5Lx3jHBMDL','y29TCgLSzq','EwfTBgXPBNqGzgv0zwn0zwq','zg9JA2vYx2nVBxbVC2u','y2HLy2TVDIb2ywXPzgf0Aw9UigzHAwXLza','yxzHAwXHyMXLu2nHBM5LCNm','DxrMltG','mtKXmJq4yK5zsfDS','DhnJB25MAwCTDMfSAwrHDg9Y','B2jQzwn0','zw52lxzHBgLKyxrVCG','C3LUDgf4','ntCWodK3qKruwe9q','yMvZDc1WCMfJDgLJzq','qvbjigTLEq','u0vwrvjjvfK','D2fYBG','wufntcbMAwXLihzHBgLKyxrPB24','Bgv2zwW','ug90zw50AwfSigHHCMrJB2rLzca','AgfYzgnVzgvKlxnLy3jLDa','zxjYB3jZ','mtK3mJiXnunyrMTuAa'];a0_0x101e=function(){return _0x3381fd;};return a0_0x101e();}class ConfigValidator{constructor(_0x3dce79=null){const _0x3ba135=a0_0x3744;this['logger']=_0x3dce79,this[_0x3ba135(0x211)]=null,this[_0x3ba135(0x22d)]=new Map();}async['detectAvailableValidators'](){const _0x5d1fbf=a0_0x3744;if(this[_0x5d1fbf(0x211)]!==null)return this[_0x5d1fbf(0x211)];const _0x472eb4={'checkov':![],'hadolint':![],'yamllint':![],'jsonSchema':![]};try{await execAsync('checkov\x20--version',{'timeout':0x1388}),_0x472eb4[_0x5d1fbf(0x231)]=!![],this[_0x5d1fbf(0x23b)]?.['debug'](_0x5d1fbf(0x24a));}catch(_0x4ef07f){this['logger']?.['debug']('checkov\x20not\x20available',{'error':_0x4ef07f[_0x5d1fbf(0x1fe)]});}try{await execAsync('hadolint\x20--version',{'timeout':0x1388}),_0x472eb4['hadolint']=!![],this['logger']?.['debug']('hadolint\x20detected');}catch(_0x53548e){this['logger']?.['debug']('hadolint\x20not\x20available',{'error':_0x53548e['message']});}try{await execAsync(_0x5d1fbf(0x209),{'timeout':0x1388}),_0x472eb4[_0x5d1fbf(0x236)]=!![],this[_0x5d1fbf(0x23b)]?.['debug'](_0x5d1fbf(0x20e));}catch(_0x362e34){this[_0x5d1fbf(0x23b)]?.['debug']('yamllint\x20not\x20available',{'error':_0x362e34[_0x5d1fbf(0x1fe)]});}try{await import(_0x5d1fbf(0x23a)),_0x472eb4['jsonSchema']=!![],this['logger']?.['debug'](_0x5d1fbf(0x254));}catch(_0x1587d8){this['logger']?.['debug']('ajv\x20not\x20available',{'error':_0x1587d8['message']});}return this[_0x5d1fbf(0x211)]=_0x472eb4,_0x472eb4;}async[a0_0x4236f8(0x246)](_0x19c711,_0x2401d7={}){const _0x19202b=a0_0x4236f8,_0x996cd4=[],_0x3aec8f=await this['detectAvailableValidators'](),_0x3147f5=this['detectFileType'](_0x19c711);this[_0x19202b(0x23b)]?.[_0x19202b(0x200)]('Validating\x20config\x20file',{'filePath':_0x19c711,'fileType':_0x3147f5});switch(_0x3147f5){case'dockerfile':if(_0x3aec8f['hadolint']){const _0x1f5045=await this['validateDockerfile'](_0x19c711,_0x2401d7);_0x996cd4['push'](..._0x1f5045);}if(_0x3aec8f[_0x19202b(0x231)]){const _0x19dae0=await this[_0x19202b(0x22a)](_0x19c711,_0x19202b(0x1fc),_0x2401d7);_0x996cd4[_0x19202b(0x241)](..._0x19dae0);}break;case'docker-compose':if(_0x3aec8f[_0x19202b(0x236)]){const _0x38997d=await this[_0x19202b(0x1df)](_0x19c711,_0x2401d7);_0x996cd4['push'](..._0x38997d);}if(_0x3aec8f[_0x19202b(0x231)]){const _0x447273=await this[_0x19202b(0x22a)](_0x19c711,_0x19202b(0x20f),_0x2401d7);_0x996cd4['push'](..._0x447273);}break;case'kubernetes':if(_0x3aec8f[_0x19202b(0x236)]){const _0x1341d1=await this[_0x19202b(0x1df)](_0x19c711,_0x2401d7);_0x996cd4['push'](..._0x1341d1);}if(_0x3aec8f['checkov']){const _0x1b2920=await this['validateWithCheckov'](_0x19c711,_0x19202b(0x1f2),_0x2401d7);_0x996cd4[_0x19202b(0x241)](..._0x1b2920);}break;case'terraform':if(_0x3aec8f['checkov']){const _0x298ff9=await this[_0x19202b(0x22a)](_0x19c711,'terraform',_0x2401d7);_0x996cd4[_0x19202b(0x241)](..._0x298ff9);}break;case'package.json':if(_0x3aec8f[_0x19202b(0x256)]){const _0x59aae3=await this['validatePackageJson'](_0x19c711,_0x2401d7);_0x996cd4[_0x19202b(0x241)](..._0x59aae3);}break;case'tsconfig.json':if(_0x3aec8f['jsonSchema']){const _0x4b0d07=await this[_0x19202b(0x1ef)](_0x19c711,_0x2401d7);_0x996cd4[_0x19202b(0x241)](..._0x4b0d07);}break;case'github-actions':if(_0x3aec8f[_0x19202b(0x236)]){const _0x53bc79=await this['validateYAML'](_0x19c711,_0x2401d7);_0x996cd4['push'](..._0x53bc79);}break;case _0x19202b(0x240):const _0x12fe6b=await this['validateEnvFile'](_0x19c711,_0x2401d7);_0x996cd4['push'](..._0x12fe6b);break;case'yaml':if(_0x3aec8f['yamllint']){const _0xc20d07=await this['validateYAML'](_0x19c711,_0x2401d7);_0x996cd4['push'](..._0xc20d07);}break;default:this[_0x19202b(0x23b)]?.[_0x19202b(0x21c)](_0x19202b(0x25a),{'filePath':_0x19c711,'fileType':_0x3147f5});return[];}return this[_0x19202b(0x202)](_0x996cd4);}async[a0_0x4236f8(0x20b)](_0x2c7a71,_0x5cd9e2={}){const _0x26b16d=a0_0x4236f8;try{const _0x4a128c=await execAsync(_0x26b16d(0x206)+_0x2c7a71+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530}),_0x1d90da=JSON[_0x26b16d(0x237)](_0x4a128c[_0x26b16d(0x251)]);return this['parseHadolintResults'](_0x1d90da,_0x2c7a71);}catch(_0x43dcfc){if(_0x43dcfc['stdout'])try{const _0x312acc=JSON['parse'](_0x43dcfc['stdout']);return this[_0x26b16d(0x247)](_0x312acc,_0x2c7a71);}catch(_0x13b033){this['logger']?.['error'](_0x26b16d(0x1e5),{'error':_0x13b033['message']});}return this[_0x26b16d(0x23b)]?.['error'](_0x26b16d(0x1f0),{'error':_0x43dcfc['message']}),[];}}[a0_0x4236f8(0x247)](_0x18b689,_0x468eee){const _0x34ef12=a0_0x4236f8,_0x4c88ea=[];if(Array['isArray'](_0x18b689))for(const _0x35f7ce of _0x18b689){_0x4c88ea[_0x34ef12(0x241)]({'file':_0x468eee,'line':_0x35f7ce['line']||0x1,'column':_0x35f7ce[_0x34ef12(0x1fd)]||0x1,'severity':this[_0x34ef12(0x252)](_0x35f7ce[_0x34ef12(0x21e)]),'rule':_0x35f7ce[_0x34ef12(0x1e7)],'message':_0x35f7ce[_0x34ef12(0x1fe)],'category':_0x34ef12(0x1fc),'validator':'hadolint'});}return _0x4c88ea;}async[a0_0x4236f8(0x1df)](_0x312775,_0xcf3d37={}){const _0x3ad0ec=a0_0x4236f8;try{const _0x443b7c=await execAsync(_0x3ad0ec(0x227)+_0x312775+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530});return this['parseYamllintResults'](_0x443b7c[_0x3ad0ec(0x251)],_0x312775);}catch(_0x1f6486){if(_0x1f6486['stdout'])return this['parseYamllintResults'](_0x1f6486['stdout'],_0x312775);return this[_0x3ad0ec(0x23b)]?.['error']('yamllint\x20validation\x20failed',{'error':_0x1f6486['message']}),[];}}['parseYamllintResults'](_0x31f370,_0x41522c){const _0x3a7a3b=a0_0x4236f8,_0x52088d=[],_0x57322d=_0x31f370[_0x3a7a3b(0x1fb)]('\x0a')['filter'](_0x3c331b=>_0x3c331b[_0x3a7a3b(0x238)]());for(const _0xa65c85 of _0x57322d){const _0x5b88bf=_0xa65c85[_0x3a7a3b(0x24b)](/^(.+?):(\d+):(\d+):\s*\[(\w+)\]\s*(.+?)\s*\((.+?)\)/);if(_0x5b88bf){const [,_0x5aa599,_0x27cf66,_0x1393d1,_0x2b8465,_0x481192,_0x58f7db]=_0x5b88bf;_0x52088d['push']({'file':_0x41522c,'line':parseInt(_0x27cf66,0xa),'column':parseInt(_0x1393d1,0xa),'severity':this[_0x3a7a3b(0x1f4)](_0x2b8465),'rule':_0x58f7db,'message':_0x481192,'category':'yaml','validator':'yamllint'});}}return _0x52088d;}async[a0_0x4236f8(0x22a)](_0x2829c5,_0x1a5be6,_0x431e86={}){const _0x147ab2=a0_0x4236f8;try{const _0x1fba39=await execAsync('checkov\x20-f\x20\x22'+_0x2829c5+'\x22\x20--framework\x20'+_0x1a5be6+'\x20--output\x20json\x20--compact',{'maxBuffer':0xa*0x400*0x400,'timeout':0xea60}),_0x2ace28=JSON['parse'](_0x1fba39[_0x147ab2(0x251)]);return this[_0x147ab2(0x1e2)](_0x2ace28,_0x2829c5);}catch(_0xcaeddf){if(_0xcaeddf['stdout'])try{const _0x1ef0dc=JSON[_0x147ab2(0x237)](_0xcaeddf['stdout']);return this[_0x147ab2(0x1e2)](_0x1ef0dc,_0x2829c5);}catch(_0x578094){this[_0x147ab2(0x23b)]?.[_0x147ab2(0x208)](_0x147ab2(0x1e3),{'error':_0x578094[_0x147ab2(0x1fe)]});}return this['logger']?.['error'](_0x147ab2(0x210),{'error':_0xcaeddf[_0x147ab2(0x1fe)]}),[];}}[a0_0x4236f8(0x1e2)](_0x2a5e35,_0x5a39ae){const _0x38dadf=a0_0x4236f8,_0x8a95c=[];if(_0x2a5e35[_0x38dadf(0x1f6)]&&_0x2a5e35['results']['failed_checks'])for(const _0x113992 of _0x2a5e35['results']['failed_checks']){_0x8a95c['push']({'file':_0x5a39ae,'line':_0x113992[_0x38dadf(0x20c)]?_0x113992['file_line_range'][0x0]:0x1,'column':0x1,'severity':this[_0x38dadf(0x24f)](_0x113992[_0x38dadf(0x20a)]),'rule':_0x113992[_0x38dadf(0x1e1)],'message':_0x113992['check_name']||_0x113992['check_id'],'category':_0x38dadf(0x1e9),'validator':_0x38dadf(0x231),'remediation':_0x113992[_0x38dadf(0x1f5)],'cwe':_0x113992[_0x38dadf(0x23c)],'references':_0x113992[_0x38dadf(0x1f5)]?[_0x113992[_0x38dadf(0x1f5)]]:[]});}return _0x8a95c;}async[a0_0x4236f8(0x1fa)](_0x1f55a6,_0x3c295b={}){const _0x2d1015=a0_0x4236f8;try{const _0x2e7a91=(await import(_0x2d1015(0x23a)))[_0x2d1015(0x235)],_0x5182ca=(await import(_0x2d1015(0x249)))[_0x2d1015(0x235)],_0xf2e054=await a0_0x5ca916['readFile'](_0x1f55a6,_0x2d1015(0x212)),_0x36bc34=JSON['parse'](_0xf2e054),_0x4bdffc=new _0x2e7a91({'allErrors':!![],'strict':![]});_0x5182ca(_0x4bdffc);const _0x423bf8={'type':'object','required':['name','version'],'properties':{'name':{'type':'string','pattern':'^(?:@[a-z0-9-~][a-z0-9-._~]*/)?[a-z0-9-~][a-z0-9-._~]*$'},'version':{'type':'string'},'description':{'type':_0x2d1015(0x207)},'main':{'type':_0x2d1015(0x207)},'type':{'type':'string','enum':[_0x2d1015(0x25b),_0x2d1015(0x230)]},'scripts':{'type':'object'},'dependencies':{'type':_0x2d1015(0x215)},'devDependencies':{'type':'object'}},'additionalProperties':!![]},_0xe60e78=_0x4bdffc[_0x2d1015(0x20d)](_0x423bf8),_0x3b234b=_0xe60e78(_0x36bc34);if(!_0x3b234b&&_0xe60e78['errors'])return _0xe60e78[_0x2d1015(0x221)]['map'](_0x5aff16=>({'file':_0x1f55a6,'line':0x1,'column':0x1,'severity':STATIC_ANALYSIS[_0x2d1015(0x21b)]['ERROR'],'rule':_0x2d1015(0x24d),'message':_0x5aff16[_0x2d1015(0x1ed)]?_0x5aff16[_0x2d1015(0x1ed)]+'\x20'+_0x5aff16[_0x2d1015(0x1fe)]:'must\x20have\x20required\x20property\x20\x27'+_0x5aff16[_0x2d1015(0x224)]['missingProperty']+'\x27','category':'validation','validator':'json-schema'}));return[];}catch(_0x4ec8b4){return this[_0x2d1015(0x23b)]?.['error']('package.json\x20validation\x20failed',{'error':_0x4ec8b4[_0x2d1015(0x1fe)]}),[{'file':_0x1f55a6,'line':0x1,'column':0x1,'severity':STATIC_ANALYSIS[_0x2d1015(0x21b)][_0x2d1015(0x1ec)],'rule':'json-parse','message':'Invalid\x20JSON:\x20'+_0x4ec8b4[_0x2d1015(0x1fe)],'category':_0x2d1015(0x217),'validator':'json-parse'}];}}async[a0_0x4236f8(0x1ef)](_0x574348,_0x111d1b={}){const _0x25e90a=a0_0x4236f8;try{const _0x1d031f=await a0_0x5ca916['readFile'](_0x574348,'utf-8'),_0x47e0f1=JSON['parse'](_0x1d031f),_0x12f691=[];if(_0x47e0f1['compilerOptions']){const _0x5c25c7=_0x47e0f1[_0x25e90a(0x239)];!_0x5c25c7['strict']&&_0x12f691['push']({'file':_0x574348,'line':0x1,'column':0x1,'severity':STATIC_ANALYSIS['SEVERITY'][_0x25e90a(0x223)],'rule':'strict-mode','message':_0x25e90a(0x1eb),'category':_0x25e90a(0x219),'validator':_0x25e90a(0x214)}),_0x5c25c7['noImplicitAny']===![]&&_0x12f691['push']({'file':_0x574348,'line':0x1,'column':0x1,'severity':STATIC_ANALYSIS['SEVERITY']['WARNING'],'rule':_0x25e90a(0x1f3),'message':'Disabling\x20noImplicitAny\x20reduces\x20type\x20safety','category':'best-practice','validator':_0x25e90a(0x214)});}return _0x12f691;}catch(_0x10a1c8){return this['logger']?.[_0x25e90a(0x208)](_0x25e90a(0x244),{'error':_0x10a1c8[_0x25e90a(0x1fe)]}),[{'file':_0x574348,'line':0x1,'column':0x1,'severity':STATIC_ANALYSIS['SEVERITY']['ERROR'],'rule':'json-parse','message':_0x25e90a(0x23f)+_0x10a1c8['message'],'category':_0x25e90a(0x217),'validator':_0x25e90a(0x229)}];}}async['validateEnvFile'](_0x4f66c0,_0x150766={}){const _0x4af102=a0_0x4236f8;try{const _0x16d729=await a0_0x5ca916['readFile'](_0x4f66c0,_0x4af102(0x212)),_0x572e53=[],_0x4ede96=_0x16d729[_0x4af102(0x1fb)]('\x0a'),_0x284a6c=[{'pattern':/password|passwd|pwd/i,'name':_0x4af102(0x1f1)},{'pattern':/api[_-]?key/i,'name':_0x4af102(0x21a)},{'pattern':/secret/i,'name':'secret'},{'pattern':/token/i,'name':'token'},{'pattern':/private[_-]?key/i,'name':_0x4af102(0x250)},{'pattern':/aws[_-]?access/i,'name':_0x4af102(0x226)}];return _0x4ede96[_0x4af102(0x1f7)]((_0x5f4b4c,_0x177b70)=>{const _0x5b1437=_0x4af102,_0x30bf2f=_0x5f4b4c['trim']();if(!_0x30bf2f||_0x30bf2f['startsWith']('#'))return;if(_0x30bf2f[_0x5b1437(0x253)]('=')){const [_0x12e3e7,_0x4e7f8b]=_0x30bf2f[_0x5b1437(0x1fb)]('='),_0x4906e5=_0x12e3e7[_0x5b1437(0x204)](),_0x587c03=_0x4e7f8b?.[_0x5b1437(0x238)]()||'',_0x5e608b=_0x587c03&&_0x587c03!==''&&!_0x587c03['startsWith']('$')&&_0x587c03!=='your-key-here'&&_0x587c03!==_0x5b1437(0x248)&&_0x587c03[_0x5b1437(0x259)]>0x5;if(_0x5e608b)for(const {pattern:_0x5c37e1,name:_0x135230}of _0x284a6c){if(_0x5c37e1[_0x5b1437(0x22b)](_0x4906e5)){_0x572e53[_0x5b1437(0x241)]({'file':_0x4f66c0,'line':_0x177b70+0x1,'column':0x1,'severity':STATIC_ANALYSIS['SEVERITY']['CRITICAL'],'rule':_0x5b1437(0x220),'message':_0x5b1437(0x21f)+_0x135230+_0x5b1437(0x23e),'category':_0x5b1437(0x1e9),'validator':_0x5b1437(0x216),'remediation':_0x5b1437(0x203)});break;}}}}),_0x572e53;}catch(_0x2012c1){return this['logger']?.['error']('.env\x20validation\x20failed',{'error':_0x2012c1['message']}),[];}}[a0_0x4236f8(0x245)](_0x4eaf15){const _0xe9a75=a0_0x4236f8,_0x40f68f=a0_0x47ce9b[_0xe9a75(0x255)](_0x4eaf15)['toLowerCase'](),_0x1f6fe3=a0_0x47ce9b[_0xe9a75(0x1ff)](_0x4eaf15);if(_0x40f68f===_0xe9a75(0x1fc))return'dockerfile';if(_0x40f68f===_0xe9a75(0x205)||_0x40f68f===_0xe9a75(0x1e8))return _0xe9a75(0x1f9);if(_0x40f68f==='package.json')return _0xe9a75(0x258);if(_0x40f68f===_0xe9a75(0x225))return _0xe9a75(0x225);if(_0x40f68f===_0xe9a75(0x1ea)||_0x40f68f['endsWith']('.env'))return _0xe9a75(0x240);if(_0x1f6fe3[_0xe9a75(0x253)]('.github/workflows'))return _0xe9a75(0x1e4);if(_0x1f6fe3[_0xe9a75(0x253)](_0xe9a75(0x1f2))||_0x1f6fe3[_0xe9a75(0x253)](_0xe9a75(0x1e0)))return'kubernetes';const _0x5756d4=a0_0x47ce9b[_0xe9a75(0x22f)](_0x4eaf15)['toLowerCase']();if(_0x5756d4==='.tf'||_0x5756d4==='.tfvars')return _0xe9a75(0x242);if(_0x5756d4===_0xe9a75(0x22e)||_0x5756d4==='.yaml')return'yaml';if(_0x5756d4==='.json')return'json';return _0xe9a75(0x228);}['normalizeResults'](_0x3c6a6e){const _0x572d78=a0_0x4236f8;return _0x3c6a6e[_0x572d78(0x24e)](_0x38ca5c=>({'file':_0x38ca5c['file'],'line':_0x38ca5c['line']||0x1,'column':_0x38ca5c['column']||0x1,'severity':_0x38ca5c['severity']||STATIC_ANALYSIS[_0x572d78(0x21b)][_0x572d78(0x223)],'rule':_0x38ca5c['rule']||_0x572d78(0x228),'message':_0x38ca5c['message']||'Validation\x20issue\x20detected','category':_0x38ca5c[_0x572d78(0x1e6)]||'validation','validator':_0x38ca5c['validator'],'cwe':_0x38ca5c[_0x572d78(0x23c)]||null,'remediation':_0x38ca5c['remediation']||null,'references':_0x38ca5c['references']||[]}));}['mapHadolintSeverity'](_0x82d3ab){const _0x5e47f0=a0_0x4236f8,_0x360466={'error':STATIC_ANALYSIS[_0x5e47f0(0x21b)][_0x5e47f0(0x1ec)],'warning':STATIC_ANALYSIS[_0x5e47f0(0x21b)]['WARNING'],'info':STATIC_ANALYSIS['SEVERITY']['INFO'],'style':STATIC_ANALYSIS[_0x5e47f0(0x21b)][_0x5e47f0(0x22c)]};return _0x360466[_0x82d3ab?.[_0x5e47f0(0x204)]()]||STATIC_ANALYSIS['SEVERITY'][_0x5e47f0(0x223)];}[a0_0x4236f8(0x1f4)](_0x2707d1){const _0x73def3=a0_0x4236f8,_0x491619={'error':STATIC_ANALYSIS['SEVERITY']['ERROR'],'warning':STATIC_ANALYSIS[_0x73def3(0x21b)]['WARNING']};return _0x491619[_0x2707d1?.[_0x73def3(0x204)]()]||STATIC_ANALYSIS[_0x73def3(0x21b)][_0x73def3(0x223)];}['mapCheckovSeverity'](_0x55bebf){return STATIC_ANALYSIS['SEVERITY']['ERROR'];}async['getValidatorStatus'](){const _0x6da3e7=await this['detectAvailableValidators']();return{'validators':_0x6da3e7,'recommendations':this['getInstallRecommendations'](_0x6da3e7)};}[a0_0x4236f8(0x1f8)](_0x5de0a4){const _0x5d6979=a0_0x4236f8,_0x16878f=[];return!_0x5de0a4[_0x5d6979(0x231)]&&_0x16878f['push']({'validator':'checkov','reason':'Infrastructure\x20as\x20Code\x20security\x20scanning\x20(Docker,\x20Kubernetes,\x20Terraform)','install':_0x5d6979(0x243),'priority':'high'}),!_0x5de0a4['hadolint']&&_0x16878f['push']({'validator':'hadolint','reason':'Dockerfile\x20linting\x20and\x20best\x20practices','install':'Download from https://github.com/hadolint/hadolint/releases','priority':_0x5d6979(0x234)}),!_0x5de0a4['yamllint']&&_0x16878f[_0x5d6979(0x241)]({'validator':'yamllint','reason':_0x5d6979(0x21d),'install':'pip\x20install\x20yamllint','priority':_0x5d6979(0x201)}),!_0x5de0a4['jsonSchema']&&_0x16878f['push']({'validator':'ajv\x20(JSON\x20Schema)','reason':'JSON\x20configuration\x20validation','install':_0x5d6979(0x257),'priority':_0x5d6979(0x201)}),_0x16878f;}}export default ConfigValidator;
@@ -1 +1 @@
1
- const a0_0x9df61a=a0_0x1859;(function(_0x45c4f8,_0x38c354){const _0x160ed4=a0_0x1859,_0x20cf0c=_0x45c4f8();while(!![]){try{const _0x5dfbee=-parseInt(_0x160ed4(0x16e))/0x1+parseInt(_0x160ed4(0x18e))/0x2+parseInt(_0x160ed4(0x193))/0x3+-parseInt(_0x160ed4(0x169))/0x4+parseInt(_0x160ed4(0x199))/0x5+parseInt(_0x160ed4(0x1a6))/0x6*(-parseInt(_0x160ed4(0x1aa))/0x7)+parseInt(_0x160ed4(0x178))/0x8*(-parseInt(_0x160ed4(0x16a))/0x9);if(_0x5dfbee===_0x38c354)break;else _0x20cf0c['push'](_0x20cf0c['shift']());}catch(_0xf127ce){_0x20cf0c['push'](_0x20cf0c['shift']());}}}(a0_0x5f2d,0x1df59));import{ESLint}from'eslint';import a0_0x1c6311 from'path';import a0_0x2df0ad from'fs/promises';function a0_0x1859(_0xb02e58,_0x42757e){_0xb02e58=_0xb02e58-0x168;const _0x5f2dfc=a0_0x5f2d();let _0x1859d1=_0x5f2dfc[_0xb02e58];if(a0_0x1859['IHObNc']===undefined){var _0xbe864d=function(_0x32353c){const _0x583521='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1c6311='',_0x2df0ad='';for(let _0x4ac03d=0x0,_0x5adfbb,_0x554118,_0x3aad55=0x0;_0x554118=_0x32353c['charAt'](_0x3aad55++);~_0x554118&&(_0x5adfbb=_0x4ac03d%0x4?_0x5adfbb*0x40+_0x554118:_0x554118,_0x4ac03d++%0x4)?_0x1c6311+=String['fromCharCode'](0xff&_0x5adfbb>>(-0x2*_0x4ac03d&0x6)):0x0){_0x554118=_0x583521['indexOf'](_0x554118);}for(let _0x58c798=0x0,_0x4e6176=_0x1c6311['length'];_0x58c798<_0x4e6176;_0x58c798++){_0x2df0ad+='%'+('00'+_0x1c6311['charCodeAt'](_0x58c798)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2df0ad);};a0_0x1859['zyKjdR']=_0xbe864d,a0_0x1859['XCRuqq']={},a0_0x1859['IHObNc']=!![];}const _0x57c2be=_0x5f2dfc[0x0],_0x2a4567=_0xb02e58+_0x57c2be,_0x16878b=a0_0x1859['XCRuqq'][_0x2a4567];return!_0x16878b?(_0x1859d1=a0_0x1859['zyKjdR'](_0x1859d1),a0_0x1859['XCRuqq'][_0x2a4567]=_0x1859d1):_0x1859d1=_0x16878b,_0x1859d1;}import{STATIC_ANALYSIS}from'../utilities/constants.js';class ESLintAnalyzer{constructor(_0x4ac03d=null){const _0x39a143=a0_0x1859;this['logger']=_0x4ac03d,this[_0x39a143(0x171)]=new Map();}async[a0_0x9df61a(0x186)](_0x5adfbb,_0x554118,_0x3aad55={}){const _0x2c9107=a0_0x9df61a;try{const _0x58c798=await this[_0x2c9107(0x17b)](_0x3aad55),_0x4e6176=await _0x58c798[_0x2c9107(0x170)](_0x554118,{'filePath':_0x5adfbb,'warnIgnored':![]}),_0x36c013=[];if(_0x4e6176&&_0x4e6176['length']>0x0){const _0x9f9732=_0x4e6176[0x0];for(const _0x35863d of _0x9f9732['messages']){_0x36c013['push'](this['formatMessage'](_0x35863d,_0x5adfbb));}}return this['logger']?.['debug'](_0x2c9107(0x168),{'file':_0x5adfbb,'totalDiagnostics':_0x36c013[_0x2c9107(0x181)],'errors':_0x36c013['filter'](_0x30061f=>_0x30061f[_0x2c9107(0x18f)]===STATIC_ANALYSIS[_0x2c9107(0x187)][_0x2c9107(0x18d)])['length'],'warnings':_0x36c013[_0x2c9107(0x1a8)](_0x1f09e3=>_0x1f09e3[_0x2c9107(0x18f)]===STATIC_ANALYSIS[_0x2c9107(0x187)]['WARNING'])['length']}),_0x36c013;}catch(_0x3bf7a5){return this['logger']?.['error'](_0x2c9107(0x176),{'file':_0x5adfbb,'error':_0x3bf7a5['message']}),[];}}async[a0_0x9df61a(0x1a1)](_0x34c979,_0x306297,_0x13d293={}){const _0x3aee54=a0_0x9df61a;try{const _0x451182=await this['getESLintInstance']({..._0x13d293,'fix':!![]}),_0x13fab6=await _0x451182['lintText'](_0x306297,{'filePath':_0x34c979,'warnIgnored':![]});if(_0x13fab6&&_0x13fab6[_0x3aee54(0x181)]>0x0){const _0x2e2bd4=_0x13fab6[0x0];return{'fixed':_0x2e2bd4['output']!==undefined,'content':_0x2e2bd4[_0x3aee54(0x177)]||_0x306297,'fixedCount':_0x2e2bd4['fixableErrorCount']+_0x2e2bd4['fixableWarningCount'],'remainingErrors':_0x2e2bd4[_0x3aee54(0x195)]-_0x2e2bd4[_0x3aee54(0x188)],'remainingWarnings':_0x2e2bd4[_0x3aee54(0x17e)]-_0x2e2bd4['fixableWarningCount'],'changes':_0x2e2bd4[_0x3aee54(0x177)]?this['describeChanges'](_0x306297,_0x2e2bd4[_0x3aee54(0x177)]):[]};}return{'fixed':![],'content':_0x306297,'fixedCount':0x0,'remainingErrors':0x0,'remainingWarnings':0x0,'changes':[]};}catch(_0x2926f5){this['logger']?.[_0x3aee54(0x19a)](_0x3aee54(0x1a7),{'file':_0x34c979,'error':_0x2926f5[_0x3aee54(0x19b)]});throw new Error(_0x3aee54(0x19f)+_0x2926f5['message']);}}async[a0_0x9df61a(0x17b)](_0x3b6d31={}){const _0x128be7=a0_0x9df61a,{workingDir:_0x4ecf97,fix:fix=![],framework:_0x2dba4b}=_0x3b6d31,_0x35421b=await this[_0x128be7(0x189)](_0x4ecf97,_0x2dba4b),_0x281b79=new ESLint({'fix':fix,'useEslintrc':!![],'overrideConfig':_0x35421b,'errorOnUnmatchedPattern':![]});return _0x281b79;}async[a0_0x9df61a(0x189)](_0xe8ff3,_0x3ab787){const _0x42c36b=a0_0x9df61a,_0x3ff673={'env':{'browser':!![],'es2021':!![],'node':!![]},'parserOptions':{'ecmaVersion':_0x42c36b(0x172),'sourceType':'module'},'rules':{'no-unused-vars':'warn','no-undef':_0x42c36b(0x19a),'no-console':'off','semi':[_0x42c36b(0x1a2),_0x42c36b(0x184)],'quotes':[_0x42c36b(0x1a2),'single',{'avoidEscape':!![]}]}};if(_0x3ab787===_0x42c36b(0x18b))_0x3ff673[_0x42c36b(0x174)]=[_0x42c36b(0x182)],_0x3ff673[_0x42c36b(0x190)][_0x42c36b(0x19c)]={'jsx':!![]},_0x3ff673[_0x42c36b(0x191)]={'react':{'version':'detect'}};else _0x3ab787==='vue'?_0x3ff673['extends']=['eslint:recommended']:_0x3ff673['extends']=[_0x42c36b(0x182)];if(_0xe8ff3){const _0x485387=[_0x42c36b(0x1a4),_0x42c36b(0x17a),'.eslintrc.json',_0x42c36b(0x185)];for(const _0x13cd6a of _0x485387){try{const _0x548515=a0_0x1c6311[_0x42c36b(0x19d)](_0xe8ff3,_0x13cd6a);return await a0_0x2df0ad['access'](_0x548515),this['logger']?.['debug']('Found\x20ESLint\x20config',{'configFile':_0x13cd6a}),{};}catch{}}}return _0x3ff673;}['formatMessage'](_0x11da70,_0x4e6d58){const _0x972d50=a0_0x9df61a;return{'file':_0x4e6d58,'line':_0x11da70['line']||0x1,'column':_0x11da70[_0x972d50(0x194)]||0x1,'endLine':_0x11da70[_0x972d50(0x18c)],'endColumn':_0x11da70[_0x972d50(0x196)],'severity':_0x11da70['severity']===0x2?STATIC_ANALYSIS[_0x972d50(0x187)][_0x972d50(0x18d)]:STATIC_ANALYSIS['SEVERITY'][_0x972d50(0x16c)],'rule':_0x11da70['ruleId']||'eslint','message':_0x11da70[_0x972d50(0x19b)],'category':this['categorizeRule'](_0x11da70[_0x972d50(0x17f)]),'fixable':_0x11da70[_0x972d50(0x1a1)]!==undefined,'source':_0x972d50(0x198)};}[a0_0x9df61a(0x1a3)](_0x43c253){const _0x414509=a0_0x9df61a;if(!_0x43c253)return STATIC_ANALYSIS['CATEGORY']['STYLE'];if(_0x43c253['includes'](_0x414509(0x17c))||_0x43c253['includes']('xss')||_0x43c253===_0x414509(0x1ab)||_0x43c253==='no-implied-eval')return STATIC_ANALYSIS['CATEGORY'][_0x414509(0x19e)];if(_0x43c253[_0x414509(0x1a9)](_0x414509(0x173))||_0x43c253==='no-await-in-loop'||_0x43c253==='prefer-promise-reject-errors')return STATIC_ANALYSIS[_0x414509(0x17d)]['PERFORMANCE'];if(_0x43c253[_0x414509(0x1a9)]('import')||_0x43c253===_0x414509(0x18a))return STATIC_ANALYSIS[_0x414509(0x17d)]['IMPORT'];if(_0x43c253['includes']('best-practices')||_0x43c253===_0x414509(0x1a5)||_0x43c253==='no-unreachable'||_0x43c253===_0x414509(0x1a0))return STATIC_ANALYSIS['CATEGORY'][_0x414509(0x192)];return STATIC_ANALYSIS[_0x414509(0x17d)]['STYLE'];}[a0_0x9df61a(0x175)](_0x31e3ee,_0xe0c529){const _0x25d9a2=a0_0x9df61a,_0x497d59=[],_0x24b939=_0x31e3ee[_0x25d9a2(0x179)]('\x0a'),_0x3a7237=_0xe0c529['split']('\x0a'),_0x57a42f=Math['max'](_0x24b939[_0x25d9a2(0x181)],_0x3a7237[_0x25d9a2(0x181)]);for(let _0x27dc00=0x0;_0x27dc00<_0x57a42f;_0x27dc00++){const _0x10657d=_0x24b939[_0x27dc00]||'',_0x76159c=_0x3a7237[_0x27dc00]||'';_0x10657d!==_0x76159c&&_0x497d59[_0x25d9a2(0x197)]({'line':_0x27dc00+0x1,'type':_0x10657d&&_0x76159c?_0x25d9a2(0x1ac):_0x10657d?_0x25d9a2(0x16d):'added','original':_0x10657d,'fixed':_0x76159c});}return _0x497d59;}[a0_0x9df61a(0x16f)](){const _0x3a75e4=a0_0x9df61a;return[_0x3a75e4(0x183),'.jsx',_0x3a75e4(0x16b),'.cjs'];}[a0_0x9df61a(0x180)](){return!![];}}function a0_0x5f2d(){const _0x19a34a=['zw5Kq29SDw1U','ChvZAa','zxnSAw50','ode0odG1t09ZBvn6','zxjYB3i','BwvZC2fNzq','zwnTyuzLyxr1CMvZ','AM9PBG','u0vdvvjjvfK','rvnmAw50igzPEcbMywLSzwq6ia','BM8TDMfY','zML4','D2fYBG','y2f0zwDVCML6zvj1Bgu','lMvZBgLUDhjJlMPZ','BM8TDw51C2vKlxzHCNm','nNbiterLAW','rvnmAw50igzPEcbMywLSzwq','zMLSDgvY','Aw5JBhvKzxm','mtyYotyWn09pvezUtq','BM8TzxzHBa','Bw9KAwzPzwq','rvnmAw50igfUywX5C2LZignVBxbSzxrLza','mZuXmJKYDuHYwePU','mtHpzMnMwuC','lM1QCW','v0fstKLorW','CMvTB3zLza','mJq4ntrzzNDhruy','z2v0u3vWCg9YDgvKrxH0zw5ZAw9UCW','BgLUDfrLEhq','zxnSAw50q2fJAgu','Bgf0zxn0','CgvYzM9YBwfUy2u','zxH0zw5KCW','zgvZy3jPyMvdAgfUz2vZ','rvnmAw50igfUywX5C2LZigzHAwXLza','B3v0Chv0','mZK3ntyWz3DizMDm','C3bSAxq','lMvZBgLUDhjJlMnQCW','z2v0rvnmAw50sw5ZDgfUy2u','C2vJDxjPDhK','q0furuDpuLK','D2fYBMLUz0nVDw50','CNvSzuLK','C3vWCg9YDhnbDxrVrML4','BgvUz3rO','zxnSAw50oNjLy29TBwvUzgvK','lMPZ','ywX3yxLZ','zxnSAw50lMnVBMzPzY5QCW','yw5HBhL6zq','u0vwrvjjvfK','zML4ywjSzuvYCM9Yq291BNq','z2v0rvnmAw50q29UzMLN','BM8TDw5Kzwy','CMvHy3q','zw5KtgLUzq','rvjst1i','ndyZmdi4r2DVsNDs','C2v2zxjPDhK','CgfYC2vYt3b0Aw9UCW','C2v0DgLUz3m','qKvtvf9quKfdveLdrq','nte5mJCWvMvgEhLh','y29SDw1U','zxjYB3jdB3vUDa'];a0_0x5f2d=function(){return _0x19a34a;};return a0_0x5f2d();}export default ESLintAnalyzer;
1
+ function a0_0x59c1(){const _0x589637=['odmYodm5r3v1shPv','lMvZBgLUDhjJlMPZB24','CgfYC2vYt3b0Aw9UCW','BwvZC2fNzxm','DNvL','q0furuDpuLK','BM8TDw5YzwfJAgfIBgu','zM9YBwf0twvZC2fNzq','z2v0rvnmAw50sw5ZDgfUy2u','mti0mZm5oeL3yuPovG','uevsrK9stufoq0u','EhnZ','C2vJDxjPDhK','zxnSAw50','Bwf4','zxH0zw5KCW','ywnJzxnZ','Bg9Nz2vY','lMvZBgLUDhjJlMnQCW','zxnSAw50oNjLy29TBwvUzgvK','zMLSDgvY','qKvtvf9quKfdveLdrq','zxjYB3i','zML4','rvjst1i','B3v0Chv0','ywrKzwq','mZbgy25cDvC','AM9PBG','v0fstKLorW','zML4ywjSzvDHCM5PBMDdB3vUDa','u0vdvvjjvfK','BwvZC2fNzq','C3bSAxq','zw5Kq29SDw1U','u0vwrvjjvfK','C2v2zxjPDhK','y2f0zwDVCML6zvj1Bgu','zxnSAw50lMnVBMzPzY5QCW','Bw9KAwzPzwq','Aw5JBhvKzxm','BgLUDfrLEhq','mKzJz0Lswq','lMPZEa','BgvUz3rO','mJq1CgDxue1y','nJu2ntCXvK5QvNPt','ndGWmJHmr1Dct2y','z2v0u3vWCg9YDgvKrxH0zw5ZAw9UCW','zML4ywjSzuvYCM9Yq291BNq','D2fYBG','mZe0nZe5AMDyEvLd','mJe1mdqYneDKzMzdta','lMPZ','BM8TDw5Kzwy','lMnQCW','BM8TzxzHBa','rvnmAw50igfUywX5C2LZignVBxbSzxrLza','su1qt1ju','C2v0DgLUz3m','z2v0rvnmAw50q29UzMLN','CgvYzM9YBwfUy2u','lM1QCW','u1rzteu','ywX3yxLZ','mZiWmZm3oxjhBNvJBW','BgLUzq'];a0_0x59c1=function(){return _0x589637;};return a0_0x59c1();}const a0_0x5e6a11=a0_0x2c00;(function(_0x57a0f0,_0x4ef4b1){const _0x3ab6b3=a0_0x2c00,_0x2c3265=_0x57a0f0();while(!![]){try{const _0x2a5804=parseInt(_0x3ab6b3(0x113))/0x1*(-parseInt(_0x3ab6b3(0x10a))/0x2)+-parseInt(_0x3ab6b3(0x10e))/0x3+-parseInt(_0x3ab6b3(0x10f))/0x4*(parseInt(_0x3ab6b3(0x10d))/0x5)+parseInt(_0x3ab6b3(0x12c))/0x6+-parseInt(_0x3ab6b3(0x123))/0x7+parseInt(_0x3ab6b3(0x114))/0x8+-parseInt(_0x3ab6b3(0x121))/0x9*(-parseInt(_0x3ab6b3(0x13e))/0xa);if(_0x2a5804===_0x4ef4b1)break;else _0x2c3265['push'](_0x2c3265['shift']());}catch(_0x1e2b9d){_0x2c3265['push'](_0x2c3265['shift']());}}}(a0_0x59c1,0x49f55));import{ESLint}from'eslint';import a0_0x120887 from'path';import a0_0x37a3cf from'fs/promises';function a0_0x2c00(_0xf2e3e8,_0x59bf14){_0xf2e3e8=_0xf2e3e8-0x108;const _0x59c17e=a0_0x59c1();let _0x2c0024=_0x59c17e[_0xf2e3e8];if(a0_0x2c00['fFppdb']===undefined){var _0x57146b=function(_0x1d0039){const _0x2b99e4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x120887='',_0x37a3cf='';for(let _0x21c319=0x0,_0x75177a,_0x4d5ac1,_0x476719=0x0;_0x4d5ac1=_0x1d0039['charAt'](_0x476719++);~_0x4d5ac1&&(_0x75177a=_0x21c319%0x4?_0x75177a*0x40+_0x4d5ac1:_0x4d5ac1,_0x21c319++%0x4)?_0x120887+=String['fromCharCode'](0xff&_0x75177a>>(-0x2*_0x21c319&0x6)):0x0){_0x4d5ac1=_0x2b99e4['indexOf'](_0x4d5ac1);}for(let _0xd4aa06=0x0,_0x2fae67=_0x120887['length'];_0xd4aa06<_0x2fae67;_0xd4aa06++){_0x37a3cf+='%'+('00'+_0x120887['charCodeAt'](_0xd4aa06)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x37a3cf);};a0_0x2c00['qtrImm']=_0x57146b,a0_0x2c00['XMrsCP']={},a0_0x2c00['fFppdb']=!![];}const _0x7fdfc3=_0x59c17e[0x0],_0x13b7fd=_0xf2e3e8+_0x7fdfc3,_0x3db9bf=a0_0x2c00['XMrsCP'][_0x13b7fd];return!_0x3db9bf?(_0x2c0024=a0_0x2c00['qtrImm'](_0x2c0024),a0_0x2c00['XMrsCP'][_0x13b7fd]=_0x2c0024):_0x2c0024=_0x3db9bf,_0x2c0024;}import{STATIC_ANALYSIS}from'../utilities/constants.js';class ESLintAnalyzer{constructor(_0x21c319=null){const _0x3de43e=a0_0x2c00;this[_0x3de43e(0x134)]=_0x21c319,this['eslintCache']=new Map();}async['analyze'](_0x75177a,_0x4d5ac1,_0x476719={}){const _0x531511=a0_0x2c00;try{const _0xd4aa06=await this[_0x531511(0x12b)](_0x476719),_0x2fae67=await _0xd4aa06[_0x531511(0x109)](_0x4d5ac1,{'filePath':_0x75177a,'warnIgnored':![]}),_0x1db662=[];if(_0x2fae67&&_0x2fae67['length']>0x0){const _0x302a0b=_0x2fae67[0x0];for(const _0x536321 of _0x302a0b[_0x531511(0x126)]){_0x1db662['push'](this['formatMessage'](_0x536321,_0x75177a));}}return this[_0x531511(0x134)]?.['debug'](_0x531511(0x119),{'file':_0x75177a,'totalDiagnostics':_0x1db662[_0x531511(0x10c)],'errors':_0x1db662[_0x531511(0x137)](_0x1ecab2=>_0x1ecab2['severity']===STATIC_ANALYSIS[_0x531511(0x146)]['ERROR'])['length'],'warnings':_0x1db662[_0x531511(0x137)](_0x55cb84=>_0x55cb84[_0x531511(0x147)]===STATIC_ANALYSIS['SEVERITY'][_0x531511(0x140)])[_0x531511(0x10c)]}),_0x1db662;}catch(_0x495ec7){return this['logger']?.['error']('ESLint\x20analysis\x20failed',{'file':_0x75177a,'error':_0x495ec7[_0x531511(0x143)]}),[];}}async[a0_0x5e6a11(0x13a)](_0x6df84f,_0x1c80cb,_0x3230d2={}){const _0x84a1c8=a0_0x5e6a11;try{const _0x412387=await this['getESLintInstance']({..._0x3230d2,'fix':!![]}),_0x5ea442=await _0x412387[_0x84a1c8(0x109)](_0x1c80cb,{'filePath':_0x6df84f,'warnIgnored':![]});if(_0x5ea442&&_0x5ea442['length']>0x0){const _0x30df7e=_0x5ea442[0x0];return{'fixed':_0x30df7e[_0x84a1c8(0x13c)]!==undefined,'content':_0x30df7e[_0x84a1c8(0x13c)]||_0x1c80cb,'fixedCount':_0x30df7e[_0x84a1c8(0x111)]+_0x30df7e[_0x84a1c8(0x141)],'remainingErrors':_0x30df7e['errorCount']-_0x30df7e['fixableErrorCount'],'remainingWarnings':_0x30df7e['warningCount']-_0x30df7e[_0x84a1c8(0x141)],'changes':_0x30df7e[_0x84a1c8(0x13c)]?this['describeChanges'](_0x1c80cb,_0x30df7e['output']):[]};}return{'fixed':![],'content':_0x1c80cb,'fixedCount':0x0,'remainingErrors':0x0,'remainingWarnings':0x0,'changes':[]};}catch(_0x4dcb53){this['logger']?.['error']('ESLint\x20fix\x20failed',{'file':_0x6df84f,'error':_0x4dcb53['message']});throw new Error('ESLint\x20fix\x20failed:\x20'+_0x4dcb53['message']);}}async[a0_0x5e6a11(0x12b)](_0x162b97={}){const {workingDir:_0x3eabd4,fix:fix=![],framework:_0x51311c}=_0x162b97,_0x4fda3f=await this['getESLintConfig'](_0x3eabd4,_0x51311c),_0x145e54=new ESLint({'fix':fix,'useEslintrc':!![],'overrideConfig':_0x4fda3f,'errorOnUnmatchedPattern':![]});return _0x145e54;}async[a0_0x5e6a11(0x11c)](_0x90411a,_0x34593f){const _0x4e34c1=a0_0x5e6a11,_0x1f8aa4={'env':{'browser':!![],'es2021':!![],'node':!![]},'parserOptions':{'ecmaVersion':'latest','sourceType':'module'},'rules':{'no-unused-vars':'warn','no-undef':_0x4e34c1(0x139),'no-console':'off','semi':[_0x4e34c1(0x112),_0x4e34c1(0x120)],'quotes':[_0x4e34c1(0x112),'single',{'avoidEscape':!![]}]}};if(_0x34593f==='react')_0x1f8aa4[_0x4e34c1(0x132)]=[_0x4e34c1(0x136)],_0x1f8aa4[_0x4e34c1(0x125)]['ecmaFeatures']={'jsx':!![]},_0x1f8aa4[_0x4e34c1(0x11b)]={'react':{'version':'detect'}};else _0x34593f===_0x4e34c1(0x127)?_0x1f8aa4['extends']=[_0x4e34c1(0x136)]:_0x1f8aa4[_0x4e34c1(0x132)]=['eslint:recommended'];if(_0x90411a){const _0x52c0b8=['.eslintrc.js',_0x4e34c1(0x135),_0x4e34c1(0x124),_0x4e34c1(0x149)];for(const _0x393441 of _0x52c0b8){try{const _0x303c81=a0_0x120887[_0x4e34c1(0x13f)](_0x90411a,_0x393441);return await a0_0x37a3cf[_0x4e34c1(0x133)](_0x303c81),this['logger']?.['debug']('Found\x20ESLint\x20config',{'configFile':_0x393441}),{};}catch{}}}return _0x1f8aa4;}[a0_0x5e6a11(0x12a)](_0x274ea3,_0x4b6174){const _0x54444b=a0_0x5e6a11;return{'file':_0x4b6174,'line':_0x274ea3[_0x54444b(0x122)]||0x1,'column':_0x274ea3['column']||0x1,'endLine':_0x274ea3['endLine'],'endColumn':_0x274ea3[_0x54444b(0x145)],'severity':_0x274ea3['severity']===0x2?STATIC_ANALYSIS['SEVERITY'][_0x54444b(0x13b)]:STATIC_ANALYSIS['SEVERITY'][_0x54444b(0x140)],'rule':_0x274ea3['ruleId']||_0x54444b(0x130),'message':_0x274ea3[_0x54444b(0x143)],'category':this[_0x54444b(0x148)](_0x274ea3['ruleId']),'fixable':_0x274ea3['fix']!==undefined,'source':_0x54444b(0x130)};}[a0_0x5e6a11(0x148)](_0x3347e2){const _0x42d0ca=a0_0x5e6a11;if(!_0x3347e2)return STATIC_ANALYSIS[_0x42d0ca(0x128)]['STYLE'];if(_0x3347e2['includes'](_0x42d0ca(0x12f))||_0x3347e2[_0x42d0ca(0x108)](_0x42d0ca(0x12e))||_0x3347e2===_0x42d0ca(0x118)||_0x3347e2==='no-implied-eval')return STATIC_ANALYSIS['CATEGORY'][_0x42d0ca(0x142)];if(_0x3347e2[_0x42d0ca(0x108)](_0x42d0ca(0x11d))||_0x3347e2==='no-await-in-loop'||_0x3347e2==='prefer-promise-reject-errors')return STATIC_ANALYSIS['CATEGORY'][_0x42d0ca(0x12d)];if(_0x3347e2[_0x42d0ca(0x108)]('import')||_0x3347e2===_0x42d0ca(0x116))return STATIC_ANALYSIS['CATEGORY'][_0x42d0ca(0x11a)];if(_0x3347e2['includes']('best-practices')||_0x3347e2==='no-unused-vars'||_0x3347e2===_0x42d0ca(0x129)||_0x3347e2==='no-var')return STATIC_ANALYSIS['CATEGORY'][_0x42d0ca(0x138)];return STATIC_ANALYSIS[_0x42d0ca(0x128)][_0x42d0ca(0x11f)];}['describeChanges'](_0x534c07,_0x4e1db6){const _0x41577d=a0_0x5e6a11,_0x46a6e8=[],_0x425d8d=_0x534c07['split']('\x0a'),_0x36b8f4=_0x4e1db6[_0x41577d(0x144)]('\x0a'),_0x1d3689=Math[_0x41577d(0x131)](_0x425d8d[_0x41577d(0x10c)],_0x36b8f4['length']);for(let _0x25a71f=0x0;_0x25a71f<_0x1d3689;_0x25a71f++){const _0x16fe45=_0x425d8d[_0x25a71f]||'',_0x2b2b80=_0x36b8f4[_0x25a71f]||'';_0x16fe45!==_0x2b2b80&&_0x46a6e8['push']({'line':_0x25a71f+0x1,'type':_0x16fe45&&_0x2b2b80?_0x41577d(0x14a):_0x16fe45?'removed':_0x41577d(0x13d),'original':_0x16fe45,'fixed':_0x2b2b80});}return _0x46a6e8;}[a0_0x5e6a11(0x110)](){const _0x52d77c=a0_0x5e6a11;return[_0x52d77c(0x115),_0x52d77c(0x10b),_0x52d77c(0x11e),_0x52d77c(0x117)];}['supportsAutoFix'](){return!![];}}export default ESLintAnalyzer;