{"version":3,"sources":["webpack:///webpack/bootstrap 70aa9a38e0aadebb6c4e","webpack:///./src/index.js","webpack:///./src/protobuffer.js","webpack:///external \"protobufjs\"","webpack:///external \"path\"","webpack:///external \"fs-extra\"","webpack:///external \"zlib\"","webpack:///external \"python-struct\"","webpack:///./src/socket.js","webpack:///external \"net\"","webpack:///external \"ExBuffer\"","webpack:///external \"url\""],"names":["default","defaultOpts","path","socket","gmPB","prefix","options","Root","protobuffer","opts","ProtoBuffer","getProtoBuffer","socketRoot","CMsgBase","CMsgHead","GMRoot","Map","set","gameMessage","name","root","lookup","makeData","zlibBuffer","compressData","buffer","head","pack","length","data","Buffer","concat","decode","CMsg","ungzipBuffer","decompressData","message","msgbody","createPBBuffer","msgtype","csMsg","params","msghead","createHeadMessage","pbRealHead","create","buffer_head","encode","finish","getCsMsgInfo","csMsgKey","socket_Root","CMsgBody","pbBody","createBodyMessage","pbMessage","buffer_message","msgcode","dir","pbDir","resolve","process","cwd","replace","socketPB","existsSync","loadSync","gzipSync","windowBits","memLevel","unzipSync","split","get","Href","Socket","Uri","uri","test","parse","hostname","port","send","callback","exBuffer","uint32Head","bigEndian","Promise","reject","connect","write","error","on","put","destroy"],"mappings":"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","file":"main.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 70aa9a38e0aadebb6c4e","export { default as Protobuffer } from './protobuffer'\nexport { default as Socket } from './socket'\n\n\n// WEBPACK FOOTER //\n// ./src/index.js","\nimport protobuf from 'protobufjs'\nimport path from 'path'\nimport fs from 'fs-extra'\nimport zlib from 'zlib'\nimport struct from 'python-struct'\n\nconst defaultOpts = {\n  path     : './pb',\n  socket   : 'socket.proto',\n  gmPB     : 'gm.proto',\n  prefix   : 'com.autorun'\n}\n\nvar options = null\nvar Root = null\n\nexport default class protobuffer {\n\n  constructor (opts) {\n    options = { ...defaultOpts, ...opts }\n    this.ProtoBuffer = getProtoBuffer(options)\n    let { socketRoot, CMsgBase, CMsgHead, GMRoot } = this.ProtoBuffer\n    Root = new Map()\n    Root.set('sockt', socketRoot)\n    Root.set('game', GMRoot)\n  }\n\n  gameMessage = (name = 'SC_GM_QUERY') => {\n    let { GMRoot } = this.ProtoBuffer\n    return GMRoot.root.lookup(`${options.prefix}.game.${name}`)\n  }\n\n  makeData = buffer => {\n    let zlibBuffer = compressData(buffer)\n    let head = struct.pack('!i', zlibBuffer.length)\n    let data = Buffer.concat([head, zlibBuffer])\n    return data\n  }\n\n  decode = (buffer, CMsg) => {\n    let { CMsgBase } = this.ProtoBuffer\n    let ungzipBuffer = decompressData(buffer)\n    let message = CMsgBase.decode(ungzipBuffer)\n    if (message.msgbody) {\n      let msgbody = CMsg.decode(message.msgbody)\n      message.msgbody = msgbody\n      return message\n    }\n    return ungzipBuffer\n  }\n\n  createPBBuffer = (msgtype, csMsg, params) => {\n    let { CMsgBase } = this.ProtoBuffer\n    let msghead = this.createHeadMessage(msgtype)\n    let pbRealHead = CMsgBase.create({ msghead })\n    let buffer_head = CMsgBase.encode(pbRealHead).finish()\n    if (!csMsg) return buffer_head\n    let { csMsgKey, socket_Root } = getCsMsgInfo(csMsg)\n    let CMsgBody = socket_Root.root.lookup(`${options.prefix}.${csMsg}`)\n    let pbBody = this.createBodyMessage(csMsg, params)\n    let msgbody = CMsgBody.encode(pbBody).finish()\n    let pbMessage = CMsgBase.create({ msghead, msgbody })\n    let buffer_message = CMsgBase.encode(pbMessage).finish()\n    return buffer_message\n  }\n\n  createHeadMessage = msgtype => {\n    let { CMsgHead } = this.ProtoBuffer\n    return CMsgHead.create({ \n      msgtype: msgtype,\n      msgcode: 1\n    })\n  }\n\n  createBodyMessage = (csMsg, params) => {\n    let { csMsgKey, socket_Root } = getCsMsgInfo(csMsg)\n    let CMsgBody = socket_Root.root.lookup(`${options.prefix}.${csMsg}`)\n    return CMsgBody.create(params)\n  }\n}\n\nconst getProtoBuffer = (opts) => {\n  let dir = opts.path\n  let pbDir = path.resolve(process.cwd(), dir).replace(/([^ \\/])$/, '$1/')\n  let [ socketRoot, CMsgBase, CMsgHead, GMRoot ] = []\n  let socketPB = path.resolve(pbDir, opts.socket)\n  if (fs.existsSync(socketPB)) {\n    socketRoot = protobuf.loadSync(socketPB)\n    CMsgBase = socketRoot.root.lookup(`${opts.prefix}.socket.CMsgBase`)\n    CMsgHead = socketRoot.root.lookup(`${opts.prefix}.socket.CMsgHead`)\n  }\n  let gmPB = path.resolve(pbDir, opts.gmPB)\n  if (fs.existsSync(gmPB)) {\n    GMRoot = protobuf.loadSync(gmPB)\n  }\n  return { socketRoot, CMsgBase, CMsgHead, GMRoot }\n}\n\nconst compressData = buffer => \n\tzlib.gzipSync(buffer, {\n      windowBits: 15, \n      memLevel: 8\n    })\n\nconst decompressData = buffer => \n  zlib.unzipSync(buffer, {\n      windowBits: 15, \n      memLevel: 8\n    })\n\nconst getCsMsgInfo = csMsg => {\n  let [csMsgKey] = csMsg.split('.')\n  let socket_Root = Root.get(csMsgKey) ? Root.get(csMsgKey) : socketRoot\n  return { csMsgKey, socket_Root }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/protobuffer.js","module.exports = require(\"protobufjs\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"protobufjs\"\n// module id = 2\n// module chunks = 0","module.exports = require(\"path\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"path\"\n// module id = 3\n// module chunks = 0","module.exports = require(\"fs-extra\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"fs-extra\"\n// module id = 4\n// module chunks = 0","module.exports = require(\"zlib\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"zlib\"\n// module id = 5\n// module chunks = 0","module.exports = require(\"python-struct\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"python-struct\"\n// module id = 6\n// module chunks = 0","\nimport net from 'net'\nimport ExBuffer from 'ExBuffer'\nimport Url from 'url'\n\nvar Href = null\n\nexport default class Socket {\n  constructor (Uri) {\n    let uri = /^((https|http|ftp|rtsp|mms)?:\\/\\/)/.test(Uri) ? Uri : `rtsp://${Uri}`\n    let { hostname, port } = Url.parse(uri)\n    Href = { hostname, port }\n  }\n\n  send = (data, callback = null) => {\n    let { hostname, port } = Href\n    let socket = new net.Socket()\n    let exBuffer = new ExBuffer().uint32Head().bigEndian()\n    return new Promise((resolve, reject) => {\n      // 连接 ...\n      socket.connect(port, hostname, () => {\n        try {\n          socket.write(data)\n        } catch (error) {\n          reject(error)\n        }\n      })\n      // 接收数据\n      socket.on('data', data => {\n        exBuffer.put(data)\n      })\n      // 拼接数据\n      exBuffer.on('data', buffer => {\n        if (buffer.length > 0) {\n          try {\n            resolve(buffer)\n          } catch (error) {\n            reject(error)\n          }\n          socket.destroy()\n        }\n      })\n      // 错误处理\n      socket.on('error', error => {\n        reject(error)\n      })\n      // 关闭连接\n      socket.on('close', () => {\n        // console.log('close')\n      })\n    })\n  }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/socket.js","module.exports = require(\"net\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"net\"\n// module id = 8\n// module chunks = 0","module.exports = require(\"ExBuffer\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ExBuffer\"\n// module id = 9\n// module chunks = 0","module.exports = require(\"url\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"url\"\n// module id = 10\n// module chunks = 0"],"sourceRoot":""}