"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.decodeSimpleCBOR = exports.encodeSimpleCBOR = exports.composeHeader = void 0; /* this an simple cbor implementation which is just using on BCR-05 */ exports.composeHeader = function (length) { var header; if (length > 0 && length <= 23) { header = Buffer.from([0x40 + length]); } if (length >= 24 && length <= 255) { var headerLength = Buffer.alloc(1); headerLength.writeUInt8(length); header = Buffer.concat([Buffer.from([0x58]), headerLength]); } if (length >= 256 && length <= 65535) { var headerLength = Buffer.alloc(2); headerLength.writeUInt16BE(length); header = Buffer.concat([Buffer.from([0x59]), headerLength]); } if (length >= 65536 && length <= Math.pow(2, 32) - 1) { var headerLength = Buffer.alloc(4); headerLength.writeUInt32BE(length); header = Buffer.concat([Buffer.from([0x60]), headerLength]); } return header; }; exports.encodeSimpleCBOR = function (data) { var bufferData = Buffer.from(data, 'hex'); if (bufferData.length <= 0 || bufferData.length >= Math.pow(2, 32)) { throw new Error('data is too large'); } var header = exports.composeHeader(bufferData.length); var endcoded = Buffer.concat([header, bufferData]); return endcoded.toString('hex'); }; exports.decodeSimpleCBOR = function (data) { var dataBuffer = Buffer.from(data, 'hex'); if (dataBuffer.length <= 0) { throw new Error('input data is not valid'); } var header = dataBuffer[0]; if (header < 0x58) { var dataLength = header - 0x40; return dataBuffer.slice(1, 1 + dataLength).toString('hex'); } if (header == 0x58) { var dataLength = dataBuffer.slice(1, 2).readUInt8(); return dataBuffer.slice(2, 2 + dataLength).toString('hex'); } if (header == 0x59) { var dataLength = dataBuffer.slice(1, 3).readUInt16BE(); return dataBuffer.slice(3, 3 + dataLength).toString('hex'); } if (header == 0x60) { var dataLength = dataBuffer.slice(1, 5).readUInt32BE(); return dataBuffer.slice(5, 5 + dataLength).toString('hex'); } }; //# sourceMappingURL=miniCbor.js.map