@dragon708/docmind-markdown 1.2.5 → 1.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (321) hide show
  1. package/node_modules/music-metadata/LICENSE.txt +3 -3
  2. package/node_modules/music-metadata/README.md +246 -690
  3. package/node_modules/music-metadata/lib/ParserFactory.d.ts +31 -27
  4. package/node_modules/music-metadata/lib/ParserFactory.js +219 -108
  5. package/node_modules/music-metadata/lib/aiff/AiffParser.d.ts +2 -2
  6. package/node_modules/music-metadata/lib/aiff/AiffParser.js +38 -34
  7. package/node_modules/music-metadata/lib/aiff/AiffTagMap.d.ts +1 -1
  8. package/node_modules/music-metadata/lib/aiff/AiffTagMap.js +7 -2
  9. package/node_modules/music-metadata/lib/aiff/AiffToken.d.ts +6 -32
  10. package/node_modules/music-metadata/lib/aiff/AiffToken.js +17 -27
  11. package/node_modules/music-metadata/lib/apev2/APEv2Parser.d.ts +8 -24
  12. package/node_modules/music-metadata/lib/apev2/APEv2Parser.js +66 -78
  13. package/node_modules/music-metadata/lib/apev2/APEv2TagMapper.d.ts +1 -1
  14. package/node_modules/music-metadata/lib/apev2/APEv2TagMapper.js +8 -4
  15. package/node_modules/music-metadata/lib/apev2/APEv2Token.d.ts +11 -10
  16. package/node_modules/music-metadata/lib/apev2/APEv2Token.js +27 -16
  17. package/node_modules/music-metadata/lib/asf/AsfObject.d.ts +53 -59
  18. package/node_modules/music-metadata/lib/asf/AsfObject.js +131 -97
  19. package/node_modules/music-metadata/lib/asf/AsfParser.d.ts +1 -1
  20. package/node_modules/music-metadata/lib/asf/AsfParser.js +43 -42
  21. package/node_modules/music-metadata/lib/asf/AsfTagMapper.d.ts +2 -2
  22. package/node_modules/music-metadata/lib/asf/AsfTagMapper.js +10 -6
  23. package/node_modules/music-metadata/lib/asf/AsfUtil.d.ts +13 -4
  24. package/node_modules/music-metadata/lib/asf/AsfUtil.js +36 -30
  25. package/node_modules/music-metadata/lib/asf/GUID.d.ts +84 -0
  26. package/node_modules/music-metadata/lib/asf/GUID.js +121 -0
  27. package/node_modules/music-metadata/lib/common/BasicParser.d.ts +9 -9
  28. package/node_modules/music-metadata/lib/common/BasicParser.js +7 -2
  29. package/node_modules/music-metadata/lib/common/CaseInsensitiveTagMap.d.ts +3 -3
  30. package/node_modules/music-metadata/lib/common/CaseInsensitiveTagMap.js +7 -2
  31. package/node_modules/music-metadata/lib/common/CombinedTagMapper.d.ts +5 -5
  32. package/node_modules/music-metadata/lib/common/CombinedTagMapper.js +28 -24
  33. package/node_modules/music-metadata/lib/common/FourCC.d.ts +1 -1
  34. package/node_modules/music-metadata/lib/common/FourCC.js +11 -10
  35. package/node_modules/music-metadata/lib/common/GenericTagMapper.d.ts +13 -13
  36. package/node_modules/music-metadata/lib/common/GenericTagMapper.js +12 -7
  37. package/node_modules/music-metadata/lib/common/GenericTagTypes.d.ts +6 -7
  38. package/node_modules/music-metadata/lib/common/GenericTagTypes.js +85 -86
  39. package/node_modules/music-metadata/lib/common/MetadataCollector.d.ts +10 -20
  40. package/node_modules/music-metadata/lib/common/MetadataCollector.js +69 -100
  41. package/node_modules/music-metadata/lib/common/RandomFileReader.d.ts +22 -0
  42. package/node_modules/music-metadata/lib/common/RandomFileReader.js +34 -0
  43. package/node_modules/music-metadata/lib/common/RandomUint8ArrayReader.d.ts +18 -0
  44. package/node_modules/music-metadata/lib/common/RandomUint8ArrayReader.js +25 -0
  45. package/node_modules/music-metadata/lib/common/Util.d.ts +12 -11
  46. package/node_modules/music-metadata/lib/common/Util.js +53 -47
  47. package/node_modules/music-metadata/lib/core.d.ts +15 -42
  48. package/node_modules/music-metadata/lib/core.js +38 -74
  49. package/node_modules/music-metadata/lib/dsdiff/DsdiffParser.d.ts +1 -16
  50. package/node_modules/music-metadata/lib/dsdiff/DsdiffParser.js +44 -55
  51. package/node_modules/music-metadata/lib/dsdiff/DsdiffToken.d.ts +3 -3
  52. package/node_modules/music-metadata/lib/dsdiff/DsdiffToken.js +7 -4
  53. package/node_modules/music-metadata/lib/dsf/DsfChunk.d.ts +10 -11
  54. package/node_modules/music-metadata/lib/dsf/DsfChunk.js +19 -15
  55. package/node_modules/music-metadata/lib/dsf/DsfParser.d.ts +1 -16
  56. package/node_modules/music-metadata/lib/dsf/DsfParser.js +20 -21
  57. package/node_modules/music-metadata/lib/flac/FlacParser.d.ts +15 -16
  58. package/node_modules/music-metadata/lib/flac/FlacParser.js +119 -69
  59. package/node_modules/music-metadata/lib/id3v1/ID3v1Parser.d.ts +3 -7
  60. package/node_modules/music-metadata/lib/id3v1/ID3v1Parser.js +36 -39
  61. package/node_modules/music-metadata/lib/id3v1/ID3v1TagMap.d.ts +1 -1
  62. package/node_modules/music-metadata/lib/id3v1/ID3v1TagMap.js +7 -2
  63. package/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.d.ts +2 -2
  64. package/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js +19 -15
  65. package/node_modules/music-metadata/lib/id3v2/FrameParser.d.ts +3 -64
  66. package/node_modules/music-metadata/lib/id3v2/FrameParser.js +103 -244
  67. package/node_modules/music-metadata/lib/id3v2/ID3v22TagMapper.d.ts +2 -2
  68. package/node_modules/music-metadata/lib/id3v2/ID3v22TagMapper.js +16 -6
  69. package/node_modules/music-metadata/lib/id3v2/ID3v24TagMapper.d.ts +5 -5
  70. package/node_modules/music-metadata/lib/id3v2/ID3v24TagMapper.js +35 -36
  71. package/node_modules/music-metadata/lib/id3v2/ID3v2Parser.d.ts +6 -11
  72. package/node_modules/music-metadata/lib/id3v2/ID3v2Parser.js +104 -91
  73. package/node_modules/music-metadata/lib/id3v2/ID3v2Token.d.ts +29 -67
  74. package/node_modules/music-metadata/lib/id3v2/ID3v2Token.js +36 -76
  75. package/node_modules/music-metadata/lib/iff/index.d.ts +1 -1
  76. package/node_modules/music-metadata/lib/iff/index.js +7 -4
  77. package/node_modules/music-metadata/lib/index.d.ts +31 -8
  78. package/node_modules/music-metadata/lib/index.js +53 -32
  79. package/node_modules/music-metadata/lib/lyrics3/Lyrics3.d.ts +2 -2
  80. package/node_modules/music-metadata/lib/lyrics3/Lyrics3.js +13 -13
  81. package/node_modules/music-metadata/lib/matroska/MatroskaDtd.d.ts +2 -2
  82. package/node_modules/music-metadata/lib/matroska/MatroskaDtd.js +242 -246
  83. package/node_modules/music-metadata/lib/matroska/MatroskaParser.d.ts +24 -6
  84. package/node_modules/music-metadata/lib/matroska/MatroskaParser.js +218 -124
  85. package/node_modules/music-metadata/lib/matroska/MatroskaTagMapper.d.ts +1 -1
  86. package/node_modules/music-metadata/lib/matroska/MatroskaTagMapper.js +7 -3
  87. package/node_modules/music-metadata/lib/matroska/types.d.ts +76 -43
  88. package/node_modules/music-metadata/lib/matroska/types.js +33 -27
  89. package/node_modules/music-metadata/lib/mp4/Atom.d.ts +7 -7
  90. package/node_modules/music-metadata/lib/mp4/Atom.js +22 -15
  91. package/node_modules/music-metadata/lib/mp4/AtomToken.d.ts +18 -110
  92. package/node_modules/music-metadata/lib/mp4/AtomToken.js +66 -184
  93. package/node_modules/music-metadata/lib/mp4/MP4Parser.d.ts +4 -6
  94. package/node_modules/music-metadata/lib/mp4/MP4Parser.js +128 -255
  95. package/node_modules/music-metadata/lib/mp4/MP4TagMapper.d.ts +4 -4
  96. package/node_modules/music-metadata/lib/mp4/MP4TagMapper.js +12 -8
  97. package/node_modules/music-metadata/lib/mpeg/ExtendedLameHeader.d.ts +5 -5
  98. package/node_modules/music-metadata/lib/mpeg/ExtendedLameHeader.js +10 -7
  99. package/node_modules/music-metadata/lib/mpeg/MpegParser.d.ts +4 -17
  100. package/node_modules/music-metadata/lib/mpeg/MpegParser.js +131 -176
  101. package/node_modules/music-metadata/lib/mpeg/ReplayGainDataFormat.d.ts +14 -16
  102. package/node_modules/music-metadata/lib/mpeg/ReplayGainDataFormat.js +19 -14
  103. package/node_modules/music-metadata/lib/mpeg/XingTag.d.ts +7 -6
  104. package/node_modules/music-metadata/lib/mpeg/XingTag.js +18 -14
  105. package/node_modules/music-metadata/lib/musepack/index.d.ts +5 -0
  106. package/node_modules/music-metadata/lib/musepack/index.js +32 -0
  107. package/node_modules/music-metadata/lib/musepack/sv7/BitReader.d.ts +2 -2
  108. package/node_modules/music-metadata/lib/musepack/sv7/BitReader.js +24 -16
  109. package/node_modules/music-metadata/lib/musepack/sv7/MpcSv7Parser.d.ts +1 -1
  110. package/node_modules/music-metadata/lib/musepack/sv7/MpcSv7Parser.js +15 -16
  111. package/node_modules/music-metadata/lib/musepack/sv7/StreamVersion7.d.ts +1 -1
  112. package/node_modules/music-metadata/lib/musepack/sv7/StreamVersion7.js +7 -5
  113. package/node_modules/music-metadata/lib/musepack/sv8/MpcSv8Parser.d.ts +1 -1
  114. package/node_modules/music-metadata/lib/musepack/sv8/MpcSv8Parser.js +17 -18
  115. package/node_modules/music-metadata/lib/musepack/sv8/StreamVersion8.d.ts +3 -5
  116. package/node_modules/music-metadata/lib/musepack/sv8/StreamVersion8.js +12 -14
  117. package/node_modules/music-metadata/lib/ogg/{OggToken.d.ts → Ogg.d.ts} +6 -17
  118. package/node_modules/music-metadata/lib/ogg/Ogg.js +2 -0
  119. package/node_modules/music-metadata/lib/ogg/OggParser.d.ts +12 -16
  120. package/node_modules/music-metadata/lib/ogg/OggParser.js +102 -101
  121. package/node_modules/music-metadata/lib/ogg/opus/Opus.d.ts +2 -17
  122. package/node_modules/music-metadata/lib/ogg/opus/Opus.js +14 -13
  123. package/node_modules/music-metadata/lib/ogg/opus/OpusParser.d.ts +25 -0
  124. package/node_modules/music-metadata/lib/ogg/opus/{OpusStream.js → OpusParser.js} +18 -18
  125. package/node_modules/music-metadata/lib/ogg/speex/Speex.d.ts +1 -1
  126. package/node_modules/music-metadata/lib/ogg/speex/Speex.js +19 -16
  127. package/node_modules/music-metadata/lib/ogg/speex/SpeexParser.d.ts +22 -0
  128. package/node_modules/music-metadata/lib/ogg/speex/{SpeexStream.js → SpeexParser.js} +13 -9
  129. package/node_modules/music-metadata/lib/ogg/theora/Theora.d.ts +1 -1
  130. package/node_modules/music-metadata/lib/ogg/theora/Theora.js +11 -8
  131. package/node_modules/music-metadata/lib/ogg/theora/TheoraParser.d.ts +28 -0
  132. package/node_modules/music-metadata/lib/ogg/theora/TheoraParser.js +44 -0
  133. package/node_modules/music-metadata/lib/ogg/vorbis/Vorbis.d.ts +7 -6
  134. package/node_modules/music-metadata/lib/ogg/vorbis/Vorbis.js +29 -34
  135. package/node_modules/music-metadata/lib/ogg/vorbis/VorbisDecoder.d.ts +1 -1
  136. package/node_modules/music-metadata/lib/ogg/vorbis/VorbisDecoder.js +9 -6
  137. package/node_modules/music-metadata/lib/ogg/vorbis/VorbisParser.d.ts +36 -0
  138. package/node_modules/music-metadata/lib/ogg/vorbis/VorbisParser.js +128 -0
  139. package/node_modules/music-metadata/lib/ogg/vorbis/VorbisTagMapper.d.ts +3 -3
  140. package/node_modules/music-metadata/lib/ogg/vorbis/VorbisTagMapper.js +9 -5
  141. package/node_modules/music-metadata/lib/riff/RiffChunk.d.ts +5 -5
  142. package/node_modules/music-metadata/lib/riff/RiffChunk.js +9 -5
  143. package/node_modules/music-metadata/lib/riff/RiffInfoTagMap.d.ts +2 -2
  144. package/node_modules/music-metadata/lib/riff/RiffInfoTagMap.js +25 -20
  145. package/node_modules/music-metadata/lib/type.d.ts +52 -121
  146. package/node_modules/music-metadata/lib/type.js +6 -2
  147. package/node_modules/music-metadata/lib/wav/BwfChunk.d.ts +1 -1
  148. package/node_modules/music-metadata/lib/wav/BwfChunk.js +11 -8
  149. package/node_modules/music-metadata/lib/wav/WaveChunk.d.ts +20 -50
  150. package/node_modules/music-metadata/lib/wav/WaveChunk.js +32 -45
  151. package/node_modules/music-metadata/lib/wav/WaveParser.d.ts +2 -2
  152. package/node_modules/music-metadata/lib/wav/WaveParser.js +39 -46
  153. package/node_modules/music-metadata/lib/wavpack/WavPackParser.d.ts +2 -18
  154. package/node_modules/music-metadata/lib/wavpack/WavPackParser.js +32 -42
  155. package/node_modules/music-metadata/lib/wavpack/WavPackToken.d.ts +18 -14
  156. package/node_modules/music-metadata/lib/wavpack/WavPackToken.js +30 -24
  157. package/node_modules/music-metadata/package.json +74 -81
  158. package/package.json +1 -5
  159. package/node_modules/@borewit/text-codec/LICENSE.txt +0 -9
  160. package/node_modules/@borewit/text-codec/README.md +0 -87
  161. package/node_modules/@borewit/text-codec/lib/index.d.ts +0 -6
  162. package/node_modules/@borewit/text-codec/lib/index.js +0 -380
  163. package/node_modules/@borewit/text-codec/package.json +0 -70
  164. package/node_modules/music-metadata/lib/ParseError.d.ts +0 -87
  165. package/node_modules/music-metadata/lib/ParseError.js +0 -38
  166. package/node_modules/music-metadata/lib/aiff/AiffLoader.d.ts +0 -2
  167. package/node_modules/music-metadata/lib/aiff/AiffLoader.js +0 -8
  168. package/node_modules/music-metadata/lib/apev2/Apev2Loader.d.ts +0 -2
  169. package/node_modules/music-metadata/lib/apev2/Apev2Loader.js +0 -8
  170. package/node_modules/music-metadata/lib/asf/AsfGuid.d.ts +0 -83
  171. package/node_modules/music-metadata/lib/asf/AsfGuid.js +0 -109
  172. package/node_modules/music-metadata/lib/asf/AsfLoader.d.ts +0 -2
  173. package/node_modules/music-metadata/lib/asf/AsfLoader.js +0 -8
  174. package/node_modules/music-metadata/lib/dsdiff/DsdiffLoader.d.ts +0 -2
  175. package/node_modules/music-metadata/lib/dsdiff/DsdiffLoader.js +0 -8
  176. package/node_modules/music-metadata/lib/dsf/DsfLoader.d.ts +0 -2
  177. package/node_modules/music-metadata/lib/dsf/DsfLoader.js +0 -8
  178. package/node_modules/music-metadata/lib/ebml/EbmlIterator.d.ts +0 -67
  179. package/node_modules/music-metadata/lib/ebml/EbmlIterator.js +0 -218
  180. package/node_modules/music-metadata/lib/ebml/types.d.ts +0 -37
  181. package/node_modules/music-metadata/lib/ebml/types.js +0 -8
  182. package/node_modules/music-metadata/lib/flac/FlacLoader.d.ts +0 -2
  183. package/node_modules/music-metadata/lib/flac/FlacLoader.js +0 -8
  184. package/node_modules/music-metadata/lib/flac/FlacToken.d.ts +0 -45
  185. package/node_modules/music-metadata/lib/flac/FlacToken.js +0 -63
  186. package/node_modules/music-metadata/lib/id3v2/FrameHeader.d.ts +0 -31
  187. package/node_modules/music-metadata/lib/id3v2/FrameHeader.js +0 -73
  188. package/node_modules/music-metadata/lib/id3v2/ID3v2ChapterToken.d.ts +0 -11
  189. package/node_modules/music-metadata/lib/id3v2/ID3v2ChapterToken.js +0 -17
  190. package/node_modules/music-metadata/lib/lrc/LyricsParser.d.ts +0 -9
  191. package/node_modules/music-metadata/lib/lrc/LyricsParser.js +0 -45
  192. package/node_modules/music-metadata/lib/matroska/MatroskaLoader.d.ts +0 -2
  193. package/node_modules/music-metadata/lib/matroska/MatroskaLoader.js +0 -8
  194. package/node_modules/music-metadata/lib/mp4/Mp4Loader.d.ts +0 -2
  195. package/node_modules/music-metadata/lib/mp4/Mp4Loader.js +0 -8
  196. package/node_modules/music-metadata/lib/mpeg/MpegLoader.d.ts +0 -2
  197. package/node_modules/music-metadata/lib/mpeg/MpegLoader.js +0 -8
  198. package/node_modules/music-metadata/lib/musepack/MusepackConentError.d.ts +0 -15
  199. package/node_modules/music-metadata/lib/musepack/MusepackConentError.js +0 -3
  200. package/node_modules/music-metadata/lib/musepack/MusepackLoader.d.ts +0 -2
  201. package/node_modules/music-metadata/lib/musepack/MusepackLoader.js +0 -8
  202. package/node_modules/music-metadata/lib/musepack/MusepackParser.d.ts +0 -4
  203. package/node_modules/music-metadata/lib/musepack/MusepackParser.js +0 -30
  204. package/node_modules/music-metadata/lib/ogg/OggLoader.d.ts +0 -2
  205. package/node_modules/music-metadata/lib/ogg/OggLoader.js +0 -8
  206. package/node_modules/music-metadata/lib/ogg/OggToken.js +0 -41
  207. package/node_modules/music-metadata/lib/ogg/flac/FlacStream.d.ts +0 -29
  208. package/node_modules/music-metadata/lib/ogg/flac/FlacStream.js +0 -74
  209. package/node_modules/music-metadata/lib/ogg/opus/OpusStream.d.ts +0 -24
  210. package/node_modules/music-metadata/lib/ogg/speex/SpeexStream.d.ts +0 -20
  211. package/node_modules/music-metadata/lib/ogg/theora/TheoraStream.d.ts +0 -25
  212. package/node_modules/music-metadata/lib/ogg/theora/TheoraStream.js +0 -39
  213. package/node_modules/music-metadata/lib/ogg/vorbis/VorbisStream.d.ts +0 -53
  214. package/node_modules/music-metadata/lib/ogg/vorbis/VorbisStream.js +0 -136
  215. package/node_modules/music-metadata/lib/wav/WaveLoader.d.ts +0 -2
  216. package/node_modules/music-metadata/lib/wav/WaveLoader.js +0 -8
  217. package/node_modules/music-metadata/lib/wavpack/WavPackLoader.d.ts +0 -2
  218. package/node_modules/music-metadata/lib/wavpack/WavPackLoader.js +0 -8
  219. package/node_modules/music-metadata/node_modules/file-type/core.d.ts +0 -253
  220. package/node_modules/music-metadata/node_modules/file-type/core.js +0 -2899
  221. package/node_modules/music-metadata/node_modules/file-type/index.d.ts +0 -98
  222. package/node_modules/music-metadata/node_modules/file-type/index.js +0 -163
  223. package/node_modules/music-metadata/node_modules/file-type/license +0 -9
  224. package/node_modules/music-metadata/node_modules/file-type/package.json +0 -290
  225. package/node_modules/music-metadata/node_modules/file-type/readme.md +0 -667
  226. package/node_modules/music-metadata/node_modules/file-type/supported.js +0 -360
  227. package/node_modules/music-metadata/node_modules/file-type/util.js +0 -60
  228. package/node_modules/music-metadata/node_modules/strtok3/LICENSE.txt +0 -21
  229. package/node_modules/music-metadata/node_modules/strtok3/README.md +0 -399
  230. package/node_modules/music-metadata/node_modules/strtok3/lib/AbstractTokenizer.d.ts +0 -76
  231. package/node_modules/music-metadata/node_modules/strtok3/lib/AbstractTokenizer.js +0 -111
  232. package/node_modules/music-metadata/node_modules/strtok3/lib/BlobTokenizer.d.ts +0 -29
  233. package/node_modules/music-metadata/node_modules/strtok3/lib/BlobTokenizer.js +0 -53
  234. package/node_modules/music-metadata/node_modules/strtok3/lib/BufferTokenizer.d.ts +0 -29
  235. package/node_modules/music-metadata/node_modules/strtok3/lib/BufferTokenizer.js +0 -52
  236. package/node_modules/music-metadata/node_modules/strtok3/lib/FileTokenizer.d.ts +0 -37
  237. package/node_modules/music-metadata/node_modules/strtok3/lib/FileTokenizer.js +0 -61
  238. package/node_modules/music-metadata/node_modules/strtok3/lib/ReadStreamTokenizer.d.ts +0 -34
  239. package/node_modules/music-metadata/node_modules/strtok3/lib/ReadStreamTokenizer.js +0 -107
  240. package/node_modules/music-metadata/node_modules/strtok3/lib/core.d.ts +0 -40
  241. package/node_modules/music-metadata/node_modules/strtok3/lib/core.js +0 -62
  242. package/node_modules/music-metadata/node_modules/strtok3/lib/index.d.ts +0 -16
  243. package/node_modules/music-metadata/node_modules/strtok3/lib/index.js +0 -22
  244. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/AbstractStreamReader.d.ts +0 -54
  245. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/AbstractStreamReader.js +0 -71
  246. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/Deferred.d.ts +0 -6
  247. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/Deferred.js +0 -10
  248. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/Errors.d.ts +0 -10
  249. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/Errors.js +0 -16
  250. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/StreamReader.d.ts +0 -29
  251. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/StreamReader.js +0 -83
  252. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamByobReader.d.ts +0 -14
  253. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamByobReader.js +0 -27
  254. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamDefaultReader.d.ts +0 -19
  255. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamDefaultReader.js +0 -62
  256. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamReader.d.ts +0 -14
  257. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamReader.js +0 -13
  258. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamReaderFactory.d.ts +0 -5
  259. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamReaderFactory.js +0 -19
  260. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/index.d.ts +0 -6
  261. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/index.js +0 -5
  262. package/node_modules/music-metadata/node_modules/strtok3/lib/types.d.ts +0 -139
  263. package/node_modules/music-metadata/node_modules/strtok3/lib/types.js +0 -1
  264. package/node_modules/music-metadata/node_modules/strtok3/package.json +0 -94
  265. package/node_modules/music-metadata/node_modules/token-types/LICENSE.txt +0 -9
  266. package/node_modules/music-metadata/node_modules/token-types/README.md +0 -120
  267. package/node_modules/music-metadata/node_modules/token-types/lib/index.d.ts +0 -135
  268. package/node_modules/music-metadata/node_modules/token-types/lib/index.js +0 -401
  269. package/node_modules/music-metadata/node_modules/token-types/package.json +0 -81
  270. package/node_modules/sprintf-js/.npmignore +0 -1
  271. package/node_modules/sprintf-js/LICENSE +0 -24
  272. package/node_modules/sprintf-js/README.md +0 -88
  273. package/node_modules/sprintf-js/bower.json +0 -14
  274. package/node_modules/sprintf-js/demo/angular.html +0 -20
  275. package/node_modules/sprintf-js/dist/angular-sprintf.min.js +0 -4
  276. package/node_modules/sprintf-js/dist/angular-sprintf.min.js.map +0 -1
  277. package/node_modules/sprintf-js/dist/angular-sprintf.min.map +0 -1
  278. package/node_modules/sprintf-js/dist/sprintf.min.js +0 -4
  279. package/node_modules/sprintf-js/dist/sprintf.min.js.map +0 -1
  280. package/node_modules/sprintf-js/dist/sprintf.min.map +0 -1
  281. package/node_modules/sprintf-js/gruntfile.js +0 -36
  282. package/node_modules/sprintf-js/package.json +0 -22
  283. package/node_modules/sprintf-js/src/angular-sprintf.js +0 -18
  284. package/node_modules/sprintf-js/src/sprintf.js +0 -208
  285. package/node_modules/sprintf-js/test/test.js +0 -82
  286. package/node_modules/uint8array-extras/index.d.ts +0 -331
  287. package/node_modules/uint8array-extras/index.js +0 -318
  288. package/node_modules/uint8array-extras/license +0 -9
  289. package/node_modules/uint8array-extras/package.json +0 -54
  290. package/node_modules/uint8array-extras/readme.md +0 -318
  291. package/node_modules/win-guid/LICENSE.txt +0 -9
  292. package/node_modules/win-guid/README.md +0 -113
  293. package/node_modules/win-guid/lib/guid.d.ts +0 -20
  294. package/node_modules/win-guid/lib/guid.js +0 -107
  295. package/node_modules/win-guid/package.json +0 -55
  296. /package/node_modules/{argparse → mammoth/node_modules/argparse}/LICENSE +0 -0
  297. /package/node_modules/{argparse → mammoth/node_modules/argparse}/README.md +0 -0
  298. /package/node_modules/{argparse → mammoth/node_modules/argparse}/index.js +0 -0
  299. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/append/constant.js +0 -0
  300. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/append.js +0 -0
  301. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/count.js +0 -0
  302. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/help.js +0 -0
  303. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/store/constant.js +0 -0
  304. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/store/false.js +0 -0
  305. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/store/true.js +0 -0
  306. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/store.js +0 -0
  307. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/subparsers.js +0 -0
  308. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/version.js +0 -0
  309. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action.js +0 -0
  310. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action_container.js +0 -0
  311. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/argparse.js +0 -0
  312. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/argument/error.js +0 -0
  313. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/argument/exclusive.js +0 -0
  314. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/argument/group.js +0 -0
  315. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/argument_parser.js +0 -0
  316. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/const.js +0 -0
  317. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/help/added_formatters.js +0 -0
  318. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/help/formatter.js +0 -0
  319. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/namespace.js +0 -0
  320. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/utils.js +0 -0
  321. /package/node_modules/{argparse → mammoth/node_modules/argparse}/package.json +0 -0
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Extended Lame Header
3
3
  */
