{"version":3,"file":"byteUtils.mjs","names":[],"sources":["../../../src/tools/utils/byteUtils.ts"],"sourcesContent":["export const ONE_KIBI_BYTE = 1024\nexport const ONE_MEBI_BYTE = 1024 * ONE_KIBI_BYTE\n\n// eslint-disable-next-line no-control-regex\nconst HAS_MULTI_BYTES_CHARACTERS = /[^\\u0000-\\u007F]/\n\nexport interface Uint8ArrayBuffer extends Uint8Array {\n  readonly buffer: ArrayBuffer\n\n  subarray(begin?: number, end?: number): Uint8ArrayBuffer\n}\n\nexport function computeBytesCount(candidate: string): number {\n  // Accurate bytes count computations can degrade performances when there is a lot of events to process\n  if (!HAS_MULTI_BYTES_CHARACTERS.test(candidate)) {\n    return candidate.length\n  }\n\n  return new TextEncoder().encode(candidate).length\n}\n\nexport function concatBuffers(buffers: Uint8ArrayBuffer[]): Uint8ArrayBuffer {\n  // Optimization: if there is a single buffer, no need to copy it\n  if (buffers.length === 1) {\n    return buffers[0]\n  }\n\n  const length = buffers.reduce((total, buffer) => total + buffer.length, 0)\n  const result: Uint8ArrayBuffer = new Uint8Array(length)\n  let offset = 0\n  for (const buffer of buffers) {\n    result.set(buffer, offset)\n    offset += buffer.length\n  }\n  return result\n}\n"],"mappings":";AAAA,MAAa,gBAAgB;AAC7B,MAAa,gBAAgB,OAAO;AAGpC,MAAM,6BAA6B;AAQnC,SAAgB,kBAAkB,WAA2B;CAE3D,IAAI,CAAC,2BAA2B,KAAK,SAAS,GAC5C,OAAO,UAAU;CAGnB,OAAO,IAAI,YAAY,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC;AAC7C;AAEA,SAAgB,cAAc,SAA+C;CAE3E,IAAI,QAAQ,WAAW,GACrB,OAAO,QAAQ;CAGjB,MAAM,SAAS,QAAQ,QAAQ,OAAO,WAAW,QAAQ,OAAO,QAAQ,CAAC;CACzE,MAAM,SAA2B,IAAI,WAAW,MAAM;CACtD,IAAI,SAAS;CACb,KAAK,MAAM,UAAU,SAAS;EAC5B,OAAO,IAAI,QAAQ,MAAM;EACzB,UAAU,OAAO;CACnB;CACA,OAAO;AACT"}