in src/spark_automerge_wrapper.js [8:28]
function encodeMessage(metaData, syncMessage) {
const metaDataStr = JSON.stringify(metaData);
const metaDataBuf = Uint8Array.from(metaDataStr, s => s.charCodeAt(0));
const metaDataLength = metaDataBuf.length;
const metaDataLengthSize = 1, nonZeroPaddingSize = 1;
const totalSize = metaDataLengthSize + metaDataLength + syncMessage.length + nonZeroPaddingSize;
let msg = new Uint8Array(totalSize);
msg[0] = metaDataLength;
// Set meta data buffer in the message
msg.set(metaDataBuf, metaDataLengthSize);
// Set sync message buffer in the message
msg.set(syncMessage, metaDataLengthSize + metaDataLength);
// append non zero byte at end of buffer
// Currently messenger infrastructure is trimming all 0s in the buffer
// Having last byte as 1 to avoid this
// Will remove it once messenger team correct this trimming on their side
msg[totalSize - 1] = 1;
return msg
}