4
- import type { IGetToken } from 'strtok3';
5
- import { type IReplayGain } from './ReplayGainDataFormat.js';
4
+ import { IGetToken } from 'strtok3/lib/core';
5
+ import { IReplayGain } from './ReplayGainDataFormat';
6
6
  /**
7
7
  * LAME Tag, extends the Xing header format
8
8
  * First added in LAME 3.12 for VBR
@@ -12,9 +12,9 @@ export interface IExtendedLameHeader {
12
12
  revision: number;
13
13
  vbr_method: number;
14
14
  lowpass_filter: number;
15
- track_peak?: number | null;
16
- track_gain?: IReplayGain;
17
- album_gain?: IReplayGain;
15
+ track_peak?: number;
16
+ track_gain: IReplayGain;
17
+ album_gain: IReplayGain;
18
18
  music_length: number;
19
19
  music_crc: number;
20
20
  header_crc: number;
@@ -1,15 +1,18 @@
1
+ "use strict";
1
2
  /**
2
3
  * Extended Lame Header
3
4
  */
4
- import * as Token from 'token-types';
5
- import * as common from '../common/Util.js';
6
- import { ReplayGain } from './ReplayGainDataFormat.js';
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ExtendedLameHeader = void 0;
7
+ const Token = require("token-types");
8
+ const common = require("../common/Util");
9
+ const ReplayGainDataFormat_1 = require("./ReplayGainDataFormat");
7
10
  /**
8
11
  * Info Tag
9
12
  * @link http://gabriel.mp3-tech.org/mp3infotag.html
10
13
  * @link https://github.com/quodlibet/mutagen/blob/abd58ee58772224334a18817c3fb31103572f70e/mutagen/mp3/_util.py#L112
11
14
  */
