in src/io/crx.ts [8:29]
export function defaultParseCRX(buf: Buffer): Buffer {
if (buf.readUInt32BE(0) !== 0x43723234) {
throw new Error('Invalid header: Does not start with Cr24.');
}
const version = buf.readUInt32LE(4);
if (version === 2) {
const publicKeyLength = buf.readUInt32LE(8);
const signatureLength = buf.readUInt32LE(12);
// 16 = Magic number (4), CRX format version (4), lengths (2x4)
return buf.slice(16 + publicKeyLength + signatureLength);
}
if (version === 3) {
const crx3HeaderLength = buf.readUInt32LE(8);
// 12 = Magic number (4), CRX format version (4), header length (4)
return buf.slice(12 + crx3HeaderLength);
}
throw new Error('Unexpected crx format version number.');
}