@loxia-labs/loxia-autopilot-one 1.0.15 → 1.0.17

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 (122) hide show
  1. package/README.md +2 -2
  2. package/bin/cli.js +1 -1
  3. package/bin/loxia-terminal-v2.js +1 -1
  4. package/bin/loxia-terminal.js +1 -1
  5. package/bin/start-with-terminal.js +1 -1
  6. package/package.json +1 -1
  7. package/scripts/install-scanners.js +1 -1
  8. package/src/analyzers/CSSAnalyzer.js +1 -1
  9. package/src/analyzers/ConfigValidator.js +1 -1
  10. package/src/analyzers/ESLintAnalyzer.js +1 -1
  11. package/src/analyzers/JavaScriptAnalyzer.js +1 -1
  12. package/src/analyzers/PrettierFormatter.js +1 -1
  13. package/src/analyzers/PythonAnalyzer.js +1 -1
  14. package/src/analyzers/SecurityAnalyzer.js +1 -1
  15. package/src/analyzers/TypeScriptAnalyzer.js +1 -1
  16. package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
  17. package/src/analyzers/codeCloneDetector/detector.js +1 -1
  18. package/src/analyzers/codeCloneDetector/index.js +1 -1
  19. package/src/analyzers/codeCloneDetector/parser.js +1 -1
  20. package/src/analyzers/codeCloneDetector/reporter.js +1 -1
  21. package/src/analyzers/codeCloneDetector/scanner.js +1 -1
  22. package/src/core/agentPool.js +1 -1
  23. package/src/core/agentScheduler.js +1 -1
  24. package/src/core/contextManager.js +1 -1
  25. package/src/core/messageProcessor.js +1 -1
  26. package/src/core/orchestrator.js +1 -1
  27. package/src/core/stateManager.js +1 -1
  28. package/src/index.js +1 -1
  29. package/src/interfaces/cli.js +1 -1
  30. package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
  31. package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
  32. package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
  33. package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
  34. package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
  35. package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
  36. package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
  37. package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
  38. package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
  39. package/src/interfaces/terminal/api/apiClient.js +1 -1
  40. package/src/interfaces/terminal/api/messageRouter.js +1 -1
  41. package/src/interfaces/terminal/api/session.js +1 -1
  42. package/src/interfaces/terminal/api/websocket.js +1 -1
  43. package/src/interfaces/terminal/components/AgentCreator.js +1 -1
  44. package/src/interfaces/terminal/components/AgentEditor.js +1 -1
  45. package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
  46. package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
  47. package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
  48. package/src/interfaces/terminal/components/Header.js +1 -1
  49. package/src/interfaces/terminal/components/HelpPanel.js +1 -1
  50. package/src/interfaces/terminal/components/InputBox.js +1 -1
  51. package/src/interfaces/terminal/components/Layout.js +1 -1
  52. package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
  53. package/src/interfaces/terminal/components/MessageList.js +1 -1
  54. package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
  55. package/src/interfaces/terminal/components/SearchPanel.js +1 -1
  56. package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
  57. package/src/interfaces/terminal/components/StatusBar.js +1 -1
  58. package/src/interfaces/terminal/components/TextInput.js +1 -1
  59. package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
  60. package/src/interfaces/terminal/config/constants.js +1 -1
  61. package/src/interfaces/terminal/index.js +1 -1
  62. package/src/interfaces/terminal/state/useAgentControl.js +1 -1
  63. package/src/interfaces/terminal/state/useAgents.js +1 -1
  64. package/src/interfaces/terminal/state/useConnection.js +1 -1
  65. package/src/interfaces/terminal/state/useMessages.js +1 -1
  66. package/src/interfaces/terminal/state/useTools.js +1 -1
  67. package/src/interfaces/terminal/utils/debugLogger.js +1 -1
  68. package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
  69. package/src/interfaces/terminal/utils/theme.js +1 -1
  70. package/src/interfaces/webServer.js +1 -1
  71. package/src/modules/fileExplorer/controller.js +1 -1
  72. package/src/modules/fileExplorer/index.js +1 -1
  73. package/src/modules/fileExplorer/middleware.js +1 -1
  74. package/src/modules/fileExplorer/routes.js +1 -1
  75. package/src/services/agentActivityService.js +1 -1
  76. package/src/services/aiService.js +1 -1
  77. package/src/services/apiKeyManager.js +1 -1
  78. package/src/services/benchmarkService.js +1 -1
  79. package/src/services/budgetService.js +1 -1
  80. package/src/services/contextInjectionService.js +1 -1
  81. package/src/services/conversationCompactionService.js +1 -1
  82. package/src/services/errorHandler.js +1 -1
  83. package/src/services/fileAttachmentService.js +1 -1
  84. package/src/services/modelRouterService.js +1 -1
  85. package/src/services/modelsService.js +1 -1
  86. package/src/services/qualityInspector.js +1 -1
  87. package/src/services/tokenCountingService.js +1 -1
  88. package/src/tools/agentCommunicationTool.js +1 -1
  89. package/src/tools/agentDelayTool.js +1 -1
  90. package/src/tools/asyncToolManager.js +1 -1
  91. package/src/tools/baseTool.js +1 -1
  92. package/src/tools/browserTool.js +1 -1
  93. package/src/tools/cloneDetectionTool.js +1 -1
  94. package/src/tools/dependencyResolverTool.js +1 -1
  95. package/src/tools/fileContentReplaceTool.js +1 -1
  96. package/src/tools/fileSystemTool.js +1 -1
  97. package/src/tools/fileTreeTool.js +1 -1
  98. package/src/tools/imageTool.js +1 -1
  99. package/src/tools/importAnalyzerTool.js +1 -1
  100. package/src/tools/jobDoneTool.js +1 -1
  101. package/src/tools/seekTool.js +1 -1
  102. package/src/tools/staticAnalysisTool.js +1 -1
  103. package/src/tools/taskManagerTool.js +1 -1
  104. package/src/tools/terminalTool.js +1 -1
  105. package/src/tools/webTool.js +1 -1
  106. package/src/types/agent.js +1 -1
  107. package/src/types/contextReference.js +1 -1
  108. package/src/types/conversation.js +1 -1
  109. package/src/types/toolCommand.js +1 -1
  110. package/src/utilities/attachmentValidator.js +1 -1
  111. package/src/utilities/configManager.js +1 -1
  112. package/src/utilities/constants.js +1 -1
  113. package/src/utilities/directoryAccessManager.js +1 -1
  114. package/src/utilities/fileProcessor.js +1 -1
  115. package/src/utilities/logger.js +1 -1
  116. package/src/utilities/tagParser.js +1 -1
  117. package/src/utilities/toolConstants.js +1 -1
  118. package/src/utilities/userDataDir.js +1 -1
  119. package/web-ui/build/index.html +2 -2
  120. package/web-ui/build/static/index-CRkOpV4k.css +1 -0
  121. package/web-ui/build/static/{index-CR8edPA3.js → index-DzOU48ux.js} +98 -79
  122. package/web-ui/build/static/index-uN7nOVvZ.css +0 -1
package/README.md CHANGED
@@ -99,7 +99,7 @@ npm install -g @loxia-labs/loxia-autopilot-one
99
99
 
100
100
  ```bash
101
101
  loxia --version
102
- # Should display: Loxia Autopilot One v1.0.15
102
+ # Should display: Loxia Autopilot One v1.0.16
103
103
  ```
104
104
 
105
105
  ### 4. Create an API Key
@@ -369,7 +369,7 @@ Loxia automatically compacts long conversations to stay within token limits:
369
369
 
370
370
  ## 🛣️ Roadmap
371
371
 
372
- ### Current Version (1.0.15)
372
+ ### Current Version (1.0.16)
373
373
 
374
374
  - ✅ Multi-agent orchestration
375
375
  - ✅ 18+ specialized tools
