feat: adding protobuf decoder for parse of google auth migrations

This commit is contained in:
Savely Savianok
2025-02-28 23:32:54 +03:00
parent ccfd422061
commit bd490d4642
6 changed files with 266 additions and 8 deletions

View File

@@ -0,0 +1,24 @@
"use bigint"
export function decodeVarint(buffer, offset) {
let res = BigInt(0);
let shift = 0;
let byte = 0;
do {
if (offset >= buffer.length) {
throw new RangeError("Index out of bound decoding varint");
}
byte = buffer[offset++];
const multiplier = exponentiate(BigInt(2), BigInt(shift));
const thisByteValue = multiply(BigInt(byte & 0x7f), multiplier);
shift += 7;
res = add(res, thisByteValue);
} while (byte >= 0x80);
return {
value: res,
length: shift / 7
};
}