in backend/columnar.js [1006:1038]
function decodeDocumentHeader(buffer) {
const documentDecoder = new Decoder(buffer)
const header = decodeContainerHeader(documentDecoder, true)
const decoder = new Decoder(header.chunkData)
if (!documentDecoder.done) throw new RangeError('Encoded document has trailing data')
if (header.chunkType !== CHUNK_TYPE_DOCUMENT) throw new RangeError(`Unexpected chunk type: ${header.chunkType}`)
const actorIds = [], numActors = decoder.readUint53()
for (let i = 0; i < numActors; i++) {
actorIds.push(decoder.readHexString())
}
const heads = [], headsIndexes = [], numHeads = decoder.readUint53()
for (let i = 0; i < numHeads; i++) {
heads.push(bytesToHexString(decoder.readRawBytes(32)))
}
const changesColumns = decodeColumnInfo(decoder)
const opsColumns = decodeColumnInfo(decoder)
for (let i = 0; i < changesColumns.length; i++) {
changesColumns[i].buffer = decoder.readRawBytes(changesColumns[i].bufferLen)
inflateColumn(changesColumns[i])
}
for (let i = 0; i < opsColumns.length; i++) {
opsColumns[i].buffer = decoder.readRawBytes(opsColumns[i].bufferLen)
inflateColumn(opsColumns[i])
}
if (!decoder.done) {
for (let i = 0; i < numHeads; i++) headsIndexes.push(decoder.readUint53())
}
const extraBytes = decoder.readRawBytes(decoder.buf.byteLength - decoder.offset)
return { changesColumns, opsColumns, actorIds, heads, headsIndexes, extraBytes }
}