I have this code in Python:
import zlib
raw = bytes.fromhex("789C34C9410AC2301005D0BBFC752289A88BB94A53CAD8061B48D3329D2A1A7277DDB87BF02A14548E9C0DF63FD60DE49DC104AA98238BDE23EB908A467972065DFCF9FAFB4185C708EAD0053C58E38BDF7693C92E9C8A9DFDE716606AC0924659F7007227D77AF4AD7D010000FFFF")
buffer = bytearray()
inflator = zlib.decompressobj()
buffer.extend(raw)
msg = inflator.decompress(buffer)
print("[buffer] ", msg)
Result:
[buffer] b'{"t":null,"s":null,"op":10,"d":{"heartbeat_interval":41250,"_trace":["[\"gateway-prd-main-h1z6\",{\"micros\":0.0}]"]}}'
That data could be successfully decompressed in Python.
Then I have similar code in javascript (typescript):
import zlib from "zlib"
const raw = "789C34C9410AC2301005D0BBFC752289A88BB94A53CAD8061B48D3329D2A1A7277DDB87BF02A14548E9C0DF63FD60DE49DC104AA98238BDE23EB908A467972065DFCF9FAFB4185C708EAD0053C58E38BDF7693C92E9C8A9DFDE716606AC0924659F7007227D77AF4AD7D010000FFFF";
let msg;
let buffer;
buffer = Buffer.from(raw, "hex");
msg = zlib.inflateSync(buffer);
console.log("[buffer] " + msg.toString("utf-8"));
Result:
Error: unexpected end of file
at Zlib.zlibOnError [as onerror] (node:zlib:190:17)
at processChunkSync (node:zlib:456:12)
at zlibBufferSync (node:zlib:178:12)
at Object.syncBufferWrapper [as inflateSync] (node:zlib:791:14)
at Object.
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Module.m._compile (C:\Users\hanziKR Developer\AppData\Roaming\npm\node_modules\ts-node\src\index.ts:1455:23)
at Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Object.require.extensions. [as .ts]
at Module.load (node:internal/modules/cjs/loader:981:32) {
errno: -5,
code: 'Z_BUF_ERROR'
}
There it has an error. Why is there an error in one, but not the other?