{"ast":null,"code":"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.reconstructPacket = exports.deconstructPacket = void 0;\n\nconst is_binary_1 = require(\"./is-binary\");\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\n\n\nfunction deconstructPacket(packet) {\n  const buffers = [];\n  const packetData = packet.data;\n  const pack = packet;\n  pack.data = _deconstructPacket(packetData, buffers);\n  pack.attachments = buffers.length; // number of binary 'attachments'\n\n  return {\n    packet: pack,\n    buffers: buffers\n  };\n}\n\nexports.deconstructPacket = deconstructPacket;\n\nfunction _deconstructPacket(data, buffers) {\n  if (!data) return data;\n\n  if (is_binary_1.isBinary(data)) {\n    const placeholder = {\n      _placeholder: true,\n      num: buffers.length\n    };\n    buffers.push(data);\n    return placeholder;\n  } else if (Array.isArray(data)) {\n    const newData = new Array(data.length);\n\n    for (let i = 0; i < data.length; i++) {\n      newData[i] = _deconstructPacket(data[i], buffers);\n    }\n\n    return newData;\n  } else if (typeof data === \"object\" && !(data instanceof Date)) {\n    const newData = {};\n\n    for (const key in data) {\n      if (data.hasOwnProperty(key)) {\n        newData[key] = _deconstructPacket(data[key], buffers);\n      }\n    }\n\n    return newData;\n  }\n\n  return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\n\n\nfunction reconstructPacket(packet, buffers) {\n  packet.data = _reconstructPacket(packet.data, buffers);\n  packet.attachments = undefined; // no longer useful\n\n  return packet;\n}\n\nexports.reconstructPacket = reconstructPacket;\n\nfunction _reconstructPacket(data, buffers) {\n  if (!data) return data;\n\n  if (data && data._placeholder) {\n    return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n  } else if (Array.isArray(data)) {\n    for (let i = 0; i < data.length; i++) {\n      data[i] = _reconstructPacket(data[i], buffers);\n    }\n  } else if (typeof data === \"object\") {\n    for (const key in data) {\n      if (data.hasOwnProperty(key)) {\n        data[key] = _reconstructPacket(data[key], buffers);\n      }\n    }\n  }\n\n  return data;\n}","map":{"version":3,"sources":["C:/laragon/www/iot.mksolusi/DriverOPCDA/frontend/node_modules/socket.io-parser/dist/binary.js"],"names":["Object","defineProperty","exports","value","reconstructPacket","deconstructPacket","is_binary_1","require","packet","buffers","packetData","data","pack","_deconstructPacket","attachments","length","isBinary","placeholder","_placeholder","num","push","Array","isArray","newData","i","Date","key","hasOwnProperty","_reconstructPacket","undefined"],"mappings":"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","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reconstructPacket = exports.deconstructPacket = void 0;\nconst is_binary_1 = require(\"./is-binary\");\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nfunction deconstructPacket(packet) {\n    const buffers = [];\n    const packetData = packet.data;\n    const pack = packet;\n    pack.data = _deconstructPacket(packetData, buffers);\n    pack.attachments = buffers.length; // number of binary 'attachments'\n    return { packet: pack, buffers: buffers };\n}\nexports.deconstructPacket = deconstructPacket;\nfunction _deconstructPacket(data, buffers) {\n    if (!data)\n        return data;\n    if (is_binary_1.isBinary(data)) {\n        const placeholder = { _placeholder: true, num: buffers.length };\n        buffers.push(data);\n        return placeholder;\n    }\n    else if (Array.isArray(data)) {\n        const newData = new Array(data.length);\n        for (let i = 0; i < data.length; i++) {\n            newData[i] = _deconstructPacket(data[i], buffers);\n        }\n        return newData;\n    }\n    else if (typeof data === \"object\" && !(data instanceof Date)) {\n        const newData = {};\n        for (const key in data) {\n            if (data.hasOwnProperty(key)) {\n                newData[key] = _deconstructPacket(data[key], buffers);\n            }\n        }\n        return newData;\n    }\n    return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nfunction reconstructPacket(packet, buffers) {\n    packet.data = _reconstructPacket(packet.data, buffers);\n    packet.attachments = undefined; // no longer useful\n    return packet;\n}\nexports.reconstructPacket = reconstructPacket;\nfunction _reconstructPacket(data, buffers) {\n    if (!data)\n        return data;\n    if (data && data._placeholder) {\n        return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n    }\n    else if (Array.isArray(data)) {\n        for (let i = 0; i < data.length; i++) {\n            data[i] = _reconstructPacket(data[i], buffers);\n        }\n    }\n    else if (typeof data === \"object\") {\n        for (const key in data) {\n            if (data.hasOwnProperty(key)) {\n                data[key] = _reconstructPacket(data[key], buffers);\n            }\n        }\n    }\n    return data;\n}\n"]},"metadata":{},"sourceType":"script"}