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) })