{"version":3,"sources":["jsdelivr-header.js","/npm/raknet-node@0.5.0/index.js"],"names":[],"mappings":"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","file":"/npm/raknet-node@0.5.0/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/raknet-node@0.5.0/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\nconst { MessageID, PacketReliability, PacketPriority } = require('./constants.js')\nvar sha1 = require('sha1');\n\ntry{\n\n  switch (process.platform) {\n    case \"win32\":\n      var { RaknetClient, RaknetServer , enablelog } = require('./raknet-node-win.node')\n      break;\n    case \"linux\":\n      var { RaknetClient, RaknetServer } = require('./raknet-node-linux.node')\n      break;\n\tdefault :\n\t  console.log('[raknet] need to build')\n\t  process.exit(1)\n  }\n} catch (e) {\n\tconsole.log(e)\n\tconsole.log('[raknet] need to build')\n\tprocess.exit(1)\n}\n\nfunction listen(server , cb) {\n\n\tconst doSomething = async () => {\n\t\tfor (;;){\n\t\t\ttry{\n\t\t\t\tcb(await server.accept())\n\t\t\t} catch{\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t\n\t\t}\n\t}\n\tdoSomething().then(null)\n}\n\nfunction recvcb(client , cb) {\n\tclient.recv().then((buf) => {\n\t\tif (cb(buf)){\n\t\t\trecvcb(client , cb)\n\t\t}\n\t}).catch((e) => {\n\t\tcb(null)\n\t})\n}\n\nfunction connectcb(address , cb){\n\tRaknetClient.connect(address).then((client) =>{\n\t\tcb(client)\n\t})\n}\n\nconst { EventEmitter } = require('events')\n\nclass Client extends EventEmitter {\n  constructor (hostname, port, options = {}) {\n    super()\n\t\n\tthis.ping = () => {\n\t\tRaknetClient.ping(hostname + \":\" + port).then((motd) => {\n\t\t\tthis.emit('pong', { extra: motd })\n\t\t})\n\t }\n\t\n\tthis.client = null\n    this.connect = () => {\n\t\tconnectcb(hostname + \":\" + port, (client) => {\n\t\t\tthis.client = client\n\t\t\tvar address = this.client.peeraddr()\n\t\t\n\t\t\tthis.emit('connect', { address })\n\t\t\trecvcb(this.client , (buf) => {\n\t\t\t\tif (buf == null){\n\t\t\t\t\tthis.emit('disconnect', { address })\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tthis.emit('encapsulated', { buffer: buf, address })\n\t\t\t\treturn true\n\t\t\t})\n\t\t})\n\t}\n    this.close = () => {\n\t\tif (this.client != null) {\n\t\t\tthis.client.close()\n\t\t}\n\t}\n  }\n\n  send (message) {\n    this.client.send(message).then(() => {}).catch(e => console.log)\n  }\n}\n\nfunction ServerClient (server, address, client) {\n  const [hostname, port] = address.split(':')\n  this.address = address\n  this.client = client\n  this.server = server\n  this.send = (...args) => this.client.send(...args)\n  this.close = () => {\n\tthis.server.kick(sha1(this.address))\n\tthis.client.close()\n  }\n\n  this.neuter = () => { // Client is disconnected, no-op to block sending\n    this.send = () => { }\n  }\n}\n\nclass Server extends EventEmitter {\n  constructor (hostname, port) {\n    super()\n\tthis.server = null\n\tthis.clients = new Map()\n    this.listen = () => {\n\t\t\n\t\tRaknetServer.bind(hostname + \":\" + port).then((server) => {\n\t\t\tthis.server = server\n\t\t\tlisten(server, (client) => {\n\t\t\t\tvar address = client.peeraddr()\n\t\t\t\tconst new_client = new ServerClient(this, client.peeraddr() , client)\n\t\t\t\tthis.emit('openConnection', new_client)\n\n\t\t\t\tthis.clients.set(sha1(address) , client)\n\n\t\t\t\trecvcb(client , (buf) => {\n\t\t\t\t\tif (buf == null){\n\t\t\t\t\t\tthis.emit('closeConnection', { address , guid : sha1(address) })\n\t\t\t\t\t\tthis.clients.delete(sha1(address))\n\t\t\t\t\t\treturn false\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.emit('encapsulated', { buffer: buf, address : client.peeraddr()})\n\t\t\t\t\t\treturn true\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\t}\n  }\n  close() {\n\tif (this.server != null)\n\tthis.server.close()\n  }\n  \n  setOfflineMessage (message) {\n    if (message instanceof Buffer) message = message.toString()\n\tif (this.server) this.server.setmotd(message)\n  }\n  \n  kick (clientGuid) {\n\tvar client = this.clients.get(clientGuid)\n\tif (client) client.close()\n\tthis.clients.delete(clientGuid)\n  }\n\n}\n\nmodule.exports = { RaknetClient, RaknetServer, Server, Client , MessageID, PacketPriority, PacketReliability}"]}