12
- export const ExtendedLameHeader = {
15
+ exports.ExtendedLameHeader = {
13
16
  len: 27,
14
17
  get: (buf, off) => {
15
18
  const track_peak = Token.UINT32_BE.get(buf, off + 2);
@@ -17,9 +20,9 @@ export const ExtendedLameHeader = {
17
20
  revision: common.getBitAllignedNumber(buf, off, 0, 4),
18
21
  vbr_method: common.getBitAllignedNumber(buf, off, 4, 4),
19
22
  lowpass_filter: 100 * Token.UINT8.get(buf, off + 1),
20
- track_peak: track_peak === 0 ? null : track_peak / 2 ** 23,
21
- track_gain: ReplayGain.get(buf, 6),
22
- album_gain: ReplayGain.get(buf, 8),
23
+ track_peak: track_peak === 0 ? undefined : track_peak / Math.pow(2, 23),
24
+ track_gain: ReplayGainDataFormat_1.ReplayGain.get(buf, 6),
25
+ album_gain: ReplayGainDataFormat_1.ReplayGain.get(buf, 8),
23
26
  music_length: Token.UINT32_BE.get(buf, off + 20),
24
27
  music_crc: Token.UINT8.get(buf, off + 24),
25
28
  header_crc: Token.UINT16_BE.get(buf, off + 24)
@@ -1,26 +1,14 @@
1
- import { AbstractID3Parser } from '../id3v2/AbstractID3Parser.js';
2
- declare const MpegContentError_base: {
3
- new (message: string): {
4
- readonly fileType: string;
5
- toString(): string;
6
- name: "UnexpectedFileContentError";
7
- message: string;
8
- stack?: string;
9
- };
10
- captureStackTrace(targetObject: object, constructorOpt?: Function): void;
11
- prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any;
12
- stackTraceLimit: number;
13
- };
14
- export declare class MpegContentError extends MpegContentError_base {
15
- }
1
+ import { AbstractID3Parser } from '../id3v2/AbstractID3Parser';
16
2
  export declare class MpegParser extends AbstractID3Parser {
17
3
  private frameCount;
18
4
  private syncFrameCount;
5
+ private countSkipFrameData;
19
6
  private totalDataLength;
20
- private audioFrameHeader?;
7
+ private audioFrameHeader;
21
8
  private bitrates;
22
9
  private offset;
23
10
  private frame_size;
11
+ private crc;
24
12
  private calculateEofDuration;
25
13
  private samplesPerFrame;
26
14
  private buf_frame_header;
@@ -59,4 +47,3 @@ export declare class MpegParser extends AbstractID3Parser {
59
47
  private skipFrameData;
60
48
  private areAllSame;
61
49
  }
62
- export {};
@@ -1,13 +1,13 @@
1
- import * as Token from 'token-types';
2
- import { EndOfStreamError } from 'strtok3';
3
- import initDebug from 'debug';
4
- import * as common from '../common/Util.js';
5
- import { AbstractID3Parser } from '../id3v2/AbstractID3Parser.js';
6
- import { InfoTagHeaderTag, LameEncoderVersion, readXingHeader } from './XingTag.js';
7
- import { makeUnexpectedFileContentError } from '../ParseError.js';
8
- const debug = initDebug('music-metadata:parser:mpeg');
9
- export class MpegContentError extends makeUnexpectedFileContentError('MPEG') {
10
- }
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MpegParser = void 0;
4
+ const Token = require("token-types");
5
+ const core_1 = require("strtok3/lib/core");
6
+ const debug_1 = require("debug");
7
+ const common = require("../common/Util");
8
+ const AbstractID3Parser_1 = require("../id3v2/AbstractID3Parser");
9
+ const XingTag_1 = require("./XingTag");
10
+ const debug = (0, debug_1.default)('music-metadata:parser:mpeg');
11
11
  /**
12
12
  * Cache buffer size used for searching synchronization preabmle
13
13
  */
@@ -22,8 +22,8 @@ const MPEG4 = {
22
22
  */
23
23
  AudioObjectTypes: [
24
24
  'AAC Main',
25
- 'AAC LC', // Low Complexity
26
- 'AAC SSR', // Scalable Sample Rate
25
+ 'AAC LC',
26
+ 'AAC SSR',
27
27
  'AAC LTP' // Long Term Prediction
28
28
  ],
29
29
  /**
@@ -31,7 +31,7 @@ const MPEG4 = {
31
31
  * https://wiki.multimedia.cx/index.php/MPEG-4_Audio#Sampling_Frequencies
32
32
  */
33
33
  SamplingFrequencies: [
34
- 96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350, null, null, -1
34
+ 96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350, undefined, undefined, -1
35
35
  ]
36
36
  /**
37
37
  * Channel Configurations
@@ -55,24 +55,6 @@ const MPEG4_ChannelConfigurations = [
55
55
  */
56
56
  class MpegFrameHeader {
57
57
  constructor(buf, off) {
58
- // E(15,12): Bitrate index
59
- this.bitrateIndex = null;
60
- // F(11,10): Sampling rate frequency index
61
- this.sampRateFreqIndex = null;
62
- // G(9): Padding bit
63
- this.padding = null;
64
- // H(8): Private bit
65
- this.privateBit = null;
66
- // I(7,6): Channel Mode
67
- this.channelModeIndex = null;
68
- // J(5,4): Mode extension (Only used in Joint stereo)
69
- this.modeExtension = null;
70
- // L(2): Original
71
- this.isOriginalMedia = null;
72
- this.version = null;
73
- this.bitrate = null;
74
- this.samplingRate = null;
75
- this.frameLength = 0;
76
58
  // B(20,19): MPEG Audio versionIndex ID
77
59
  this.versionIndex = common.getBitAllignedNumber(buf, off + 1, 3, 2);
78
60
  // C(18,17): Layer description
@@ -87,7 +69,7 @@ class MpegFrameHeader {
87
69
  this.isProtectedByCRC = !common.isBitSet(buf, off + 1, 7);
88
70
  }
89
71
  calcDuration(numFrames) {
90
- return this.samplingRate == null ? null : (numFrames * this.calcSamplesPerFrame() / this.samplingRate);
72
+ return numFrames * this.calcSamplesPerFrame() / this.samplingRate;
91
73
  }
92
74
  calcSamplesPerFrame() {
93
75
  return MpegFrameHeader.samplesInFrameTable[this.version === 1 ? 0 : 1][this.layer];
@@ -100,7 +82,7 @@ class MpegFrameHeader {
100
82
  if (this.version === 1) {
101
83
  return 17;
102
84
  }
103
- if (this.version === 2 || this.version === 2.5) {
85
+ else if (this.version === 2 || this.version === 2.5) {
104
86
  return 9;
105
87
  }
106
88
  }
@@ -108,11 +90,10 @@ class MpegFrameHeader {
108
90
  if (this.version === 1) {
109
91
  return 32;
110
92
  }
111
- if (this.version === 2 || this.version === 2.5) {
93
+ else if (this.version === 2 || this.version === 2.5) {
112
94
  return 17;
113
95
  }
114
96
  }
115
- return null;
116
97
  }
117
98
  calcSlotSize() {
118
99
  return [null, 4, 1, 1][this.layer];
@@ -143,19 +124,19 @@ class MpegFrameHeader {
143
124
  // Calculate bitrate
144
125
  const bitrateInKbps = this.calcBitrate();
145
126
  if (!bitrateInKbps) {
146
- throw new MpegContentError('Cannot determine bit-rate');
127
+ throw new Error('Cannot determine bit-rate');
147
128
  }
148
129
  this.bitrate = bitrateInKbps * 1000;
149
130
  // Calculate sampling rate
150
131
  this.samplingRate = this.calcSamplingRate();
151
132
  if (this.samplingRate == null) {
152
- throw new MpegContentError('Cannot determine sampling-rate');
133
+ throw new Error('Cannot determine sampling-rate');
153
134
  }
154
135
  }
155
136
  parseAdtsHeader(buf, off) {
156
- debug("layer=0 => ADTS");
137
+ debug(`layer=0 => ADTS`);
157
138
  this.version = this.versionIndex === 2 ? 4 : 2;
158
- this.container = `ADTS/MPEG-${this.version}`;
139
+ this.container = 'ADTS/MPEG-' + this.version;
159
140
  const profileIndex = common.getBitAllignedNumber(buf, off + 2, 0, 2);
160
141
  this.codec = 'AAC';
161
142
  this.codecProfile = MPEG4.AudioObjectTypes[profileIndex];
@@ -165,22 +146,19 @@ class MpegFrameHeader {
165
146
  debug(`sampling-rate=${this.samplingRate}`);
166
147
  const channelIndex = common.getBitAllignedNumber(buf, off + 2, 7, 3);
167
148
  this.mp4ChannelConfig = MPEG4_ChannelConfigurations[channelIndex];
168
- debug(`channel-config=${this.mp4ChannelConfig ? this.mp4ChannelConfig.join('+') : '?'}`);
149
+ debug(`channel-config=${this.mp4ChannelConfig.join('+')}`);
169
150
  this.frameLength = common.getBitAllignedNumber(buf, off + 3, 6, 2) << 11;
170
151
  }
171
152
  calcBitrate() {
172
153
  if (this.bitrateIndex === 0x00 || // free
173
154
  this.bitrateIndex === 0x0F) { // reserved
174
- return null;
175
- }
176
- if (this.version && this.bitrateIndex) {
177
- const codecIndex = 10 * Math.floor(this.version) + this.layer;
178
- return MpegFrameHeader.bitrate_index[this.bitrateIndex][codecIndex];
155
+ return;
179
156
  }
180
- return null;
157
+ const codecIndex = `${Math.floor(this.version)}${this.layer}`;
158
+ return MpegFrameHeader.bitrate_index[this.bitrateIndex][codecIndex];
181
159
  }
182
160
  calcSamplingRate() {
183
- if (this.sampRateFreqIndex === 0x03 || this.version === null || this.sampRateFreqIndex == null)
161
+ if (this.sampRateFreqIndex === 0x03)
184
162
  return null; // 'reserved'
185
163
  return MpegFrameHeader.sampling_rate_freq_index[this.version][this.sampRateFreqIndex];
186
164
  }
@@ -191,29 +169,29 @@ MpegFrameHeader.VersionID = [2.5, null, 2, 1];
191
169
  MpegFrameHeader.LayerDescription = [0, 3, 2, 1];
192
170
  MpegFrameHeader.ChannelMode = ['stereo', 'joint_stereo', 'dual_channel', 'mono'];
193
171
  MpegFrameHeader.bitrate_index = {
194
- 1: { 11: 32, 12: 32, 13: 32, 21: 32, 22: 8, 23: 8 },
195
- 2: { 11: 64, 12: 48, 13: 40, 21: 48, 22: 16, 23: 16 },
196
- 3: { 11: 96, 12: 56, 13: 48, 21: 56, 22: 24, 23: 24 },
197
- 4: { 11: 128, 12: 64, 13: 56, 21: 64, 22: 32, 23: 32 },
198
- 5: { 11: 160, 12: 80, 13: 64, 21: 80, 22: 40, 23: 40 },
199
- 6: { 11: 192, 12: 96, 13: 80, 21: 96, 22: 48, 23: 48 },
200
- 7: { 11: 224, 12: 112, 13: 96, 21: 112, 22: 56, 23: 56 },
201
- 8: { 11: 256, 12: 128, 13: 112, 21: 128, 22: 64, 23: 64 },
202
- 9: { 11: 288, 12: 160, 13: 128, 21: 144, 22: 80, 23: 80 },
203
- 10: { 11: 320, 12: 192, 13: 160, 21: 160, 22: 96, 23: 96 },
204
- 11: { 11: 352, 12: 224, 13: 192, 21: 176, 22: 112, 23: 112 },
205
- 12: { 11: 384, 12: 256, 13: 224, 21: 192, 22: 128, 23: 128 },
206
- 13: { 11: 416, 12: 320, 13: 256, 21: 224, 22: 144, 23: 144 },
207
- 14: { 11: 448, 12: 384, 13: 320, 21: 256, 22: 160, 23: 160 }
172
+ 0x01: { 11: 32, 12: 32, 13: 32, 21: 32, 22: 8, 23: 8 },
173
+ 0x02: { 11: 64, 12: 48, 13: 40, 21: 48, 22: 16, 23: 16 },
174
+ 0x03: { 11: 96, 12: 56, 13: 48, 21: 56, 22: 24, 23: 24 },
175
+ 0x04: { 11: 128, 12: 64, 13: 56, 21: 64, 22: 32, 23: 32 },
176
+ 0x05: { 11: 160, 12: 80, 13: 64, 21: 80, 22: 40, 23: 40 },
177
+ 0x06: { 11: 192, 12: 96, 13: 80, 21: 96, 22: 48, 23: 48 },
178
+ 0x07: { 11: 224, 12: 112, 13: 96, 21: 112, 22: 56, 23: 56 },
179
+ 0x08: { 11: 256, 12: 128, 13: 112, 21: 128, 22: 64, 23: 64 },
180
+ 0x09: { 11: 288, 12: 160, 13: 128, 21: 144, 22: 80, 23: 80 },
181
+ 0x0A: { 11: 320, 12: 192, 13: 160, 21: 160, 22: 96, 23: 96 },
182
+ 0x0B: { 11: 352, 12: 224, 13: 192, 21: 176, 22: 112, 23: 112 },
183
+ 0x0C: { 11: 384, 12: 256, 13: 224, 21: 192, 22: 128, 23: 128 },
184
+ 0x0D: { 11: 416, 12: 320, 13: 256, 21: 224, 22: 144, 23: 144 },
185
+ 0x0E: { 11: 448, 12: 384, 13: 320, 21: 256, 22: 160, 23: 160 }
208
186
  };
209
187
  MpegFrameHeader.sampling_rate_freq_index = {
210
- 1: { 0: 44100, 1: 48000, 2: 32000 },
211
- 2: { 0: 22050, 1: 24000, 2: 16000 },
212
- 2.5: { 0: 11025, 1: 12000, 2: 8000 }
188
+ 1: { 0x00: 44100, 0x01: 48000, 0x02: 32000 },
189
+ 2: { 0x00: 22050, 0x01: 24000, 0x02: 16000 },
190
+ 2.5: { 0x00: 11025, 0x01: 12000, 0x02: 8000 }
213
191
  };
214
192
  MpegFrameHeader.samplesInFrameTable = [
215
193
  /* Layer I II III */
216
- [0, 384, 1152, 1152], // MPEG-1
194
+ [0, 384, 1152, 1152],
217
195
  [0, 384, 1152, 576] // MPEG-2(.5
218
196
  ];
219
197
  /**
@@ -226,26 +204,20 @@ const FrameHeader = {
226
204
  }
227
205
  };
228
206
  function getVbrCodecProfile(vbrScale) {
229
- return `V${Math.floor((100 - vbrScale) / 10)}`;
207
+ return 'V' + Math.floor((100 - vbrScale) / 10);
230
208
  }
231
- export class MpegParser extends AbstractID3Parser {
209
+ class MpegParser extends AbstractID3Parser_1.AbstractID3Parser {
232
210
  constructor() {
233
211
  super(...arguments);
234
212
  this.frameCount = 0;
235
213
  this.syncFrameCount = -1;
214
+ this.countSkipFrameData = 0;
236
215
  this.totalDataLength = 0;
237
216
  this.bitrates = [];
238
- this.offset = 0;
239
- this.frame_size = 0;
240
217
  this.calculateEofDuration = false;
241
- this.samplesPerFrame = null;
242
- this.buf_frame_header = new Uint8Array(4);
243
- /**
244
- * Number of bytes already parsed since beginning of stream / file
245
- */
246
- this.mpegOffset = null;
218
+ this.buf_frame_header = Buffer.alloc(4);
247
219
  this.syncPeek = {
248
- buf: new Uint8Array(maxPeekLen),
220
+ buf: Buffer.alloc(maxPeekLen),
249
221
  len: 0
250
222
  };
251
223
  }
@@ -254,7 +226,6 @@ export class MpegParser extends AbstractID3Parser {
254
226
  */
255
227
  async postId3v2Parse() {
256
228
  this.metadata.setFormat('lossless', false);
257
- this.metadata.setAudioOnly();
258
229
  try {
259
230
  let quit = false;
260
231
  while (!quit) {
@@ -263,18 +234,14 @@ export class MpegParser extends AbstractID3Parser {
263
234
  }
264
235
  }
265
236
  catch (err) {
266
- if (err instanceof EndOfStreamError) {
267
- debug("End-of-stream");
237
+ if (err instanceof core_1.EndOfStreamError) {
238
+ debug(`End-of-stream`);
268
239
  if (this.calculateEofDuration) {
269
- if (this.samplesPerFrame !== null) {
270
- const numberOfSamples = this.frameCount * this.samplesPerFrame;
271
- this.metadata.setFormat('numberOfSamples', numberOfSamples);
272
- if (this.metadata.format.sampleRate) {
273
- const duration = numberOfSamples / this.metadata.format.sampleRate;
274
- debug(`Calculate duration at EOF: ${duration} sec.`, duration);
275
- this.metadata.setFormat('duration', duration);
276
- }
277
- }
240
+ const numberOfSamples = this.frameCount * this.samplesPerFrame;
241
+ this.metadata.setFormat('numberOfSamples', numberOfSamples);
242
+ const duration = numberOfSamples / this.metadata.format.sampleRate;
243
+ debug(`Calculate duration at EOF: ${duration} sec.`, duration);
244
+ this.metadata.setFormat('duration', duration);
278
245
  }
279
246
  }
280
247
  else {
@@ -287,27 +254,21 @@ export class MpegParser extends AbstractID3Parser {
287
254
  */
288
255
  finalize() {
289
256
  const format = this.metadata.format;
290
- const hasID3v1 = !!this.metadata.native.ID3v1;
291
- if (this.mpegOffset !== null) {
292
- if (format.duration && this.tokenizer.fileInfo.size) {
293
- const mpegSize = this.tokenizer.fileInfo.size - this.mpegOffset - (hasID3v1 ? 128 : 0);
294
- if (format.codecProfile && format.codecProfile[0] === 'V') {
295
- this.metadata.setFormat('bitrate', mpegSize * 8 / format.duration);
296
- }
297
- }
298
- if (this.tokenizer.fileInfo.size && format.codecProfile === 'CBR') {
299
- const mpegSize = this.tokenizer.fileInfo.size - this.mpegOffset - (hasID3v1 ? 128 : 0);
300
- if (this.frame_size !== null && this.samplesPerFrame !== null) {
301
- const numberOfSamples = Math.round(mpegSize / this.frame_size) * this.samplesPerFrame;
302
- this.metadata.setFormat('numberOfSamples', numberOfSamples);
303
- if (format.sampleRate && !format.duration) {
304
- const duration = numberOfSamples / format.sampleRate;
305
- debug("Calculate CBR duration based on file size: %s", duration);
306
- this.metadata.setFormat('duration', duration);
307
- }
308
- }
257
+ const hasID3v1 = this.metadata.native.hasOwnProperty('ID3v1');
258
+ if (format.duration && this.tokenizer.fileInfo.size) {
259
+ const mpegSize = this.tokenizer.fileInfo.size - this.mpegOffset - (hasID3v1 ? 128 : 0);
260
+ if (format.codecProfile && format.codecProfile[0] === 'V') {
261
+ this.metadata.setFormat('bitrate', mpegSize * 8 / format.duration);
309
262
  }
310
263
  }
264
+ else if (this.tokenizer.fileInfo.size && format.codecProfile === 'CBR') {
265
+ const mpegSize = this.tokenizer.fileInfo.size - this.mpegOffset - (hasID3v1 ? 128 : 0);
266
+ const numberOfSamples = Math.round(mpegSize / this.frame_size) * this.samplesPerFrame;
267
+ this.metadata.setFormat('numberOfSamples', numberOfSamples);
268
+ const duration = numberOfSamples / format.sampleRate;
269
+ debug("Calculate CBR duration based on file size: %s", duration);
270
+ this.metadata.setFormat('duration', duration);
271
+ }
311
272
  }
312
273
  async sync() {
313
274
  let gotFirstSync = false;
@@ -315,7 +276,7 @@ export class MpegParser extends AbstractID3Parser {
315
276
  let bo = 0;
316
277
  this.syncPeek.len = await this.tokenizer.peekBuffer(this.syncPeek.buf, { length: maxPeekLen, mayBeLess: true });
317
278
  if (this.syncPeek.len <= 163) {
318
- throw new EndOfStreamError();
279
+ throw new core_1.EndOfStreamError();
319
280
  }
320
281
  while (true) {
321
282
  if (gotFirstSync && (this.syncPeek.buf[bo] & 0xE0) === 0xE0) {
@@ -331,17 +292,21 @@ export class MpegParser extends AbstractID3Parser {
331
292
  this.syncFrameCount = this.frameCount;
332
293
  return; // sync
333
294
  }
334
- gotFirstSync = false;
335
- bo = this.syncPeek.buf.indexOf(MpegFrameHeader.SyncByte1, bo);
336
- if (bo === -1) {
337
- if (this.syncPeek.len < this.syncPeek.buf.length) {
338
- throw new EndOfStreamError();
295
+ else {
296
+ gotFirstSync = false;
297
+ bo = this.syncPeek.buf.indexOf(MpegFrameHeader.SyncByte1, bo);
298
+ if (bo === -1) {
299
+ if (this.syncPeek.len < this.syncPeek.buf.length) {
300
+ throw new core_1.EndOfStreamError();
301
+ }
302
+ await this.tokenizer.ignore(this.syncPeek.len);
303
+ break; // continue with next buffer
304
+ }
305
+ else {
306
+ ++bo;
307
+ gotFirstSync = true;
339
308
  }
340
- await this.tokenizer.ignore(this.syncPeek.len);
341
- break; // continue with next buffer
342
309
  }
343
- ++bo;
344
- gotFirstSync = true;
345
310
  }
346
311
  }
347
312
  }
@@ -353,18 +318,15 @@ export class MpegParser extends AbstractID3Parser {
353
318
  if (this.frameCount === 0) {
354
319
  this.mpegOffset = this.tokenizer.position - 1;
355
320
  }
356
- await this.tokenizer.peekBuffer(this.buf_frame_header.subarray(1), { length: 3 });
321
+ await this.tokenizer.peekBuffer(this.buf_frame_header, { offset: 1, length: 3 });
357
322
  let header;
358
323
  try {
359
324
  header = FrameHeader.get(this.buf_frame_header, 0);
360
325
  }
361
326
  catch (err) {
362
327
  await this.tokenizer.ignore(1);
363
- if (err instanceof Error) {
364
- this.metadata.addWarning(`Parse error: ${err.message}`);
365
- return false; // sync
366
- }
367
- throw err;
328
+ this.metadata.addWarning('Parse error: ' + err.message);
329
+ return false; // sync
368
330
  }
369
331
  await this.tokenizer.ignore(3);
370
332
  this.metadata.setFormat('container', header.container);
@@ -372,7 +334,7 @@ export class MpegParser extends AbstractID3Parser {
372
334
  this.metadata.setFormat('lossless', false);
373
335
  this.metadata.setFormat('sampleRate', header.samplingRate);
374
336
  this.frameCount++;
375
- return header.version !== null && header.version >= 2 && header.layer === 0 ? this.parseAdts(header) : this.parseAudioFrameHeader(header);
337
+ return header.version >= 2 && header.layer === 0 ? this.parseAdts(header) : this.parseAudioFrameHeader(header);
376
338
  }
377
339
  /**
378
340
  * @return {Promise<boolean>} true if parser should quit
@@ -385,26 +347,23 @@ export class MpegParser extends AbstractID3Parser {
385
347
  }
386
348
  const slot_size = header.calcSlotSize();
387
349
  if (slot_size === null) {
388
- throw new MpegContentError('invalid slot_size');
350
+ throw new Error('invalid slot_size');
389
351
  }
390
352
  const samples_per_frame = header.calcSamplesPerFrame();
391
353
  debug(`samples_per_frame=${samples_per_frame}`);
392
354
  const bps = samples_per_frame / 8.0;
393
- if (header.bitrate !== null && header.samplingRate != null) {
394
- const fsize = (bps * header.bitrate / header.samplingRate) + ((header.padding) ? slot_size : 0);
395
- this.frame_size = Math.floor(fsize);
396
- }
355
+ const fsize = (bps * header.bitrate / header.samplingRate) +
356
+ ((header.padding) ? slot_size : 0);
357
+ this.frame_size = Math.floor(fsize);
397
358
  this.audioFrameHeader = header;
398
- if (header.bitrate !== null) {
399
- this.bitrates.push(header.bitrate);
400
- }
359
+ this.bitrates.push(header.bitrate);
401
360
  // xtra header only exists in first frame
402
361
  if (this.frameCount === 1) {
403
362
  this.offset = FrameHeader.len;
404
363
  await this.skipSideInformation();
405
364
  return false;
406
365
  }
407
- if (this.frameCount === 4) {
366
+ if (this.frameCount === 3) {
408
367
  // the stream is CBR if the first 3 frame bitrates are the same
409
368
  if (this.areAllSame(this.bitrates)) {
410
369
  // Actual calculation will be done in finalize
@@ -432,22 +391,22 @@ export class MpegParser extends AbstractID3Parser {
432
391
  await this.parseCrc();
433
392
  return false;
434
393
  }
435
- await this.skipSideInformation();
436
- return false;
394
+ else {
395
+ await this.skipSideInformation();
396
+ return false;
397
+ }
437
398
  }
438
399
  async parseAdts(header) {
439
- const buf = new Uint8Array(3);
400
+ const buf = Buffer.alloc(3);
440
401
  await this.tokenizer.readBuffer(buf);
441
402
  header.frameLength += common.getBitAllignedNumber(buf, 0, 0, 11);
442
403
  this.totalDataLength += header.frameLength;
443
404
  this.samplesPerFrame = 1024;
444
- if (header.samplingRate !== null) {
445
- const framesPerSec = header.samplingRate / this.samplesPerFrame;
446
- const bytesPerFrame = this.frameCount === 0 ? 0 : this.totalDataLength / this.frameCount;
447
- const bitrate = 8 * bytesPerFrame * framesPerSec + 0.5;
448
- this.metadata.setFormat('bitrate', bitrate);
449
- debug(`frame-count=${this.frameCount}, size=${header.frameLength} bytes, bit-rate=${bitrate}`);
450
- }
405
+ const framesPerSec = header.samplingRate / this.samplesPerFrame;
406
+ const bytesPerFrame = this.frameCount === 0 ? 0 : this.totalDataLength / this.frameCount;
407
+ const bitrate = 8 * bytesPerFrame * framesPerSec + 0.5;
408
+ this.metadata.setFormat('bitrate', bitrate);
409
+ debug(`frame-count=${this.frameCount}, size=${header.frameLength} bytes, bit-rate=${bitrate}`);
451
410
  await this.tokenizer.ignore(header.frameLength > 7 ? header.frameLength - 7 : 1);
452
411
  // Consume remaining header and frame data
453
412
  if (this.frameCount === 3) {
@@ -465,57 +424,51 @@ export class MpegParser extends AbstractID3Parser {
465
424
  return false;
466
425
  }
467
426
  async parseCrc() {
468
- await this.tokenizer.ignore(Token.INT16_BE.len); // Ignore CRC
469
- this.offset += Token.INT16_BE.len;
427
+ this.crc = await this.tokenizer.readNumber(Token.INT16_BE);
428
+ this.offset += 2;
470
429
  return this.skipSideInformation();
471
430
  }
472
431
  async skipSideInformation() {
473
- if (this.audioFrameHeader) {
474
- const sideinfo_length = this.audioFrameHeader.calculateSideInfoLength();
475
- if (sideinfo_length !== null) {
476
- await this.tokenizer.readToken(new Token.Uint8ArrayType(sideinfo_length));
477
- // side information
478
- this.offset += sideinfo_length;
479
- await this.readXtraInfoHeader();
480
- return;
481
- }
482
- }
432
+ const sideinfo_length = this.audioFrameHeader.calculateSideInfoLength();
433
+ // side information
434
+ await this.tokenizer.readToken(new Token.Uint8ArrayType(sideinfo_length));
435
+ this.offset += sideinfo_length;
436
+ await this.readXtraInfoHeader();
437
+ return;
483
438
  }
484
439
  async readXtraInfoHeader() {
485
- const headerTag = await this.tokenizer.readToken(InfoTagHeaderTag);
486
- this.offset += InfoTagHeaderTag.len; // 12
440
+ const headerTag = await this.tokenizer.readToken(XingTag_1.InfoTagHeaderTag);
441
+ this.offset += XingTag_1.InfoTagHeaderTag.len; // 12
487
442
  switch (headerTag) {
488
443
  case 'Info':
489
444
  this.metadata.setFormat('codecProfile', 'CBR');
490
445
  return this.readXingInfoHeader();
491
- case 'Xing': {
446
+ case 'Xing':
492
447
  const infoTag = await this.readXingInfoHeader();
493
- if (infoTag.vbrScale !== null) {
494
- const codecProfile = getVbrCodecProfile(infoTag.vbrScale);
495
- this.metadata.setFormat('codecProfile', codecProfile);
496
- }
448
+ const codecProfile = getVbrCodecProfile(infoTag.vbrScale);
449
+ this.metadata.setFormat('codecProfile', codecProfile);
497
450
  return null;
498
- }
499
451
  case 'Xtra':
500
452
  // ToDo: ???
501
453
  break;
502
- case 'LAME': {
503
- const version = await this.tokenizer.readToken(LameEncoderVersion);
504
- if (this.frame_size !== null && this.frame_size >= this.offset + LameEncoderVersion.len) {
505
- this.offset += LameEncoderVersion.len;
506
- this.metadata.setFormat('tool', `LAME ${version}`);
454
+ case 'LAME':
455
+ const version = await this.tokenizer.readToken(XingTag_1.LameEncoderVersion);
456
+ if (this.frame_size >= this.offset + XingTag_1.LameEncoderVersion.len) {
457
+ this.offset += XingTag_1.LameEncoderVersion.len;
458
+ this.metadata.setFormat('tool', 'LAME ' + version);
507
459
  await this.skipFrameData(this.frame_size - this.offset);
508
460
  return null;
509
461
  }
510
- this.metadata.addWarning('Corrupt LAME header');
511
- break;
512
- }
462
+ else {
463
+ this.metadata.addWarning('Corrupt LAME header');
464
+ break;
465
+ }
513
466
  // ToDo: ???
514
467
  }
515
468
  // ToDo: promise duration???
516
469
  const frameDataLeft = this.frame_size - this.offset;
517
470
  if (frameDataLeft < 0) {
518
- this.metadata.addWarning(`Frame ${this.frameCount}corrupt: negative frameDataLeft`);
471
+ this.metadata.addWarning('Frame ' + this.frameCount + 'corrupt: negative frameDataLeft');
519
472
  }
520
473
  else {
521
474
  await this.skipFrameData(frameDataLeft);
@@ -528,10 +481,10 @@ export class MpegParser extends AbstractID3Parser {
528
481
  */
529
482
  async readXingInfoHeader() {
530
483
  const offset = this.tokenizer.position;
531
- const infoTag = await readXingHeader(this.tokenizer);
484
+ const infoTag = await (0, XingTag_1.readXingHeader)(this.tokenizer);
532
485
  this.offset += this.tokenizer.position - offset;
533
486
  if (infoTag.lame) {
534
- this.metadata.setFormat('tool', `LAME ${common.stripNulls(infoTag.lame.version)}`);
487
+ this.metadata.setFormat('tool', 'LAME ' + common.stripNulls(infoTag.lame.version));
535
488
  if (infoTag.lame.extended) {
536
489
  // this.metadata.setFormat('trackGain', infoTag.lame.extended.track_gain);
537
490
  this.metadata.setFormat('trackPeakLevel', infoTag.lame.extended.track_peak);
@@ -544,7 +497,7 @@ export class MpegParser extends AbstractID3Parser {
544
497
  this.metadata.setFormat('duration', infoTag.lame.extended.music_length / 1000);
545
498
  }
546
499
  }
547
- if (infoTag.streamSize && this.audioFrameHeader && infoTag.numFrames !== null) {
500
+ if (infoTag.streamSize) {
548
501
  const duration = this.audioFrameHeader.calcDuration(infoTag.numFrames);
549
502
  this.metadata.setFormat('duration', duration);
550
503
  debug('Get duration from Xing header: %s', this.metadata.format.duration);
@@ -557,8 +510,9 @@ export class MpegParser extends AbstractID3Parser {
557
510
  }
558
511
  async skipFrameData(frameDataLeft) {
559
512
  if (frameDataLeft < 0)
560
- throw new MpegContentError('frame-data-left cannot be negative');
513
+ throw new Error('frame-data-left cannot be negative');
561
514
  await this.tokenizer.ignore(frameDataLeft);
515
+ this.countSkipFrameData += frameDataLeft;
562
516
  }
563
517
  areAllSame(array) {
564
518
  const first = array[0];
@@ -567,3 +521,4 @@ export class MpegParser extends AbstractID3Parser {
567
521
  });
568
522
  }
569
523
  }
524
+ exports.MpegParser = MpegParser;