{"version":3,"file":"use-audio-record.c8adf376.cjs","sources":["../../src/utils.ts","../../src/blob-fix.ts","../../src/constants.ts"],"sourcesContent":["export type MimeType =\n  | 'audio/webm'\n  | 'audio/mp4'\n  | 'audio/ogg'\n  | 'audio/wav'\n  | 'audio/aac'\n  | 'audio/amr'\n  | undefined\n\nexport function getMimeType(): MimeType {\n  const types = [\n    'audio/webm',\n    'audio/mp4',\n    'audio/ogg',\n    'audio/wav',\n    'audio/aac',\n  ]\n  for (const type of types) {\n    if (MediaRecorder.isTypeSupported(type)) {\n      return type as MimeType\n    }\n  }\n  return undefined\n}\n","/*\n * There is a bug where `navigator.mediaDevices.getUserMedia` + `MediaRecorder`\n * creates WEBM files without duration metadata. See:\n * - https://bugs.chromium.org/p/chromium/issues/detail?id=642012\n * - https://stackoverflow.com/a/39971175/13989043\n *\n * This file contains a function that fixes the duration metadata of a WEBM file.\n *  - Answer found: https://stackoverflow.com/a/75218309/13989043\n *  - Code adapted from: https://github.com/mat-sz/webm-fix-duration\n *    (forked from https://github.com/yusitnikov/fix-webm-duration)\n */\n\n/*\n * This is the list of possible WEBM file sections by their IDs.\n * Possible types: Container, Binary, Uint, Int, String, Float, Date\n */\ninterface Section {\n  name: string\n  type: string\n}\n\nconst sections: Record<number, Section> = {\n  0xa_45_df_a3: { name: 'EBML', type: 'Container' },\n  0x2_86: { name: 'EBMLVersion', type: 'Uint' },\n  0x2_f7: { name: 'EBMLReadVersion', type: 'Uint' },\n  0x2_f2: { name: 'EBMLMaxIDLength', type: 'Uint' },\n  0x2_f3: { name: 'EBMLMaxSizeLength', type: 'Uint' },\n  0x2_82: { name: 'DocType', type: 'String' },\n  0x2_87: { name: 'DocTypeVersion', type: 'Uint' },\n  0x2_85: { name: 'DocTypeReadVersion', type: 'Uint' },\n  0x6c: { name: 'Void', type: 'Binary' },\n  0x3f: { name: 'CRC-32', type: 'Binary' },\n  0xb_53_86_67: { name: 'SignatureSlot', type: 'Container' },\n  0x3e_8a: { name: 'SignatureAlgo', type: 'Uint' },\n  0x3e_9a: { name: 'SignatureHash', type: 'Uint' },\n  0x3e_a5: { name: 'SignaturePublicKey', type: 'Binary' },\n  0x3e_b5: { name: 'Signature', type: 'Binary' },\n  0x3e_5b: { name: 'SignatureElements', type: 'Container' },\n  0x3e_7b: { name: 'SignatureElementList', type: 'Container' },\n  0x25_32: { name: 'SignedElement', type: 'Binary' },\n  0x8_53_80_67: { name: 'Segment', type: 'Container' },\n  0x1_4d_9b_74: { name: 'SeekHead', type: 'Container' },\n  0xd_bb: { name: 'Seek', type: 'Container' },\n  0x13_ab: { name: 'SeekID', type: 'Binary' },\n  0x13_ac: { name: 'SeekPosition', type: 'Uint' },\n  0x5_49_a9_66: { name: 'Info', type: 'Container' },\n  0x33_a4: { name: 'SegmentUID', type: 'Binary' },\n  0x33_84: { name: 'SegmentFilename', type: 'String' },\n  0x1c_b9_23: { name: 'PrevUID', type: 'Binary' },\n  0x1c_83_ab: { name: 'PrevFilename', type: 'String' },\n  0x1e_b9_23: { name: 'NextUID', type: 'Binary' },\n  0x1e_83_bb: { name: 'NextFilename', type: 'String' },\n  0x4_44: { name: 'SegmentFamily', type: 'Binary' },\n  0x29_24: { name: 'ChapterTranslate', type: 'Container' },\n  0x29_fc: { name: 'ChapterTranslateEditionUID', type: 'Uint' },\n  0x29_bf: { name: 'ChapterTranslateCodec', type: 'Uint' },\n  0x29_a5: { name: 'ChapterTranslateID', type: 'Binary' },\n  0xa_d7_b1: { name: 'TimecodeScale', type: 'Uint' },\n  0x4_89: { name: 'Duration', type: 'Float' },\n  0x4_61: { name: 'DateUTC', type: 'Date' },\n  0x3b_a9: { name: 'Title', type: 'String' },\n  0xd_80: { name: 'MuxingApp', type: 'String' },\n  0x17_41: { name: 'WritingApp', type: 'String' },\n  // 0xf43b675: { name: 'Cluster', type: 'Container' },\n  0x67: { name: 'Timecode', type: 'Uint' },\n  0x18_54: { name: 'SilentTracks', type: 'Container' },\n  0x18_d7: { name: 'SilentTrackNumber', type: 'Uint' },\n  0x27: { name: 'Position', type: 'Uint' },\n  0x2b: { name: 'PrevSize', type: 'Uint' },\n  0x23: { name: 'SimpleBlock', type: 'Binary' },\n  0x20: { name: 'BlockGroup', type: 'Container' },\n  0x21: { name: 'Block', type: 'Binary' },\n  0x22: { name: 'BlockVirtual', type: 'Binary' },\n  0x35_a1: { name: 'BlockAdditions', type: 'Container' },\n  0x26: { name: 'BlockMore', type: 'Container' },\n  0x6e: { name: 'BlockAddID', type: 'Uint' },\n  0x25: { name: 'BlockAdditional', type: 'Binary' },\n  0x1b: { name: 'BlockDuration', type: 'Uint' },\n  0x7a: { name: 'ReferencePriority', type: 'Uint' },\n  0x7b: { name: 'ReferenceBlock', type: 'Int' },\n  0x7d: { name: 'ReferenceVirtual', type: 'Int' },\n  0x24: { name: 'CodecState', type: 'Binary' },\n  0x35_a2: { name: 'DiscardPadding', type: 'Int' },\n  0xe: { name: 'Slices', type: 'Container' },\n  0x68: { name: 'TimeSlice', type: 'Container' },\n  0x4c: { name: 'LaceNumber', type: 'Uint' },\n  0x4d: { name: 'FrameNumber', type: 'Uint' },\n  0x4b: { name: 'BlockAdditionID', type: 'Uint' },\n  0x4e: { name: 'Delay', type: 'Uint' },\n  0x4f: { name: 'SliceDuration', type: 'Uint' },\n  0x48: { name: 'ReferenceFrame', type: 'Container' },\n  0x49: { name: 'ReferenceOffset', type: 'Uint' },\n  0x4a: { name: 'ReferenceTimeCode', type: 'Uint' },\n  0x2f: { name: 'EncryptedBlock', type: 'Binary' },\n  0x6_54_ae_6b: { name: 'Tracks', type: 'Container' },\n  0x2e: { name: 'TrackEntry', type: 'Container' },\n  0x57: { name: 'TrackNumber', type: 'Uint' },\n  0x33_c5: { name: 'TrackUID', type: 'Uint' },\n  0x3: { name: 'TrackType', type: 'Uint' },\n  0x39: { name: 'FlagEnabled', type: 'Uint' },\n  0x8: { name: 'FlagDefault', type: 'Uint' },\n  0x15_aa: { name: 'FlagForced', type: 'Uint' },\n  0x1c: { name: 'FlagLacing', type: 'Uint' },\n  0x2d_e7: { name: 'MinCache', type: 'Uint' },\n  0x2d_f8: { name: 'MaxCache', type: 'Uint' },\n  0x3_e3_83: { name: 'DefaultDuration', type: 'Uint' },\n  0x3_4e_7a: { name: 'DefaultDecodedFieldDuration', type: 'Uint' },\n  0x3_31_4f: { name: 'TrackTimecodeScale', type: 'Float' },\n  0x13_7f: { name: 'TrackOffset', type: 'Int' },\n  0x15_ee: { name: 'MaxBlockAdditionID', type: 'Uint' },\n  0x13_6e: { name: 'Name', type: 'String' },\n  0x2_b5_9c: { name: 'Language', type: 'String' },\n  0x6: { name: 'CodecID', type: 'String' },\n  0x23_a2: { name: 'CodecPrivate', type: 'Binary' },\n  0x5_86_88: { name: 'CodecName', type: 'String' },\n  0x34_46: { name: 'AttachmentLink', type: 'Uint' },\n  0x1a_96_97: { name: 'CodecSettings', type: 'String' },\n  0x1b_40_40: { name: 'CodecInfoURL', type: 'String' },\n  0x6_b2_40: { name: 'CodecDownloadURL', type: 'String' },\n  0x2a: { name: 'CodecDecodeAll', type: 'Uint' },\n  0x2f_ab: { name: 'TrackOverlay', type: 'Uint' },\n  0x16_aa: { name: 'CodecDelay', type: 'Uint' },\n  0x16_bb: { name: 'SeekPreRoll', type: 'Uint' },\n  0x26_24: { name: 'TrackTranslate', type: 'Container' },\n  0x26_fc: { name: 'TrackTranslateEditionUID', type: 'Uint' },\n  0x26_bf: { name: 'TrackTranslateCodec', type: 'Uint' },\n  0x26_a5: { name: 'TrackTranslateTrackID', type: 'Binary' },\n  0x60: { name: 'Video', type: 'Container' },\n  0x1a: { name: 'FlagInterlaced', type: 'Uint' },\n  0x13_b8: { name: 'StereoMode', type: 'Uint' },\n  0x13_c0: { name: 'AlphaMode', type: 'Uint' },\n  0x13_b9: { name: 'OldStereoMode', type: 'Uint' },\n  0x30: { name: 'PixelWidth', type: 'Uint' },\n  0x3a: { name: 'PixelHeight', type: 'Uint' },\n  0x14_aa: { name: 'PixelCropBottom', type: 'Uint' },\n  0x14_bb: { name: 'PixelCropTop', type: 'Uint' },\n  0x14_cc: { name: 'PixelCropLeft', type: 'Uint' },\n  0x14_dd: { name: 'PixelCropRight', type: 'Uint' },\n  0x14_b0: { name: 'DisplayWidth', type: 'Uint' },\n  0x14_ba: { name: 'DisplayHeight', type: 'Uint' },\n  0x14_b2: { name: 'DisplayUnit', type: 'Uint' },\n  0x14_b3: { name: 'AspectRatioType', type: 'Uint' },\n  0xe_b5_24: { name: 'ColourSpace', type: 'Binary' },\n  0xf_b5_23: { name: 'GammaValue', type: 'Float' },\n  0x3_83_e3: { name: 'FrameRate', type: 'Float' },\n  0x61: { name: 'Audio', type: 'Container' },\n  0x35: { name: 'SamplingFrequency', type: 'Float' },\n  0x38_b5: { name: 'OutputSamplingFrequency', type: 'Float' },\n  0x1f: { name: 'Channels', type: 'Uint' },\n  0x3d_7b: { name: 'ChannelPositions', type: 'Binary' },\n  0x22_64: { name: 'BitDepth', type: 'Uint' },\n  0x62: { name: 'TrackOperation', type: 'Container' },\n  0x63: { name: 'TrackCombinePlanes', type: 'Container' },\n  0x64: { name: 'TrackPlane', type: 'Container' },\n  0x65: { name: 'TrackPlaneUID', type: 'Uint' },\n  0x66: { name: 'TrackPlaneType', type: 'Uint' },\n  0x69: { name: 'TrackJoinBlocks', type: 'Container' },\n  0x6d: { name: 'TrackJoinUID', type: 'Uint' },\n  0x40: { name: 'TrickTrackUID', type: 'Uint' },\n  0x41: { name: 'TrickTrackSegmentUID', type: 'Binary' },\n  0x46: { name: 'TrickTrackFlag', type: 'Uint' },\n  0x47: { name: 'TrickMasterTrackUID', type: 'Uint' },\n  0x44: { name: 'TrickMasterTrackSegmentUID', type: 'Binary' },\n  0x2d_80: { name: 'ContentEncodings', type: 'Container' },\n  0x22_40: { name: 'ContentEncoding', type: 'Container' },\n  0x10_31: { name: 'ContentEncodingOrder', type: 'Uint' },\n  0x10_32: { name: 'ContentEncodingScope', type: 'Uint' },\n  0x10_33: { name: 'ContentEncodingType', type: 'Uint' },\n  0x10_34: { name: 'ContentCompression', type: 'Container' },\n  0x2_54: { name: 'ContentCompAlgo', type: 'Uint' },\n  0x2_55: { name: 'ContentCompSettings', type: 'Binary' },\n  0x10_35: { name: 'ContentEncryption', type: 'Container' },\n  0x7_e1: { name: 'ContentEncAlgo', type: 'Uint' },\n  0x7_e2: { name: 'ContentEncKeyID', type: 'Binary' },\n  0x7_e3: { name: 'ContentSignature', type: 'Binary' },\n  0x7_e4: { name: 'ContentSigKeyID', type: 'Binary' },\n  0x7_e5: { name: 'ContentSigAlgo', type: 'Uint' },\n  0x7_e6: { name: 'ContentSigHashAlgo', type: 'Uint' },\n  0xc_53_bb_6b: { name: 'Cues', type: 'Container' },\n  0x3b: { name: 'CuePoint', type: 'Container' },\n  0x33: { name: 'CueTime', type: 'Uint' },\n  0x37: { name: 'CueTrackPositions', type: 'Container' },\n  0x77: { name: 'CueTrack', type: 'Uint' },\n  0x71: { name: 'CueClusterPosition', type: 'Uint' },\n  0x70: { name: 'CueRelativePosition', type: 'Uint' },\n  0x32: { name: 'CueDuration', type: 'Uint' },\n  0x13_78: { name: 'CueBlockNumber', type: 'Uint' },\n  0x6a: { name: 'CueCodecState', type: 'Uint' },\n  0x5b: { name: 'CueReference', type: 'Container' },\n  0x16: { name: 'CueRefTime', type: 'Uint' },\n  0x17: { name: 'CueRefCluster', type: 'Uint' },\n  0x13_5f: { name: 'CueRefNumber', type: 'Uint' },\n  0x6b: { name: 'CueRefCodecState', type: 'Uint' },\n  0x9_41_a4_69: { name: 'Attachments', type: 'Container' },\n  0x21_a7: { name: 'AttachedFile', type: 'Container' },\n  0x6_7e: { name: 'FileDescription', type: 'String' },\n  0x6_6e: { name: 'FileName', type: 'String' },\n  0x6_60: { name: 'FileMimeType', type: 'String' },\n  0x6_5c: { name: 'FileData', type: 'Binary' },\n  0x6_ae: { name: 'FileUID', type: 'Uint' },\n  0x6_75: { name: 'FileReferral', type: 'Binary' },\n  0x6_61: { name: 'FileUsedStartTime', type: 'Uint' },\n  0x6_62: { name: 'FileUsedEndTime', type: 'Uint' },\n  0x43_a7_70: { name: 'Chapters', type: 'Container' },\n  0x5_b9: { name: 'EditionEntry', type: 'Container' },\n  0x5_bc: { name: 'EditionUID', type: 'Uint' },\n  0x5_bd: { name: 'EditionFlagHidden', type: 'Uint' },\n  0x5_db: { name: 'EditionFlagDefault', type: 'Uint' },\n  0x5_dd: { name: 'EditionFlagOrdered', type: 'Uint' },\n  0x36: { name: 'ChapterAtom', type: 'Container' },\n  0x33_c4: { name: 'ChapterUID', type: 'Uint' },\n  0x16_54: { name: 'ChapterStringUID', type: 'String' },\n  0x11: { name: 'ChapterTimeStart', type: 'Uint' },\n  0x12: { name: 'ChapterTimeEnd', type: 'Uint' },\n  0x18: { name: 'ChapterFlagHidden', type: 'Uint' },\n  0x5_98: { name: 'ChapterFlagEnabled', type: 'Uint' },\n  0x2e_67: { name: 'ChapterSegmentUID', type: 'Binary' },\n  0x2e_bc: { name: 'ChapterSegmentEditionUID', type: 'Uint' },\n  0x23_c3: { name: 'ChapterPhysicalEquiv', type: 'Uint' },\n  0xf: { name: 'ChapterTrack', type: 'Container' },\n  0x9: { name: 'ChapterTrackNumber', type: 'Uint' },\n  0x0: { name: 'ChapterDisplay', type: 'Container' },\n  0x5: { name: 'ChapString', type: 'String' },\n  0x3_7c: { name: 'ChapLanguage', type: 'String' },\n  0x3_7e: { name: 'ChapCountry', type: 'String' },\n  0x29_44: { name: 'ChapProcess', type: 'Container' },\n  0x29_55: { name: 'ChapProcessCodecID', type: 'Uint' },\n  0x5_0d: { name: 'ChapProcessPrivate', type: 'Binary' },\n  0x29_11: { name: 'ChapProcessCommand', type: 'Container' },\n  0x29_22: { name: 'ChapProcessTime', type: 'Uint' },\n  0x29_33: { name: 'ChapProcessData', type: 'Binary' },\n  0x2_54_c3_67: { name: 'Tags', type: 'Container' },\n  0x33_73: { name: 'Tag', type: 'Container' },\n  0x23_c0: { name: 'Targets', type: 'Container' },\n  0x28_ca: { name: 'TargetTypeValue', type: 'Uint' },\n  0x23_ca: { name: 'TargetType', type: 'String' },\n  0x23_c5: { name: 'TagTrackUID', type: 'Uint' },\n  0x23_c9: { name: 'TagEditionUID', type: 'Uint' },\n  0x23_c4: { name: 'TagChapterUID', type: 'Uint' },\n  0x23_c6: { name: 'TagAttachmentUID', type: 'Uint' },\n  0x27_c8: { name: 'SimpleTag', type: 'Container' },\n  0x5_a3: { name: 'TagName', type: 'String' },\n  0x4_7a: { name: 'TagLanguage', type: 'String' },\n  0x4_84: { name: 'TagDefault', type: 'Uint' },\n  0x4_87: { name: 'TagString', type: 'String' },\n  0x4_85: { name: 'TagBinary', type: 'Binary' },\n}\n\nclass WebmBase<T> {\n  source?: Uint8Array\n  data?: T\n\n  constructor(\n    private name = 'Unknown',\n    private type = 'Unknown',\n  ) {}\n\n  updateBySource() {}\n\n  setSource(source: Uint8Array) {\n    this.source = source\n    this.updateBySource()\n  }\n\n  updateByData() {}\n\n  setData(data: T) {\n    this.data = data\n    this.updateByData()\n  }\n}\n\nclass WebmUint extends WebmBase<string> {\n  constructor(name: string, type: string) {\n    super(name, type || 'Uint')\n  }\n\n  updateBySource() {\n    // use hex representation of a number instead of number value\n    this.data = ''\n    for (let i = 0; i < this.source!.length; i++) {\n      const hex = this.source![i].toString(16)\n      this.data += padHex(hex)\n    }\n  }\n\n  updateByData() {\n    const length = this.data!.length / 2\n    this.source = new Uint8Array(length)\n    for (let i = 0; i < length; i++) {\n      const hex = this.data!.slice(i * 2, i * 2 + 2)\n      this.source[i] = Number.parseInt(hex, 16)\n    }\n  }\n\n  getValue() {\n    return Number.parseInt(this.data!, 16)\n  }\n\n  setValue(value: number) {\n    this.setData(padHex(value.toString(16)))\n  }\n}\n\nfunction padHex(hex: string) {\n  return hex.length % 2 === 1 ? `0${hex}` : hex\n}\n\nclass WebmFloat extends WebmBase<number> {\n  constructor(name: string, type: string) {\n    super(name, type || 'Float')\n  }\n\n  getFloatArrayType() {\n    return this.source && this.source.length === 4 ? Float32Array : Float64Array\n  }\n\n  updateBySource() {\n    const byteArray = this.source!.reverse()\n    const FloatArrayType = this.getFloatArrayType()\n    const floatArray = new FloatArrayType(byteArray.buffer)\n    this.data! = floatArray[0]\n  }\n\n  updateByData() {\n    const FloatArrayType = this.getFloatArrayType()\n    const floatArray = new FloatArrayType([this.data!])\n    const byteArray = new Uint8Array(floatArray.buffer)\n    this.source = byteArray.reverse()\n  }\n\n  getValue() {\n    return this.data\n  }\n\n  setValue(value: number) {\n    this.setData(value)\n  }\n}\n\ninterface ContainerData {\n  id: number\n  idHex?: string\n  data: WebmBase<any>\n}\n\nclass WebmContainer extends WebmBase<ContainerData[]> {\n  offset = 0\n  data: ContainerData[] = []\n\n  constructor(name: string, type: string) {\n    super(name, type || 'Container')\n  }\n\n  readByte() {\n    return this.source![this.offset++]\n  }\n\n  readUint() {\n    const firstByte = this.readByte()\n    const bytes = 8 - firstByte.toString(2).length\n    let value = firstByte - (1 << (7 - bytes))\n    for (let i = 0; i < bytes; i++) {\n      // don't use bit operators to support x86\n      value *= 256\n      value += this.readByte()\n    }\n    return value\n  }\n\n  updateBySource() {\n    let end: number | undefined\n    this.data = []\n    for (\n      this.offset = 0;\n      this.offset < this.source!.length;\n      this.offset = end\n    ) {\n      const id = this.readUint()\n      const len = this.readUint()\n      end = Math.min(this.offset + len, this.source!.length)\n      const data = this.source!.slice(this.offset, end)\n\n      const info = sections[id] || { name: 'Unknown', type: 'Unknown' }\n      let Ctr: any = WebmBase\n      switch (info.type) {\n        case 'Container': {\n          Ctr = WebmContainer\n          break\n        }\n        case 'Uint': {\n          Ctr = WebmUint\n          break\n        }\n        case 'Float': {\n          Ctr = WebmFloat\n          break\n        }\n      }\n      const section = new Ctr(info.name, info.type)\n      section.setSource(data)\n      this.data.push({\n        id,\n        idHex: id.toString(16),\n        data: section,\n      })\n    }\n  }\n\n  writeUint(x: number, draft = false) {\n    let bytes = 1\n    let flag = 0x80\n    for (; x >= flag && bytes < 8; bytes++) {\n      flag *= 0x80\n    }\n\n    if (!draft) {\n      let value = flag + x\n      for (let i = bytes - 1; i >= 0; i--) {\n        // don't use bit operators to support x86\n        const c = value % 256\n        this.source![this.offset! + i] = c\n        value = (value - c) / 256\n      }\n    }\n\n    this.offset += bytes\n  }\n\n  writeSections(draft = false) {\n    this.offset = 0\n    for (let i = 0; i < this.data.length; i++) {\n      const section = this.data[i]\n      const content = section.data.source\n      const contentLength = content!.length\n      this.writeUint(section.id, draft)\n      this.writeUint(contentLength, draft)\n      if (!draft) {\n        this.source!.set(content!, this.offset)\n      }\n      this.offset += contentLength\n    }\n    return this.offset\n  }\n\n  updateByData() {\n    // run without accessing this.source to determine total length - need to know it to create Uint8Array\n    const length = this.writeSections(true)\n    this.source = new Uint8Array(length)\n    // now really write data\n    this.writeSections()\n  }\n\n  getSectionById(id: number) {\n    for (let i = 0; i < this.data.length; i++) {\n      const section = this.data[i]\n      if (section.id === id) {\n        return section.data\n      }\n    }\n\n    return undefined\n  }\n}\n\nclass WebmFile extends WebmContainer {\n  constructor(source: Uint8Array) {\n    super('File', 'File')\n    this.setSource(source)\n  }\n\n  fixDuration(duration: number) {\n    const segmentSection = this.getSectionById(0x8_53_80_67) as WebmContainer\n    if (!segmentSection) {\n      return false\n    }\n\n    const infoSection = segmentSection.getSectionById(\n      0x5_49_a9_66,\n    ) as WebmContainer\n    if (!infoSection) {\n      return false\n    }\n\n    const timeScaleSection = infoSection.getSectionById(0xa_d7_b1) as WebmFloat\n    if (!timeScaleSection) {\n      return false\n    }\n\n    let durationSection = infoSection.getSectionById(0x4_89) as WebmFloat\n    if (durationSection) {\n      if (durationSection.getValue()! <= 0) {\n        durationSection.setValue(duration)\n      } else {\n        return false\n      }\n    } else {\n      // append Duration section\n      durationSection = new WebmFloat('Duration', 'Float')\n      durationSection.setValue(duration)\n      infoSection.data.push({\n        id: 0x4_89,\n        data: durationSection,\n      })\n    }\n\n    // set default time scale to 1 millisecond (1000000 nanoseconds)\n    timeScaleSection.setValue(1_000_000)\n    infoSection.updateByData()\n    segmentSection.updateByData()\n    this.updateByData()\n\n    return true\n  }\n\n  toBlob(type = 'video/webm') {\n    return new Blob([this.source!.buffer], { type })\n  }\n}\n\n/**\n * Fixes duration on MediaRecorder output.\n * @param blob Input Blob with incorrect duration.\n * @param duration Correct duration (in milliseconds).\n * @param type Output blob mimetype (default: video/webm).\n * @returns\n */\nexport function webmFixDuration(\n  blob: Blob,\n  duration: number,\n  type = 'video/webm',\n): Promise<Blob> {\n  return new Promise((resolve, reject) => {\n    try {\n      const reader = new FileReader()\n\n      reader.addEventListener('loadend', () => {\n        try {\n          const result = reader.result as ArrayBuffer\n          const file = new WebmFile(new Uint8Array(result))\n          if (file.fixDuration(duration)) {\n            resolve(file.toBlob(type))\n          } else {\n            resolve(blob)\n          }\n        } catch (error) {\n          reject(error)\n        }\n      })\n\n      reader.addEventListener('error', () => reject(new Error('err')))\n\n      // eslint-disable-next-line unicorn/prefer-blob-reading-methods\n      reader.readAsArrayBuffer(blob)\n    } catch (error) {\n      reject(error)\n    }\n  })\n}\n","export const SAMPLING_RATE = 16_000\n"],"names":[],"mappings":"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"}