package/bin/cli.js CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- const a0_0x3de577=a0_0x2c27;(function(_0x12d5d2,_0x9603e7){const _0x5c80c1=a0_0x2c27,_0x5ec526=_0x12d5d2();while(!![]){try{const _0xdd91cb=-parseInt(_0x5c80c1(0xd4))/0x1*(-parseInt(_0x5c80c1(0x104))/0x2)+parseInt(_0x5c80c1(0xf0))/0x3*(parseInt(_0x5c80c1(0xc2))/0x4)+parseInt(_0x5c80c1(0xf7))/0x5*(parseInt(_0x5c80c1(0xe3))/0x6)+parseInt(_0x5c80c1(0xcc))/0x7*(-parseInt(_0x5c80c1(0xfd))/0x8)+-parseInt(_0x5c80c1(0xdf))/0x9+parseInt(_0x5c80c1(0xf6))/0xa*(-parseInt(_0x5c80c1(0xcf))/0xb)+parseInt(_0x5c80c1(0xce))/0xc;if(_0xdd91cb===_0x9603e7)break;else _0x5ec526['push'](_0x5ec526['shift']());}catch(_0x952588){_0x5ec526['push'](_0x5ec526['shift']());}}}(a0_0xaeb2,0x244a3));import{fileURLToPath}from'url';import{dirname,join}from'path';import{spawn,exec}from'child_process';import{readFileSync}from'fs';import a0_0x5b5330 from'http';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename),DEFAULT_PORT=0x1f90,DEFAULT_HOST=a0_0x3de577(0xdc),SERVER_STARTUP_TIMEOUT=0x3a98,SERVER_CHECK_INTERVAL=0x1f4,args=process[a0_0x3de577(0xe9)][a0_0x3de577(0xc3)](0x2),command=args[0x0]&&!args[0x0][a0_0x3de577(0xe8)]('--')?args[0x0]:null,flags={'port':null,'host':null,'help':args[a0_0x3de577(0xcd)](a0_0x3de577(0xff))||args[a0_0x3de577(0xcd)]('-h'),'version':args[a0_0x3de577(0xcd)](a0_0x3de577(0xfa))||args[a0_0x3de577(0xcd)]('-v')};for(let i=0x0;i<args['length'];i++){args[i]===a0_0x3de577(0xc8)&&args[i+0x1]&&(flags[a0_0x3de577(0xe4)]=parseInt(args[i+0x1],0xa)),args[i]==='--host'&&args[i+0x1]&&(flags[a0_0x3de577(0xfb)]=args[i+0x1]);}function a0_0x2c27(_0x3abb66,_0x557829){_0x3abb66=_0x3abb66-0xc2;const _0xaeb287=a0_0xaeb2();let _0x2c278b=_0xaeb287[_0x3abb66];return _0x2c278b;}const port=flags[a0_0x3de577(0xe4)]||DEFAULT_PORT,host=flags[a0_0x3de577(0xfb)]||DEFAULT_HOST,serverUrl=a0_0x3de577(0xe5)+host+':'+port;if(flags[a0_0x3de577(0xd8)]){const pkgPath=join(__dirname,'..',a0_0x3de577(0xf5)),pkg=JSON['parse'](readFileSync(pkgPath,a0_0x3de577(0xd6)));console['log'](a0_0x3de577(0xca)+pkg[a0_0x3de577(0xd8)]),process[a0_0x3de577(0xe1)](0x0);}if(flags['help']||!command){const pkgPath=join(__dirname,'..',a0_0x3de577(0xf5)),pkg=JSON[a0_0x3de577(0xd3)](readFileSync(pkgPath,a0_0x3de577(0xd6)));console['log'](a0_0x3de577(0xf2)+pkg[a0_0x3de577(0xd8)]+a0_0x3de577(0xf9)+DEFAULT_PORT+')\x0a\x20\x20--host\x20<host>\x20\x20\x20\x20\x20Specify\x20host\x20(default:\x20'+DEFAULT_HOST+a0_0x3de577(0xfe)),process[a0_0x3de577(0xe1)](0x0);}async function checkServerRunning(_0x2e3d6e,_0x21350d,_0x4ae414=0x1){for(let _0x5e08af=0x0;_0x5e08af<_0x4ae414;_0x5e08af++){const _0x438139=await new Promise(_0x18c566=>{const _0x4e8bf7=a0_0x2c27,_0x404432=a0_0x5b5330[_0x4e8bf7(0xd2)](_0x4e8bf7(0xe5)+_0x2e3d6e+':'+_0x21350d+_0x4e8bf7(0xee),_0x212ef0=>{const _0x46d9fd=_0x4e8bf7;_0x18c566(_0x212ef0[_0x46d9fd(0xe0)]===0xc8);});_0x404432['on'](_0x4e8bf7(0xf8),()=>_0x18c566(![])),_0x404432[_0x4e8bf7(0xc6)](0x7d0,()=>{const _0x4daa13=_0x4e8bf7;_0x404432[_0x4daa13(0xd7)](),_0x18c566(![]);});});if(_0x438139)return!![];_0x5e08af<_0x4ae414-0x1&&await new Promise(_0x3d082c=>setTimeout(_0x3d082c,SERVER_CHECK_INTERVAL));}return![];}async function waitForServer(_0xa3271c,_0x1ac6d5,_0x1db942=SERVER_STARTUP_TIMEOUT){const _0x2b0e3a=Math['ceil'](_0x1db942/SERVER_CHECK_INTERVAL);return checkServerRunning(_0xa3271c,_0x1ac6d5,_0x2b0e3a);}function openBrowser(_0x19bf68){const _0xe6cdc0=a0_0x3de577,_0x5e1608=process['platform'];let _0x55a9de;if(_0x5e1608==='darwin')_0x55a9de=_0xe6cdc0(0x105)+_0x19bf68+'\x22';else _0x5e1608===_0xe6cdc0(0x102)?_0x55a9de=_0xe6cdc0(0xdd)+_0x19bf68+'\x22':_0x55a9de=_0xe6cdc0(0xe7)+_0x19bf68+'\x22';exec(_0x55a9de,_0x33dab0=>{const _0x4fef26=_0xe6cdc0;_0x33dab0&&(console[_0x4fef26(0x106)](_0x4fef26(0x108)),console[_0x4fef26(0x106)](_0x4fef26(0xcb)+_0x19bf68));});}function startServer(_0x42bdeb=![]){const _0x35db87=a0_0x3de577,_0x168c6c={...process['env'],'LOXIA_PORT':port[_0x35db87(0xfc)](),'PORT':port[_0x35db87(0xfc)]()};flags[_0x35db87(0xfb)]&&(_0x168c6c[_0x35db87(0xc4)]=flags[_0x35db87(0xfb)]);const _0x9ae793=join(__dirname,'..',_0x35db87(0xf1),_0x35db87(0xde)),_0xb9d18d=spawn(_0x35db87(0xf4),[_0x9ae793],{'cwd':join(__dirname,'..'),'env':_0x168c6c,'stdio':_0x42bdeb?[_0x35db87(0xe6),_0x35db87(0xe6),'ignore']:_0x35db87(0x103),'detached':_0x42bdeb});return _0x42bdeb&&_0xb9d18d['unref'](),_0xb9d18d;}function startTerminalUI(){const _0x3b850e=a0_0x3de577,_0x5c9a3f=join(__dirname,'loxia-terminal.js'),_0x322bf7={...process[_0x3b850e(0xc7)],'LOXIA_PORT':port[_0x3b850e(0xfc)](),'LOXIA_HOST':host},_0x660802=spawn('node',[_0x5c9a3f],{'cwd':join(__dirname,'..'),'env':_0x322bf7,'stdio':_0x3b850e(0x103)});return _0x660802;}const commands={'web':async()=>{const _0x1f5e01=a0_0x3de577;console[_0x1f5e01(0x106)](_0x1f5e01(0xe2));const _0x97d4d2=startServer(![]);console[_0x1f5e01(0x106)](_0x1f5e01(0x100));const _0x8d5560=await waitForServer(host,port);_0x8d5560?(console[_0x1f5e01(0x106)]('\x0aOpening\x20Web\x20UI\x20at\x20'+serverUrl),openBrowser(serverUrl)):console[_0x1f5e01(0x106)]('\x0aServer\x20may\x20still\x20be\x20starting.\x20Open\x20'+serverUrl+_0x1f5e01(0xf3)),process['on'](_0x1f5e01(0xea),()=>_0x97d4d2[_0x1f5e01(0xec)](_0x1f5e01(0xea))),process['on']('SIGTERM',()=>_0x97d4d2['kill']('SIGTERM')),_0x97d4d2['on']('exit',_0x10b35d=>process[_0x1f5e01(0xe1)](_0x10b35d||0x0));},'plus-web':async()=>{await commands['web']();},'terminal':async()=>{const _0x31b977=a0_0x3de577;console[_0x31b977(0x106)](_0x31b977(0xed));const _0xc520d9=await checkServerRunning(host,port);!_0xc520d9&&(console[_0x31b977(0xf8)](_0x31b977(0x107)+serverUrl),console[_0x31b977(0xf8)]('\x0aPlease\x20start\x20the\x20server\x20first:'),console[_0x31b977(0xf8)](_0x31b977(0xd5)),console['error'](_0x31b977(0xdb)),process[_0x31b977(0xe1)](0x1));console[_0x31b977(0x106)]('Server\x20is\x20running\x20at\x20'+serverUrl),console[_0x31b977(0x106)](_0x31b977(0xeb));const _0x496c71=startTerminalUI();process['on']('SIGINT',()=>_0x496c71[_0x31b977(0xec)](_0x31b977(0xea))),process['on']('SIGTERM',()=>_0x496c71[_0x31b977(0xec)](_0x31b977(0xd1))),_0x496c71['on']('exit',_0x34f22d=>process[_0x31b977(0xe1)](_0x34f22d||0x0));},'plus-terminal':async()=>{const _0x344ba9=a0_0x3de577;console[_0x344ba9(0x106)](_0x344ba9(0xc5));const _0x5aaa0e=startServer(!![]),_0x522e4a=await waitForServer(host,port);!_0x522e4a&&(console[_0x344ba9(0xf8)]('\x0aServer\x20failed\x20to\x20start.\x20Please\x20check\x20logs.'),process[_0x344ba9(0xe1)](0x1));console[_0x344ba9(0x106)](_0x344ba9(0xc9)+serverUrl),console[_0x344ba9(0x106)](_0x344ba9(0xeb));const _0x35a286=startTerminalUI();_0x35a286['on'](_0x344ba9(0xe1),_0x30a350=>{const _0x15d0aa=_0x344ba9;console['log'](_0x15d0aa(0xd9));try{process[_0x15d0aa(0xec)](_0x5aaa0e[_0x15d0aa(0xef)],'SIGTERM');}catch(_0x14ca2e){}process[_0x15d0aa(0xe1)](_0x30a350||0x0);}),process['on'](_0x344ba9(0xea),()=>{const _0x524c8f=_0x344ba9;_0x35a286['kill'](_0x524c8f(0xea));}),process['on'](_0x344ba9(0xd1),()=>{const _0x431961=_0x344ba9;_0x35a286[_0x431961(0xec)](_0x431961(0xd1));});}};function a0_0xaeb2(){const _0x3f2cdf=['--help','Waiting\x20for\x20server\x20to\x20start...','Run\x20\x22loxia\x20--help\x22\x20for\x20usage\x20information.','win32','inherit','28dZHKiM','open\x20\x22','log','\x0aServer\x20is\x20not\x20running\x20at\x20','Could\x20not\x20open\x20browser\x20automatically.','11448zkzQnT','slice','LOXIA_HOST','Starting\x20Loxia\x20server\x20in\x20background...','setTimeout','env','--port','Server\x20running\x20at\x20','Loxia\x20Autopilot\x20One\x20v','Please\x20open\x20manually:\x20','5649Ipzoqq','includes','1759272RVJkNf','671jHhbdj','Error:','SIGTERM','get','parse','12121iqjWwf','\x20\x20loxia\x20web\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20Start\x20server\x20+\x20Web\x20UI','utf8','destroy','version','\x0aShutting\x20down\x20server...','Unknown\x20command:\x20','\x20\x20loxia\x20plus-terminal\x20\x20#\x20Start\x20server\x20+\x20Terminal\x20UI\x0a','localhost','start\x20\x22\x22\x20\x22','index.js','1409967oJNAdy','statusCode','exit','Starting\x20Loxia\x20server...\x0a','6QnlHFT','port','http://','ignore','xdg-open\x20\x22','startsWith','argv','SIGINT','Starting\x20Terminal\x20UI...\x0a','kill','Checking\x20if\x20server\x20is\x20running...','/api/health','pid','51ntNPBm','src','\x0aLoxia\x20Autopilot\x20One\x20v','\x20manually.','node','package.json','39250JJnOUC','1023970tYalxo','error','\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','--version','host','toString','248PyIyOs',')\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'];a0_0xaeb2=function(){return _0x3f2cdf;};return a0_0xaeb2();}commands[command]?commands[command]()['catch'](_0x2ad87d=>{const _0x32dc9d=a0_0x3de577;console[_0x32dc9d(0xf8)](_0x32dc9d(0xd0),_0x2ad87d['message']),process[_0x32dc9d(0xe1)](0x1);}):(console[a0_0x3de577(0xf8)](a0_0x3de577(0xda)+command),console['error'](a0_0x3de577(0x101)),process[a0_0x3de577(0xe1)](0x1));
3
+ const a0_0x1264ea=a0_0x466a;(function(_0x26470b,_0x575efe){const _0x439675=a0_0x466a,_0x3f3c0d=_0x26470b();while(!![]){try{const _0x2a51ab=parseInt(_0x439675(0x208))/0x1*(-parseInt(_0x439675(0x217))/0x2)+parseInt(_0x439675(0x1d8))/0x3+-parseInt(_0x439675(0x210))/0x4+-parseInt(_0x439675(0x1e6))/0x5+parseInt(_0x439675(0x1f6))/0x6*(-parseInt(_0x439675(0x1e1))/0x7)+parseInt(_0x439675(0x21e))/0x8*(parseInt(_0x439675(0x1e0))/0x9)+-parseInt(_0x439675(0x1d9))/0xa*(-parseInt(_0x439675(0x1ff))/0xb);if(_0x2a51ab===_0x575efe)break;else _0x3f3c0d['push'](_0x3f3c0d['shift']());}catch(_0x49d353){_0x3f3c0d['push'](_0x3f3c0d['shift']());}}}(a0_0x3438,0x25699));import{fileURLToPath}from'url';import{dirname,join}from'path';function a0_0x466a(_0x5dcd0f,_0x4a41f3){_0x5dcd0f=_0x5dcd0f-0x1d4;const _0x343854=a0_0x3438();let _0x466a5b=_0x343854[_0x5dcd0f];return _0x466a5b;}import{spawn,exec}from'child_process';import{readFileSync}from'fs';import a0_0x303651 from'http';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename),DEFAULT_PORT=0x1f90,DEFAULT_HOST=a0_0x1264ea(0x202),SERVER_STARTUP_TIMEOUT=0x3a98,SERVER_CHECK_INTERVAL=0x1f4,args=process[a0_0x1264ea(0x1e9)][a0_0x1264ea(0x1ea)](0x2),command=args[0x0]&&!args[0x0][a0_0x1264ea(0x1e3)]('--')?args[0x0]:null,flags={'port':null,'host':null,'help':args['includes']('--help')||args[a0_0x1264ea(0x1f4)]('-h'),'version':args['includes'](a0_0x1264ea(0x1e8))||args[a0_0x1264ea(0x1f4)]('-v')};for(let i=0x0;i<args[a0_0x1264ea(0x21d)];i++){args[i]==='--port'&&args[i+0x1]&&(flags[a0_0x1264ea(0x218)]=parseInt(args[i+0x1],0xa)),args[i]===a0_0x1264ea(0x212)&&args[i+0x1]&&(flags['host']=args[i+0x1]);}const port=flags[a0_0x1264ea(0x218)]||DEFAULT_PORT,host=flags[a0_0x1264ea(0x1dd)]||DEFAULT_HOST,serverUrl=a0_0x1264ea(0x1fd)+host+':'+port;if(flags[a0_0x1264ea(0x1eb)]){const pkgPath=join(__dirname,'..',a0_0x1264ea(0x1f0)),pkg=JSON[a0_0x1264ea(0x1ee)](readFileSync(pkgPath,a0_0x1264ea(0x207)));console['log'](a0_0x1264ea(0x1e5)+pkg['version']),process[a0_0x1264ea(0x20c)](0x0);}if(flags[a0_0x1264ea(0x209)]||!command){const pkgPath=join(__dirname,'..',a0_0x1264ea(0x1f0)),pkg=JSON[a0_0x1264ea(0x1ee)](readFileSync(pkgPath,a0_0x1264ea(0x207)));console[a0_0x1264ea(0x1fc)](a0_0x1264ea(0x20b)+pkg[a0_0x1264ea(0x1eb)]+a0_0x1264ea(0x20f)+DEFAULT_PORT+a0_0x1264ea(0x1d7)+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['exit'](0x0);}async function checkServerRunning(_0x2a6be6,_0x1b6b4e,_0x13f196=0x1){for(let _0x35d41c=0x0;_0x35d41c<_0x13f196;_0x35d41c++){const _0x5134c9=await new Promise(_0x47984e=>{const _0xa9ace3=a0_0x466a,_0x260f61=a0_0x303651[_0xa9ace3(0x20a)](_0xa9ace3(0x1fd)+_0x2a6be6+':'+_0x1b6b4e+_0xa9ace3(0x1f7),_0x360f45=>{_0x47984e(_0x360f45['statusCode']===0xc8);});_0x260f61['on'](_0xa9ace3(0x1f8),()=>_0x47984e(![])),_0x260f61['setTimeout'](0x7d0,()=>{const _0x35a148=_0xa9ace3;_0x260f61[_0x35a148(0x20d)](),_0x47984e(![]);});});if(_0x5134c9)return!![];_0x35d41c<_0x13f196-0x1&&await new Promise(_0x5b65ff=>setTimeout(_0x5b65ff,SERVER_CHECK_INTERVAL));}return![];}function a0_0x3438(){const _0x28b245=['SIGTERM','node','\x0aServer\x20failed\x20to\x20start.\x20Please\x20check\x20logs.','ceil','length','8FgtwKh','src','Starting\x20Loxia\x20server...\x0a','SIGINT','catch',')\x0a\x20\x20--host\x20<host>\x20\x20\x20\x20\x20Specify\x20host\x20(default:\x20','680961nOEPra','25690DnYcrl','web','start\x20\x22\x22\x20\x22','Waiting\x20for\x20server\x20to\x20start...','host','index.js','\x20manually.','2176326tRKhDs','2912WZqJhg','kill','startsWith','win32','Loxia\x20Autopilot\x20One\x20v','408400DDCIdR','ignore','--version','argv','slice','version','loxia-terminal.js','\x0aServer\x20may\x20still\x20be\x20starting.\x20Open\x20','parse','env','package.json','Run\x20\x22loxia\x20--help\x22\x20for\x20usage\x20information.','Starting\x20Terminal\x20UI...\x0a','platform','includes','LOXIA_HOST','3072kHhLFl','/api/health','error','open\x20\x22','\x0aPlease\x20start\x20the\x20server\x20first:','inherit','log','http://','toString','1320KSOJBb','\x20\x20loxia\x20web\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20Start\x20server\x20+\x20Web\x20UI','Could\x20not\x20open\x20browser\x20automatically.','localhost','unref','\x0aServer\x20is\x20not\x20running\x20at\x20','Checking\x20if\x20server\x20is\x20running...','\x0aShutting\x20down\x20server...','utf8','2861vbciLJ','help','get','\x0aLoxia\x20Autopilot\x20One\x20v','exit','destroy','Server\x20running\x20at\x20','\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','366820RlpDYm','\x20\x20loxia\x20plus-terminal\x20\x20#\x20Start\x20server\x20+\x20Terminal\x20UI\x0a','--host','Please\x20open\x20manually:\x20','xdg-open\x20\x22','\x0aOpening\x20Web\x20UI\x20at\x20','Error:','166aMLWdZ','port'];a0_0x3438=function(){return _0x28b245;};return a0_0x3438();}async function waitForServer(_0x1205d8,_0xeeea4f,_0x4ba9c6=SERVER_STARTUP_TIMEOUT){const _0x23f347=a0_0x1264ea,_0x37bfcd=Math[_0x23f347(0x21c)](_0x4ba9c6/SERVER_CHECK_INTERVAL);return checkServerRunning(_0x1205d8,_0xeeea4f,_0x37bfcd);}function openBrowser(_0x5c2145){const _0x282a3c=a0_0x1264ea,_0x4309e5=process[_0x282a3c(0x1f3)];let _0x292c17;if(_0x4309e5==='darwin')_0x292c17=_0x282a3c(0x1f9)+_0x5c2145+'\x22';else _0x4309e5===_0x282a3c(0x1e4)?_0x292c17=_0x282a3c(0x1db)+_0x5c2145+'\x22':_0x292c17=_0x282a3c(0x214)+_0x5c2145+'\x22';exec(_0x292c17,_0x39d90a=>{const _0xd494c2=_0x282a3c;_0x39d90a&&(console[_0xd494c2(0x1fc)](_0xd494c2(0x201)),console['log'](_0xd494c2(0x213)+_0x5c2145));});}function startServer(_0x3ceb98=![]){const _0x205302=a0_0x1264ea,_0x44092b={...process[_0x205302(0x1ef)],'LOXIA_PORT':port[_0x205302(0x1fe)](),'PORT':port[_0x205302(0x1fe)]()};flags['host']&&(_0x44092b[_0x205302(0x1f5)]=flags[_0x205302(0x1dd)]);const _0x3fa527=join(__dirname,'..',_0x205302(0x21f),_0x205302(0x1de)),_0x4dc5aa=spawn(_0x205302(0x21a),[_0x3fa527],{'cwd':join(__dirname,'..'),'env':_0x44092b,'stdio':_0x3ceb98?[_0x205302(0x1e7),_0x205302(0x1e7),_0x205302(0x1e7)]:_0x205302(0x1fb),'detached':_0x3ceb98});return _0x3ceb98&&_0x4dc5aa[_0x205302(0x203)](),_0x4dc5aa;}function startTerminalUI(){const _0x20aa23=a0_0x1264ea,_0x2df044=join(__dirname,_0x20aa23(0x1ec)),_0x49b3bc={...process[_0x20aa23(0x1ef)],'LOXIA_PORT':port[_0x20aa23(0x1fe)](),'LOXIA_HOST':host},_0x752a0b=spawn(_0x20aa23(0x21a),[_0x2df044],{'cwd':join(__dirname,'..'),'env':_0x49b3bc,'stdio':_0x20aa23(0x1fb)});return _0x752a0b;}const commands={'web':async()=>{const _0x47d70d=a0_0x1264ea;console[_0x47d70d(0x1fc)](_0x47d70d(0x1d4));const _0xb81fd2=startServer(![]);console[_0x47d70d(0x1fc)](_0x47d70d(0x1dc));const _0x312aa3=await waitForServer(host,port);_0x312aa3?(console[_0x47d70d(0x1fc)](_0x47d70d(0x215)+serverUrl),openBrowser(serverUrl)):console[_0x47d70d(0x1fc)](_0x47d70d(0x1ed)+serverUrl+_0x47d70d(0x1df)),process['on']('SIGINT',()=>_0xb81fd2[_0x47d70d(0x1e2)](_0x47d70d(0x1d5))),process['on'](_0x47d70d(0x219),()=>_0xb81fd2[_0x47d70d(0x1e2)](_0x47d70d(0x219))),_0xb81fd2['on'](_0x47d70d(0x20c),_0x64f269=>process[_0x47d70d(0x20c)](_0x64f269||0x0));},'plus-web':async()=>{const _0x19796c=a0_0x1264ea;await commands[_0x19796c(0x1da)]();},'terminal':async()=>{const _0x155c75=a0_0x1264ea;console['log'](_0x155c75(0x205));const _0x81a185=await checkServerRunning(host,port);!_0x81a185&&(console[_0x155c75(0x1f8)](_0x155c75(0x204)+serverUrl),console[_0x155c75(0x1f8)](_0x155c75(0x1fa)),console[_0x155c75(0x1f8)](_0x155c75(0x200)),console[_0x155c75(0x1f8)](_0x155c75(0x211)),process[_0x155c75(0x20c)](0x1));console[_0x155c75(0x1fc)]('Server\x20is\x20running\x20at\x20'+serverUrl),console[_0x155c75(0x1fc)](_0x155c75(0x1f2));const _0x3d1266=startTerminalUI();process['on'](_0x155c75(0x1d5),()=>_0x3d1266[_0x155c75(0x1e2)](_0x155c75(0x1d5))),process['on'](_0x155c75(0x219),()=>_0x3d1266[_0x155c75(0x1e2)](_0x155c75(0x219))),_0x3d1266['on'](_0x155c75(0x20c),_0x2d0f5e=>process[_0x155c75(0x20c)](_0x2d0f5e||0x0));},'plus-terminal':async()=>{const _0x1ab78e=a0_0x1264ea;console[_0x1ab78e(0x1fc)]('Starting\x20Loxia\x20server\x20in\x20background...');const _0x557d94=startServer(!![]),_0x21b058=await waitForServer(host,port);!_0x21b058&&(console[_0x1ab78e(0x1f8)](_0x1ab78e(0x21b)),process[_0x1ab78e(0x20c)](0x1));console['log'](_0x1ab78e(0x20e)+serverUrl),console[_0x1ab78e(0x1fc)](_0x1ab78e(0x1f2));const _0xf1efe0=startTerminalUI();_0xf1efe0['on'](_0x1ab78e(0x20c),_0x48ca3d=>{const _0x4b6343=_0x1ab78e;console[_0x4b6343(0x1fc)](_0x4b6343(0x206));try{process[_0x4b6343(0x1e2)](_0x557d94['pid'],'SIGTERM');}catch(_0x410b12){}process['exit'](_0x48ca3d||0x0);}),process['on'](_0x1ab78e(0x1d5),()=>{const _0x174814=_0x1ab78e;_0xf1efe0[_0x174814(0x1e2)](_0x174814(0x1d5));}),process['on'](_0x1ab78e(0x219),()=>{const _0x11c864=_0x1ab78e;_0xf1efe0[_0x11c864(0x1e2)](_0x11c864(0x219));});}};commands[command]?commands[command]()[a0_0x1264ea(0x1d6)](_0x330c75=>{const _0x2bd7ba=a0_0x1264ea;console[_0x2bd7ba(0x1f8)](_0x2bd7ba(0x216),_0x330c75['message']),process[_0x2bd7ba(0x20c)](0x1);}):(console[a0_0x1264ea(0x1f8)]('Unknown\x20command:\x20'+command),console[a0_0x1264ea(0x1f8)](a0_0x1264ea(0x1f1)),process['exit'](0x1));
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- const a0_0x1bbb1e=a0_0x16c4;function a0_0x9be4(){const _0x4b3f94=['--ui','connect','7031962yNTaBS','argv','2673570bTmLwc','toString','now','2456864hqseMI','342121bIWKbG','\x20\x20\x203.\x20Check\x20logs\x20for\x20more\x20details','../src/interfaces/terminal/index.js','localhost','\x20\x20\x201.\x20Make\x20sure\x20no\x20other\x20process\x20is\x20using\x20port\x208080','length','❌\x20Failed\x20to\x20start\x20Terminal\x20UI:','✓\x20Server\x20started\x20at\x20','log','web','setTimeout','LOXIA_PORT','timeout','data','--port','122814lVzJTc','stdout','bin/cli.js','536LmLTdN','--host','\x20\x20\x202.\x20Try\x20running\x20the\x20server\x20manually:\x20node\x20bin/cli.js','kill','LOXIA_HOST','ignore','1004308DgmCiR','Socket','error','dirname','3715eDbbeD','🚀\x20Starting\x20Loxia\x20server...','🔍\x20Checking\x20if\x20server\x20is\x20running\x20at\x20','Failed\x20to\x20start\x20server:','join','━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━','\x20\x20Loxia\x20Autopilot\x20One\x20-\x20Terminal\x20UI','✓\x20Server\x20is\x20already\x20running\x20at\x20','destroy','18KyZZdp','message','exit','env','node'];a0_0x9be4=function(){return _0x4b3f94;};return a0_0x9be4();}(function(_0x3dab88,_0x381086){const _0x59e3ee=a0_0x16c4,_0x3e2cc1=_0x3dab88();while(!![]){try{const _0x2909e6=parseInt(_0x59e3ee(0x155))/0x1+parseInt(_0x59e3ee(0x16d))/0x2+-parseInt(_0x59e3ee(0x164))/0x3+parseInt(_0x59e3ee(0x167))/0x4*(-parseInt(_0x59e3ee(0x13f))/0x5)+-parseInt(_0x59e3ee(0x151))/0x6+parseInt(_0x59e3ee(0x14f))/0x7+parseInt(_0x59e3ee(0x154))/0x8*(-parseInt(_0x59e3ee(0x148))/0x9);if(_0x2909e6===_0x381086)break;else _0x3e2cc1['push'](_0x3e2cc1['shift']());}catch(_0x4b6892){_0x3e2cc1['push'](_0x3e2cc1['shift']());}}}(a0_0x9be4,0x9e552));import{spawn}from'child_process';import a0_0xb389aa from'net';import a0_0x34c79f from'path';function a0_0x16c4(_0x35a49d,_0xca2d07){_0x35a49d=_0x35a49d-0x13c;const _0x9be4bf=a0_0x9be4();let _0x16c45b=_0x9be4bf[_0x35a49d];return _0x16c45b;}import{fileURLToPath}from'url';const __filename=fileURLToPath(import.meta.url),__dirname=a0_0x34c79f[a0_0x1bbb1e(0x13e)](__filename),projectRoot=a0_0x34c79f[a0_0x1bbb1e(0x13e)](__dirname),DEFAULT_PORT=0x1f90,DEFAULT_HOST=a0_0x1bbb1e(0x158),SERVER_STARTUP_TIMEOUT=0x2710;async function isServerRunning(_0x17ac49,_0x477171){return new Promise(_0x2f56b9=>{const _0x32b1d5=a0_0x16c4,_0xb7aa03=new a0_0xb389aa[(_0x32b1d5(0x13c))]();_0xb7aa03[_0x32b1d5(0x15f)](0x7d0),_0xb7aa03['on'](_0x32b1d5(0x14e),()=>{const _0x314fcc=_0x32b1d5;_0xb7aa03[_0x314fcc(0x147)](),_0x2f56b9(!![]);}),_0xb7aa03['on'](_0x32b1d5(0x161),()=>{const _0x19f69f=_0x32b1d5;_0xb7aa03[_0x19f69f(0x147)](),_0x2f56b9(![]);}),_0xb7aa03['on']('error',()=>{const _0xdff789=_0x32b1d5;_0xb7aa03[_0xdff789(0x147)](),_0x2f56b9(![]);}),_0xb7aa03[_0x32b1d5(0x14e)](_0x477171,_0x17ac49);});}async function startServer(_0x2d3608,_0x1d36df){const _0x1dbe03=a0_0x1bbb1e;return console[_0x1dbe03(0x15d)](_0x1dbe03(0x140)),new Promise((_0x1e9c81,_0x218afd)=>{const _0x188b22=_0x1dbe03,_0x4ca672=spawn(_0x188b22(0x14c),[a0_0x34c79f[_0x188b22(0x143)](projectRoot,_0x188b22(0x166)),_0x188b22(0x14d),_0x188b22(0x15e),_0x188b22(0x168),_0x2d3608,_0x188b22(0x163),_0x1d36df[_0x188b22(0x152)]()],{'detached':![],'stdio':[_0x188b22(0x16c),'pipe','pipe']});_0x4ca672[_0x188b22(0x165)]['on'](_0x188b22(0x162),()=>{}),_0x4ca672['stderr']['on'](_0x188b22(0x162),()=>{}),_0x4ca672['on']('error',_0x595db9=>{const _0x25ee20=_0x188b22;console['error'](_0x25ee20(0x142),_0x595db9['message']),_0x218afd(_0x595db9);});const _0x20dad4=Date[_0x188b22(0x153)](),_0x59b74d=setInterval(async()=>{const _0x5d310c=_0x188b22,_0x176331=await isServerRunning(_0x2d3608,_0x1d36df);if(_0x176331)clearInterval(_0x59b74d),console[_0x5d310c(0x15d)](_0x5d310c(0x15c)+_0x2d3608+':'+_0x1d36df),_0x1e9c81();else Date[_0x5d310c(0x153)]()-_0x20dad4>SERVER_STARTUP_TIMEOUT&&(clearInterval(_0x59b74d),_0x4ca672[_0x5d310c(0x16a)](),_0x218afd(new Error('Server\x20startup\x20timeout')));},0x1f4);});}async function main(){const _0x5a41e9=a0_0x1bbb1e;try{console[_0x5a41e9(0x15d)](_0x5a41e9(0x144)),console[_0x5a41e9(0x15d)](_0x5a41e9(0x145)),console[_0x5a41e9(0x15d)](_0x5a41e9(0x144)),console[_0x5a41e9(0x15d)]('');const _0x59a19f=process[_0x5a41e9(0x150)]['slice'](0x2);let _0x2cd94a=DEFAULT_HOST,_0x3f74f7=DEFAULT_PORT;for(let _0x33479a=0x0;_0x33479a<_0x59a19f[_0x5a41e9(0x15a)];_0x33479a++){if(_0x59a19f[_0x33479a]===_0x5a41e9(0x168)&&_0x59a19f[_0x33479a+0x1])_0x2cd94a=_0x59a19f[_0x33479a+0x1],_0x33479a++;else _0x59a19f[_0x33479a]===_0x5a41e9(0x163)&&_0x59a19f[_0x33479a+0x1]&&(_0x3f74f7=parseInt(_0x59a19f[_0x33479a+0x1],0xa),_0x33479a++);}console[_0x5a41e9(0x15d)](_0x5a41e9(0x141)+_0x2cd94a+':'+_0x3f74f7+'...');const _0x3bdeb6=await isServerRunning(_0x2cd94a,_0x3f74f7);!_0x3bdeb6?(console[_0x5a41e9(0x15d)]('✗\x20Server\x20is\x20not\x20running'),await startServer(_0x2cd94a,_0x3f74f7)):console[_0x5a41e9(0x15d)](_0x5a41e9(0x146)+_0x2cd94a+':'+_0x3f74f7),console['log'](''),console[_0x5a41e9(0x15d)]('🎨\x20Launching\x20Ink-based\x20Terminal\x20UI...'),console['log'](''),await new Promise(_0x398961=>setTimeout(_0x398961,0x1f4)),process[_0x5a41e9(0x14b)][_0x5a41e9(0x16b)]=_0x2cd94a,process[_0x5a41e9(0x14b)][_0x5a41e9(0x160)]=_0x3f74f7[_0x5a41e9(0x152)](),await import(_0x5a41e9(0x157));}catch(_0x4ebf4a){console[_0x5a41e9(0x13d)](''),console[_0x5a41e9(0x13d)](_0x5a41e9(0x15b)),console['error']('\x20\x20',_0x4ebf4a[_0x5a41e9(0x149)]),console[_0x5a41e9(0x13d)](''),console[_0x5a41e9(0x13d)]('💡\x20Troubleshooting:'),console[_0x5a41e9(0x13d)](_0x5a41e9(0x159)),console[_0x5a41e9(0x13d)](_0x5a41e9(0x169)),console[_0x5a41e9(0x13d)](_0x5a41e9(0x156)),console[_0x5a41e9(0x13d)](''),process[_0x5a41e9(0x14a)](0x1);}}main();
3
+ const a0_0x3efb97=a0_0x3b53;(function(_0x999f31,_0x1a0794){const _0x2cfccd=a0_0x3b53,_0x8ba1a9=_0x999f31();while(!![]){try{const _0x228c60=parseInt(_0x2cfccd(0x198))/0x1+parseInt(_0x2cfccd(0x1a2))/0x2+parseInt(_0x2cfccd(0x174))/0x3*(parseInt(_0x2cfccd(0x19a))/0x4)+parseInt(_0x2cfccd(0x18d))/0x5*(-parseInt(_0x2cfccd(0x17d))/0x6)+parseInt(_0x2cfccd(0x17a))/0x7*(-parseInt(_0x2cfccd(0x18c))/0x8)+parseInt(_0x2cfccd(0x19b))/0x9*(-parseInt(_0x2cfccd(0x179))/0xa)+-parseInt(_0x2cfccd(0x186))/0xb*(-parseInt(_0x2cfccd(0x18a))/0xc);if(_0x228c60===_0x1a0794)break;else _0x8ba1a9['push'](_0x8ba1a9['shift']());}catch(_0xa711eb){_0x8ba1a9['push'](_0x8ba1a9['shift']());}}}(a0_0x7e64,0xac78e));function a0_0x3b53(_0x277244,_0x4ea0e8){_0x277244=_0x277244-0x173;const _0x7e6433=a0_0x7e64();let _0x3b53b0=_0x7e6433[_0x277244];return _0x3b53b0;}import{spawn}from'child_process';import a0_0x1f0203 from'net';import a0_0x56838d from'path';import{fileURLToPath}from'url';function a0_0x7e64(){const _0x5030c2=['\x20\x20Loxia\x20Autopilot\x20One\x20-\x20Terminal\x20UI','--ui','150SPBViW','destroy','--host','--port','toString','../src/interfaces/terminal/index.js','💡\x20Troubleshooting:','🔍\x20Checking\x20if\x20server\x20is\x20running\x20at\x20','setTimeout','19723649TXagzV','✓\x20Server\x20started\x20at\x20','web','message','12ipGjzh','stdout','8vnzptW','259270pqMAKN','ignore','localhost','now','✗\x20Server\x20is\x20not\x20running','dirname','connect','...','✓\x20Server\x20is\x20already\x20running\x20at\x20','\x20\x20\x201.\x20Make\x20sure\x20no\x20other\x20process\x20is\x20using\x20port\x208080','━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━','936572LGACAx','Failed\x20to\x20start\x20server:','95204AiUbOF','137961aSJyuU','pipe','join','log','❌\x20Failed\x20to\x20start\x20Terminal\x20UI:','error','LOXIA_HOST','1583184sBIpPX','data','🚀\x20Starting\x20Loxia\x20server...','\x20\x20\x203.\x20Check\x20logs\x20for\x20more\x20details','stderr','slice','🎨\x20Launching\x20Ink-based\x20Terminal\x20UI...','21ZqIige','Server\x20startup\x20timeout','Socket','\x20\x20\x202.\x20Try\x20running\x20the\x20server\x20manually:\x20node\x20bin/cli.js','env','330ZUzOJJ','8254239TGGaWd'];a0_0x7e64=function(){return _0x5030c2;};return a0_0x7e64();}const __filename=fileURLToPath(import.meta.url),__dirname=a0_0x56838d[a0_0x3efb97(0x192)](__filename),projectRoot=a0_0x56838d[a0_0x3efb97(0x192)](__dirname),DEFAULT_PORT=0x1f90,DEFAULT_HOST=a0_0x3efb97(0x18f),SERVER_STARTUP_TIMEOUT=0x2710;async function isServerRunning(_0x112ba2,_0x196f1f){return new Promise(_0x44ab53=>{const _0x18d581=a0_0x3b53,_0x5c51ac=new a0_0x1f0203[(_0x18d581(0x176))]();_0x5c51ac[_0x18d581(0x185)](0x7d0),_0x5c51ac['on'](_0x18d581(0x193),()=>{const _0x12864a=_0x18d581;_0x5c51ac[_0x12864a(0x17e)](),_0x44ab53(!![]);}),_0x5c51ac['on']('timeout',()=>{const _0x5b4188=_0x18d581;_0x5c51ac[_0x5b4188(0x17e)](),_0x44ab53(![]);}),_0x5c51ac['on']('error',()=>{const _0x370420=_0x18d581;_0x5c51ac[_0x370420(0x17e)](),_0x44ab53(![]);}),_0x5c51ac[_0x18d581(0x193)](_0x196f1f,_0x112ba2);});}async function startServer(_0x183f88,_0x3e3469){const _0x3e43d9=a0_0x3efb97;return console['log'](_0x3e43d9(0x1a4)),new Promise((_0x28e7d6,_0x3ea427)=>{const _0x1ff437=_0x3e43d9,_0x5c107a=spawn('node',[a0_0x56838d[_0x1ff437(0x19d)](projectRoot,'bin/cli.js'),_0x1ff437(0x17c),_0x1ff437(0x188),_0x1ff437(0x17f),_0x183f88,'--port',_0x3e3469[_0x1ff437(0x181)]()],{'detached':![],'stdio':[_0x1ff437(0x18e),_0x1ff437(0x19c),_0x1ff437(0x19c)]});_0x5c107a[_0x1ff437(0x18b)]['on']('data',()=>{}),_0x5c107a[_0x1ff437(0x1a6)]['on'](_0x1ff437(0x1a3),()=>{}),_0x5c107a['on'](_0x1ff437(0x1a0),_0x33755e=>{const _0x2a3c42=_0x1ff437;console[_0x2a3c42(0x1a0)](_0x2a3c42(0x199),_0x33755e['message']),_0x3ea427(_0x33755e);});const _0x87ed99=Date[_0x1ff437(0x190)](),_0x1b4ac2=setInterval(async()=>{const _0x441619=_0x1ff437,_0x566319=await isServerRunning(_0x183f88,_0x3e3469);if(_0x566319)clearInterval(_0x1b4ac2),console[_0x441619(0x19e)](_0x441619(0x187)+_0x183f88+':'+_0x3e3469),_0x28e7d6();else Date[_0x441619(0x190)]()-_0x87ed99>SERVER_STARTUP_TIMEOUT&&(clearInterval(_0x1b4ac2),_0x5c107a['kill'](),_0x3ea427(new Error(_0x441619(0x175))));},0x1f4);});}async function main(){const _0x25967a=a0_0x3efb97;try{console[_0x25967a(0x19e)](_0x25967a(0x197)),console[_0x25967a(0x19e)](_0x25967a(0x17b)),console[_0x25967a(0x19e)](_0x25967a(0x197)),console[_0x25967a(0x19e)]('');const _0x33c2c0=process['argv'][_0x25967a(0x1a7)](0x2);let _0xe40c09=DEFAULT_HOST,_0x5a20fb=DEFAULT_PORT;for(let _0x1facaf=0x0;_0x1facaf<_0x33c2c0['length'];_0x1facaf++){if(_0x33c2c0[_0x1facaf]===_0x25967a(0x17f)&&_0x33c2c0[_0x1facaf+0x1])_0xe40c09=_0x33c2c0[_0x1facaf+0x1],_0x1facaf++;else _0x33c2c0[_0x1facaf]===_0x25967a(0x180)&&_0x33c2c0[_0x1facaf+0x1]&&(_0x5a20fb=parseInt(_0x33c2c0[_0x1facaf+0x1],0xa),_0x1facaf++);}console[_0x25967a(0x19e)](_0x25967a(0x184)+_0xe40c09+':'+_0x5a20fb+_0x25967a(0x194));const _0x3f9323=await isServerRunning(_0xe40c09,_0x5a20fb);!_0x3f9323?(console[_0x25967a(0x19e)](_0x25967a(0x191)),await startServer(_0xe40c09,_0x5a20fb)):console['log'](_0x25967a(0x195)+_0xe40c09+':'+_0x5a20fb),console[_0x25967a(0x19e)](''),console[_0x25967a(0x19e)](_0x25967a(0x173)),console[_0x25967a(0x19e)](''),await new Promise(_0x344ca5=>setTimeout(_0x344ca5,0x1f4)),process[_0x25967a(0x178)][_0x25967a(0x1a1)]=_0xe40c09,process[_0x25967a(0x178)]['LOXIA_PORT']=_0x5a20fb[_0x25967a(0x181)](),await import(_0x25967a(0x182));}catch(_0x20e127){console[_0x25967a(0x1a0)](''),console[_0x25967a(0x1a0)](_0x25967a(0x19f)),console[_0x25967a(0x1a0)]('\x20\x20',_0x20e127[_0x25967a(0x189)]),console[_0x25967a(0x1a0)](''),console[_0x25967a(0x1a0)](_0x25967a(0x183)),console[_0x25967a(0x1a0)](_0x25967a(0x196)),console[_0x25967a(0x1a0)](_0x25967a(0x177)),console[_0x25967a(0x1a0)](_0x25967a(0x1a5)),console[_0x25967a(0x1a0)](''),process['exit'](0x1);}}main();
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- const a0_0x395d08=a0_0x5722;(function(_0x4c8086,_0x3ae5ce){const _0x5ecab5=a0_0x5722,_0xd92ccf=_0x4c8086();while(!![]){try{const _0x21e2f4=-parseInt(_0x5ecab5(0x6d))/0x1*(parseInt(_0x5ecab5(0x84))/0x2)+-parseInt(_0x5ecab5(0x8b))/0x3*(parseInt(_0x5ecab5(0x6b))/0x4)+parseInt(_0x5ecab5(0x7c))/0x5+-parseInt(_0x5ecab5(0x6e))/0x6+parseInt(_0x5ecab5(0x67))/0x7+parseInt(_0x5ecab5(0x81))/0x8+parseInt(_0x5ecab5(0x7f))/0x9*(parseInt(_0x5ecab5(0x7a))/0xa);if(_0x21e2f4===_0x3ae5ce)break;else _0xd92ccf['push'](_0xd92ccf['shift']());}catch(_0x4232b7){_0xd92ccf['push'](_0xd92ccf['shift']());}}}(a0_0x3840,0xdc2f4));function a0_0x5722(_0x510d60,_0x28541b){_0x510d60=_0x510d60-0x64;const _0x384009=a0_0x3840();let _0x572237=_0x384009[_0x510d60];return _0x572237;}import{startTerminalUI}from'../src/interfaces/terminal/index.js';const args=process[a0_0x395d08(0x8a)][a0_0x395d08(0x85)](0x2),options={'host':a0_0x395d08(0x8c),'port':0x1f90};for(let i=0x0;i<args[a0_0x395d08(0x77)];i++){const arg=args[i];if(arg===a0_0x395d08(0x64)||arg==='-h')options['host']=args[++i];else{if(arg===a0_0x395d08(0x88)||arg==='-p')options[a0_0x395d08(0x7b)]=parseInt(args[++i],0xa);else arg===a0_0x395d08(0x71)&&(console[a0_0x395d08(0x89)](a0_0x395d08(0x65)),process[a0_0x395d08(0x80)](0x0));}}process[a0_0x395d08(0x83)][a0_0x395d08(0x72)]&&(options[a0_0x395d08(0x87)]=process[a0_0x395d08(0x83)][a0_0x395d08(0x72)]);function a0_0x3840(){const _0x508c91=['localhost','--host','\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','Please\x20run\x20this\x20command\x20in\x20a\x20real\x20terminal\x20without\x20pipes\x20or\x20redirection:','6587637IFhMiT','\x20\x20npm\x20start','\x0aTerminal\x20UI\x20error:','ERROR:\x20Terminal\x20UI\x20requires\x20an\x20interactive\x20terminal\x20(TTY).','4516WgneUN','stdin','1tDDEAX','1116342RAhuVG','The\x20terminal\x20UI\x20cannot\x20run\x20in:','Starting\x20Loxia\x20Terminal\x20UI...','--help','LOXIA_HOST','\x20\x20-\x20Piped\x20environments\x20(e.g.,\x20|\x20head,\x20|\x20grep)','\x20\x20-\x20Redirected\x20output\x20(e.g.,\x20>\x20file.txt,\x202>&1\x20|\x20...)','LOXIA_PORT','\x20\x20-\x20Background\x20processes\x20(e.g.,\x20&\x20at\x20the\x20end)','length','Press\x20Ctrl+C\x20to\x20exit\x0a','error','290nLNgBD','port','783555vvDfxB','isTTY','catch','198999TqSlkx','exit','6035776XVtYxK','then','env','668278LUnqjP','slice','\x0aTerminal\x20UI\x20exited','host','--port','log','argv','2847WzpVKT'];a0_0x3840=function(){return _0x508c91;};return a0_0x3840();}process[a0_0x395d08(0x83)][a0_0x395d08(0x75)]&&(options[a0_0x395d08(0x7b)]=parseInt(process[a0_0x395d08(0x83)][a0_0x395d08(0x75)],0xa));!process[a0_0x395d08(0x6c)][a0_0x395d08(0x7d)]&&(console['error'](a0_0x395d08(0x6a)),console[a0_0x395d08(0x79)](''),console['error'](a0_0x395d08(0x6f)),console[a0_0x395d08(0x79)](a0_0x395d08(0x73)),console[a0_0x395d08(0x79)](a0_0x395d08(0x74)),console[a0_0x395d08(0x79)](a0_0x395d08(0x76)),console[a0_0x395d08(0x79)]('\x20\x20-\x20Some\x20CI/CD\x20environments'),console[a0_0x395d08(0x79)](''),console[a0_0x395d08(0x79)](a0_0x395d08(0x66)),console[a0_0x395d08(0x79)]('\x20\x20npm\x20run\x20terminal-ui'),console[a0_0x395d08(0x79)](''),console[a0_0x395d08(0x79)]('Or\x20use\x20the\x20web\x20UI\x20instead:'),console['error'](a0_0x395d08(0x68)),process[a0_0x395d08(0x80)](0x1));console[a0_0x395d08(0x89)](a0_0x395d08(0x70)),console[a0_0x395d08(0x89)]('Connecting\x20to:\x20'+options[a0_0x395d08(0x87)]+':'+options[a0_0x395d08(0x7b)]),console[a0_0x395d08(0x89)](a0_0x395d08(0x78));const instance=startTerminalUI(options);instance['waitUntilExit']()[a0_0x395d08(0x82)](()=>{const _0x27b59f=a0_0x395d08;console['log'](_0x27b59f(0x86)),process[_0x27b59f(0x80)](0x0);})[a0_0x395d08(0x7e)](_0x1fa2dd=>{const _0x1e1a2d=a0_0x395d08;console['error'](_0x1e1a2d(0x69),_0x1fa2dd),process[_0x1e1a2d(0x80)](0x1);});
3
+ const a0_0x529ea5=a0_0x5091;(function(_0x21e367,_0x519ce0){const _0x575461=a0_0x5091,_0x45bda2=_0x21e367();while(!![]){try{const _0xdcdea2=parseInt(_0x575461(0x90))/0x1+parseInt(_0x575461(0x8a))/0x2*(-parseInt(_0x575461(0x7a))/0x3)+parseInt(_0x575461(0x7f))/0x4+-parseInt(_0x575461(0x74))/0x5+parseInt(_0x575461(0x6d))/0x6+-parseInt(_0x575461(0x7c))/0x7+parseInt(_0x575461(0x86))/0x8;if(_0xdcdea2===_0x519ce0)break;else _0x45bda2['push'](_0x45bda2['shift']());}catch(_0x513d33){_0x45bda2['push'](_0x45bda2['shift']());}}}(a0_0x321c,0xcd3b1));import{startTerminalUI}from'../src/interfaces/terminal/index.js';function a0_0x321c(){const _0x569539=['host','--host','7562622uHZTcm','Starting\x20Loxia\x20Terminal\x20UI...','port','\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','LOXIA_PORT','error','\x20\x20npm\x20run\x20terminal-ui','2250030gAgiCp','Or\x20use\x20the\x20web\x20UI\x20instead:','Please\x20run\x20this\x20command\x20in\x20a\x20real\x20terminal\x20without\x20pipes\x20or\x20redirection:','\x20\x20-\x20Background\x20processes\x20(e.g.,\x20&\x20at\x20the\x20end)','then','Connecting\x20to:\x20','2181CfkHUp','argv','2733661muZwIw','exit','waitUntilExit','879428TkxZft','The\x20terminal\x20UI\x20cannot\x20run\x20in:','\x20\x20npm\x20start','stdin','Press\x20Ctrl+C\x20to\x20exit\x0a','LOXIA_HOST','ERROR:\x20Terminal\x20UI\x20requires\x20an\x20interactive\x20terminal\x20(TTY).','6261296pfiGzG','log','slice','isTTY','4114lmCMML','\x20\x20-\x20Redirected\x20output\x20(e.g.,\x20>\x20file.txt,\x202>&1\x20|\x20...)','\x20\x20-\x20Some\x20CI/CD\x20environments','\x0aTerminal\x20UI\x20exited','env','\x0aTerminal\x20UI\x20error:','913637ZzocmJ'];a0_0x321c=function(){return _0x569539;};return a0_0x321c();}const args=process[a0_0x529ea5(0x7b)][a0_0x529ea5(0x88)](0x2),options={'host':'localhost','port':0x1f90};for(let i=0x0;i<args['length'];i++){const arg=args[i];if(arg===a0_0x529ea5(0x6c)||arg==='-h')options[a0_0x529ea5(0x6b)]=args[++i];else{if(arg==='--port'||arg==='-p')options[a0_0x529ea5(0x6f)]=parseInt(args[++i],0xa);else arg==='--help'&&(console[a0_0x529ea5(0x87)](a0_0x529ea5(0x70)),process[a0_0x529ea5(0x7d)](0x0));}}process[a0_0x529ea5(0x8e)]['LOXIA_HOST']&&(options['host']=process[a0_0x529ea5(0x8e)][a0_0x529ea5(0x84)]);process[a0_0x529ea5(0x8e)][a0_0x529ea5(0x71)]&&(options['port']=parseInt(process[a0_0x529ea5(0x8e)][a0_0x529ea5(0x71)],0xa));function a0_0x5091(_0x197723,_0x152261){_0x197723=_0x197723-0x6b;const _0x321cd5=a0_0x321c();let _0x5091ca=_0x321cd5[_0x197723];return _0x5091ca;}!process[a0_0x529ea5(0x82)][a0_0x529ea5(0x89)]&&(console['error'](a0_0x529ea5(0x85)),console[a0_0x529ea5(0x72)](''),console[a0_0x529ea5(0x72)](a0_0x529ea5(0x80)),console[a0_0x529ea5(0x72)]('\x20\x20-\x20Piped\x20environments\x20(e.g.,\x20|\x20head,\x20|\x20grep)'),console[a0_0x529ea5(0x72)](a0_0x529ea5(0x8b)),console[a0_0x529ea5(0x72)](a0_0x529ea5(0x77)),console['error'](a0_0x529ea5(0x8c)),console[a0_0x529ea5(0x72)](''),console['error'](a0_0x529ea5(0x76)),console[a0_0x529ea5(0x72)](a0_0x529ea5(0x73)),console[a0_0x529ea5(0x72)](''),console['error'](a0_0x529ea5(0x75)),console[a0_0x529ea5(0x72)](a0_0x529ea5(0x81)),process[a0_0x529ea5(0x7d)](0x1));console[a0_0x529ea5(0x87)](a0_0x529ea5(0x6e)),console[a0_0x529ea5(0x87)](a0_0x529ea5(0x79)+options[a0_0x529ea5(0x6b)]+':'+options['port']),console[a0_0x529ea5(0x87)](a0_0x529ea5(0x83));const instance=startTerminalUI(options);instance[a0_0x529ea5(0x7e)]()[a0_0x529ea5(0x78)](()=>{const _0x455534=a0_0x529ea5;console[_0x455534(0x87)](_0x455534(0x8d)),process[_0x455534(0x7d)](0x0);})['catch'](_0x155efe=>{const _0x24030b=a0_0x529ea5;console[_0x24030b(0x72)](_0x24030b(0x8f),_0x155efe),process[_0x24030b(0x7d)](0x1);});
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- const a0_0x4b5aba=a0_0x1807;(function(_0x43a804,_0x762631){const _0x4ff910=a0_0x1807,_0x2d45a1=_0x43a804();while(!![]){try{const _0x4d6aa2=parseInt(_0x4ff910(0x1d7))/0x1+parseInt(_0x4ff910(0x1b2))/0x2*(-parseInt(_0x4ff910(0x1c3))/0x3)+parseInt(_0x4ff910(0x1c5))/0x4*(-parseInt(_0x4ff910(0x1b1))/0x5)+parseInt(_0x4ff910(0x1d0))/0x6*(parseInt(_0x4ff910(0x1e0))/0x7)+-parseInt(_0x4ff910(0x1d9))/0x8*(-parseInt(_0x4ff910(0x1de))/0x9)+-parseInt(_0x4ff910(0x1d8))/0xa*(parseInt(_0x4ff910(0x1c1))/0xb)+-parseInt(_0x4ff910(0x1df))/0xc*(-parseInt(_0x4ff910(0x1bd))/0xd);if(_0x4d6aa2===_0x762631)break;else _0x2d45a1['push'](_0x2d45a1['shift']());}catch(_0x2bcf0d){_0x2d45a1['push'](_0x2d45a1['shift']());}}}(a0_0x4f47,0x970be));import{spawn}from'child_process';import{fileURLToPath}from'url';import{dirname,join}from'path';function a0_0x1807(_0x58e6eb,_0x41f3ee){_0x58e6eb=_0x58e6eb-0x1b0;const _0x4f476e=a0_0x4f47();let _0x1807ec=_0x4f476e[_0x58e6eb];return _0x1807ec;}import a0_0xa5ffd2 from'http';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename),rootDir=join(__dirname,'..'),SERVER_PORT=process[a0_0x4b5aba(0x1b7)][a0_0x4b5aba(0x1e2)]||0x1f90,STARTUP_WAIT=0x7d0;let serverProcess=null;async function checkServerReady(_0x3a6744=0xa,_0x51ab07=0x1f4){const _0x1d991c=a0_0x4b5aba;for(let _0x56e856=0x0;_0x56e856<_0x3a6744;_0x56e856++){try{return await new Promise((_0x4bd2af,_0x3dddf6)=>{const _0x33b6c5=a0_0x1807,_0x1915f2=a0_0xa5ffd2[_0x33b6c5(0x1da)](_0x33b6c5(0x1c2)+SERVER_PORT+'/health',_0x43f51b=>{const _0x492659=_0x33b6c5;_0x43f51b['statusCode']===0xc8?_0x4bd2af():_0x3dddf6(new Error(_0x492659(0x1d4)+_0x43f51b[_0x492659(0x1db)]));});_0x1915f2['on'](_0x33b6c5(0x1ba),_0x3dddf6),_0x1915f2[_0x33b6c5(0x1ca)](0x3e8,()=>{const _0x57e9ab=_0x33b6c5;_0x1915f2[_0x57e9ab(0x1d5)](),_0x3dddf6(new Error(_0x57e9ab(0x1c7)));});}),console[_0x1d991c(0x1b5)](_0x1d991c(0x1c4)),!![];}catch(_0x47d78c){_0x56e856<_0x3a6744-0x1&&await new Promise(_0x3e9b03=>setTimeout(_0x3e9b03,_0x51ab07));}}return console['log'](_0x1d991c(0x1e4)),![];}async function startServer(){return new Promise(_0x420a27=>{const _0x4fc983=a0_0x1807;console[_0x4fc983(0x1b5)]('🚀\x20Starting\x20Loxia\x20server...');const _0x1533b1=join(rootDir,_0x4fc983(0x1c8),'index.js');serverProcess=spawn(_0x4fc983(0x1d2),[_0x1533b1],{'cwd':rootDir,'env':{...process[_0x4fc983(0x1b7)]},'stdio':[_0x4fc983(0x1dd),_0x4fc983(0x1cc),_0x4fc983(0x1cc)],'detached':![]}),serverProcess[_0x4fc983(0x1c0)]['on'](_0x4fc983(0x1d6),_0x36fe14=>{const _0x235ab1=_0x4fc983,_0x8eb67=_0x36fe14['toString']()['trim']();_0x8eb67&&console[_0x235ab1(0x1b5)]('[SERVER]\x20'+_0x8eb67);}),serverProcess[_0x4fc983(0x1bf)]['on']('data',_0x2adc7a=>{const _0x2131f4=_0x4fc983,_0x1c4e67=_0x2adc7a['toString']()['trim']();_0x1c4e67&&!_0x1c4e67[_0x2131f4(0x1b0)](_0x2131f4(0x1b6))&&console[_0x2131f4(0x1ba)](_0x2131f4(0x1d3)+_0x1c4e67);}),serverProcess['on']('error',_0x2921df=>{const _0x441a2f=_0x4fc983;console[_0x441a2f(0x1ba)]('Failed\x20to\x20start\x20server:',_0x2921df[_0x441a2f(0x1c6)]),process[_0x441a2f(0x1b9)](0x1);}),serverProcess['on']('exit',(_0x46fd48,_0x476d3f)=>{const _0x227ab3=_0x4fc983;_0x46fd48!==null&&_0x46fd48!==0x0&&(console[_0x227ab3(0x1ba)]('Server\x20exited\x20with\x20code\x20'+_0x46fd48),process[_0x227ab3(0x1b9)](_0x46fd48));}),setTimeout(_0x420a27,STARTUP_WAIT);});}async function startTerminalUI(){const _0x416d37=a0_0x4b5aba;console['log'](_0x416d37(0x1d1)),console[_0x416d37(0x1b5)]('');const _0x33074f=join(rootDir,_0x416d37(0x1bc),_0x416d37(0x1cf)),_0x440797=spawn(_0x416d37(0x1d2),[_0x33074f],{'cwd':rootDir,'env':{...process[_0x416d37(0x1b7)]},'stdio':_0x416d37(0x1cd)});return _0x440797['on'](_0x416d37(0x1ba),_0xe9bde7=>{const _0x3bc5db=_0x416d37;console[_0x3bc5db(0x1ba)](_0x3bc5db(0x1ce),_0xe9bde7[_0x3bc5db(0x1c6)]),cleanup(),process[_0x3bc5db(0x1b9)](0x1);}),_0x440797['on'](_0x416d37(0x1b9),_0x240fd6=>{const _0xf92e21=_0x416d37;console[_0xf92e21(0x1b5)](_0xf92e21(0x1e3)),cleanup(),process[_0xf92e21(0x1b9)](_0x240fd6||0x0);}),_0x440797;}function a0_0x4f47(){const _0x42fecc=['3510ImBWjY','╚════════════════════════════════════════════════╝','stderr','stdout','187ScVJnx','http://localhost:','3CouZsN','✅\x20Server\x20is\x20ready!','4LVZQIS','message','Timeout','src','SIGKILL','setTimeout','║\x20\x20\x20Loxia\x20AI\x20Agents\x20-\x20Server\x20+\x20Terminal\x20UI\x20\x20\x20\x20\x20\x20║','pipe','inherit','Failed\x20to\x20start\x20Terminal\x20UI:','loxia-terminal.js','24oSTyRj','🖥️\x20\x20Starting\x20Terminal\x20UI...','node','[SERVER\x20ERROR]\x20','Server\x20returned\x20','destroy','data','227509ledgHB','56010jlCnXB','727400herQIE','get','statusCode','\x0a⚠️\x20\x20Received\x20SIGTERM,\x20shutting\x20down...','ignore','27zLegOk','50916eUPPIG','1395982YUusMY','killed','PORT','\x0a👋\x20Terminal\x20UI\x20closed.','⚠️\x20\x20Server\x20may\x20not\x20be\x20fully\x20ready,\x20but\x20continuing\x20anyway...','SIGTERM','includes','4949705NJyzfb','1479508lwKlqF','kill','🛑\x20Stopping\x20server...','log','ExperimentalWarning','env','SIGINT','exit','error','╔════════════════════════════════════════════════╗','bin'];a0_0x4f47=function(){return _0x42fecc;};return a0_0x4f47();}function cleanup(){const _0x53c7ed=a0_0x4b5aba;serverProcess&&!serverProcess[_0x53c7ed(0x1e1)]&&(console[_0x53c7ed(0x1b5)](_0x53c7ed(0x1b4)),serverProcess[_0x53c7ed(0x1b3)](_0x53c7ed(0x1e5)),setTimeout(()=>{const _0x271c0d=_0x53c7ed;!serverProcess[_0x271c0d(0x1e1)]&&serverProcess['kill'](_0x271c0d(0x1c9));},0x1388));}process['on'](a0_0x4b5aba(0x1b8),()=>{const _0x298f89=a0_0x4b5aba;console[_0x298f89(0x1b5)]('\x0a⚠️\x20\x20Received\x20SIGINT,\x20shutting\x20down...'),cleanup(),process[_0x298f89(0x1b9)](0x0);}),process['on'](a0_0x4b5aba(0x1e5),()=>{const _0xc9d299=a0_0x4b5aba;console[_0xc9d299(0x1b5)](_0xc9d299(0x1dc)),cleanup(),process[_0xc9d299(0x1b9)](0x0);}),process['on'](a0_0x4b5aba(0x1b9),()=>{cleanup();});async function main(){const _0x2da982=a0_0x4b5aba;console[_0x2da982(0x1b5)](_0x2da982(0x1bb)),console[_0x2da982(0x1b5)](_0x2da982(0x1cb)),console['log'](_0x2da982(0x1be)),console['log']('');try{await startServer(),await checkServerReady(),await startTerminalUI(),await new Promise(()=>{});}catch(_0x3a7632){console['error']('Error\x20during\x20startup:',_0x3a7632[_0x2da982(0x1c6)]),cleanup(),process[_0x2da982(0x1b9)](0x1);}}main();
3
+ const a0_0x4202bf=a0_0x1cfa;function a0_0xd29b(){const _0x1f207c=['data','32781860VLkubM','\x0a⚠️\x20\x20Received\x20SIGINT,\x20shutting\x20down...','║\x20\x20\x20Loxia\x20AI\x20Agents\x20-\x20Server\x20+\x20Terminal\x20UI\x20\x20\x20\x20\x20\x20║','⚠️\x20\x20Server\x20may\x20not\x20be\x20fully\x20ready,\x20but\x20continuing\x20anyway...','includes','stderr','error','10JEbUxI','setTimeout','SIGKILL','kill','🛑\x20Stopping\x20server...','619468XBrJGA','index.js','PORT','\x0a👋\x20Terminal\x20UI\x20closed.','statusCode','toString','199125sIFfmG','11474624XudJNJ','🚀\x20Starting\x20Loxia\x20server...','SIGTERM','pipe','killed','trim','env','log','35NdTYvO','[SERVER]\x20','Timeout','4606902llUQFo','✅\x20Server\x20is\x20ready!','╚════════════════════════════════════════════════╝','src','bin','loxia-terminal.js','╔════════════════════════════════════════════════╗','node','\x0a⚠️\x20\x20Received\x20SIGTERM,\x20shutting\x20down...','destroy','exit','message','1165249vbhaOm','ignore','4596473lARlwE','6fbNVIy','Server\x20returned\x20','Failed\x20to\x20start\x20Terminal\x20UI:','[SERVER\x20ERROR]\x20','SIGINT'];a0_0xd29b=function(){return _0x1f207c;};return a0_0xd29b();}(function(_0x352f01,_0x349ccf){const _0x16ff5f=a0_0x1cfa,_0x16468e=_0x352f01();while(!![]){try{const _0x490a79=-parseInt(_0x16ff5f(0x1d5))/0x1+-parseInt(_0x16ff5f(0x1e5))/0x2*(parseInt(_0x16ff5f(0x1f0))/0x3)+-parseInt(_0x16ff5f(0x1ea))/0x4*(parseInt(_0x16ff5f(0x1f9))/0x5)+parseInt(_0x16ff5f(0x1d8))/0x6*(-parseInt(_0x16ff5f(0x1d7))/0x7)+parseInt(_0x16ff5f(0x1f1))/0x8+-parseInt(_0x16ff5f(0x1fc))/0x9+parseInt(_0x16ff5f(0x1de))/0xa;if(_0x490a79===_0x349ccf)break;else _0x16468e['push'](_0x16468e['shift']());}catch(_0x69e209){_0x16468e['push'](_0x16468e['shift']());}}}(a0_0xd29b,0xeb0f4));import{spawn}from'child_process';import{fileURLToPath}from'url';import{dirname,join}from'path';import a0_0x4ee972 from'http';function a0_0x1cfa(_0xf366bf,_0x3a95e4){_0xf366bf=_0xf366bf-0x1d3;const _0xd29bfe=a0_0xd29b();let _0x1cfa3c=_0xd29bfe[_0xf366bf];return _0x1cfa3c;}const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename),rootDir=join(__dirname,'..'),SERVER_PORT=process[a0_0x4202bf(0x1f7)][a0_0x4202bf(0x1ec)]||0x1f90,STARTUP_WAIT=0x7d0;let serverProcess=null;async function checkServerReady(_0x105e71=0xa,_0x2fe2cb=0x1f4){const _0x33f798=a0_0x4202bf;for(let _0x36b012=0x0;_0x36b012<_0x105e71;_0x36b012++){try{return await new Promise((_0x30479c,_0x1068b2)=>{const _0x4b9d4f=a0_0x1cfa,_0x51c65b=a0_0x4ee972['get']('http://localhost:'+SERVER_PORT+'/health',_0x17bd4e=>{const _0x428acb=a0_0x1cfa;_0x17bd4e[_0x428acb(0x1ee)]===0xc8?_0x30479c():_0x1068b2(new Error(_0x428acb(0x1d9)+_0x17bd4e[_0x428acb(0x1ee)]));});_0x51c65b['on'](_0x4b9d4f(0x1e4),_0x1068b2),_0x51c65b[_0x4b9d4f(0x1e6)](0x3e8,()=>{const _0x515b8c=_0x4b9d4f;_0x51c65b[_0x515b8c(0x205)](),_0x1068b2(new Error(_0x515b8c(0x1fb)));});}),console[_0x33f798(0x1f8)](_0x33f798(0x1fd)),!![];}catch(_0xcfd977){_0x36b012<_0x105e71-0x1&&await new Promise(_0xdb46b4=>setTimeout(_0xdb46b4,_0x2fe2cb));}}return console[_0x33f798(0x1f8)](_0x33f798(0x1e1)),![];}async function startServer(){return new Promise(_0x52ba82=>{const _0x56c00d=a0_0x1cfa;console[_0x56c00d(0x1f8)](_0x56c00d(0x1f2));const _0x57efc3=join(rootDir,_0x56c00d(0x1ff),_0x56c00d(0x1eb));serverProcess=spawn(_0x56c00d(0x203),[_0x57efc3],{'cwd':rootDir,'env':{...process[_0x56c00d(0x1f7)]},'stdio':[_0x56c00d(0x1d6),_0x56c00d(0x1f4),_0x56c00d(0x1f4)],'detached':![]}),serverProcess['stdout']['on'](_0x56c00d(0x1dd),_0x24edb5=>{const _0x1aed2c=_0x56c00d,_0x4d4e57=_0x24edb5['toString']()[_0x1aed2c(0x1f6)]();_0x4d4e57&&console[_0x1aed2c(0x1f8)](_0x1aed2c(0x1fa)+_0x4d4e57);}),serverProcess[_0x56c00d(0x1e3)]['on'](_0x56c00d(0x1dd),_0x2926be=>{const _0x4131f4=_0x56c00d,_0x243f16=_0x2926be[_0x4131f4(0x1ef)]()[_0x4131f4(0x1f6)]();_0x243f16&&!_0x243f16[_0x4131f4(0x1e2)]('ExperimentalWarning')&&console[_0x4131f4(0x1e4)](_0x4131f4(0x1db)+_0x243f16);}),serverProcess['on'](_0x56c00d(0x1e4),_0x1adcb3=>{const _0x4742ed=_0x56c00d;console[_0x4742ed(0x1e4)]('Failed\x20to\x20start\x20server:',_0x1adcb3[_0x4742ed(0x1d4)]),process[_0x4742ed(0x1d3)](0x1);}),serverProcess['on']('exit',(_0x5f467e,_0xecc48b)=>{const _0x11e1de=_0x56c00d;_0x5f467e!==null&&_0x5f467e!==0x0&&(console[_0x11e1de(0x1e4)]('Server\x20exited\x20with\x20code\x20'+_0x5f467e),process[_0x11e1de(0x1d3)](_0x5f467e));}),setTimeout(_0x52ba82,STARTUP_WAIT);});}async function startTerminalUI(){const _0x1abef3=a0_0x4202bf;console['log']('🖥️\x20\x20Starting\x20Terminal\x20UI...'),console[_0x1abef3(0x1f8)]('');const _0x5ab019=join(rootDir,_0x1abef3(0x200),_0x1abef3(0x201)),_0x113d90=spawn(_0x1abef3(0x203),[_0x5ab019],{'cwd':rootDir,'env':{...process[_0x1abef3(0x1f7)]},'stdio':'inherit'});return _0x113d90['on'](_0x1abef3(0x1e4),_0x432d60=>{const _0x4e9da8=_0x1abef3;console[_0x4e9da8(0x1e4)](_0x4e9da8(0x1da),_0x432d60[_0x4e9da8(0x1d4)]),cleanup(),process[_0x4e9da8(0x1d3)](0x1);}),_0x113d90['on']('exit',_0x421e02=>{const _0x4e8096=_0x1abef3;console[_0x4e8096(0x1f8)](_0x4e8096(0x1ed)),cleanup(),process[_0x4e8096(0x1d3)](_0x421e02||0x0);}),_0x113d90;}function cleanup(){const _0x8d918b=a0_0x4202bf;serverProcess&&!serverProcess[_0x8d918b(0x1f5)]&&(console['log'](_0x8d918b(0x1e9)),serverProcess[_0x8d918b(0x1e8)](_0x8d918b(0x1f3)),setTimeout(()=>{const _0xc7d10d=_0x8d918b;!serverProcess[_0xc7d10d(0x1f5)]&&serverProcess['kill'](_0xc7d10d(0x1e7));},0x1388));}process['on'](a0_0x4202bf(0x1dc),()=>{const _0x17431e=a0_0x4202bf;console['log'](_0x17431e(0x1df)),cleanup(),process['exit'](0x0);}),process['on'](a0_0x4202bf(0x1f3),()=>{const _0xf9f8e0=a0_0x4202bf;console[_0xf9f8e0(0x1f8)](_0xf9f8e0(0x204)),cleanup(),process[_0xf9f8e0(0x1d3)](0x0);}),process['on'](a0_0x4202bf(0x1d3),()=>{cleanup();});async function main(){const _0x5b4298=a0_0x4202bf;console[_0x5b4298(0x1f8)](_0x5b4298(0x202)),console[_0x5b4298(0x1f8)](_0x5b4298(0x1e0)),console['log'](_0x5b4298(0x1fe)),console['log']('');try{await startServer(),await checkServerReady(),await startTerminalUI(),await new Promise(()=>{});}catch(_0x2d12d1){console[_0x5b4298(0x1e4)]('Error\x20during\x20startup:',_0x2d12d1['message']),cleanup(),process[_0x5b4298(0x1d3)](0x1);}}main();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loxia-labs/loxia-autopilot-one",
3
- "version": "1.0.15",
3
+ "version": "1.0.17",
4
4
  "description": "Loxia AI Agents System - No-code/vibe-code/companion-coder platform",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- const a0_0x614b74=a0_0x154e;(function(_0x319a8f,_0x249096){const _0x2af3ae=a0_0x154e,_0xaa7be4=_0x319a8f();while(!![]){try{const _0xadc1a9=-parseInt(_0x2af3ae(0xa1))/0x1*(-parseInt(_0x2af3ae(0xa7))/0x2)+parseInt(_0x2af3ae(0xbc))/0x3+parseInt(_0x2af3ae(0x7d))/0x4*(parseInt(_0x2af3ae(0x89))/0x5)+parseInt(_0x2af3ae(0xa4))/0x6+-parseInt(_0x2af3ae(0xb1))/0x7+-parseInt(_0x2af3ae(0xbb))/0x8+-parseInt(_0x2af3ae(0x80))/0x9;if(_0xadc1a9===_0x249096)break;else _0xaa7be4['push'](_0xaa7be4['shift']());}catch(_0x4715b9){_0xaa7be4['push'](_0xaa7be4['shift']());}}}(a0_0x4afc,0xa1274));import{exec}from'child_process';import{promisify}from'util';import a0_0x2ba046 from'https';import a0_0x4d8458 from'http';import a0_0x51039c from'fs';import a0_0x270876 from'path';function a0_0x4afc(){const _0x5beb7c=['\x20\x20\x20⚠️\x20\x20Failed\x20to\x20install\x20Semgrep:\x20','stdout','join','unlink','.scanners','\x20\x20Installing\x20Security\x20Scanners','Failed\x20to\x20download:\x20HTTP\x20','https','\x20\x20\x20⚠️\x20\x20Failed\x20to\x20install\x20','1626704HGUfuM','═══════════════════════════════════════════════════════════','exit','298350YAUFPP','semgrep','python3\x20--version','finish','\x20\x20\x20To\x20enable\x20Python\x20scanning,\x20install\x20Python\x20and\x20run:','═══════════════════════════════════════════════════════════\x0a','bandit','pip-audit','headers','10ctqplw','\x20-m\x20pip\x20install\x20--user\x20','log','\x0a═══════════════════════════════════════════════════════════','startsWith','\x20\x20\x20Note:\x20To\x20use\x20system-wide,\x20add\x20to\x20PATH\x20or\x20install\x20globally:','\x20-m\x20pip\x20show\x20','v1.55.0','python3','arch','python','\x20\x20\x20Downloading\x20from\x20','\x20\x20\x20You\x20can\x20install\x20manually:\x20pip\x20install\x20','node_modules','\x20already\x20installed','error','\x20\x20Installation\x20Complete','\x20\x20\x20✅\x20','\x20\x20\x20Using\x20system-installed\x20Semgrep\x0a','get','eslint-plugin-security','\x20\x20\x20Installing\x20','python\x20--version','catch','16124qjnfJR','\x20\x20\x20⚠️\x20\x20No\x20Semgrep\x20binary\x20available\x20for\x20','message','4482720MYttYK','semgrep\x20--version','\x20\x20\x20✅\x20Python\x20found:\x20','2YqzHmj','mkdir','\x20\x20\x20You\x20can\x20install\x20manually:\x20pip\x20install\x20semgrep\x0a','❌\x20Installation\x20failed:','🔍\x20Installing\x20Semgrep...','pipe','\x20\x20\x20Run:\x20npm\x20install\x20--save-dev\x20eslint-plugin-security\x0a','promises','\x20\x20pip\x20install\x20semgrep\x20bandit\x20pip-audit','statusCode','3471531SFyYJF','\x20\x20\x20Semgrep\x20not\x20found\x20in\x20PATH,\x20installing\x20standalone\x20binary...','\x20\x20npm\x20install\x20--save-dev\x20eslint-plugin-security','\x20\x20\x20pip\x20install\x20semgrep\x20bandit\x20pip-audit\x20checkov\x20yamllint\x0a','\x20\x20\x20✅\x20Semgrep\x20already\x20installed:\x20','yamllint','\x20installed\x20successfully','\x20\x20\x20⚠️\x20\x20Python\x20not\x20found\x20-\x20skipping\x20Python\x20scanners','close','dirname','7502960ezyjZV','1651323sIGztK','🐍\x20Checking\x20Python\x20scanners...','\x20\x20\x20✅\x20Semgrep\x20installed\x20successfully','\x0aYou\x20can\x20manually\x20install\x20scanners:','url','trim'];a0_0x4afc=function(){return _0x5beb7c;};return a0_0x4afc();}import{fileURLToPath}from'url';import{createWriteStream}from'fs';import{pipeline}from'stream/promises';const execAsync=promisify(exec),__filename=fileURLToPath(import.meta.url),__dirname=a0_0x270876[a0_0x614b74(0xba)](__filename),SCANNER_DIR=a0_0x270876[a0_0x614b74(0xc4)](__dirname,'..',a0_0x614b74(0x96),a0_0x614b74(0xc6)),SEMGREP_VERSION=a0_0x614b74(0x90);console['log'](a0_0x614b74(0x7e)),console[a0_0x614b74(0x8b)](a0_0x614b74(0xc7)),console['log'](a0_0x614b74(0x85));async function installScanners(){const _0x446b7c=a0_0x614b74;await a0_0x51039c['promises'][_0x446b7c(0xa8)](SCANNER_DIR,{'recursive':!![]}),await checkESLintSecurity(),await installSemgrep(),await installPythonScanners(),console['log'](_0x446b7c(0x8c)),console['log'](_0x446b7c(0x99)),console[_0x446b7c(0x8b)](_0x446b7c(0x85));}async function checkESLintSecurity(){const _0x37c9c0=a0_0x614b74;console[_0x37c9c0(0x8b)]('📦\x20Checking\x20ESLint\x20Security\x20Plugin...');try{await import(_0x37c9c0(0x9d)),console[_0x37c9c0(0x8b)]('\x20\x20\x20✅\x20eslint-plugin-security\x20is\x20installed\x0a');}catch(_0x5954b9){console[_0x37c9c0(0x8b)]('\x20\x20\x20⚠️\x20\x20eslint-plugin-security\x20not\x20found'),console[_0x37c9c0(0x8b)](_0x37c9c0(0xad));}}async function installSemgrep(){const _0x47b9ea=a0_0x614b74;console[_0x47b9ea(0x8b)](_0x47b9ea(0xab));const _0x25e37e=process['platform'],_0x57d14e=process[_0x47b9ea(0x92)];try{const _0x1cfbda=await execAsync(_0x47b9ea(0xa5),{'timeout':0x1388});console['log'](_0x47b9ea(0xb5)+_0x1cfbda[_0x47b9ea(0xc3)][_0x47b9ea(0xc1)]()),console[_0x47b9ea(0x8b)](_0x47b9ea(0x9b));return;}catch(_0x2c6953){console[_0x47b9ea(0x8b)](_0x47b9ea(0xb2));}const _0x1548e4=getSemgrepBinaryInfo(_0x25e37e,_0x57d14e);if(!_0x1548e4){console[_0x47b9ea(0x8b)](_0x47b9ea(0xa2)+_0x25e37e+'-'+_0x57d14e),console['log']('\x20\x20\x20Please\x20install\x20manually:\x20https://semgrep.dev/docs/getting-started/\x0a');return;}try{const _0x372773=a0_0x270876[_0x47b9ea(0xc4)](SCANNER_DIR,_0x47b9ea(0x81));console[_0x47b9ea(0x8b)](_0x47b9ea(0x94)+_0x1548e4[_0x47b9ea(0xc0)]+'...'),await downloadFile(_0x1548e4[_0x47b9ea(0xc0)],_0x372773),await a0_0x51039c[_0x47b9ea(0xae)]['chmod'](_0x372773,0x1ed),console['log'](_0x47b9ea(0xbe)),console[_0x47b9ea(0x8b)]('\x20\x20\x20Location:\x20'+_0x372773+'\x0a'),console[_0x47b9ea(0x8b)](_0x47b9ea(0x8e)),console[_0x47b9ea(0x8b)]('\x20\x20\x20pip\x20install\x20semgrep\x0a');}catch(_0xb2f2bf){console[_0x47b9ea(0x8b)](_0x47b9ea(0xc2)+_0xb2f2bf[_0x47b9ea(0xa3)]),console['log'](_0x47b9ea(0xa9));}}function getSemgrepBinaryInfo(_0x1110fa,_0x28dc3f){return null;}async function installPythonScanners(){const _0x50d7ae=a0_0x614b74;console[_0x50d7ae(0x8b)](_0x50d7ae(0xbd));let _0x2c2d34=null;try{await execAsync(_0x50d7ae(0x82),{'timeout':0x1388}),_0x2c2d34=_0x50d7ae(0x91);}catch(_0x19557e){try{await execAsync(_0x50d7ae(0x9f),{'timeout':0x1388}),_0x2c2d34=_0x50d7ae(0x93);}catch(_0x41d5af){console[_0x50d7ae(0x8b)](_0x50d7ae(0xb8)),console[_0x50d7ae(0x8b)](_0x50d7ae(0x84)),console['log'](_0x50d7ae(0xb4));return;}}console[_0x50d7ae(0x8b)](_0x50d7ae(0xa6)+_0x2c2d34),await installViaPip(_0x50d7ae(0x81),_0x2c2d34),await installViaPip(_0x50d7ae(0x86),_0x2c2d34),await installViaPip(_0x50d7ae(0x87),_0x2c2d34),await installViaPip('checkov',_0x2c2d34),await installViaPip(_0x50d7ae(0xb6),_0x2c2d34),console['log']('');}async function installViaPip(_0x281252,_0xc711f1){const _0x2faa86=a0_0x614b74;try{const _0x3c2046=await execAsync(_0xc711f1+_0x2faa86(0x8f)+_0x281252,{'timeout':0x1388});return console[_0x2faa86(0x8b)](_0x2faa86(0x9a)+_0x281252+_0x2faa86(0x97)),!![];}catch(_0x3d4837){console[_0x2faa86(0x8b)](_0x2faa86(0x9e)+_0x281252+'...');try{return await execAsync(_0xc711f1+_0x2faa86(0x8a)+_0x281252,{'timeout':0xea60}),console[_0x2faa86(0x8b)](_0x2faa86(0x9a)+_0x281252+_0x2faa86(0xb7)),!![];}catch(_0x363d51){return console[_0x2faa86(0x8b)](_0x2faa86(0x7c)+_0x281252+':\x20'+_0x363d51[_0x2faa86(0xa3)]),console['log'](_0x2faa86(0x95)+_0x281252),![];}}}function a0_0x154e(_0x4c8720,_0x593b60){_0x4c8720=_0x4c8720-0x7c;const _0x4afc7a=a0_0x4afc();let _0x154e51=_0x4afc7a[_0x4c8720];return _0x154e51;}async function downloadFile(_0x57d263,_0x37c1cd){return new Promise((_0x5529c7,_0x473eb7)=>{const _0x1b31fe=a0_0x154e,_0x197ea9=_0x57d263[_0x1b31fe(0x8d)](_0x1b31fe(0xc9))?a0_0x2ba046:a0_0x4d8458;_0x197ea9[_0x1b31fe(0x9c)](_0x57d263,_0x3b084e=>{const _0x237e69=_0x1b31fe;if(_0x3b084e[_0x237e69(0xb0)]===0x12e||_0x3b084e[_0x237e69(0xb0)]===0x12d){downloadFile(_0x3b084e[_0x237e69(0x88)]['location'],_0x37c1cd)['then'](_0x5529c7)['catch'](_0x473eb7);return;}if(_0x3b084e[_0x237e69(0xb0)]!==0xc8){_0x473eb7(new Error(_0x237e69(0xc8)+_0x3b084e[_0x237e69(0xb0)]));return;}const _0x5e30b0=createWriteStream(_0x37c1cd);_0x3b084e[_0x237e69(0xac)](_0x5e30b0),_0x5e30b0['on'](_0x237e69(0x83),()=>{const _0x59c1f1=_0x237e69;_0x5e30b0[_0x59c1f1(0xb9)](),_0x5529c7();}),_0x5e30b0['on'](_0x237e69(0x98),_0x1f7a32=>{const _0xf41f21=_0x237e69;a0_0x51039c[_0xf41f21(0xc5)](_0x37c1cd,()=>{}),_0x473eb7(_0x1f7a32);});})['on'](_0x1b31fe(0x98),_0x473eb7);});}installScanners()[a0_0x614b74(0xa0)](_0x20bb17=>{const _0x2a9aa7=a0_0x614b74;console['error'](_0x2a9aa7(0xaa),_0x20bb17['message']),console['error'](_0x2a9aa7(0xbf)),console[_0x2a9aa7(0x98)](_0x2a9aa7(0xb3)),console[_0x2a9aa7(0x98)](_0x2a9aa7(0xaf)),process[_0x2a9aa7(0x7f)](0x0);});
