var http=require('http');var readline=require('readline');const {config}=require('./config');const {check_whitelist}=require('./utils');const {serve_resource}=require('./utils');const {registerUser}=require('./controller');const {loginUser}=require('./controller');const {listMonitors}=require('./controller');const {newMonitor}=require('./controller');const {deleteMonitors}=require('./controller');const {scheduler}=require('./scheduler');const rl=readline["createInterface"]({input:process["stdin"],output:process["stdout"]});function server_listener(_0x27c9x4,_0x27c9x5){var _0x27c9x6=_0x27c9x4["socket"]["remoteAddress"];var _0x27c9x7={'stop':false,'country':'N/A','ip':_0x27c9x6};check_whitelist(_0x27c9x7);if(_0x27c9x7["stop"]){_0x27c9x5["end"]('Acess Denied')}else {var _0x27c9x8= new URL(_0x27c9x4["url"],("http://"+_0x27c9x4["headers"]["host"]+""));var _0x27c9x9=_0x27c9x8["pathname"];var _0x27c9xa= new URLSearchParams(_0x27c9x8["searchParams"]);if(_0x27c9x9["startsWith"]("/api")){switch(_0x27c9x4["socket"]["parser"]["incoming"]["method"]){case "GET":if(_0x27c9x9["endsWith"]("/list")){listMonitors(_0x27c9x4,_0x27c9x5)}else {if(_0x27c9x9["endsWith"]("/logout")){logoutUser(_0x27c9x4,_0x27c9x5)}};break;case "POST":if(_0x27c9x9["endsWith"]("/register")){registerUser(_0x27c9x4,_0x27c9x5)}else {if(_0x27c9x9["endsWith"]("/login")){loginUser(_0x27c9x4,_0x27c9x5)}else {if(_0x27c9x9["endsWith"]("/newMonitor")){newMonitor(_0x27c9x4,_0x27c9x5)}}};break;case "PUT":break;case "DELETE":if(_0x27c9x9["endsWith"]("/delete")){var _0x27c9xb=JSON["parse"]('['+ _0x27c9xa["getAll"]('id')+ ']');deleteMonitors(_0x27c9x4,_0x27c9x5,_0x27c9xb)};break}}else {serve_resource(_0x27c9x4,_0x27c9x5,_0x27c9x7)}}}scheduler();var server=http["createServer"](server_listener);server["listen"](config["node_port"]);rl["question"]("Server running (Enter to stop)\x0A",(_0x27c9xd)=>{server["close"]();process["exit"](1)})