2
+ const a0_0x18fc18=a0_0x2f4d;(function(_0x4c68ce,_0x31733f){const _0x165819=a0_0x2f4d,_0xd3980a=_0x4c68ce();while(!![]){try{const _0x3fd363=-parseInt(_0x165819(0x1f7))/0x1+parseInt(_0x165819(0x1f0))/0x2*(parseInt(_0x165819(0x1fe))/0x3)+parseInt(_0x165819(0x201))/0x4+parseInt(_0x165819(0x1d8))/0x5*(parseInt(_0x165819(0x213))/0x6)+parseInt(_0x165819(0x1f3))/0x7*(parseInt(_0x165819(0x1da))/0x8)+parseInt(_0x165819(0x1ff))/0x9*(-parseInt(_0x165819(0x212))/0xa)+parseInt(_0x165819(0x1d0))/0xb;if(_0x3fd363===_0x31733f)break;else _0xd3980a['push'](_0xd3980a['shift']());}catch(_0x1bda43){_0xd3980a['push'](_0xd3980a['shift']());}}}(a0_0x399d,0x4838b));import{exec}from'child_process';import{promisify}from'util';import a0_0x1a45fe from'https';import a0_0x4a5673 from'http';import a0_0x232cc8 from'fs';import a0_0x5d29b0 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_0x5d29b0['dirname'](__filename),SCANNER_DIR=a0_0x5d29b0[a0_0x18fc18(0x1f1)](__dirname,'..','node_modules',a0_0x18fc18(0x1ee)),SEMGREP_VERSION=a0_0x18fc18(0x1fc);console['log']('═══════════════════════════════════════════════════════════'),console[a0_0x18fc18(0x1d2)]('\x20\x20Installing\x20Security\x20Scanners'),console['log']('═══════════════════════════════════════════════════════════\x0a');async function installScanners(){const _0x4bf79c=a0_0x18fc18;await a0_0x232cc8[_0x4bf79c(0x1d3)][_0x4bf79c(0x1f4)](SCANNER_DIR,{'recursive':!![]}),await checkESLintSecurity(),await installSemgrep(),await installPythonScanners(),console[_0x4bf79c(0x1d2)](_0x4bf79c(0x214)),console[_0x4bf79c(0x1d2)]('\x20\x20Installation\x20Complete'),console[_0x4bf79c(0x1d2)]('═══════════════════════════════════════════════════════════\x0a');}async function checkESLintSecurity(){const _0x1ff9ef=a0_0x18fc18;console[_0x1ff9ef(0x1d2)]('📦\x20Checking\x20ESLint\x20Security\x20Plugin...');try{await import(_0x1ff9ef(0x1f5)),console['log']('\x20\x20\x20✅\x20eslint-plugin-security\x20is\x20installed\x0a');}catch(_0x147a06){console[_0x1ff9ef(0x1d2)](_0x1ff9ef(0x20b)),console[_0x1ff9ef(0x1d2)](_0x1ff9ef(0x1e1));}}function a0_0x2f4d(_0x374374,_0x434609){_0x374374=_0x374374-0x1cd;const _0x399d6b=a0_0x399d();let _0x2f4dc6=_0x399d6b[_0x374374];return _0x2f4dc6;}async function installSemgrep(){const _0x18a95e=a0_0x18fc18;console['log'](_0x18a95e(0x211));const _0x12d638=process[_0x18a95e(0x1d7)],_0x19ebc8=process[_0x18a95e(0x1d5)];try{const _0x27f083=await execAsync(_0x18a95e(0x1cf),{'timeout':0x1388});console[_0x18a95e(0x1d2)](_0x18a95e(0x20e)+_0x27f083[_0x18a95e(0x1e6)]['trim']()),console[_0x18a95e(0x1d2)]('\x20\x20\x20Using\x20system-installed\x20Semgrep\x0a');return;}catch(_0x4fa143){console[_0x18a95e(0x1d2)](_0x18a95e(0x210));}const _0x2e85b2=getSemgrepBinaryInfo(_0x12d638,_0x19ebc8);if(!_0x2e85b2){console[_0x18a95e(0x1d2)](_0x18a95e(0x1df)+_0x12d638+'-'+_0x19ebc8),console[_0x18a95e(0x1d2)](_0x18a95e(0x1e0));return;}try{const _0x13b66d=a0_0x5d29b0[_0x18a95e(0x1f1)](SCANNER_DIR,_0x18a95e(0x1e8));console['log'](_0x18a95e(0x1d1)+_0x2e85b2[_0x18a95e(0x209)]+'...'),await downloadFile(_0x2e85b2[_0x18a95e(0x209)],_0x13b66d),await a0_0x232cc8[_0x18a95e(0x1d3)]['chmod'](_0x13b66d,0x1ed),console[_0x18a95e(0x1d2)](_0x18a95e(0x1cd)),console['log'](_0x18a95e(0x20c)+_0x13b66d+'\x0a'),console['log']('\x20\x20\x20Note:\x20To\x20use\x20system-wide,\x20add\x20to\x20PATH\x20or\x20install\x20globally:'),console[_0x18a95e(0x1d2)](_0x18a95e(0x1f2));}catch(_0x25b22f){console[_0x18a95e(0x1d2)](_0x18a95e(0x1e4)+_0x25b22f[_0x18a95e(0x205)]),console['log'](_0x18a95e(0x1f6));}}function getSemgrepBinaryInfo(_0xa2ff99,_0x23e997){return null;}function a0_0x399d(){const _0x4e534d=['bandit','\x20\x20\x20Semgrep\x20not\x20found\x20in\x20PATH,\x20installing\x20standalone\x20binary...','🔍\x20Installing\x20Semgrep...','874280lotIln','330726PupBmT','\x0a═══════════════════════════════════════════════════════════','\x20\x20\x20✅\x20Semgrep\x20installed\x20successfully','🐍\x20Checking\x20Python\x20scanners...','semgrep\x20--version','4336222xedSZk','\x20\x20\x20Downloading\x20from\x20','log','promises','error','arch','\x20\x20\x20To\x20enable\x20Python\x20scanning,\x20install\x20Python\x20and\x20run:','platform','5LCNPTD','pipe','80ecDBPO','\x20-m\x20pip\x20show\x20','statusCode','python3\x20--version','headers','\x20\x20\x20⚠️\x20\x20No\x20Semgrep\x20binary\x20available\x20for\x20','\x20\x20\x20Please\x20install\x20manually:\x20https://semgrep.dev/docs/getting-started/\x0a','\x20\x20\x20Run:\x20npm\x20install\x20--save-dev\x20eslint-plugin-security\x0a','get','\x20\x20\x20⚠️\x20\x20Python\x20not\x20found\x20-\x20skipping\x20Python\x20scanners','\x20\x20\x20⚠️\x20\x20Failed\x20to\x20install\x20Semgrep:\x20','python3','stdout','\x20\x20\x20✅\x20Python\x20found:\x20','semgrep','close','startsWith','\x20-m\x20pip\x20install\x20--user\x20','catch','\x20\x20\x20⚠️\x20\x20Failed\x20to\x20install\x20','.scanners','\x20\x20\x20pip\x20install\x20semgrep\x20bandit\x20pip-audit\x20checkov\x20yamllint\x0a','4EuJVyj','join','\x20\x20\x20pip\x20install\x20semgrep\x0a','137081CEfqjP','mkdir','eslint-plugin-security','\x20\x20\x20You\x20can\x20install\x20manually:\x20pip\x20install\x20semgrep\x0a','57431KjVtsz','\x20\x20\x20✅\x20','\x20already\x20installed','\x20installed\x20successfully','\x20\x20pip\x20install\x20semgrep\x20bandit\x20pip-audit','v1.55.0','python\x20--version','10911xsNZbZ','36sCJKWy','\x0aYou\x20can\x20manually\x20install\x20scanners:','202140VwvutC','...','finish','\x20\x20\x20You\x20can\x20install\x20manually:\x20pip\x20install\x20','message','pip-audit','❌\x20Installation\x20failed:','\x20\x20\x20Installing\x20','url','exit','\x20\x20\x20⚠️\x20\x20eslint-plugin-security\x20not\x20found','\x20\x20\x20Location:\x20','checkov','\x20\x20\x20✅\x20Semgrep\x20already\x20installed:\x20'];a0_0x399d=function(){return _0x4e534d;};return a0_0x399d();}async function installPythonScanners(){const _0x32d6c9=a0_0x18fc18;console[_0x32d6c9(0x1d2)](_0x32d6c9(0x1ce));let _0x1b9d1c=null;try{await execAsync(_0x32d6c9(0x1dd),{'timeout':0x1388}),_0x1b9d1c=_0x32d6c9(0x1e5);}catch(_0x286cf7){try{await execAsync(_0x32d6c9(0x1fd),{'timeout':0x1388}),_0x1b9d1c='python';}catch(_0x25a317){console[_0x32d6c9(0x1d2)](_0x32d6c9(0x1e3)),console[_0x32d6c9(0x1d2)](_0x32d6c9(0x1d6)),console['log'](_0x32d6c9(0x1ef));return;}}console[_0x32d6c9(0x1d2)](_0x32d6c9(0x1e7)+_0x1b9d1c),await installViaPip(_0x32d6c9(0x1e8),_0x1b9d1c),await installViaPip(_0x32d6c9(0x20f),_0x1b9d1c),await installViaPip(_0x32d6c9(0x206),_0x1b9d1c),await installViaPip(_0x32d6c9(0x20d),_0x1b9d1c),await installViaPip('yamllint',_0x1b9d1c),console[_0x32d6c9(0x1d2)]('');}async function installViaPip(_0xd865b7,_0x4ae6cb){const _0x5b604c=a0_0x18fc18;try{const _0x145cc9=await execAsync(_0x4ae6cb+_0x5b604c(0x1db)+_0xd865b7,{'timeout':0x1388});return console['log']('\x20\x20\x20✅\x20'+_0xd865b7+_0x5b604c(0x1f9)),!![];}catch(_0x12bd27){console[_0x5b604c(0x1d2)](_0x5b604c(0x208)+_0xd865b7+_0x5b604c(0x202));try{return await execAsync(_0x4ae6cb+_0x5b604c(0x1eb)+_0xd865b7,{'timeout':0xea60}),console['log'](_0x5b604c(0x1f8)+_0xd865b7+_0x5b604c(0x1fa)),!![];}catch(_0x14ae4a){return console[_0x5b604c(0x1d2)](_0x5b604c(0x1ed)+_0xd865b7+':\x20'+_0x14ae4a[_0x5b604c(0x205)]),console[_0x5b604c(0x1d2)](_0x5b604c(0x204)+_0xd865b7),![];}}}async function downloadFile(_0x22782e,_0x5a7b39){return new Promise((_0x25da2c,_0x1111a7)=>{const _0x3152c3=a0_0x2f4d,_0x254ad3=_0x22782e[_0x3152c3(0x1ea)]('https')?a0_0x1a45fe:a0_0x4a5673;_0x254ad3[_0x3152c3(0x1e2)](_0x22782e,_0x7a520d=>{const _0x4f64d8=_0x3152c3;if(_0x7a520d[_0x4f64d8(0x1dc)]===0x12e||_0x7a520d[_0x4f64d8(0x1dc)]===0x12d){downloadFile(_0x7a520d[_0x4f64d8(0x1de)]['location'],_0x5a7b39)['then'](_0x25da2c)[_0x4f64d8(0x1ec)](_0x1111a7);return;}if(_0x7a520d[_0x4f64d8(0x1dc)]!==0xc8){_0x1111a7(new Error('Failed\x20to\x20download:\x20HTTP\x20'+_0x7a520d[_0x4f64d8(0x1dc)]));return;}const _0x47c148=createWriteStream(_0x5a7b39);_0x7a520d[_0x4f64d8(0x1d9)](_0x47c148),_0x47c148['on'](_0x4f64d8(0x203),()=>{const _0x561285=_0x4f64d8;_0x47c148[_0x561285(0x1e9)](),_0x25da2c();}),_0x47c148['on'](_0x4f64d8(0x1d4),_0x1266b1=>{a0_0x232cc8['unlink'](_0x5a7b39,()=>{}),_0x1111a7(_0x1266b1);});})['on']('error',_0x1111a7);});}installScanners()[a0_0x18fc18(0x1ec)](_0x5f4f55=>{const _0x201d42=a0_0x18fc18;console[_0x201d42(0x1d4)](_0x201d42(0x207),_0x5f4f55['message']),console['error'](_0x201d42(0x200)),console['error']('\x20\x20npm\x20install\x20--save-dev\x20eslint-plugin-security'),console[_0x201d42(0x1d4)](_0x201d42(0x1fb)),process[_0x201d42(0x20a)](0x0);});
@@ -1 +1 @@
1
- function a0_0x3ba2(_0x317b7e,_0x35993b){_0x317b7e=_0x317b7e-0x193;const _0x38e154=a0_0x38e1();let _0x3ba28b=_0x38e154[_0x317b7e];if(a0_0x3ba2['raNrNt']===undefined){var _0x4d2420=function(_0x10cbf5){const _0x2f64a9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x547a06='',_0x75b2f0='';for(let _0x571441=0x0,_0x40ab50,_0x2d6450,_0x4ce857=0x0;_0x2d6450=_0x10cbf5['charAt'](_0x4ce857++);~_0x2d6450&&(_0x40ab50=_0x571441%0x4?_0x40ab50*0x40+_0x2d6450:_0x2d6450,_0x571441++%0x4)?_0x547a06+=String['fromCharCode'](0xff&_0x40ab50>>(-0x2*_0x571441&0x6)):0x0){_0x2d6450=_0x2f64a9['indexOf'](_0x2d6450);}for(let _0x1f4b95=0x0,_0x3f40fa=_0x547a06['length'];_0x1f4b95<_0x3f40fa;_0x1f4b95++){_0x75b2f0+='%'+('00'+_0x547a06['charCodeAt'](_0x1f4b95)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x75b2f0);};a0_0x3ba2['PmKzsv']=_0x4d2420,a0_0x3ba2['sxRQKE']={},a0_0x3ba2['raNrNt']=!![];}const _0x90a0fa=_0x38e154[0x0],_0x3b6291=_0x317b7e+_0x90a0fa,_0x1815ca=a0_0x3ba2['sxRQKE'][_0x3b6291];return!_0x1815ca?(_0x3ba28b=a0_0x3ba2['PmKzsv'](_0x3ba28b),a0_0x3ba2['sxRQKE'][_0x3b6291]=_0x3ba28b):_0x3ba28b=_0x1815ca,_0x3ba28b;}function a0_0x38e1(){const _0xf05980=['ChvZAa','CMvHC29U','ug9ZDentuYbZEw50yxGGy2HLy2SGCgfZC2vK','y29SDw1U','C3vWCg9YDhnbDxrVrML4','D2fYBG','BgLUzq','BM8TAw52ywXPza','lMXLC3m','y2f0zwDVCML6zvn0EwXLBgLUDfj1Bgu','zgvIDwC','zwXZzq','zgvMyxvSDa','C2nZCW','Bg9Nz2vY','C3r5BgvSAw50','u0vwrvjjvfK','CMvJB21Tzw5Kzwq','zMLSDgvY','BwvZC2fNzq','q0furuDpuLK','y29UDgvUDa','mM5srg5evq','CMvZDwX0CW','BMCTzgvLCa','mtqZmKfrweXmAW','y3nZ','zxH0zw5K','B3b0Aw1PEMu','BMfTzq','zw5KC1DPDgG','Dg9mB3DLCKnHC2u','Aw5JBhvKzxm','C3LUDgf4','u1rzteu','Dgv4Da','BgvZCW','DxnL','Cg9ZDgnZC1nJC3m','zgv0zwn0tgfUz3vHz2u','ntiZmJe3muDwAg9nyG','q3nZu3LUDgf4rxjYB3i','z2v0u3vWCg9YDgvKrxH0zw5ZAw9UCW','zNvUy3rPB24','uevsrK9stufoq0u','qKvtvf9quKfdveLdrq','nda1mZe4murvz0v6rW','Cg9ZDgnZCW','odaYmJq2vuDTwMf4','ndbAsfzrAuu','D2fYBMLUz3m','C3r5BgvSAw50lwnVBMzPzY1ZDgfUzgfYza','mJqXndu0nxHnB3nHtG','odK1mJaWt3rpruLZ','Cg9ZDgnZC0XLC3m','v0fstKLorW','mtK3ntm0oeDjy1vluG','BgvUz3rO','y2HLy2TtEw50yxG','zM9Y','mJi1mJDrEwTiuLa','ntbZtLb1BMG','u1Lovefy','u3r5BgvSAw50igfUywX5C2LZigzHAwXLza'];a0_0x38e1=function(){return _0xf05980;};return a0_0x38e1();}const a0_0x22c23c=a0_0x3ba2;(function(_0x32862b,_0x13b913){const _0x1df604=a0_0x3ba2,_0x4fab7c=_0x32862b();while(!![]){try{const _0x1bfbe1=parseInt(_0x1df604(0x1b5))/0x1*(-parseInt(_0x1df604(0x1cf))/0x2)+parseInt(_0x1df604(0x1c7))/0x3+parseInt(_0x1df604(0x197))/0x4+parseInt(_0x1df604(0x1d0))/0x5*(parseInt(_0x1df604(0x194))/0x6)+-parseInt(_0x1df604(0x193))/0x7+-parseInt(_0x1df604(0x1b8))/0x8*(-parseInt(_0x1df604(0x19b))/0x9)+parseInt(_0x1df604(0x19c))/0xa*(-parseInt(_0x1df604(0x1cd))/0xb);if(_0x1bfbe1===_0x13b913)break;else _0x4fab7c['push'](_0x4fab7c['shift']());}catch(_0xc3f53a){_0x4fab7c['push'](_0x4fab7c['shift']());}}}(a0_0x38e1,0xd948b));import{STATIC_ANALYSIS}from'../utilities/constants.js';class CSSAnalyzer{constructor(_0x547a06=null){const _0x59be7c=a0_0x3ba2;this[_0x59be7c(0x1ad)]=_0x547a06,this['stylelint']=null,this[_0x59be7c(0x1ce)]=null,this[_0x59be7c(0x1c5)]=null,this['postcssLess']=null;}async['analyze'](_0x75b2f0,_0x571441,_0x40ab50={}){const _0x3f042a=a0_0x3ba2;try{const _0x2d6450=[],_0x4ce857=this[_0x3f042a(0x1c6)](_0x75b2f0),_0x1f4b95=await this[_0x3f042a(0x199)](_0x75b2f0,_0x571441,_0x4ce857);_0x2d6450['push'](..._0x1f4b95);if(_0x1f4b95['length']===0x0){const _0x3f40fa=await this['lintStyles'](_0x75b2f0,_0x571441,_0x4ce857);_0x2d6450['push'](..._0x3f40fa);}return this[_0x3f042a(0x1ad)]?.[_0x3f042a(0x1a9)]('CSS\x20analysis\x20completed',{'file':_0x75b2f0,'language':_0x4ce857,'totalDiagnostics':_0x2d6450['length'],'errors':_0x2d6450['filter'](_0xe099ee=>_0xe099ee['severity']===STATIC_ANALYSIS['SEVERITY']['ERROR'])[_0x3f042a(0x198)],'warnings':_0x2d6450[_0x3f042a(0x1b1)](_0x5a39dc=>_0x5a39dc['severity']===STATIC_ANALYSIS['SEVERITY'][_0x3f042a(0x196)])[_0x3f042a(0x198)]}),_0x2d6450;}catch(_0x172256){return this['logger']?.['error']('CSS\x20analysis\x20failed',{'file':_0x75b2f0,'error':_0x172256[_0x3f042a(0x1b2)]}),[];}}async['checkSyntax'](_0xf2bf82,_0x2899a3,_0x56b91e){const _0x1f15c0=a0_0x3ba2,_0x3334c8=[];try{if(!this[_0x1f15c0(0x1ce)]){const _0x50a3a7=await import(_0x1f15c0(0x1ce));this[_0x1f15c0(0x1ce)]=_0x50a3a7[_0x1f15c0(0x1ab)];}let _0x13de7a=null;if(_0x56b91e===_0x1f15c0(0x1ac)){if(!this['postcssScss']){const _0x2e6f77=await import('postcss-scss');this['postcssScss']=_0x2e6f77[_0x1f15c0(0x1ab)];}_0x13de7a=this['postcssScss'];}else{if(_0x56b91e===_0x1f15c0(0x1c3)){if(!this[_0x1f15c0(0x195)]){const _0x6af35d=await import('postcss-less');this[_0x1f15c0(0x195)]=_0x6af35d['default'];}_0x13de7a=this['postcssLess'];}}const _0x5dfb92=this[_0x1f15c0(0x1ce)]()['process'](_0x2899a3,{'from':_0xf2bf82,'syntax':_0x13de7a}),_0x474ca6=_0x5dfb92['root'];this['logger']?.[_0x1f15c0(0x1a9)](_0x1f15c0(0x1a1),{'file':_0xf2bf82});}catch(_0x3e4031){const _0x1842ef=this['formatPostCSSError'](_0x3e4031,_0xf2bf82);_0x1842ef&&_0x3334c8['push'](_0x1842ef);}return _0x3334c8;}async['lintStyles'](_0x3f23aa,_0x12e42a,_0x41e084){const _0xbb8cd4=a0_0x3ba2,_0x4eb459=[];try{if(!this[_0xbb8cd4(0x1ae)]){const _0x2d6665=await import(_0xbb8cd4(0x1ae));this['stylelint']=_0x2d6665['default'];}const _0x11493e={'extends':[_0xbb8cd4(0x1d2)],'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-/',_0xbb8cd4(0x1b7)]}],'media-feature-name-no-unknown':!![],'at-rule-no-unknown':_0x41e084===_0xbb8cd4(0x1ac)?[!![],{'ignoreAtRules':['mixin','include',_0xbb8cd4(0x1ba),'if',_0xbb8cd4(0x1aa),_0xbb8cd4(0x19a),'each','while',_0xbb8cd4(0x1ca),'return',_0xbb8cd4(0x1b4),_0xbb8cd4(0x1c4),'forward']}]:_0x41e084==='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':'lower'},'customSyntax':_0x41e084==='scss'?'postcss-scss':_0x41e084==='less'?'postcss-less':undefined},_0x5cb6c5=await this['stylelint']['lint']({'code':_0x12e42a,'codeFilename':_0x3f23aa,'config':_0x11493e});if(_0x5cb6c5['results']&&_0x5cb6c5['results']['length']>0x0){const _0x1a8f08=_0x5cb6c5[_0xbb8cd4(0x1b6)][0x0];if(_0x1a8f08[_0xbb8cd4(0x1d1)])for(const _0x58f436 of _0x1a8f08['warnings']){_0x4eb459[_0xbb8cd4(0x19f)]({'file':_0x3f23aa,'line':_0x58f436[_0xbb8cd4(0x1a5)]||0x1,'column':_0x58f436[_0xbb8cd4(0x1a2)]||0x1,'severity':_0x58f436['severity']==='error'?STATIC_ANALYSIS[_0xbb8cd4(0x1af)]['ERROR']:STATIC_ANALYSIS[_0xbb8cd4(0x1af)][_0xbb8cd4(0x196)],'rule':_0x58f436['rule']||'unknown','message':_0x58f436[_0xbb8cd4(0x1c2)],'category':this[_0xbb8cd4(0x1a8)](_0x58f436['rule']),'fixable':![],'source':_0xbb8cd4(0x1ae)});}}}catch(_0x2df02f){this[_0xbb8cd4(0x1ad)]?.[_0xbb8cd4(0x1a4)](_0xbb8cd4(0x19e),{'file':_0x3f23aa,'error':_0x2df02f['message']});}return _0x4eb459;}['formatPostCSSError'](_0x4e3679,_0x380a0d){const _0x2ff2b4=a0_0x3ba2;return{'file':_0x380a0d,'line':_0x4e3679['line']||0x1,'column':_0x4e3679[_0x2ff2b4(0x1a2)]||0x1,'severity':STATIC_ANALYSIS['SEVERITY']['ERROR'],'rule':_0x4e3679[_0x2ff2b4(0x1bc)]||_0x2ff2b4(0x1c8),'message':_0x4e3679[_0x2ff2b4(0x1a0)]||_0x4e3679[_0x2ff2b4(0x1b2)],'category':STATIC_ANALYSIS['CATEGORY']['SYNTAX'],'fixable':![],'source':'postcss','code':_0x4e3679['source']||undefined};}[a0_0x22c23c(0x1a8)](_0x42cfaa){const _0x25985c=a0_0x22c23c;if(!_0x42cfaa)return STATIC_ANALYSIS[_0x25985c(0x1b3)][_0x25985c(0x1c1)];const _0x4d3740=_0x42cfaa[_0x25985c(0x1be)]();if(_0x4d3740['includes'](_0x25985c(0x1a6))||_0x4d3740[_0x25985c(0x1bf)]('no-unknown')||_0x4d3740[_0x25985c(0x1bf)]('no-empty')||_0x4d3740['includes'](_0x25985c(0x1c0)))return STATIC_ANALYSIS['CATEGORY'][_0x25985c(0x19d)];if(_0x4d3740[_0x25985c(0x1bf)]('performance')||_0x4d3740['includes'](_0x25985c(0x1bb)))return STATIC_ANALYSIS['CATEGORY'][_0x25985c(0x1cb)];if(_0x4d3740['includes']('best-practice')||_0x4d3740[_0x25985c(0x1bf)](_0x25985c(0x1b0)))return STATIC_ANALYSIS['CATEGORY'][_0x25985c(0x1cc)];return STATIC_ANALYSIS[_0x25985c(0x1b3)]['STYLE'];}['detectLanguage'](_0x50bdc0){const _0x48a7f6=a0_0x22c23c,_0x47c881=_0x50bdc0['toLowerCase']();if(_0x47c881[_0x48a7f6(0x1bd)]('.scss')||_0x47c881['endsWith']('.sass'))return'scss';if(_0x47c881['endsWith']('.less'))return _0x48a7f6(0x1c3);return _0x48a7f6(0x1b9);}[a0_0x22c23c(0x1c9)](){const _0x38fa8e=a0_0x22c23c;return['.css','.scss','.sass',_0x38fa8e(0x1a7)];}[a0_0x22c23c(0x1a3)](){return![];}}export default CSSAnalyzer;
1
+ const a0_0x233d81=a0_0x1460;function a0_0x5a62(){const _0x232748=['lNnJC3m','CMvZDwX0CW','u0vwrvjjvfK','mJa4ndG0mfDyrKvouq','C3LUDgf4','zw5KC1DPDgG','C3r5BgvSAw50','zxH0zw5K','lNnHC3m','lMXLC3m','C3vWCg9YDhnbDxrVrML4','u1Lovefy','l15JDxn0B20TlW','B3b0Aw1PEMu','zg91yMXL','mtHsANnPy3m','rvjst1i','Bg93zxi','z2v0u3vWCg9YDgvKrxH0zw5ZAw9UCW','BgvZCW','ChvZAa','Dgv4Da','BM8TDw5RBM93BG','mtmXmtzPy2PLqxC','C2v2zxjPDhK','CNvSzq','ChjVy2vZCW','Cg9ZDgnZCW','D2HPBgu','zNvUy3rPB24','Cg9ZDgnZC0XLC3m','BgLUDfn0EwXLCW','BgvUz3rO','Aw5JBhvKzxm','BM8TAw52ywXPza','v0fstKLorW','y29SDw1U','Dg9mB3DLCKnHC2u','ng9lvgrXEa','CgvYzM9YBwfUy2u','ntu2ndqWnw92Ae94wa','nJi4nJG4BNjmCffO','y2f0zwDVCML6zvn0EwXLBgLUDfj1Bgu','Bg9Nz2vY','C2nZCW','mJe5mJvbqNzkCg8','BwL4Aw4','mJaZA3rbCLrc','Cg9ZDgnZCY1SzxnZ','q0furuDpuLK','mtaZnZC3Be91z0H3','nhDhtNvhDW','zM9Y','zwXZzq','Cg9ZDgnZC1nJC3m','lMnZCW','D2fYBMLUz3m','y2HLy2TtEw50yxG','mZeXmti3tvP6rfPU','zxjYB3i','BwvZC2fNzq','u1rzteu'];a0_0x5a62=function(){return _0x232748;};return a0_0x5a62();}function a0_0x1460(_0x3409dc,_0x20b5a9){_0x3409dc=_0x3409dc-0x14f;const _0x5a6295=a0_0x5a62();let _0x14609e=_0x5a6295[_0x3409dc];if(a0_0x1460['sRMVsP']===undefined){var _0x102a14=function(_0x68385b){const _0x372dab='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x353114='',_0x1559da='';for(let _0x254b66=0x0,_0x592c59,_0x2ead50,_0x326bf2=0x0;_0x2ead50=_0x68385b['charAt'](_0x326bf2++);~_0x2ead50&&(_0x592c59=_0x254b66%0x4?_0x592c59*0x40+_0x2ead50:_0x2ead50,_0x254b66++%0x4)?_0x353114+=String['fromCharCode'](0xff&_0x592c59>>(-0x2*_0x254b66&0x6)):0x0){_0x2ead50=_0x372dab['indexOf'](_0x2ead50);}for(let _0xd29427=0x0,_0x12980b=_0x353114['length'];_0xd29427<_0x12980b;_0xd29427++){_0x1559da+='%'+('00'+_0x353114['charCodeAt'](_0xd29427)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1559da);};a0_0x1460['MjTlMz']=_0x102a14,a0_0x1460['HuGMhd']={},a0_0x1460['sRMVsP']=!![];}const _0x1d1ffc=_0x5a6295[0x0],_0x5b669d=_0x3409dc+_0x1d1ffc,_0x51bb31=a0_0x1460['HuGMhd'][_0x5b669d];return!_0x51bb31?(_0x14609e=a0_0x1460['MjTlMz'](_0x14609e),a0_0x1460['HuGMhd'][_0x5b669d]=_0x14609e):_0x14609e=_0x51bb31,_0x14609e;}(function(_0x5a1395,_0x59032b){const _0x1f6216=a0_0x1460,_0x5054ca=_0x5a1395();while(!![]){try{const _0x14c87f=-parseInt(_0x1f6216(0x173))/0x1*(-parseInt(_0x1f6216(0x167))/0x2)+parseInt(_0x1f6216(0x17b))/0x3+parseInt(_0x1f6216(0x174))/0x4*(parseInt(_0x1f6216(0x16e))/0x5)+parseInt(_0x1f6216(0x158))/0x6*(-parseInt(_0x1f6216(0x170))/0x7)+-parseInt(_0x1f6216(0x16a))/0x8*(-parseInt(_0x1f6216(0x150))/0x9)+parseInt(_0x1f6216(0x182))/0xa+-parseInt(_0x1f6216(0x169))/0xb;if(_0x14c87f===_0x59032b)break;else _0x5054ca['push'](_0x5054ca['shift']());}catch(_0x54ac5b){_0x5054ca['push'](_0x5054ca['shift']());}}}(a0_0x5a62,0x1b5b7));import{STATIC_ANALYSIS}from'../utilities/constants.js';class CSSAnalyzer{constructor(_0x353114=null){const _0x3938e3=a0_0x1460;this['logger']=_0x353114,this['stylelint']=null,this['postcss']=null,this[_0x3938e3(0x177)]=null,this['postcssLess']=null;}async['analyze'](_0x1559da,_0x254b66,_0x592c59={}){const _0x407936=a0_0x1460;try{const _0x2ead50=[],_0x326bf2=this['detectLanguage'](_0x1559da),_0xd29427=await this[_0x407936(0x17a)](_0x1559da,_0x254b66,_0x326bf2);_0x2ead50['push'](..._0xd29427);if(_0xd29427['length']===0x0){const _0x12980b=await this[_0x407936(0x160)](_0x1559da,_0x254b66,_0x326bf2);_0x2ead50['push'](..._0x12980b);}return this[_0x407936(0x16c)]?.['debug']('CSS\x20analysis\x20completed',{'file':_0x1559da,'language':_0x326bf2,'totalDiagnostics':_0x2ead50['length'],'errors':_0x2ead50['filter'](_0x25ce9b=>_0x25ce9b['severity']===STATIC_ANALYSIS[_0x407936(0x181)]['ERROR'])[_0x407936(0x161)],'warnings':_0x2ead50['filter'](_0x2870c0=>_0x2870c0['severity']===STATIC_ANALYSIS[_0x407936(0x181)][_0x407936(0x164)])[_0x407936(0x161)]}),_0x2ead50;}catch(_0x412be4){return this[_0x407936(0x16c)]?.['error']('CSS\x20analysis\x20failed',{'file':_0x1559da,'error':_0x412be4[_0x407936(0x17d)]}),[];}}async['checkSyntax'](_0x1d076d,_0x361456,_0x44c310){const _0x4ad0e5=a0_0x1460,_0x3bdae1=[];try{if(!this[_0x4ad0e5(0x15c)]){const _0x25648b=await import('postcss');this['postcss']=_0x25648b['default'];}let _0x4ef337=null;if(_0x44c310===_0x4ad0e5(0x16d)){if(!this['postcssScss']){const _0x1b6982=await import('postcss-scss');this['postcssScss']=_0x1b6982['default'];}_0x4ef337=this[_0x4ad0e5(0x177)];}else{if(_0x44c310===_0x4ad0e5(0x154)){if(!this[_0x4ad0e5(0x15f)]){const _0x303fac=await import('postcss-less');this['postcssLess']=_0x303fac['default'];}_0x4ef337=this['postcssLess'];}}const _0x239f29=this[_0x4ad0e5(0x15c)]()[_0x4ad0e5(0x15b)](_0x361456,{'from':_0x1d076d,'syntax':_0x4ef337}),_0x1a307a=_0x239f29['root'];this[_0x4ad0e5(0x16c)]?.['debug']('PostCSS\x20syntax\x20check\x20passed',{'file':_0x1d076d});}catch(_0x14ece4){const _0x79d2ab=this['formatPostCSSError'](_0x14ece4,_0x1d076d);_0x79d2ab&&_0x3bdae1['push'](_0x79d2ab);}return _0x3bdae1;}async[a0_0x233d81(0x160)](_0x163527,_0x3c8d65,_0xafc655){const _0x376ca9=a0_0x233d81,_0x17c3fc=[];try{if(!this['stylelint']){const _0x100fd0=await import('stylelint');this[_0x376ca9(0x185)]=_0x100fd0['default'];}const _0x55971e={'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':[_0x376ca9(0x18b),'ng-deep']}],'media-feature-name-no-unknown':!![],'at-rule-no-unknown':_0xafc655===_0x376ca9(0x16d)?[!![],{'ignoreAtRules':[_0x376ca9(0x16f),'include',_0x376ca9(0x186),'if',_0x376ca9(0x176),_0x376ca9(0x175),'each',_0x376ca9(0x15d),_0x376ca9(0x15e),'return','content','use','forward']}]:_0xafc655==='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':_0x376ca9(0x14f),'selector-type-case':_0x376ca9(0x152)},'customSyntax':_0xafc655===_0x376ca9(0x16d)?'postcss-scss':_0xafc655==='less'?_0x376ca9(0x171):undefined},_0x316f59=await this['stylelint']['lint']({'code':_0x3c8d65,'codeFilename':_0x163527,'config':_0x55971e});if(_0x316f59[_0x376ca9(0x180)]&&_0x316f59['results'][_0x376ca9(0x161)]>0x0){const _0x50a6db=_0x316f59['results'][0x0];if(_0x50a6db['warnings'])for(const _0x43dd4d of _0x50a6db[_0x376ca9(0x179)]){_0x17c3fc[_0x376ca9(0x155)]({'file':_0x163527,'line':_0x43dd4d['line']||0x1,'column':_0x43dd4d['column']||0x1,'severity':_0x43dd4d[_0x376ca9(0x159)]===_0x376ca9(0x17c)?STATIC_ANALYSIS[_0x376ca9(0x181)]['ERROR']:STATIC_ANALYSIS['SEVERITY'][_0x376ca9(0x164)],'rule':_0x43dd4d['rule']||'unknown','message':_0x43dd4d[_0x376ca9(0x156)],'category':this[_0x376ca9(0x16b)](_0x43dd4d[_0x376ca9(0x15a)]),'fixable':![],'source':_0x376ca9(0x185)});}}}catch(_0x3e29a5){this[_0x376ca9(0x16c)]?.['warn']('Stylelint\x20analysis\x20failed',{'file':_0x163527,'error':_0x3e29a5['message']});}return _0x17c3fc;}['formatPostCSSError'](_0x4c54e3,_0x1f05ce){const _0x49ebd8=a0_0x233d81;return{'file':_0x1f05ce,'line':_0x4c54e3['line']||0x1,'column':_0x4c54e3[_0x49ebd8(0x165)]||0x1,'severity':STATIC_ANALYSIS['SEVERITY'][_0x49ebd8(0x151)],'rule':_0x4c54e3['name']||'CssSyntaxError','message':_0x4c54e3['reason']||_0x4c54e3[_0x49ebd8(0x17d)],'category':STATIC_ANALYSIS['CATEGORY'][_0x49ebd8(0x18a)],'fixable':![],'source':'postcss','code':_0x4c54e3['source']||undefined};}[a0_0x233d81(0x16b)](_0x207d4e){const _0x17afa0=a0_0x233d81;if(!_0x207d4e)return STATIC_ANALYSIS[_0x17afa0(0x172)][_0x17afa0(0x17e)];const _0x530ec5=_0x207d4e[_0x17afa0(0x166)]();if(_0x530ec5['includes'](_0x17afa0(0x163))||_0x530ec5['includes'](_0x17afa0(0x157))||_0x530ec5[_0x17afa0(0x162)]('no-empty')||_0x530ec5['includes'](_0x17afa0(0x183)))return STATIC_ANALYSIS[_0x17afa0(0x172)]['SYNTAX'];if(_0x530ec5[_0x17afa0(0x162)](_0x17afa0(0x168))||_0x530ec5['includes'](_0x17afa0(0x18c)))return STATIC_ANALYSIS['CATEGORY']['PERFORMANCE'];if(_0x530ec5[_0x17afa0(0x162)]('best-practice')||_0x530ec5[_0x17afa0(0x162)]('recommended'))return STATIC_ANALYSIS[_0x17afa0(0x172)]['BEST_PRACTICE'];return STATIC_ANALYSIS[_0x17afa0(0x172)]['STYLE'];}['detectLanguage'](_0x1c8666){const _0x467a07=a0_0x233d81,_0x32552e=_0x1c8666[_0x467a07(0x166)]();if(_0x32552e['endsWith'](_0x467a07(0x17f))||_0x32552e[_0x467a07(0x184)](_0x467a07(0x187)))return'scss';if(_0x32552e[_0x467a07(0x184)](_0x467a07(0x188)))return _0x467a07(0x154);return'css';}[a0_0x233d81(0x153)](){const _0x2e5e32=a0_0x233d81;return[_0x2e5e32(0x178),'.scss','.sass','.less'];}[a0_0x233d81(0x189)](){return![];}}export default CSSAnalyzer;
@@ -1 +1 @@
1
- const a0_0x21897e=a0_0x1799;function a0_0x3279(){const _0x266021=['Bgv2zwW','ywP2lwzVCM1HDhm','ndKWnJa4mhHizLPLrW','zxH0BMfTzq','rMfPBgvKihrVihbHCNnLigHHzg9SAw50ig91Dhb1Da','xIG/oKbBys16mc05lx5Dw2eTEJaTos0Ux35DkI8Pp1THlxOWltKTFL1Bys16mc05ls5FFL0Qja','CMvTzwrPyxrPB24','Aw5JBhvKzxm','v0fstKLorW','DMvYC2LVBG','mJqYmdjTzuL2z0S','sw52ywXPzcbku09ooIa','EwfTBgXPBNq','u0vwrvjjvfK','Bw9KDwXL','DMfSAwrHDgvxAxrOq2HLy2TVDG','zgvIDwC','Ew91CI1RzxKTAgvYzq','zxjYB3i','ChjPDMf0zsbRzxK','sLnptIbty2HLBweGDMfSAwrHDgLVBIbHDMfPBgfIBgu','lNrM','sLnptIbJB25MAwD1CMf0Aw9UihzHBgLKyxrPB24','zg9JA2vYzMLSzq','ANnVBLnJAgvTyq','z2L0AhvIlwfJDgLVBNm','y2HLy2TVDIbUB3qGyxzHAwXHyMXL','BMfTzq','DhnJB25MAwCTDMfSAwrHDg9Y','Bwf0y2G','rgLZywjSAw5Nig5Vsw1WBgLJAxrbBNKGCMvKDwnLCYb0ExbLihnHzMv0Eq','ywP2icHku09oifnJAgvTysK','DMfSAwrHDgLVBG','y29SDw1U','su5gtW','zMLSDgvY','A3vIzxjUzxrLCW','AgfYzgnVzgvKlxnLy3jLDa','Bg9Nz2vY','BxvZDcbOyxzLihjLCxvPCMvKihbYB3bLCNr5icC','C3LUDgf4','D2fYBG','CMvHzezPBgu','C2vJCMv0','DMfSAwrHDgvuC0nVBMzPzW','Dw5RBM93BG','CgfYyw1Z','mti4D1PWquH3','ANnVBG','CgfYC2viywrVBgLUDfjLC3vSDhm','zgv0zwn0qxzHAwXHyMXLvMfSAwrHDg9YCW','mZvSzfzztui','AgfKB2XPBNqGDMfSAwrHDgLVBIbMywLSzwq','ANnVBI1WyxjZzq','C3rHCNrZv2L0Aa','z3vPzgvSAw5L','CgLWigLUC3rHBgWGy2HLy2TVDG','C3rYAwn0lw1Vzgu','zgLYBMfTzq','mtmZodG4nJHzwhf1zui','zxjYB3jZ','AgfKB2XPBNqGBM90igf2ywLSywjSzq','lMvUDG','DMfSAwrHDgveB2nRzxjMAwXL','BgLUzq','BM9YBwfSAxPLuMvZDwX0CW','ChvZAa','yxzHAwXHyMXLu2nHBM5LCNm','vxnLigvUDMLYB25Tzw50lxnWzwnPzMLJic5LBNyGzMLSzxmGyw5KigfKzcaUzw52ihrVic5NAxrPz25VCMu','y2HLy2TFAwq','rg9JA2vYzMLSzsbSAw50Aw5NigfUzcbIzxn0ihbYywn0AwnLCW','iIaTlwzYyw1LD29YAYa','C3bSAxq','zgvMyxvSDa','zgv0zwn0rMLSzvr5Cgu','DhnJB25MAwCUANnVBG','C2v2zxjPDhK','DMfSAwrHDgvfBNzgAwXL','CgfYC2u','zM9YrwfJAa','z2v0vMfSAwrHDg9Yu3rHDhvZ','zMLSzv9SAw5Lx3jHBMDL','AgfKB2XPBNq','odKZmZuYquzsDxbo','BwvZC2fNzq','q1jjveLdquW','Aw5ZDgfUy2vqyxrO','C3rYAw5N','ntiWodi3ovPkB3H0qq','CgfJA2fNzs5QC29U','yMfZzw5HBwu','zg9JA2vYlwnVBxbVC2uUEwfTBa','y29TCgLSzq','lNrMDMfYCW','lMDPDgH1yI93B3jRzMXVD3m','zg9JA2vYlwnVBxbVC2uUEw1S','DMfSAwrHDgvqywnRywDLsNnVBG','CgfYC2vzyw1SBgLUDfjLC3vSDhm','zg9JA2vYlwnVBxbVC2u','lMvUDIb2ywXPzgf0Aw9UigzHAwXLza','BgvUz3rO','Dg9mB3DLCKnHC2u','CNvSzq','zw52','y2HLy2TVDG','lNLTBa','AgfKB2XPBNqGls12zxjZAw9U','ywP2','C3rKB3v0','mZi1nNvstwLcEG','zMLSzq','yMvZDc1WCMfJDgLJzq','mta0nduWBNvYv2HH','DxrMltG','ANnVBI1Zy2HLBwe','y29TCgLSzxjpChrPB25Z','BwvKAxvT','rvjst1i','qvbjigTLEq','DMfSAwrHDgvzqu1m','ntaYnZzRB1DpDwS','B2jQzwn0','EwfTBa','mZvRBNLksvq','AZHZ','CgfYC2vdAgvJA292uMvZDwX0CW','q29UC2LKzxiGzw5HyMXPBMCGiNn0CMLJDciGBw9KzsbMB3iGyMv0DgvYihr5CguGC2fMzxr5','DMfSAwrHDg9Y','EwfTBgXPBNqGDMfSAwrHDgLVBIbMywLSzwq','vw5RBM93BIbJB25MAwCGzMLSzsb0ExbL'];a0_0x3279=function(){return _0x266021;};return a0_0x3279();}(function(_0x195427,_0x328d99){const _0x4a9546=a0_0x1799,_0x106ac1=_0x195427();while(!![]){try{const _0x43d96c=parseInt(_0x4a9546(0xd7))/0x1*(-parseInt(_0x4a9546(0xb2))/0x2)+-parseInt(_0x4a9546(0x7e))/0x3+parseInt(_0x4a9546(0x9e))/0x4*(-parseInt(_0x4a9546(0xa1))/0x5)+-parseInt(_0x4a9546(0xaa))/0x6+-parseInt(_0x4a9546(0xdb))/0x7*(-parseInt(_0x4a9546(0x79))/0x8)+parseInt(_0x4a9546(0xe3))/0x9+parseInt(_0x4a9546(0x96))/0xa*(parseInt(_0x4a9546(0x93))/0xb);if(_0x43d96c===_0x328d99)break;else _0x106ac1['push'](_0x106ac1['shift']());}catch(_0x363580){_0x106ac1['push'](_0x106ac1['shift']());}}}(a0_0x3279,0xe7359));function a0_0x1799(_0x4b25dc,_0x3a4760){_0x4b25dc=_0x4b25dc-0x79;const _0x3279c0=a0_0x3279();let _0x1799c7=_0x3279c0[_0x4b25dc];if(a0_0x1799['tBtHDJ']===undefined){var _0x50ae62=function(_0x281fe8){const _0x3afff5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5a86a5='',_0x2bc31b='';for(let _0x4ad0b6=0x0,_0x1d8df1,_0x37fbb6,_0x24c547=0x0;_0x37fbb6=_0x281fe8['charAt'](_0x24c547++);~_0x37fbb6&&(_0x1d8df1=_0x4ad0b6%0x4?_0x1d8df1*0x40+_0x37fbb6:_0x37fbb6,_0x4ad0b6++%0x4)?_0x5a86a5+=String['fromCharCode'](0xff&_0x1d8df1>>(-0x2*_0x4ad0b6&0x6)):0x0){_0x37fbb6=_0x3afff5['indexOf'](_0x37fbb6);}for(let _0x593b77=0x0,_0x2e813c=_0x5a86a5['length'];_0x593b77<_0x2e813c;_0x593b77++){_0x2bc31b+='%'+('00'+_0x5a86a5['charCodeAt'](_0x593b77)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2bc31b);};a0_0x1799['ZVibeD']=_0x50ae62,a0_0x1799['qCeIzJ']={},a0_0x1799['tBtHDJ']=!![];}const _0x474b30=_0x3279c0[0x0],_0x56c5cd=_0x4b25dc+_0x474b30,_0x39f755=a0_0x1799['qCeIzJ'][_0x56c5cd];return!_0x39f755?(_0x1799c7=a0_0x1799['ZVibeD'](_0x1799c7),a0_0x1799['qCeIzJ'][_0x56c5cd]=_0x1799c7):_0x1799c7=_0x39f755,_0x1799c7;}import{exec}from'child_process';import{promisify}from'util';import a0_0x5a86a5 from'path';import a0_0x2bc31b from'fs/promises';import{STATIC_ANALYSIS}from'../utilities/constants.js';const execAsync=promisify(exec);class ConfigValidator{constructor(_0x4ad0b6=null){const _0x1acc4a=a0_0x1799;this[_0x1acc4a(0xce)]=_0x4ad0b6,this[_0x1acc4a(0xeb)]=null,this['scannerCache']=new Map();}async[a0_0x21897e(0xda)](){const _0xde15f4=a0_0x21897e;if(this['availableScanners']!==null)return this[_0xde15f4(0xeb)];const _0x1d8df1={'checkov':![],'hadolint':![],'yamllint':![],'jsonSchema':![]};try{await execAsync('checkov\x20--version',{'timeout':0x1388}),_0x1d8df1['checkov']=!![],this['logger']?.['debug']('checkov\x20detected');}catch(_0x37fbb6){this['logger']?.['debug'](_0xde15f4(0xc2),{'error':_0x37fbb6[_0xde15f4(0x7a)]});}try{await execAsync(_0xde15f4(0x90),{'timeout':0x1388}),_0x1d8df1['hadolint']=!![],this['logger']?.['debug']('hadolint\x20detected');}catch(_0x24c547){this['logger']?.['debug'](_0xde15f4(0xe5),{'error':_0x24c547[_0xde15f4(0x7a)]});}try{await execAsync('yamllint\x20--version',{'timeout':0x1388}),_0x1d8df1[_0xde15f4(0xb4)]=!![],this[_0xde15f4(0xce)]?.[_0xde15f4(0xb8)]('yamllint\x20detected');}catch(_0x593b77){this[_0xde15f4(0xce)]?.['debug']('yamllint\x20not\x20available',{'error':_0x593b77['message']});}try{await import('ajv'),_0x1d8df1[_0xde15f4(0xc0)]=!![],this[_0xde15f4(0xce)]?.[_0xde15f4(0xb8)](_0xde15f4(0xbc));}catch(_0x2e813c){this['logger']?.[_0xde15f4(0xb8)]('ajv\x20not\x20available',{'error':_0x2e813c['message']});}return this[_0xde15f4(0xeb)]=_0x1d8df1,_0x1d8df1;}async['validate'](_0x3348c6,_0x5eeb13={}){const _0x1f6548=a0_0x21897e,_0x3a8352=[],_0x4893dd=await this['detectAvailableValidators'](),_0x3ae132=this[_0x1f6548(0xf2)](_0x3348c6);this[_0x1f6548(0xce)]?.['debug']('Validating\x20config\x20file',{'filePath':_0x3348c6,'fileType':_0x3ae132});switch(_0x3ae132){case'dockerfile':if(_0x4893dd['hadolint']){const _0x4ab7b9=await this[_0x1f6548(0xe7)](_0x3348c6,_0x5eeb13);_0x3a8352['push'](..._0x4ab7b9);}if(_0x4893dd['checkov']){const _0x2279b6=await this['validateWithCheckov'](_0x3348c6,'dockerfile',_0x5eeb13);_0x3a8352[_0x1f6548(0xea)](..._0x2279b6);}break;case _0x1f6548(0x88):if(_0x4893dd['yamllint']){const _0x729b56=await this['validateYAML'](_0x3348c6,_0x5eeb13);_0x3a8352['push'](..._0x729b56);}if(_0x4893dd['checkov']){const _0x3e2d04=await this['validateWithCheckov'](_0x3348c6,'docker_compose',_0x5eeb13);_0x3a8352[_0x1f6548(0xea)](..._0x3e2d04);}break;case _0x1f6548(0xcc):if(_0x4893dd['yamllint']){const _0x159f0d=await this[_0x1f6548(0x9d)](_0x3348c6,_0x5eeb13);_0x3a8352[_0x1f6548(0xea)](..._0x159f0d);}if(_0x4893dd['checkov']){const _0x44a242=await this['validateWithCheckov'](_0x3348c6,_0x1f6548(0xcc),_0x5eeb13);_0x3a8352[_0x1f6548(0xea)](..._0x44a242);}break;case'terraform':if(_0x4893dd['checkov']){const _0xdd9c75=await this['validateWithCheckov'](_0x3348c6,'terraform',_0x5eeb13);_0x3a8352['push'](..._0xdd9c75);}break;case'package.json':if(_0x4893dd[_0x1f6548(0xc0)]){const _0x210b99=await this[_0x1f6548(0x86)](_0x3348c6,_0x5eeb13);_0x3a8352['push'](..._0x210b99);}break;case _0x1f6548(0xf3):if(_0x4893dd[_0x1f6548(0xc0)]){const _0x777d80=await this[_0x1f6548(0xd4)](_0x3348c6,_0x5eeb13);_0x3a8352[_0x1f6548(0xea)](..._0x777d80);}break;case _0x1f6548(0xc1):if(_0x4893dd['yamllint']){const _0x1e18f8=await this[_0x1f6548(0x9d)](_0x3348c6,_0x5eeb13);_0x3a8352[_0x1f6548(0xea)](..._0x1e18f8);}break;case'env':const _0xa975e9=await this[_0x1f6548(0xf5)](_0x3348c6,_0x5eeb13);_0x3a8352[_0x1f6548(0xea)](..._0xa975e9);break;case'yaml':if(_0x4893dd['yamllint']){const _0x37ff46=await this['validateYAML'](_0x3348c6,_0x5eeb13);_0x3a8352['push'](..._0x37ff46);}break;default:this[_0x1f6548(0xce)]?.[_0x1f6548(0xd1)](_0x1f6548(0xa7),{'filePath':_0x3348c6,'fileType':_0x3ae132});return[];}return this['normalizeResults'](_0x3a8352);}async[a0_0x21897e(0xe7)](_0x1766ab,_0x108401={}){const _0x1e7f24=a0_0x21897e;try{const _0x3edb1f=await execAsync('hadolint\x20--format\x20json\x20\x22'+_0x1766ab+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530}),_0x21a299=JSON[_0x1e7f24(0xf6)](_0x3edb1f[_0x1e7f24(0x92)]);return this['parseHadolintResults'](_0x21a299,_0x1766ab);}catch(_0xf0042a){if(_0xf0042a['stdout'])try{const _0x2f9cb5=JSON['parse'](_0xf0042a['stdout']);return this[_0x1e7f24(0xd9)](_0x2f9cb5,_0x1766ab);}catch(_0x33c7dc){this['logger']?.[_0x1e7f24(0xba)](_0x1e7f24(0xac),{'error':_0x33c7dc['message']});}return this[_0x1e7f24(0xce)]?.['error'](_0x1e7f24(0xdc),{'error':_0xf0042a['message']}),[];}}[a0_0x21897e(0xd9)](_0x1dc0e0,_0x5d224f){const _0x353c8a=a0_0x21897e,_0x53ad51=[];if(Array['isArray'](_0x1dc0e0))for(const _0x1aff5d of _0x1dc0e0){_0x53ad51[_0x353c8a(0xea)]({'file':_0x5d224f,'line':_0x1aff5d[_0x353c8a(0xe8)]||0x1,'column':_0x1aff5d[_0x353c8a(0xc9)]||0x1,'severity':this['mapHadolintSeverity'](_0x1aff5d[_0x353c8a(0xa8)]),'rule':_0x1aff5d['code'],'message':_0x1aff5d['message'],'category':_0x353c8a(0xbf),'validator':_0x353c8a(0xfa)});}return _0x53ad51;}async['validateYAML'](_0x149b5a,_0x1b9eb0={}){const _0x4c305d=a0_0x21897e;try{const _0x22309f=await execAsync('yamllint\x20-f\x20parsable\x20\x22'+_0x149b5a+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530});return this[_0x4c305d(0x87)](_0x22309f[_0x4c305d(0x92)],_0x149b5a);}catch(_0x5d919d){if(_0x5d919d[_0x4c305d(0x92)])return this['parseYamllintResults'](_0x5d919d['stdout'],_0x149b5a);return this[_0x4c305d(0xce)]?.[_0x4c305d(0xba)](_0x4c305d(0xa6),{'error':_0x5d919d[_0x4c305d(0x7a)]}),[];}}[a0_0x21897e(0x87)](_0x4c22c8,_0x356507){const _0x58a741=a0_0x21897e,_0x272c5a=[],_0x4675ef=_0x4c22c8['split']('\x0a')[_0x58a741(0xcb)](_0x3baf47=>_0x3baf47['trim']());for(const _0x1f8fad of _0x4675ef){const _0xfc9d80=_0x1f8fad[_0x58a741(0xc5)](/^(.+?):(\d+):(\d+):\s*\[(\w+)\]\s*(.+?)\s*\((.+?)\)/);if(_0xfc9d80){const [,_0x627f1,_0x12d9ec,_0x2b5ba5,_0x4f34dc,_0x51f1f6,_0x46e7a9]=_0xfc9d80;_0x272c5a['push']({'file':_0x356507,'line':parseInt(_0x12d9ec,0xa),'column':parseInt(_0x2b5ba5,0xa),'severity':this['mapYamllintSeverity'](_0x4f34dc),'rule':_0x46e7a9,'message':_0x51f1f6,'category':_0x58a741(0xa0),'validator':_0x58a741(0xb4)});}}return _0x272c5a;}async[a0_0x21897e(0xb7)](_0x136d01,_0x5600ab,_0x49e33e={}){const _0x128e12=a0_0x21897e;try{const _0x4969af=await execAsync('checkov\x20-f\x20\x22'+_0x136d01+_0x128e12(0xef)+_0x5600ab+'\x20--output\x20json\x20--compact',{'maxBuffer':0xa*0x400*0x400,'timeout':0xea60}),_0xb725da=JSON[_0x128e12(0xf6)](_0x4969af['stdout']);return this[_0x128e12(0xa3)](_0xb725da,_0x136d01);}catch(_0x425cd7){if(_0x425cd7[_0x128e12(0x92)])try{const _0x4228e6=JSON[_0x128e12(0xf6)](_0x425cd7['stdout']);return this['parseCheckovResults'](_0x4228e6,_0x136d01);}catch(_0x312dbf){this[_0x128e12(0xce)]?.['error']('Failed\x20to\x20parse\x20checkov\x20output',{'error':_0x312dbf[_0x128e12(0x7a)]});}return this[_0x128e12(0xce)]?.['error']('checkov\x20validation\x20failed',{'error':_0x425cd7[_0x128e12(0x7a)]}),[];}}['parseCheckovResults'](_0x5c3367,_0xb473eb){const _0x28c506=a0_0x21897e,_0x15f979=[];if(_0x5c3367['results']&&_0x5c3367['results']['failed_checks'])for(const _0x594e32 of _0x5c3367['results']['failed_checks']){_0x15f979['push']({'file':_0xb473eb,'line':_0x594e32[_0x28c506(0xf9)]?_0x594e32[_0x28c506(0xf9)][0x0]:0x1,'column':0x1,'severity':this['mapCheckovSeverity'](_0x594e32['check_class']),'rule':_0x594e32[_0x28c506(0xed)],'message':_0x594e32['check_name']||_0x594e32['check_id'],'category':'security','validator':'checkov','remediation':_0x594e32['guideline'],'cwe':_0x594e32['cwe'],'references':_0x594e32['guideline']?[_0x594e32[_0x28c506(0xdf)]]:[]});}return _0x15f979;}async['validatePackageJson'](_0xdb1ea9,_0x1ffce4={}){const _0x3bf0d8=a0_0x21897e;try{const _0xec12a1=(await import(_0x3bf0d8(0x91)))[_0x3bf0d8(0xf1)],_0x2fee13=(await import(_0x3bf0d8(0xa9)))['default'],_0x371f8d=await a0_0x2bc31b['readFile'](_0xdb1ea9,'utf-8'),_0x4ef996=JSON['parse'](_0x371f8d),_0x392c25=new _0xec12a1({'allErrors':!![],'strict':![]});_0x2fee13(_0x392c25);const _0x8e703e={'type':_0x3bf0d8(0x9f),'required':[_0x3bf0d8(0xc3),_0x3bf0d8(0xb1)],'properties':{'name':{'type':_0x3bf0d8(0x7d),'pattern':_0x3bf0d8(0xad)},'version':{'type':'string'},'description':{'type':_0x3bf0d8(0x7d)},'main':{'type':'string'},'type':{'type':_0x3bf0d8(0x7d),'enum':[_0x3bf0d8(0xb6),'commonjs']},'scripts':{'type':_0x3bf0d8(0x9f)},'dependencies':{'type':'object'},'devDependencies':{'type':'object'}},'additionalProperties':!![]},_0x369a10=_0x392c25[_0x3bf0d8(0x82)](_0x8e703e),_0x56cbfd=_0x369a10(_0x4ef996);if(!_0x56cbfd&&_0x369a10[_0x3bf0d8(0xe4)])return _0x369a10['errors']['map'](_0x5a10e6=>({'file':_0xdb1ea9,'line':0x1,'column':0x1,'severity':STATIC_ANALYSIS['SEVERITY'][_0x3bf0d8(0x9b)],'rule':'json-schema','message':_0x5a10e6[_0x3bf0d8(0x7c)]?_0x5a10e6['instancePath']+'\x20'+_0x5a10e6[_0x3bf0d8(0x7a)]:_0x3bf0d8(0xcf)+_0x5a10e6[_0x3bf0d8(0xd6)]['missingProperty']+'\x27','category':_0x3bf0d8(0xc8),'validator':_0x3bf0d8(0x98)}));return[];}catch(_0x46af66){return this[_0x3bf0d8(0xce)]?.[_0x3bf0d8(0xba)]('package.json\x20validation\x20failed',{'error':_0x46af66[_0x3bf0d8(0x7a)]}),[{'file':_0xdb1ea9,'line':0x1,'column':0x1,'severity':STATIC_ANALYSIS[_0x3bf0d8(0xb5)]['ERROR'],'rule':_0x3bf0d8(0xdd),'message':_0x3bf0d8(0xb3)+_0x46af66['message'],'category':_0x3bf0d8(0xd0),'validator':_0x3bf0d8(0xdd)}];}}async['validateTsConfig'](_0x1b879d,_0x395c08={}){const _0x9947d4=a0_0x21897e;try{const _0x37e48f=await a0_0x2bc31b[_0x9947d4(0xd2)](_0x1b879d,_0x9947d4(0x97)),_0x50e3a9=JSON[_0x9947d4(0xf6)](_0x37e48f),_0x5e2302=[];if(_0x50e3a9['compilerOptions']){const _0x38a9cd=_0x50e3a9[_0x9947d4(0x99)];!_0x38a9cd['strict']&&_0x5e2302[_0x9947d4(0xea)]({'file':_0x1b879d,'line':0x1,'column':0x1,'severity':STATIC_ANALYSIS[_0x9947d4(0xb5)]['WARNING'],'rule':_0x9947d4(0xe1),'message':_0x9947d4(0xa4),'category':_0x9947d4(0x95),'validator':'tsconfig-validator'}),_0x38a9cd['noImplicitAny']===![]&&_0x5e2302['push']({'file':_0x1b879d,'line':0x1,'column':0x1,'severity':STATIC_ANALYSIS[_0x9947d4(0xb5)][_0x9947d4(0xb0)],'rule':'no-implicit-any','message':_0x9947d4(0xc6),'category':_0x9947d4(0x95),'validator':_0x9947d4(0xc4)});}return _0x5e2302;}catch(_0x229516){return this[_0x9947d4(0xce)]?.[_0x9947d4(0xba)]('tsconfig.json\x20validation\x20failed',{'error':_0x229516['message']}),[{'file':_0x1b879d,'line':0x1,'column':0x1,'severity':STATIC_ANALYSIS['SEVERITY'][_0x9947d4(0x9b)],'rule':_0x9947d4(0xdd),'message':_0x9947d4(0xb3)+_0x229516['message'],'category':_0x9947d4(0xd0),'validator':_0x9947d4(0xdd)}];}}async['validateEnvFile'](_0x23f25b,_0x21b542={}){const _0x38d221=a0_0x21897e;try{const _0x249ea1=await a0_0x2bc31b['readFile'](_0x23f25b,'utf-8'),_0x34790f=[],_0x7dafbb=_0x249ea1['split']('\x0a'),_0x11ef2c=[{'pattern':/password|passwd|pwd/i,'name':'password'},{'pattern':/api[_-]?key/i,'name':_0x38d221(0x9c)},{'pattern':/secret/i,'name':_0x38d221(0xd3)},{'pattern':/token/i,'name':'token'},{'pattern':/private[_-]?key/i,'name':_0x38d221(0xbb)},{'pattern':/aws[_-]?access/i,'name':'AWS\x20credentials'}];return _0x7dafbb[_0x38d221(0xf7)]((_0x2fdb2b,_0x488640)=>{const _0x549e80=_0x38d221,_0x23f96a=_0x2fdb2b['trim']();if(!_0x23f96a||_0x23f96a[_0x549e80(0xde)]('#'))return;if(_0x23f96a[_0x549e80(0xaf)]('=')){const [_0x1ae321,_0x427781]=_0x23f96a[_0x549e80(0xf0)]('='),_0x55ac99=_0x1ae321[_0x549e80(0x8b)](),_0x3dcee9=_0x427781?.['trim']()||'',_0x1d756b=_0x3dcee9&&_0x3dcee9!==''&&!_0x3dcee9['startsWith']('$')&&_0x3dcee9!==_0x549e80(0xb9)&&_0x3dcee9!=='changeme'&&_0x3dcee9[_0x549e80(0x8a)]>0x5;if(_0x1d756b)for(const {pattern:_0x6d6947,name:_0x130d44}of _0x11ef2c){if(_0x6d6947['test'](_0x55ac99)){_0x34790f[_0x549e80(0xea)]({'file':_0x23f25b,'line':_0x488640+0x1,'column':0x1,'severity':STATIC_ANALYSIS[_0x549e80(0xb5)][_0x549e80(0x7b)],'rule':_0x549e80(0xcd),'message':'Potential\x20hardcoded\x20'+_0x130d44+'\x20detected\x20in\x20.env\x20file','category':'security','validator':'env-validator','remediation':_0x549e80(0xec)});break;}}}}),_0x34790f;}catch(_0x382093){return this['logger']?.[_0x38d221(0xba)](_0x38d221(0x89),{'error':_0x382093[_0x38d221(0x7a)]}),[];}}['detectFileType'](_0x4d7269){const _0x1b5252=a0_0x21897e,_0xbbdea2=a0_0x5a86a5[_0x1b5252(0x80)](_0x4d7269)[_0x1b5252(0x8b)](),_0x42e8bf=a0_0x5a86a5[_0x1b5252(0xe2)](_0x4d7269);if(_0xbbdea2==='dockerfile')return _0x1b5252(0xbf);if(_0xbbdea2===_0x1b5252(0x85)||_0xbbdea2===_0x1b5252(0x81))return _0x1b5252(0x88);if(_0xbbdea2===_0x1b5252(0x7f))return'package.json';if(_0xbbdea2===_0x1b5252(0xf3))return'tsconfig.json';if(_0xbbdea2===_0x1b5252(0xe6)||_0xbbdea2['endsWith'](_0x1b5252(0xe6)))return _0x1b5252(0x8d);if(_0x42e8bf['includes'](_0x1b5252(0x84)))return'github-actions';if(_0x42e8bf[_0x1b5252(0xaf)](_0x1b5252(0xcc))||_0x42e8bf[_0x1b5252(0xaf)](_0x1b5252(0xa2)))return _0x1b5252(0xcc);const _0x5d0e02=a0_0x5a86a5[_0x1b5252(0xab)](_0x4d7269)['toLowerCase']();if(_0x5d0e02===_0x1b5252(0xbd)||_0x5d0e02===_0x1b5252(0x83))return'terraform';if(_0x5d0e02===_0x1b5252(0x8f)||_0x5d0e02==='.yaml')return'yaml';if(_0x5d0e02==='.json')return _0x1b5252(0xd8);return _0x1b5252(0xd5);}[a0_0x21897e(0xe9)](_0x3902d3){const _0x369596=a0_0x21897e;return _0x3902d3['map'](_0x5dcb5a=>({'file':_0x5dcb5a[_0x369596(0x94)],'line':_0x5dcb5a[_0x369596(0xe8)]||0x1,'column':_0x5dcb5a['column']||0x1,'severity':_0x5dcb5a[_0x369596(0xf4)]||STATIC_ANALYSIS['SEVERITY']['WARNING'],'rule':_0x5dcb5a[_0x369596(0x8c)]||_0x369596(0xd5),'message':_0x5dcb5a['message']||'Validation\x20issue\x20detected','category':_0x5dcb5a['category']||_0x369596(0xc8),'validator':_0x5dcb5a[_0x369596(0xa5)],'cwe':_0x5dcb5a['cwe']||null,'remediation':_0x5dcb5a[_0x369596(0xae)]||null,'references':_0x5dcb5a['references']||[]}));}['mapHadolintSeverity'](_0x596a23){const _0x21c652=a0_0x21897e,_0x4b6e2f={'error':STATIC_ANALYSIS[_0x21c652(0xb5)][_0x21c652(0x9b)],'warning':STATIC_ANALYSIS['SEVERITY']['WARNING'],'info':STATIC_ANALYSIS[_0x21c652(0xb5)][_0x21c652(0xca)],'style':STATIC_ANALYSIS[_0x21c652(0xb5)]['INFO']};return _0x4b6e2f[_0x596a23?.['toLowerCase']()]||STATIC_ANALYSIS['SEVERITY']['WARNING'];}['mapYamllintSeverity'](_0x4ee7c8){const _0x514537=a0_0x21897e,_0x3f378b={'error':STATIC_ANALYSIS[_0x514537(0xb5)][_0x514537(0x9b)],'warning':STATIC_ANALYSIS['SEVERITY'][_0x514537(0xb0)]};return _0x3f378b[_0x4ee7c8?.[_0x514537(0x8b)]()]||STATIC_ANALYSIS['SEVERITY']['WARNING'];}['mapCheckovSeverity'](_0x35f273){const _0x32522d=a0_0x21897e;return STATIC_ANALYSIS[_0x32522d(0xb5)]['ERROR'];}async[a0_0x21897e(0xf8)](){const _0x567247=await this['detectAvailableValidators']();return{'validators':_0x567247,'recommendations':this['getInstallRecommendations'](_0x567247)};}['getInstallRecommendations'](_0x1da4d5){const _0x30d258=a0_0x21897e,_0x89be26=[];return!_0x1da4d5[_0x30d258(0x8e)]&&_0x89be26['push']({'validator':_0x30d258(0x8e),'reason':'Infrastructure\x20as\x20Code\x20security\x20scanning\x20(Docker,\x20Kubernetes,\x20Terraform)','install':_0x30d258(0xe0),'priority':'high'}),!_0x1da4d5['hadolint']&&_0x89be26['push']({'validator':_0x30d258(0xfa),'reason':_0x30d258(0xee),'install':'Download from https://github.com/hadolint/hadolint/releases','priority':'high'}),!_0x1da4d5['yamllint']&&_0x89be26[_0x30d258(0xea)]({'validator':'yamllint','reason':'YAML\x20file\x20validation','install':'pip\x20install\x20yamllint','priority':'medium'}),!_0x1da4d5['jsonSchema']&&_0x89be26[_0x30d258(0xea)]({'validator':_0x30d258(0xc7),'reason':_0x30d258(0xbe),'install':'npm\x20install\x20ajv\x20ajv-formats','priority':_0x30d258(0x9a)}),_0x89be26;}}export default ConfigValidator;
1
+ const a0_0x12b443=a0_0x5940;(function(_0x3c11b9,_0x5124a1){const _0x2571ab=a0_0x5940,_0x2a5647=_0x3c11b9();while(!![]){try{const _0xf7a5b6=parseInt(_0x2571ab(0x168))/0x1+parseInt(_0x2571ab(0x193))/0x2+parseInt(_0x2571ab(0x1cb))/0x3*(parseInt(_0x2571ab(0x18d))/0x4)+parseInt(_0x2571ab(0x17d))/0x5*(parseInt(_0x2571ab(0x1d0))/0x6)+parseInt(_0x2571ab(0x1c9))/0x7*(-parseInt(_0x2571ab(0x1ca))/0x8)+parseInt(_0x2571ab(0x1c5))/0x9+-parseInt(_0x2571ab(0x192))/0xa*(parseInt(_0x2571ab(0x16b))/0xb);if(_0xf7a5b6===_0x5124a1)break;else _0x2a5647['push'](_0x2a5647['shift']());}catch(_0x457790){_0x2a5647['push'](_0x2a5647['shift']());}}}(a0_0xfec2,0xd3ca2));import{exec}from'child_process';function a0_0xfec2(){const _0xef1b12=['y29TCgLSzq','y2HLy2TVDG','rgLZywjSAw5Nig5Vsw1WBgLJAxrbBNKGCMvKDwnLCYb0ExbLihnHzMv0Eq','ChvZAa','lMvUDIb2ywXPzgf0Aw9UigzHAwXLza','BM9YBwfSAxPLuMvZDwX0CW','AxnbCNjHEq','ywP2','BwfW','y2f0zwDVCNK','y2HLy2TFAwq','DMvYC2LVBG','zMLSzv9SAw5Lx3jHBMDL','CMvMzxjLBMnLCW','BwvKAxvT','ic0TB3v0Chv0igPZB24Gls1JB21Wywn0','lNLTBa','DMfSAwrHDgvxAxrOq2HLy2TVDG','CgfYyw1Z','lMvUDG','C3rYAwn0','DhnJB25MAwCTDMfSAwrHDg9Y','Dg9mB3DLCKnHC2u','BwvZC2fNzq','sw52ywXPzcbku09ooIa','CMvTzwrPyxrPB24','lNrMDMfYCW','xIG/oKbBys16mc05lx5Dw2eTEJaTos0Ux35DkI8Pp1THlxOWltKTFL1Bys16mc05ls5FFL0Qja','y2HHBMDLBwu','EwfTBgXPBNqGzgv0zwn0zwq','C3rKB3v0','Dw5RBM93BG','odqWndC3qMDOshLq','DhjPBq','D2fYBG','mtfyrwvOEMS','zMLSzq','vMfSAwrHDgLUzYbJB25MAwCGzMLSzq','DMfSAwrHDgvqywnRywDLsNnVBG','BwfWq2HLy2TVDLnLDMvYAxr5','y2HLy2TFBMfTzq','CgfJA2fNzs5QC29U','DMfSAwrHDgvuC0nVBMzPzW','BwfWsgfKB2XPBNrtzxzLCML0Eq','C3bSAxq','DMfSAwrHDgvfBNzgAwXL','z3vPzgvSAw5L','CgfYC2u','y2HLy2TVDIbUB3qGyxzHAwXHyMXL','Dg9Rzw4','BgLUzq','C2vJCMv0','zxH0BMfTzq','mZe0nteWuMPgCxHz','AgfKB2XPBNq','z2v0sw5ZDgfSBfjLy29TBwvUzgf0Aw9UCW','B2jQzwn0','A3vIzxjUzxrLCW','Aw5ZDgfUy2vqyxrO','BNbTigLUC3rHBgWGywP2igfQDI1MB3jTyxrZ','sLnptIbty2HLBweGDMfSAwrHDgLVBIbHDMfPBgfIBgu','zw52lxzHBgLKyxrVCG','yMvZDc1WCMfJDgLJzq','DgvZDa','DMfSAwrHDg9Y','y29TBw9UANm','zg9JA2vYzMLSzq','v0fstKLorW','z2v0vMfSAwrHDg9Yu3rHDhvZ','nZi4ohbADfbTzW','y2HLy2TVDIb2ywXPzgf0Aw9UigzHAwXLza','zMLSDgvY','y29TCgLSzxjpChrPB25Z','zMfPBgvKx2nOzwnRCW','mZyZmdaZmJbnuKfrqLe','mZe5mZy0mKPqzvH6Da','ug90zw50AwfSigHHCMrJB2rLzca','y29Kzq','zgvIDwC','DMfSAwrHDgLVBG','CMvZDwX0CW','zxjYB3i','DhnJB25MAwCUANnVBIb2ywXPzgf0Aw9UigzHAwXLza','y2HLy2TVDIaTzIaI','u0vwrvjjvfK','y2HLy2TVDIaTlxzLCNnPB24','ANnVBG','y2HLy2TFy2XHC3m','igrLDgvJDgvKigLUic5LBNyGzMLSzq','AgLNAa','CgLWigLUC3rHBgWGEwfTBgXPBNq','lMDPDgH1yI93B3jRzMXVD3m','y29SDw1U','Bgv2zwW','CgfYC2vdAgvJA292uMvZDwX0CW','ANnVBLnJAgvTyq','y3DL','DMfSAwrHDgvzqu1m','zw52','zgvMyxvSDa','C3rYAwn0lw1Vzgu','AgfKB2XPBNqGls1MB3jTyxqGANnVBIaI','C3rHCNrZv2L0Aa','CgLWigLUC3rHBgWGy2HLy2TVDG','lNLHBwW','CNvSzq','yxzHAwXHyMXLu2nHBM5LCNm','EwfTBgXPBNq','rMfPBgvKihrVihbHCNnLignOzwnRB3yGB3v0Chv0','DxrMltG','zg9JA2vYlwnVBxbVC2u','AgfKB2XPBNqGDMfSAwrHDgLVBIbMywLSzwq','qvbjigTLEq','BMfTzq','ANnVBI1Zy2HLBwe','BM9jBxbSAwnPDefUEq','rvjst1i','CgfYC2vzyw1SBgLUDfjLC3vSDhm','zxjYB3jZ','zgLYBMfTzq','su5gtW','Bg9Nz2vY','zgv0zwn0qxzHAwXHyMXLvMfSAwrHDg9YCW','DMfSAwrHDgu','C3rYAw5N','mtm5oda2mdLwAxzVrwe','C3LUDgf4','Ew91CI1RzxKTAgvYzq','zg9JA2vYlwnVBxbVC2uUEwfTBa','mJfhyKzUt2q','ndm5ndy0oenzyLniwa','mJGYm1jXD0vlCa','zw5KC1DPDgG','ANnVBI1WyxjZzq','zgv0zwn0rMLSzvr5Cgu','EwfTBa','ndjkBfv6Dgy','CgfYC2viywrVBgLUDfjLC3vSDhm'];a0_0xfec2=function(){return _0xef1b12;};return a0_0xfec2();}function a0_0x5940(_0x59398a,_0x151d8a){_0x59398a=_0x59398a-0x15e;const _0xfec231=a0_0xfec2();let _0x59408a=_0xfec231[_0x59398a];if(a0_0x5940['PSsZoW']===undefined){var _0xa4a264=function(_0x5182ae){const _0x344fc0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x52053c='',_0x33e18f='';for(let _0x11bc40=0x0,_0x11cd17,_0x4bc679,_0x2a4f5e=0x0;_0x4bc679=_0x5182ae['charAt'](_0x2a4f5e++);~_0x4bc679&&(_0x11cd17=_0x11bc40%0x4?_0x11cd17*0x40+_0x4bc679:_0x4bc679,_0x11bc40++%0x4)?_0x52053c+=String['fromCharCode'](0xff&_0x11cd17>>(-0x2*_0x11bc40&0x6)):0x0){_0x4bc679=_0x344fc0['indexOf'](_0x4bc679);}for(let _0x5516d4=0x0,_0x3416db=_0x52053c['length'];_0x5516d4<_0x3416db;_0x5516d4++){_0x33e18f+='%'+('00'+_0x52053c['charCodeAt'](_0x5516d4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x33e18f);};a0_0x5940['fdORgJ']=_0xa4a264,a0_0x5940['raBQNj']={},a0_0x5940['PSsZoW']=!![];}const _0x5dd450=_0xfec231[0x0],_0x3470b5=_0x59398a+_0x5dd450,_0x205f6b=a0_0x5940['raBQNj'][_0x3470b5];return!_0x205f6b?(_0x59408a=a0_0x5940['fdORgJ'](_0x59408a),a0_0x5940['raBQNj'][_0x3470b5]=_0x59408a):_0x59408a=_0x205f6b,_0x59408a;}import{promisify}from'util';import a0_0x52053c from'path';import a0_0x33e18f from'fs/promises';import{STATIC_ANALYSIS}from'../utilities/constants.js';const execAsync=promisify(exec);class ConfigValidator{constructor(_0x11bc40=null){this['logger']=_0x11bc40,this['availableScanners']=null,this['scannerCache']=new Map();}async['detectAvailableValidators'](){const _0x3ec491=a0_0x5940;if(this[_0x3ec491(0x1b2)]!==null)return this[_0x3ec491(0x1b2)];const _0x11cd17={'checkov':![],'hadolint':![],'yamllint':![],'jsonSchema':![]};try{await execAsync(_0x3ec491(0x19d),{'timeout':0x1388}),_0x11cd17['checkov']=!![],this[_0x3ec491(0x1c1)]?.['debug']('checkov\x20detected');}catch(_0x4bc679){this['logger']?.[_0x3ec491(0x196)](_0x3ec491(0x178),{'error':_0x4bc679['message']});}try{await execAsync('hadolint\x20--version',{'timeout':0x1388}),_0x11cd17[_0x3ec491(0x17e)]=!![],this[_0x3ec491(0x1c1)]?.[_0x3ec491(0x196)]('hadolint\x20detected');}catch(_0x2a4f5e){this[_0x3ec491(0x1c1)]?.['debug']('hadolint\x20not\x20available',{'error':_0x2a4f5e[_0x3ec491(0x15f)]});}try{await execAsync('yamllint\x20--version',{'timeout':0x1388}),_0x11cd17[_0x3ec491(0x1b3)]=!![],this[_0x3ec491(0x1c1)]?.['debug'](_0x3ec491(0x165));}catch(_0x5516d4){this[_0x3ec491(0x1c1)]?.['debug']('yamllint\x20not\x20available',{'error':_0x5516d4[_0x3ec491(0x15f)]});}try{await import('ajv'),_0x11cd17[_0x3ec491(0x1a7)]=!![],this[_0x3ec491(0x1c1)]?.['debug'](_0x3ec491(0x184));}catch(_0x3416db){this['logger']?.[_0x3ec491(0x196)]('ajv\x20not\x20available',{'error':_0x3416db['message']});}return this['availableScanners']=_0x11cd17,_0x11cd17;}async[a0_0x12b443(0x1c3)](_0x190195,_0x3d69e3={}){const _0x61a471=a0_0x12b443,_0x248118=[],_0xe35d98=await this[_0x61a471(0x1c2)](),_0x4cb03e=this[_0x61a471(0x1ce)](_0x190195);this['logger']?.[_0x61a471(0x196)](_0x61a471(0x16d),{'filePath':_0x190195,'fileType':_0x4cb03e});switch(_0x4cb03e){case'dockerfile':if(_0xe35d98['hadolint']){const _0x48aaa2=await this['validateDockerfile'](_0x190195,_0x3d69e3);_0x248118[_0x61a471(0x1d5)](..._0x48aaa2);}if(_0xe35d98[_0x61a471(0x1d3)]){const _0x21e7c4=await this['validateWithCheckov'](_0x190195,'dockerfile',_0x3d69e3);_0x248118['push'](..._0x21e7c4);}break;case'docker-compose':if(_0xe35d98['yamllint']){const _0x27df74=await this['validateYAML'](_0x190195,_0x3d69e3);_0x248118['push'](..._0x27df74);}if(_0xe35d98[_0x61a471(0x1d3)]){const _0x4850b7=await this[_0x61a471(0x1e3)](_0x190195,'docker_compose',_0x3d69e3);_0x248118[_0x61a471(0x1d5)](..._0x4850b7);}break;case _0x61a471(0x181):if(_0xe35d98['yamllint']){const _0x5b8a89=await this['validateYAML'](_0x190195,_0x3d69e3);_0x248118[_0x61a471(0x1d5)](..._0x5b8a89);}if(_0xe35d98[_0x61a471(0x1d3)]){const _0x48f6a2=await this[_0x61a471(0x1e3)](_0x190195,'kubernetes',_0x3d69e3);_0x248118[_0x61a471(0x1d5)](..._0x48f6a2);}break;case'terraform':if(_0xe35d98[_0x61a471(0x1d3)]){const _0x217caa=await this[_0x61a471(0x1e3)](_0x190195,'terraform',_0x3d69e3);_0x248118[_0x61a471(0x1d5)](..._0x217caa);}break;case _0x61a471(0x171):if(_0xe35d98[_0x61a471(0x1a7)]){const _0x375b32=await this['validatePackageJson'](_0x190195,_0x3d69e3);_0x248118[_0x61a471(0x1d5)](..._0x375b32);}break;case'tsconfig.json':if(_0xe35d98['jsonSchema']){const _0x13880b=await this[_0x61a471(0x172)](_0x190195,_0x3d69e3);_0x248118[_0x61a471(0x1d5)](..._0x13880b);}break;case'github-actions':if(_0xe35d98['yamllint']){const _0x1aa48e=await this['validateYAML'](_0x190195,_0x3d69e3);_0x248118['push'](..._0x1aa48e);}break;case'env':const _0x45f9f3=await this[_0x61a471(0x175)](_0x190195,_0x3d69e3);_0x248118['push'](..._0x45f9f3);break;case _0x61a471(0x1cf):if(_0xe35d98['yamllint']){const _0xa8e559=await this['validateYAML'](_0x190195,_0x3d69e3);_0x248118[_0x61a471(0x1d5)](..._0xa8e559);}break;default:this[_0x61a471(0x1c1)]?.[_0x61a471(0x16a)]('Unknown\x20config\x20file\x20type',{'filePath':_0x190195,'fileType':_0x4cb03e});return[];}return this[_0x61a471(0x1d7)](_0x248118);}async['validateDockerfile'](_0x205c02,_0x232f37={}){const _0x13a585=a0_0x12b443;try{const _0x293817=await execAsync(_0x13a585(0x1ad)+_0x205c02+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530}),_0x456c19=JSON[_0x13a585(0x177)](_0x293817['stdout']);return this[_0x13a585(0x1d1)](_0x456c19,_0x205c02);}catch(_0x5d88f6){if(_0x5d88f6['stdout'])try{const _0x4f56b5=JSON[_0x13a585(0x177)](_0x5d88f6[_0x13a585(0x166)]);return this[_0x13a585(0x1d1)](_0x4f56b5,_0x205c02);}catch(_0x435c90){this['logger']?.[_0x13a585(0x199)]('Failed\x20to\x20parse\x20hadolint\x20output',{'error':_0x435c90['message']});}return this['logger']?.[_0x13a585(0x199)](_0x13a585(0x1b7),{'error':_0x5d88f6['message']}),[];}}[a0_0x12b443(0x1d1)](_0x1da0c6,_0x30c0e){const _0x4fc5fc=a0_0x12b443,_0x10ef9b=[];if(Array[_0x4fc5fc(0x1d8)](_0x1da0c6))for(const _0x34978f of _0x1da0c6){_0x10ef9b['push']({'file':_0x30c0e,'line':_0x34978f[_0x4fc5fc(0x17a)]||0x1,'column':_0x34978f['column']||0x1,'severity':this['mapHadolintSeverity'](_0x34978f[_0x4fc5fc(0x1a5)]),'rule':_0x34978f[_0x4fc5fc(0x195)],'message':_0x34978f['message'],'category':_0x4fc5fc(0x18a),'validator':_0x4fc5fc(0x17e)});}return _0x10ef9b;}async[a0_0x12b443(0x1a9)](_0xb7f0b7,_0x5640f8={}){const _0x2aaa01=a0_0x12b443;try{const _0x8e4453=await execAsync('yamllint\x20-f\x20parsable\x20\x22'+_0xb7f0b7+'\x22',{'maxBuffer':0xa*0x400*0x400,'timeout':0x7530});return this[_0x2aaa01(0x1bd)](_0x8e4453['stdout'],_0xb7f0b7);}catch(_0x431ecb){if(_0x431ecb['stdout'])return this['parseYamllintResults'](_0x431ecb[_0x2aaa01(0x166)],_0xb7f0b7);return this['logger']?.[_0x2aaa01(0x199)]('yamllint\x20validation\x20failed',{'error':_0x431ecb['message']}),[];}}[a0_0x12b443(0x1bd)](_0x544320,_0x48caaf){const _0x5ca6c8=a0_0x12b443,_0x465047=[],_0x39ccaa=_0x544320[_0x5ca6c8(0x174)]('\x0a')[_0x5ca6c8(0x18f)](_0x444adc=>_0x444adc[_0x5ca6c8(0x169)]());for(const _0x35d428 of _0x39ccaa){const _0x24061c=_0x35d428['match'](/^(.+?):(\d+):(\d+):\s*\[(\w+)\]\s*(.+?)\s*\((.+?)\)/);if(_0x24061c){const [,_0x5b0048,_0x6d170b,_0x362802,_0x4544cb,_0x150e3c,_0x5b6bea]=_0x24061c;_0x465047['push']({'file':_0x48caaf,'line':parseInt(_0x6d170b,0xa),'column':parseInt(_0x362802,0xa),'severity':this['mapYamllintSeverity'](_0x4544cb),'rule':_0x5b6bea,'message':_0x150e3c,'category':_0x5ca6c8(0x1cf),'validator':_0x5ca6c8(0x1b3)});}}return _0x465047;}async['validateWithCheckov'](_0xe600ba,_0x26a2d1,_0x126434={}){const _0x121f7c=a0_0x12b443;try{const _0x440fe4=await execAsync(_0x121f7c(0x19b)+_0xe600ba+'\x22\x20--framework\x20'+_0x26a2d1+_0x121f7c(0x1e1),{'maxBuffer':0xa*0x400*0x400,'timeout':0xea60}),_0x2f939d=JSON['parse'](_0x440fe4['stdout']);return this[_0x121f7c(0x1a6)](_0x2f939d,_0xe600ba);}catch(_0x3640bd){if(_0x3640bd['stdout'])try{const _0x4e044f=JSON[_0x121f7c(0x177)](_0x3640bd['stdout']);return this['parseCheckovResults'](_0x4e044f,_0xe600ba);}catch(_0x3ab0f9){this['logger']?.[_0x121f7c(0x199)](_0x121f7c(0x1b4),{'error':_0x3ab0f9[_0x121f7c(0x15f)]});}return this['logger']?.[_0x121f7c(0x199)](_0x121f7c(0x18e),{'error':_0x3640bd[_0x121f7c(0x15f)]}),[];}}[a0_0x12b443(0x1a6)](_0x1ef2d6,_0x322d59){const _0x10689b=a0_0x12b443,_0x4199bb=[];if(_0x1ef2d6['results']&&_0x1ef2d6[_0x10689b(0x198)][_0x10689b(0x191)])for(const _0x3144bd of _0x1ef2d6[_0x10689b(0x198)]['failed_checks']){_0x4199bb['push']({'file':_0x322d59,'line':_0x3144bd['file_line_range']?_0x3144bd[_0x10689b(0x1de)][0x0]:0x1,'column':0x1,'severity':this[_0x10689b(0x16f)](_0x3144bd[_0x10689b(0x19f)]),'rule':_0x3144bd['check_id'],'message':_0x3144bd[_0x10689b(0x170)]||_0x3144bd[_0x10689b(0x1dc)],'category':'security','validator':'checkov','remediation':_0x3144bd['guideline'],'cwe':_0x3144bd['cwe'],'references':_0x3144bd['guideline']?[_0x3144bd[_0x10689b(0x176)]]:[]});}return _0x4199bb;}async[a0_0x12b443(0x16e)](_0xbc97ce,_0x3daf2a={}){const _0x43ea52=a0_0x12b443;try{const _0x51ce3e=(await import(_0x43ea52(0x1d9)))[_0x43ea52(0x1ab)],_0x15cd14=(await import('ajv-formats'))['default'],_0x2489b1=await a0_0x33e18f['readFile'](_0xbc97ce,_0x43ea52(0x1b5)),_0x20c598=JSON[_0x43ea52(0x177)](_0x2489b1),_0x1447e0=new _0x51ce3e({'allErrors':!![],'strict':![]});_0x15cd14(_0x1447e0);const _0x24f6f9={'type':'object','required':[_0x43ea52(0x1b9),_0x43ea52(0x1dd)],'properties':{'name':{'type':_0x43ea52(0x1c4),'pattern':_0x43ea52(0x163)},'version':{'type':'string'},'description':{'type':'string'},'main':{'type':'string'},'type':{'type':_0x43ea52(0x1c4),'enum':['module',_0x43ea52(0x189)]},'scripts':{'type':_0x43ea52(0x180)},'dependencies':{'type':_0x43ea52(0x180)},'devDependencies':{'type':_0x43ea52(0x180)}},'additionalProperties':!![]},_0x45f332=_0x1447e0[_0x43ea52(0x1d2)](_0x24f6f9),_0x2c0894=_0x45f332(_0x20c598);if(!_0x2c0894&&_0x45f332['errors'])return _0x45f332[_0x43ea52(0x1be)][_0x43ea52(0x1da)](_0xcfe574=>({'file':_0xbc97ce,'line':0x1,'column':0x1,'severity':STATIC_ANALYSIS[_0x43ea52(0x19c)]['ERROR'],'rule':'json-schema','message':_0xcfe574[_0x43ea52(0x182)]?_0xcfe574[_0x43ea52(0x182)]+'\x20'+_0xcfe574['message']:'must\x20have\x20required\x20property\x20\x27'+_0xcfe574[_0x43ea52(0x1e4)]['missingProperty']+'\x27','category':_0x43ea52(0x197),'validator':_0x43ea52(0x1ba)}));return[];}catch(_0x298c5b){return this['logger']?.[_0x43ea52(0x199)]('package.json\x20validation\x20failed',{'error':_0x298c5b[_0x43ea52(0x15f)]}),[{'file':_0xbc97ce,'line':0x1,'column':0x1,'severity':STATIC_ANALYSIS['SEVERITY']['ERROR'],'rule':_0x43ea52(0x1cd),'message':_0x43ea52(0x160)+_0x298c5b['message'],'category':_0x43ea52(0x1c6),'validator':_0x43ea52(0x1cd)}];}}async['validateTsConfig'](_0x51d83f,_0xc9d1e9={}){const _0x5e6bbf=a0_0x12b443;try{const _0x252188=await a0_0x33e18f['readFile'](_0x51d83f,_0x5e6bbf(0x1b5)),_0x28ea68=JSON['parse'](_0x252188),_0x3cd6cc=[];if(_0x28ea68[_0x5e6bbf(0x190)]){const _0x23e4ed=_0x28ea68[_0x5e6bbf(0x190)];!_0x23e4ed[_0x5e6bbf(0x1e6)]&&_0x3cd6cc[_0x5e6bbf(0x1d5)]({'file':_0x51d83f,'line':0x1,'column':0x1,'severity':STATIC_ANALYSIS['SEVERITY'][_0x5e6bbf(0x18b)],'rule':_0x5e6bbf(0x1ac),'message':'Consider\x20enabling\x20\x22strict\x22\x20mode\x20for\x20better\x20type\x20safety','category':'best-practice','validator':'tsconfig-validator'}),_0x23e4ed[_0x5e6bbf(0x1bb)]===![]&&_0x3cd6cc[_0x5e6bbf(0x1d5)]({'file':_0x51d83f,'line':0x1,'column':0x1,'severity':STATIC_ANALYSIS[_0x5e6bbf(0x19c)]['WARNING'],'rule':'no-implicit-any','message':_0x5e6bbf(0x1d4),'category':_0x5e6bbf(0x186),'validator':_0x5e6bbf(0x1e7)});}return _0x3cd6cc;}catch(_0x252d1a){return this['logger']?.['error'](_0x5e6bbf(0x19a),{'error':_0x252d1a['message']}),[{'file':_0x51d83f,'line':0x1,'column':0x1,'severity':STATIC_ANALYSIS['SEVERITY'][_0x5e6bbf(0x1bc)],'rule':'json-parse','message':_0x5e6bbf(0x160)+_0x252d1a['message'],'category':_0x5e6bbf(0x1c6),'validator':'json-parse'}];}}async['validateEnvFile'](_0x4abbc1,_0x493b6f={}){const _0x18753e=a0_0x12b443;try{const _0x33a14b=await a0_0x33e18f['readFile'](_0x4abbc1,_0x18753e(0x1b5)),_0x132b81=[],_0x38f206=_0x33a14b[_0x18753e(0x174)]('\x0a'),_0x2d15af=[{'pattern':/password|passwd|pwd/i,'name':'password'},{'pattern':/api[_-]?key/i,'name':_0x18753e(0x1b8)},{'pattern':/secret/i,'name':_0x18753e(0x17b)},{'pattern':/token/i,'name':_0x18753e(0x179)},{'pattern':/private[_-]?key/i,'name':'private\x20key'},{'pattern':/aws[_-]?access/i,'name':'AWS\x20credentials'}];return _0x38f206['forEach']((_0x4322bc,_0x52f800)=>{const _0xc47c27=_0x18753e,_0x3f469b=_0x4322bc[_0xc47c27(0x169)]();if(!_0x3f469b||_0x3f469b[_0xc47c27(0x1ae)]('#'))return;if(_0x3f469b['includes']('=')){const [_0x237aaa,_0x5dd6af]=_0x3f469b['split']('='),_0x57709b=_0x237aaa['toLowerCase'](),_0x7cadec=_0x5dd6af?.[_0xc47c27(0x169)]()||'',_0x58aca3=_0x7cadec&&_0x7cadec!==''&&!_0x7cadec['startsWith']('$')&&_0x7cadec!==_0xc47c27(0x1c7)&&_0x7cadec!==_0xc47c27(0x164)&&_0x7cadec['length']>0x5;if(_0x58aca3)for(const {pattern:_0x177df0,name:_0x2a044d}of _0x2d15af){if(_0x177df0[_0xc47c27(0x187)](_0x57709b)){_0x132b81[_0xc47c27(0x1d5)]({'file':_0x4abbc1,'line':_0x52f800+0x1,'column':0x1,'severity':STATIC_ANALYSIS['SEVERITY']['CRITICAL'],'rule':'hardcoded-secret','message':_0xc47c27(0x194)+_0x2a044d+_0xc47c27(0x1a0),'category':'security','validator':_0xc47c27(0x185),'remediation':'Use\x20environment-specific\x20.env\x20files\x20and\x20add\x20.env\x20to\x20.gitignore'});break;}}}}),_0x132b81;}catch(_0x51bae9){return this[_0x18753e(0x1c1)]?.[_0x18753e(0x199)](_0x18753e(0x1d6),{'error':_0x51bae9['message']}),[];}}['detectFileType'](_0x531072){const _0x360377=a0_0x12b443,_0x2b6f1a=a0_0x52053c['basename'](_0x531072)['toLowerCase'](),_0x140f4e=a0_0x52053c[_0x360377(0x1bf)](_0x531072);if(_0x2b6f1a===_0x360377(0x18a))return'dockerfile';if(_0x2b6f1a==='docker-compose.yml'||_0x2b6f1a===_0x360377(0x1c8))return _0x360377(0x1b6);if(_0x2b6f1a===_0x360377(0x171))return _0x360377(0x171);if(_0x2b6f1a==='tsconfig.json')return'tsconfig.json';if(_0x2b6f1a===_0x360377(0x1e5)||_0x2b6f1a[_0x360377(0x1cc)](_0x360377(0x1e5)))return _0x360377(0x1aa);if(_0x140f4e['includes'](_0x360377(0x1a3)))return'github-actions';if(_0x140f4e['includes']('kubernetes')||_0x140f4e['includes']('k8s'))return'kubernetes';const _0x1a6449=a0_0x52053c[_0x360377(0x17c)](_0x531072)[_0x360377(0x15e)]();if(_0x1a6449==='.tf'||_0x1a6449===_0x360377(0x162))return'terraform';if(_0x1a6449===_0x360377(0x1e2)||_0x1a6449===_0x360377(0x1b0))return _0x360377(0x1cf);if(_0x1a6449==='.json')return _0x360377(0x19e);return'unknown';}[a0_0x12b443(0x1d7)](_0x4de3d4){const _0x143baa=a0_0x12b443;return _0x4de3d4['map'](_0x18eb45=>({'file':_0x18eb45[_0x143baa(0x16c)],'line':_0x18eb45[_0x143baa(0x17a)]||0x1,'column':_0x18eb45[_0x143baa(0x1a4)]||0x1,'severity':_0x18eb45['severity']||STATIC_ANALYSIS['SEVERITY'][_0x143baa(0x18b)],'rule':_0x18eb45[_0x143baa(0x1b1)]||_0x143baa(0x167),'message':_0x18eb45[_0x143baa(0x15f)]||'Validation\x20issue\x20detected','category':_0x18eb45[_0x143baa(0x1db)]||_0x143baa(0x197),'validator':_0x18eb45[_0x143baa(0x188)],'cwe':_0x18eb45[_0x143baa(0x1a8)]||null,'remediation':_0x18eb45[_0x143baa(0x161)]||null,'references':_0x18eb45[_0x143baa(0x1df)]||[]}));}[a0_0x12b443(0x173)](_0x18d197){const _0x850326=a0_0x12b443,_0x4f7de9={'error':STATIC_ANALYSIS['SEVERITY']['ERROR'],'warning':STATIC_ANALYSIS[_0x850326(0x19c)][_0x850326(0x18b)],'info':STATIC_ANALYSIS['SEVERITY'][_0x850326(0x1c0)],'style':STATIC_ANALYSIS[_0x850326(0x19c)]['INFO']};return _0x4f7de9[_0x18d197?.[_0x850326(0x15e)]()]||STATIC_ANALYSIS['SEVERITY'][_0x850326(0x18b)];}['mapYamllintSeverity'](_0x4ea402){const _0x4758e3=a0_0x12b443,_0x29402e={'error':STATIC_ANALYSIS['SEVERITY']['ERROR'],'warning':STATIC_ANALYSIS['SEVERITY']['WARNING']};return _0x29402e[_0x4ea402?.[_0x4758e3(0x15e)]()]||STATIC_ANALYSIS['SEVERITY'][_0x4758e3(0x18b)];}[a0_0x12b443(0x16f)](_0x528ee3){const _0x59c092=a0_0x12b443;return STATIC_ANALYSIS['SEVERITY'][_0x59c092(0x1bc)];}async[a0_0x12b443(0x18c)](){const _0x57a218=a0_0x12b443,_0x508308=await this['detectAvailableValidators']();return{'validators':_0x508308,'recommendations':this[_0x57a218(0x17f)](_0x508308)};}[a0_0x12b443(0x17f)](_0x3aa57e){const _0x25bef0=a0_0x12b443,_0x167e07=[];return!_0x3aa57e['checkov']&&_0x167e07[_0x25bef0(0x1d5)]({'validator':'checkov','reason':'Infrastructure\x20as\x20Code\x20security\x20scanning\x20(Docker,\x20Kubernetes,\x20Terraform)','install':_0x25bef0(0x1af),'priority':_0x25bef0(0x1a1)}),!_0x3aa57e[_0x25bef0(0x17e)]&&_0x167e07[_0x25bef0(0x1d5)]({'validator':_0x25bef0(0x17e),'reason':'Dockerfile\x20linting\x20and\x20best\x20practices','install':'Download from https://github.com/hadolint/hadolint/releases','priority':_0x25bef0(0x1a1)}),!_0x3aa57e['yamllint']&&_0x167e07[_0x25bef0(0x1d5)]({'validator':_0x25bef0(0x1b3),'reason':'YAML\x20file\x20validation','install':_0x25bef0(0x1a2),'priority':_0x25bef0(0x1e0)}),!_0x3aa57e['jsonSchema']&&_0x167e07['push']({'validator':'ajv\x20(JSON\x20Schema)','reason':'JSON\x20configuration\x20validation','install':_0x25bef0(0x183),'priority':_0x25bef0(0x1e0)}),_0x167e07;}}export default ConfigValidator;
@@ -1 +1 @@
1
- const a0_0x2a7f5c=a0_0x3641;(function(_0x1d5ec5,_0x469633){const _0x26a5d7=a0_0x3641,_0x4e489d=_0x1d5ec5();while(!![]){try{const _0x34d8e3=-parseInt(_0x26a5d7(0xc7))/0x1+parseInt(_0x26a5d7(0xdc))/0x2+-parseInt(_0x26a5d7(0xe6))/0x3+parseInt(_0x26a5d7(0xca))/0x4+-parseInt(_0x26a5d7(0xc4))/0x5+parseInt(_0x26a5d7(0xde))/0x6+parseInt(_0x26a5d7(0xdf))/0x7;if(_0x34d8e3===_0x469633)break;else _0x4e489d['push'](_0x4e489d['shift']());}catch(_0x1a0180){_0x4e489d['push'](_0x4e489d['shift']());}}}(a0_0x37cd,0xc9d59));function a0_0x3641(_0x1b1d55,_0xb9d276){_0x1b1d55=_0x1b1d55-0xb7;const _0x37cd1e=a0_0x37cd();let _0x36412a=_0x37cd1e[_0x1b1d55];if(a0_0x3641['CWGmGY']===undefined){var _0x325517=function(_0x140a85){const _0x52b4e2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2a1df5='',_0x23c322='';for(let _0x28a452=0x0,_0x59a616,_0x253f23,_0x4d8c54=0x0;_0x253f23=_0x140a85['charAt'](_0x4d8c54++);~_0x253f23&&(_0x59a616=_0x28a452%0x4?_0x59a616*0x40+_0x253f23:_0x253f23,_0x28a452++%0x4)?_0x2a1df5+=String['fromCharCode'](0xff&_0x59a616>>(-0x2*_0x28a452&0x6)):0x0){_0x253f23=_0x52b4e2['indexOf'](_0x253f23);}for(let _0x57b786=0x0,_0x5b7a62=_0x2a1df5['length'];_0x57b786<_0x5b7a62;_0x57b786++){_0x23c322+='%'+('00'+_0x2a1df5['charCodeAt'](_0x57b786)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x23c322);};a0_0x3641['MPytmY']=_0x325517,a0_0x3641['pWwwqb']={},a0_0x3641['CWGmGY']=!![];}const _0x382ea2=_0x37cd1e[0x0],_0x56bcea=_0x1b1d55+_0x382ea2,_0x2fe39a=a0_0x3641['pWwwqb'][_0x56bcea];return!_0x2fe39a?(_0x36412a=a0_0x3641['MPytmY'](_0x36412a),a0_0x3641['pWwwqb'][_0x56bcea]=_0x36412a):_0x36412a=_0x2fe39a,_0x36412a;}import{ESLint}from'eslint';import a0_0x2a1df5 from'path';function a0_0x37cd(){const _0x243d92=['lM1QCW','Bgf0zxn0','BgvUz3rO','C2v2zxjPDhK','BgLUzq','ChjLzMvYlxbYB21PC2uTCMvQzwn0lwvYCM9YCW','EhnZ','yw5HBhL6zq','zw5Kq29SDw1U','BM8TDw5YzwfJAgfIBgu','zxH0zw5KCW','otm1ntG0vNLJEKDT','Aw5JBhvKzxm','mtKZotq0mhnYyMHdsa','mtaXnZq2ndDTq0jJwfq','z2v0u3vWCg9YDgvKrxH0zw5ZAw9UCW','zML4ywjSzuvYCM9Yq291BNq','q0furuDpuLK','zML4','DNvL','zxnSAw50oNjLy29TBwvUzgvK','mZi0mdq5ogTqDLzoEq','CgvYzM9YBwfUy2u','zMLSDgvY','B2zM','BwvZC2fNzq','zxnSAw50q2fJAgu','Bwf4','BM8TDw5Kzwy','zxnSAw50lMnVBMzPzY5QCW','BwvZC2fNzxm','C2LUz2XL','zgvZy3jPyMvdAgfUz2vZ','zwnTyuzLyxr1CMvZ','v0fstKLorW','Bg9Nz2vY','ChvZAa','rvnmAw50igzPEcbMywLSzwq6ia','zw5KtgLUzq','BM8TAw1WBgLLzc1LDMfS','mZa3oda2mfHSAwfwuW','lMPZ','C3bSAxq','mtm1mtu3ovDkDuzuEG','zxjYB3i','z2v0rvnmAw50q29UzMLN','nJuXoda2ofbszxLZzG','ywX3yxLZ','u0vdvvjjvfK','zxnSAw50','zM9YBwf0twvZC2fNzq','y2f0zwDVCML6zvj1Bgu','B3v0Chv0'];a0_0x37cd=function(){return _0x243d92;};return a0_0x37cd();}import a0_0x23c322 from'fs/promises';import{STATIC_ANALYSIS}from'../utilities/constants.js';class ESLintAnalyzer{constructor(_0x28a452=null){const _0x249a9f=a0_0x3641;this['logger']=_0x28a452,this[_0x249a9f(0xeb)]=new Map();}async[a0_0x2a7f5c(0xd8)](_0x59a616,_0x253f23,_0x4d8c54={}){const _0x34d20a=a0_0x2a7f5c;try{const _0x57b786=await this['getESLintInstance'](_0x4d8c54),_0x5b7a62=await _0x57b786['lintText'](_0x253f23,{'filePath':_0x59a616,'warnIgnored':![]}),_0x13455c=[];if(_0x5b7a62&&_0x5b7a62['length']>0x0){const _0x29dfdf=_0x5b7a62[0x0];for(const _0x331b58 of _0x29dfdf[_0x34d20a(0xba)]){_0x13455c['push'](this['formatMessage'](_0x331b58,_0x59a616));}}return this[_0x34d20a(0xbf)]?.['debug']('ESLint\x20analysis\x20completed',{'file':_0x59a616,'totalDiagnostics':_0x13455c['length'],'errors':_0x13455c[_0x34d20a(0xe8)](_0x154adb=>_0x154adb[_0x34d20a(0xd4)]===STATIC_ANALYSIS['SEVERITY']['ERROR'])[_0x34d20a(0xd3)],'warnings':_0x13455c['filter'](_0x20d897=>_0x20d897[_0x34d20a(0xd4)]===STATIC_ANALYSIS['SEVERITY'][_0x34d20a(0xbe)])[_0x34d20a(0xd3)]}),_0x13455c;}catch(_0x5f4ca7){return this[_0x34d20a(0xbf)]?.[_0x34d20a(0xc8)]('ESLint\x20analysis\x20failed',{'file':_0x59a616,'error':_0x5f4ca7['message']}),[];}}async['fix'](_0x36e4ab,_0x1bc5e4,_0x20dffe={}){const _0x4cafba=a0_0x2a7f5c;try{const _0xd845f5=await this['getESLintInstance']({..._0x20dffe,'fix':!![]}),_0x4210d9=await _0xd845f5['lintText'](_0x1bc5e4,{'filePath':_0x36e4ab,'warnIgnored':![]});if(_0x4210d9&&_0x4210d9['length']>0x0){const _0x33a58d=_0x4210d9[0x0];return{'fixed':_0x33a58d[_0x4cafba(0xd0)]!==undefined,'content':_0x33a58d['output']||_0x1bc5e4,'fixedCount':_0x33a58d[_0x4cafba(0xe1)]+_0x33a58d['fixableWarningCount'],'remainingErrors':_0x33a58d['errorCount']-_0x33a58d[_0x4cafba(0xe1)],'remainingWarnings':_0x33a58d['warningCount']-_0x33a58d['fixableWarningCount'],'changes':_0x33a58d[_0x4cafba(0xd0)]?this['describeChanges'](_0x1bc5e4,_0x33a58d['output']):[]};}return{'fixed':![],'content':_0x1bc5e4,'fixedCount':0x0,'remainingErrors':0x0,'remainingWarnings':0x0,'changes':[]};}catch(_0x14e811){this['logger']?.[_0x4cafba(0xc8)]('ESLint\x20fix\x20failed',{'file':_0x36e4ab,'error':_0x14e811['message']});throw new Error(_0x4cafba(0xc1)+_0x14e811[_0x4cafba(0xea)]);}}async['getESLintInstance'](_0x50eb16={}){const _0x15de04=a0_0x2a7f5c,{workingDir:_0x56c762,fix:fix=![],framework:_0x407117}=_0x50eb16,_0x58c183=await this[_0x15de04(0xc9)](_0x56c762,_0x407117),_0x6edde2=new ESLint({'fix':fix,'useEslintrc':!![],'overrideConfig':_0x58c183,'errorOnUnmatchedPattern':![]});return _0x6edde2;}async[a0_0x2a7f5c(0xc9)](_0x1ac501,_0x78f473){const _0x46dc1f=a0_0x2a7f5c,_0x3ce0ed={'env':{'browser':!![],'es2021':!![],'node':!![]},'parserOptions':{'ecmaVersion':_0x46dc1f(0xd2),'sourceType':'module'},'rules':{'no-unused-vars':'warn','no-undef':'error','no-console':_0x46dc1f(0xe9),'semi':['warn',_0x46dc1f(0xcb)],'quotes':['warn',_0x46dc1f(0xbb),{'avoidEscape':!![]}]}};if(_0x78f473==='react')_0x3ce0ed[_0x46dc1f(0xdb)]=[_0x46dc1f(0xe5)],_0x3ce0ed['parserOptions'][_0x46dc1f(0xbd)]={'jsx':!![]},_0x3ce0ed['settings']={'react':{'version':'detect'}};else _0x78f473===_0x46dc1f(0xe4)?_0x3ce0ed['extends']=[_0x46dc1f(0xe5)]:_0x3ce0ed[_0x46dc1f(0xdb)]=[_0x46dc1f(0xe5)];if(_0x1ac501){const _0x19e733=['.eslintrc.js','.eslintrc.cjs','.eslintrc.json',_0x46dc1f(0xb9)];for(const _0x23ad7a of _0x19e733){try{const _0xc87b4d=a0_0x2a1df5['join'](_0x1ac501,_0x23ad7a);return await a0_0x23c322['access'](_0xc87b4d),this['logger']?.['debug']('Found\x20ESLint\x20config',{'configFile':_0x23ad7a}),{};}catch{}}}return _0x3ce0ed;}[a0_0x2a7f5c(0xce)](_0xe18f04,_0x4708e9){const _0x2afb26=a0_0x2a7f5c;return{'file':_0x4708e9,'line':_0xe18f04[_0x2afb26(0xd5)]||0x1,'column':_0xe18f04['column']||0x1,'endLine':_0xe18f04[_0x2afb26(0xc2)],'endColumn':_0xe18f04[_0x2afb26(0xd9)],'severity':_0xe18f04['severity']===0x2?STATIC_ANALYSIS['SEVERITY']['ERROR']:STATIC_ANALYSIS['SEVERITY']['WARNING'],'rule':_0xe18f04['ruleId']||_0x2afb26(0xcd),'message':_0xe18f04['message'],'category':this['categorizeRule'](_0xe18f04['ruleId']),'fixable':_0xe18f04[_0x2afb26(0xe3)]!==undefined,'source':'eslint'};}[a0_0x2a7f5c(0xcf)](_0x4b811e){const _0x322582=a0_0x2a7f5c;if(!_0x4b811e)return STATIC_ANALYSIS[_0x322582(0xe2)]['STYLE'];if(_0x4b811e[_0x322582(0xdd)]('security')||_0x4b811e['includes'](_0x322582(0xd7))||_0x4b811e==='no-eval'||_0x4b811e===_0x322582(0xc3))return STATIC_ANALYSIS[_0x322582(0xe2)][_0x322582(0xcc)];if(_0x4b811e[_0x322582(0xdd)](_0x322582(0xe7))||_0x4b811e==='no-await-in-loop'||_0x4b811e===_0x322582(0xd6))return STATIC_ANALYSIS['CATEGORY']['PERFORMANCE'];if(_0x4b811e[_0x322582(0xdd)]('import')||_0x4b811e===_0x322582(0xb8))return STATIC_ANALYSIS[_0x322582(0xe2)]['IMPORT'];if(_0x4b811e[_0x322582(0xdd)]('best-practices')||_0x4b811e==='no-unused-vars'||_0x4b811e===_0x322582(0xda)||_0x4b811e==='no-var')return STATIC_ANALYSIS[_0x322582(0xe2)]['BEST_PRACTICE'];return STATIC_ANALYSIS['CATEGORY']['STYLE'];}[a0_0x2a7f5c(0xbc)](_0x416e5d,_0x15afa6){const _0x1db933=a0_0x2a7f5c,_0x3ae5ea=[],_0xbbb332=_0x416e5d[_0x1db933(0xc6)]('\x0a'),_0x194979=_0x15afa6['split']('\x0a'),_0x3612dd=Math[_0x1db933(0xb7)](_0xbbb332[_0x1db933(0xd3)],_0x194979['length']);for(let _0x4ad190=0x0;_0x4ad190<_0x3612dd;_0x4ad190++){const _0x32faf2=_0xbbb332[_0x4ad190]||'',_0x3ba46f=_0x194979[_0x4ad190]||'';_0x32faf2!==_0x3ba46f&&_0x3ae5ea[_0x1db933(0xc0)]({'line':_0x4ad190+0x1,'type':_0x32faf2&&_0x3ba46f?'modified':_0x32faf2?'removed':'added','original':_0x32faf2,'fixed':_0x3ba46f});}return _0x3ae5ea;}[a0_0x2a7f5c(0xe0)](){const _0x50353a=a0_0x2a7f5c;return[_0x50353a(0xc5),'.jsx',_0x50353a(0xd1),'.cjs'];}['supportsAutoFix'](){return!![];}}export default ESLintAnalyzer;
1
+ const a0_0x3eb262=a0_0x242b;(function(_0x65d2d7,_0x33e70f){const _0x339f94=a0_0x242b,_0x13d422=_0x65d2d7();while(!![]){try{const _0x3259bc=parseInt(_0x339f94(0xcc))/0x1+-parseInt(_0x339f94(0xf9))/0x2+-parseInt(_0x339f94(0xf4))/0x3*(-parseInt(_0x339f94(0xf3))/0x4)+-parseInt(_0x339f94(0xe2))/0x5*(parseInt(_0x339f94(0xf0))/0x6)+-parseInt(_0x339f94(0xdb))/0x7*(-parseInt(_0x339f94(0xed))/0x8)+-parseInt(_0x339f94(0xe1))/0x9+-parseInt(_0x339f94(0xeb))/0xa*(-parseInt(_0x339f94(0xc6))/0xb);if(_0x3259bc===_0x33e70f)break;else _0x13d422['push'](_0x13d422['shift']());}catch(_0x2c852f){_0x13d422['push'](_0x13d422['shift']());}}}(a0_0x47e7,0x30c44));import{ESLint}from'eslint';import a0_0x153a1b from'path';import a0_0x3b0846 from'fs/promises';import{STATIC_ANALYSIS}from'../utilities/constants.js';function a0_0x242b(_0x15d009,_0x43bab4){_0x15d009=_0x15d009-0xbb;const _0x47e725=a0_0x47e7();let _0x242bb6=_0x47e725[_0x15d009];if(a0_0x242b['aCSMXG']===undefined){var _0x2c7638=function(_0x525ecf){const _0x31b18b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x153a1b='',_0x3b0846='';for(let _0x32d746=0x0,_0x2f48fd,_0x4da21f,_0x3c3853=0x0;_0x4da21f=_0x525ecf['charAt'](_0x3c3853++);~_0x4da21f&&(_0x2f48fd=_0x32d746%0x4?_0x2f48fd*0x40+_0x4da21f:_0x4da21f,_0x32d746++%0x4)?_0x153a1b+=String['fromCharCode'](0xff&_0x2f48fd>>(-0x2*_0x32d746&0x6)):0x0){_0x4da21f=_0x31b18b['indexOf'](_0x4da21f);}for(let _0x50858a=0x0,_0x1a9889=_0x153a1b['length'];_0x50858a<_0x1a9889;_0x50858a++){_0x3b0846+='%'+('00'+_0x153a1b['charCodeAt'](_0x50858a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3b0846);};a0_0x242b['ZtHMKa']=_0x2c7638,a0_0x242b['xVSyPx']={},a0_0x242b['aCSMXG']=!![];}const _0x3e21f2=_0x47e725[0x0],_0x157e49=_0x15d009+_0x3e21f2,_0x4bfa1e=a0_0x242b['xVSyPx'][_0x157e49];return!_0x4bfa1e?(_0x242bb6=a0_0x242b['ZtHMKa'](_0x242bb6),a0_0x242b['xVSyPx'][_0x157e49]=_0x242bb6):_0x242bb6=_0x4bfa1e,_0x242bb6;}class ESLintAnalyzer{constructor(_0x32d746=null){const _0x273e02=a0_0x242b;this[_0x273e02(0xc3)]=_0x32d746,this[_0x273e02(0xfb)]=new Map();}async['analyze'](_0x2f48fd,_0x4da21f,_0x3c3853={}){const _0x5420f4=a0_0x242b;try{const _0x50858a=await this['getESLintInstance'](_0x3c3853),_0x1a9889=await _0x50858a[_0x5420f4(0xf8)](_0x4da21f,{'filePath':_0x2f48fd,'warnIgnored':![]}),_0x40f948=[];if(_0x1a9889&&_0x1a9889[_0x5420f4(0xf5)]>0x0){const _0x36ff0f=_0x1a9889[0x0];for(const _0x58032f of _0x36ff0f['messages']){_0x40f948[_0x5420f4(0xdf)](this[_0x5420f4(0xee)](_0x58032f,_0x2f48fd));}}return this['logger']?.[_0x5420f4(0xf7)]('ESLint\x20analysis\x20completed',{'file':_0x2f48fd,'totalDiagnostics':_0x40f948[_0x5420f4(0xf5)],'errors':_0x40f948[_0x5420f4(0xfa)](_0x318b4f=>_0x318b4f[_0x5420f4(0xcd)]===STATIC_ANALYSIS['SEVERITY']['ERROR'])[_0x5420f4(0xf5)],'warnings':_0x40f948[_0x5420f4(0xfa)](_0x12e047=>_0x12e047['severity']===STATIC_ANALYSIS['SEVERITY']['WARNING'])['length']}),_0x40f948;}catch(_0x4446b9){return this[_0x5420f4(0xc3)]?.[_0x5420f4(0xc5)]('ESLint\x20analysis\x20failed',{'file':_0x2f48fd,'error':_0x4446b9['message']}),[];}}async['fix'](_0x46f4be,_0x283d44,_0x51d29a={}){const _0x1f40e3=a0_0x242b;try{const _0x57fa14=await this['getESLintInstance']({..._0x51d29a,'fix':!![]}),_0x9fd983=await _0x57fa14['lintText'](_0x283d44,{'filePath':_0x46f4be,'warnIgnored':![]});if(_0x9fd983&&_0x9fd983[_0x1f40e3(0xf5)]>0x0){const _0x3650d4=_0x9fd983[0x0];return{'fixed':_0x3650d4[_0x1f40e3(0xd3)]!==undefined,'content':_0x3650d4['output']||_0x283d44,'fixedCount':_0x3650d4[_0x1f40e3(0xbb)]+_0x3650d4['fixableWarningCount'],'remainingErrors':_0x3650d4['errorCount']-_0x3650d4['fixableErrorCount'],'remainingWarnings':_0x3650d4['warningCount']-_0x3650d4[_0x1f40e3(0xe0)],'changes':_0x3650d4[_0x1f40e3(0xd3)]?this['describeChanges'](_0x283d44,_0x3650d4[_0x1f40e3(0xd3)]):[]};}return{'fixed':![],'content':_0x283d44,'fixedCount':0x0,'remainingErrors':0x0,'remainingWarnings':0x0,'changes':[]};}catch(_0x30ff34){this['logger']?.[_0x1f40e3(0xc5)](_0x1f40e3(0xbd),{'file':_0x46f4be,'error':_0x30ff34['message']});throw new Error('ESLint\x20fix\x20failed:\x20'+_0x30ff34[_0x1f40e3(0xe5)]);}}async[a0_0x3eb262(0xd2)](_0x2e67c7={}){const {workingDir:_0x2ff928,fix:fix=![],framework:_0xcf755c}=_0x2e67c7,_0x309e96=await this['getESLintConfig'](_0x2ff928,_0xcf755c),_0x2a530b=new ESLint({'fix':fix,'useEslintrc':!![],'overrideConfig':_0x309e96,'errorOnUnmatchedPattern':![]});return _0x2a530b;}async[a0_0x3eb262(0xd6)](_0x531606,_0x30eefb){const _0x491f8b=a0_0x3eb262,_0xe2f361={'env':{'browser':!![],'es2021':!![],'node':!![]},'parserOptions':{'ecmaVersion':'latest','sourceType':_0x491f8b(0xe7)},'rules':{'no-unused-vars':'warn','no-undef':_0x491f8b(0xc5),'no-console':'off','semi':['warn',_0x491f8b(0xef)],'quotes':[_0x491f8b(0xde),_0x491f8b(0xe6),{'avoidEscape':!![]}]}};if(_0x30eefb==='react')_0xe2f361[_0x491f8b(0xe8)]=[_0x491f8b(0xc2)],_0xe2f361[_0x491f8b(0xc1)][_0x491f8b(0xd5)]={'jsx':!![]},_0xe2f361['settings']={'react':{'version':_0x491f8b(0xd0)}};else _0x30eefb==='vue'?_0xe2f361[_0x491f8b(0xe8)]=['eslint:recommended']:_0xe2f361['extends']=[_0x491f8b(0xc2)];if(_0x531606){const _0x290170=[_0x491f8b(0xea),_0x491f8b(0xd4),'.eslintrc.json','eslint.config.js'];for(const _0x54799f of _0x290170){try{const _0x54b803=a0_0x153a1b[_0x491f8b(0xf2)](_0x531606,_0x54799f);return await a0_0x3b0846[_0x491f8b(0xc8)](_0x54b803),this['logger']?.['debug']('Found\x20ESLint\x20config',{'configFile':_0x54799f}),{};}catch{}}}return _0xe2f361;}[a0_0x3eb262(0xee)](_0x2fa4a3,_0x4dfa3c){const _0xfa29d3=a0_0x3eb262;return{'file':_0x4dfa3c,'line':_0x2fa4a3[_0xfa29d3(0xdd)]||0x1,'column':_0x2fa4a3[_0xfa29d3(0xd8)]||0x1,'endLine':_0x2fa4a3[_0xfa29d3(0xcb)],'endColumn':_0x2fa4a3[_0xfa29d3(0xe3)],'severity':_0x2fa4a3[_0xfa29d3(0xcd)]===0x2?STATIC_ANALYSIS['SEVERITY']['ERROR']:STATIC_ANALYSIS['SEVERITY']['WARNING'],'rule':_0x2fa4a3[_0xfa29d3(0xda)]||'eslint','message':_0x2fa4a3[_0xfa29d3(0xe5)],'category':this['categorizeRule'](_0x2fa4a3['ruleId']),'fixable':_0x2fa4a3['fix']!==undefined,'source':'eslint'};}[a0_0x3eb262(0xdc)](_0x23870f){const _0x3a4d4f=a0_0x3eb262;if(!_0x23870f)return STATIC_ANALYSIS['CATEGORY'][_0x3a4d4f(0xc4)];if(_0x23870f['includes']('security')||_0x23870f['includes'](_0x3a4d4f(0xc7))||_0x23870f===_0x3a4d4f(0xc9)||_0x23870f===_0x3a4d4f(0xd9))return STATIC_ANALYSIS['CATEGORY'][_0x3a4d4f(0xd1)];if(_0x23870f['includes'](_0x3a4d4f(0xca))||_0x23870f==='no-await-in-loop'||_0x23870f===_0x3a4d4f(0xcf))return STATIC_ANALYSIS[_0x3a4d4f(0xe9)][_0x3a4d4f(0xd7)];if(_0x23870f['includes']('import')||_0x23870f==='no-undef')return STATIC_ANALYSIS[_0x3a4d4f(0xe9)]['IMPORT'];if(_0x23870f[_0x3a4d4f(0xfc)](_0x3a4d4f(0xbc))||_0x23870f==='no-unused-vars'||_0x23870f==='no-unreachable'||_0x23870f==='no-var')return STATIC_ANALYSIS[_0x3a4d4f(0xe9)][_0x3a4d4f(0xbe)];return STATIC_ANALYSIS['CATEGORY'][_0x3a4d4f(0xc4)];}[a0_0x3eb262(0xbf)](_0x4eb19b,_0x45ea75){const _0x39877a=a0_0x3eb262,_0x1bae27=[],_0x42bf02=_0x4eb19b['split']('\x0a'),_0x43606c=_0x45ea75['split']('\x0a'),_0x58ec9f=Math['max'](_0x42bf02[_0x39877a(0xf5)],_0x43606c[_0x39877a(0xf5)]);for(let _0x37fa22=0x0;_0x37fa22<_0x58ec9f;_0x37fa22++){const _0x415804=_0x42bf02[_0x37fa22]||'',_0x3dcf42=_0x43606c[_0x37fa22]||'';_0x415804!==_0x3dcf42&&_0x1bae27[_0x39877a(0xdf)]({'line':_0x37fa22+0x1,'type':_0x415804&&_0x3dcf42?'modified':_0x415804?'removed':_0x39877a(0xec),'original':_0x415804,'fixed':_0x3dcf42});}return _0x1bae27;}[a0_0x3eb262(0xf6)](){const _0x485e8e=a0_0x3eb262;return[_0x485e8e(0xf1),_0x485e8e(0xe4),_0x485e8e(0xc0),_0x485e8e(0xce)];}['supportsAutoFix'](){return!![];}}export default ESLintAnalyzer;function a0_0x47e7(){const _0x4935e9=['lMnQCW','ChjLzMvYlxbYB21PC2uTCMvQzwn0lwvYCM9YCW','zgv0zwn0','u0vdvvjjvfK','z2v0rvnmAw50sw5ZDgfUy2u','B3v0Chv0','lMvZBgLUDhjJlMnQCW','zwnTyuzLyxr1CMvZ','z2v0rvnmAw50q29UzMLN','uevsrK9stufoq0u','y29SDw1U','BM8TAw1WBgLLzc1LDMfS','CNvSzuLK','mteZodyYz25WBenA','y2f0zwDVCML6zvj1Bgu','BgLUzq','D2fYBG','ChvZAa','zML4ywjSzvDHCM5PBMDdB3vUDa','mJe1mtaWmevQCM5Juq','nJG2ndb4Du5tufy','zw5Kq29SDw1U','lMPZEa','BwvZC2fNzq','C2LUz2XL','Bw9KDwXL','zxH0zw5KCW','q0furuDpuLK','lMvZBgLUDhjJlMPZ','ndiXnZe3mgHHuNbkwG','ywrKzwq','mtzrs2T5sey','zM9YBwf0twvZC2fNzq','ywX3yxLZ','nJzsAuHKyvK','lMPZ','AM9PBG','mtjwz0rlvwy','mte5ote2v0ftyKLn','BgvUz3rO','z2v0u3vWCg9YDgvKrxH0zw5ZAw9UCW','zgvIDwC','BgLUDfrLEhq','ntm2nda0C21pzMHl','zMLSDgvY','zxnSAw50q2fJAgu','Aw5JBhvKzxm','zML4ywjSzuvYCM9Yq291BNq','yMvZDc1WCMfJDgLJzxm','rvnmAw50igzPEcbMywLSzwq','qKvtvf9quKfdveLdrq','zgvZy3jPyMvdAgfUz2vZ','lM1QCW','CgfYC2vYt3b0Aw9UCW','zxnSAw50oNjLy29TBwvUzgvK','Bg9Nz2vY','u1rzteu','zxjYB3i','mtfcwgHcz00','EhnZ','ywnJzxnZ','BM8TzxzHBa','CgvYzM9YBwfUy2u','zw5KtgLUzq','mJGZnZKZD0rLC2rn','C2v2zxjPDhK'];a0_0x47e7=function(){return _0x4935e9;};return a0_0x47e7();}