@dragon708/docmind-markdown 1.2.5 → 1.2.7

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 (328) 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/node_modules/{music-metadata/node_modules/strtok3/LICENSE.txt → turndown-plugin-gfm/LICENSE} +21 -21
  159. package/node_modules/turndown-plugin-gfm/README.md +50 -0
  160. package/node_modules/turndown-plugin-gfm/dist/turndown-plugin-gfm.js +165 -0
  161. package/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.browser.cjs.js +162 -0
  162. package/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.browser.es.js +154 -0
  163. package/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.cjs.js +162 -0
  164. package/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.es.js +154 -0
  165. package/node_modules/turndown-plugin-gfm/package.json +43 -0
  166. package/package.json +5 -5
  167. package/node_modules/@borewit/text-codec/LICENSE.txt +0 -9
  168. package/node_modules/@borewit/text-codec/README.md +0 -87
  169. package/node_modules/@borewit/text-codec/lib/index.d.ts +0 -6
  170. package/node_modules/@borewit/text-codec/lib/index.js +0 -380
  171. package/node_modules/@borewit/text-codec/package.json +0 -70
  172. package/node_modules/music-metadata/lib/ParseError.d.ts +0 -87
  173. package/node_modules/music-metadata/lib/ParseError.js +0 -38
  174. package/node_modules/music-metadata/lib/aiff/AiffLoader.d.ts +0 -2
  175. package/node_modules/music-metadata/lib/aiff/AiffLoader.js +0 -8
  176. package/node_modules/music-metadata/lib/apev2/Apev2Loader.d.ts +0 -2
  177. package/node_modules/music-metadata/lib/apev2/Apev2Loader.js +0 -8
  178. package/node_modules/music-metadata/lib/asf/AsfGuid.d.ts +0 -83
  179. package/node_modules/music-metadata/lib/asf/AsfGuid.js +0 -109
  180. package/node_modules/music-metadata/lib/asf/AsfLoader.d.ts +0 -2
  181. package/node_modules/music-metadata/lib/asf/AsfLoader.js +0 -8
  182. package/node_modules/music-metadata/lib/dsdiff/DsdiffLoader.d.ts +0 -2
  183. package/node_modules/music-metadata/lib/dsdiff/DsdiffLoader.js +0 -8
  184. package/node_modules/music-metadata/lib/dsf/DsfLoader.d.ts +0 -2
  185. package/node_modules/music-metadata/lib/dsf/DsfLoader.js +0 -8
  186. package/node_modules/music-metadata/lib/ebml/EbmlIterator.d.ts +0 -67
  187. package/node_modules/music-metadata/lib/ebml/EbmlIterator.js +0 -218
  188. package/node_modules/music-metadata/lib/ebml/types.d.ts +0 -37
  189. package/node_modules/music-metadata/lib/ebml/types.js +0 -8
  190. package/node_modules/music-metadata/lib/flac/FlacLoader.d.ts +0 -2
  191. package/node_modules/music-metadata/lib/flac/FlacLoader.js +0 -8
  192. package/node_modules/music-metadata/lib/flac/FlacToken.d.ts +0 -45
  193. package/node_modules/music-metadata/lib/flac/FlacToken.js +0 -63
  194. package/node_modules/music-metadata/lib/id3v2/FrameHeader.d.ts +0 -31
  195. package/node_modules/music-metadata/lib/id3v2/FrameHeader.js +0 -73
  196. package/node_modules/music-metadata/lib/id3v2/ID3v2ChapterToken.d.ts +0 -11
  197. package/node_modules/music-metadata/lib/id3v2/ID3v2ChapterToken.js +0 -17
  198. package/node_modules/music-metadata/lib/lrc/LyricsParser.d.ts +0 -9
  199. package/node_modules/music-metadata/lib/lrc/LyricsParser.js +0 -45
  200. package/node_modules/music-metadata/lib/matroska/MatroskaLoader.d.ts +0 -2
  201. package/node_modules/music-metadata/lib/matroska/MatroskaLoader.js +0 -8
  202. package/node_modules/music-metadata/lib/mp4/Mp4Loader.d.ts +0 -2
  203. package/node_modules/music-metadata/lib/mp4/Mp4Loader.js +0 -8
  204. package/node_modules/music-metadata/lib/mpeg/MpegLoader.d.ts +0 -2
  205. package/node_modules/music-metadata/lib/mpeg/MpegLoader.js +0 -8
  206. package/node_modules/music-metadata/lib/musepack/MusepackConentError.d.ts +0 -15
  207. package/node_modules/music-metadata/lib/musepack/MusepackConentError.js +0 -3
  208. package/node_modules/music-metadata/lib/musepack/MusepackLoader.d.ts +0 -2
  209. package/node_modules/music-metadata/lib/musepack/MusepackLoader.js +0 -8
  210. package/node_modules/music-metadata/lib/musepack/MusepackParser.d.ts +0 -4
  211. package/node_modules/music-metadata/lib/musepack/MusepackParser.js +0 -30
  212. package/node_modules/music-metadata/lib/ogg/OggLoader.d.ts +0 -2
  213. package/node_modules/music-metadata/lib/ogg/OggLoader.js +0 -8
  214. package/node_modules/music-metadata/lib/ogg/OggToken.js +0 -41
  215. package/node_modules/music-metadata/lib/ogg/flac/FlacStream.d.ts +0 -29
  216. package/node_modules/music-metadata/lib/ogg/flac/FlacStream.js +0 -74
  217. package/node_modules/music-metadata/lib/ogg/opus/OpusStream.d.ts +0 -24
  218. package/node_modules/music-metadata/lib/ogg/speex/SpeexStream.d.ts +0 -20
  219. package/node_modules/music-metadata/lib/ogg/theora/TheoraStream.d.ts +0 -25
  220. package/node_modules/music-metadata/lib/ogg/theora/TheoraStream.js +0 -39
  221. package/node_modules/music-metadata/lib/ogg/vorbis/VorbisStream.d.ts +0 -53
  222. package/node_modules/music-metadata/lib/ogg/vorbis/VorbisStream.js +0 -136
  223. package/node_modules/music-metadata/lib/wav/WaveLoader.d.ts +0 -2
  224. package/node_modules/music-metadata/lib/wav/WaveLoader.js +0 -8
  225. package/node_modules/music-metadata/lib/wavpack/WavPackLoader.d.ts +0 -2
  226. package/node_modules/music-metadata/lib/wavpack/WavPackLoader.js +0 -8
  227. package/node_modules/music-metadata/node_modules/file-type/core.d.ts +0 -253
  228. package/node_modules/music-metadata/node_modules/file-type/core.js +0 -2899
  229. package/node_modules/music-metadata/node_modules/file-type/index.d.ts +0 -98
  230. package/node_modules/music-metadata/node_modules/file-type/index.js +0 -163
  231. package/node_modules/music-metadata/node_modules/file-type/license +0 -9
  232. package/node_modules/music-metadata/node_modules/file-type/package.json +0 -290
  233. package/node_modules/music-metadata/node_modules/file-type/readme.md +0 -667
  234. package/node_modules/music-metadata/node_modules/file-type/supported.js +0 -360
  235. package/node_modules/music-metadata/node_modules/file-type/util.js +0 -60
  236. package/node_modules/music-metadata/node_modules/strtok3/README.md +0 -399
  237. package/node_modules/music-metadata/node_modules/strtok3/lib/AbstractTokenizer.d.ts +0 -76
  238. package/node_modules/music-metadata/node_modules/strtok3/lib/AbstractTokenizer.js +0 -111
  239. package/node_modules/music-metadata/node_modules/strtok3/lib/BlobTokenizer.d.ts +0 -29
  240. package/node_modules/music-metadata/node_modules/strtok3/lib/BlobTokenizer.js +0 -53
  241. package/node_modules/music-metadata/node_modules/strtok3/lib/BufferTokenizer.d.ts +0 -29
  242. package/node_modules/music-metadata/node_modules/strtok3/lib/BufferTokenizer.js +0 -52
  243. package/node_modules/music-metadata/node_modules/strtok3/lib/FileTokenizer.d.ts +0 -37
  244. package/node_modules/music-metadata/node_modules/strtok3/lib/FileTokenizer.js +0 -61
  245. package/node_modules/music-metadata/node_modules/strtok3/lib/ReadStreamTokenizer.d.ts +0 -34
  246. package/node_modules/music-metadata/node_modules/strtok3/lib/ReadStreamTokenizer.js +0 -107
  247. package/node_modules/music-metadata/node_modules/strtok3/lib/core.d.ts +0 -40
  248. package/node_modules/music-metadata/node_modules/strtok3/lib/core.js +0 -62
  249. package/node_modules/music-metadata/node_modules/strtok3/lib/index.d.ts +0 -16
  250. package/node_modules/music-metadata/node_modules/strtok3/lib/index.js +0 -22
  251. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/AbstractStreamReader.d.ts +0 -54
  252. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/AbstractStreamReader.js +0 -71
  253. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/Deferred.d.ts +0 -6
  254. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/Deferred.js +0 -10
  255. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/Errors.d.ts +0 -10
  256. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/Errors.js +0 -16
  257. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/StreamReader.d.ts +0 -29
  258. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/StreamReader.js +0 -83
  259. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamByobReader.d.ts +0 -14
  260. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamByobReader.js +0 -27
  261. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamDefaultReader.d.ts +0 -19
  262. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamDefaultReader.js +0 -62
  263. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamReader.d.ts +0 -14
  264. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamReader.js +0 -13
  265. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamReaderFactory.d.ts +0 -5
  266. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamReaderFactory.js +0 -19
  267. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/index.d.ts +0 -6
  268. package/node_modules/music-metadata/node_modules/strtok3/lib/stream/index.js +0 -5
  269. package/node_modules/music-metadata/node_modules/strtok3/lib/types.d.ts +0 -139
  270. package/node_modules/music-metadata/node_modules/strtok3/lib/types.js +0 -1
  271. package/node_modules/music-metadata/node_modules/strtok3/package.json +0 -94
  272. package/node_modules/music-metadata/node_modules/token-types/LICENSE.txt +0 -9
  273. package/node_modules/music-metadata/node_modules/token-types/README.md +0 -120
  274. package/node_modules/music-metadata/node_modules/token-types/lib/index.d.ts +0 -135
  275. package/node_modules/music-metadata/node_modules/token-types/lib/index.js +0 -401
  276. package/node_modules/music-metadata/node_modules/token-types/package.json +0 -81
  277. package/node_modules/sprintf-js/.npmignore +0 -1
  278. package/node_modules/sprintf-js/LICENSE +0 -24
  279. package/node_modules/sprintf-js/README.md +0 -88
  280. package/node_modules/sprintf-js/bower.json +0 -14
  281. package/node_modules/sprintf-js/demo/angular.html +0 -20
  282. package/node_modules/sprintf-js/dist/angular-sprintf.min.js +0 -4
  283. package/node_modules/sprintf-js/dist/angular-sprintf.min.js.map +0 -1
  284. package/node_modules/sprintf-js/dist/angular-sprintf.min.map +0 -1
  285. package/node_modules/sprintf-js/dist/sprintf.min.js +0 -4
  286. package/node_modules/sprintf-js/dist/sprintf.min.js.map +0 -1
  287. package/node_modules/sprintf-js/dist/sprintf.min.map +0 -1
  288. package/node_modules/sprintf-js/gruntfile.js +0 -36
  289. package/node_modules/sprintf-js/package.json +0 -22
  290. package/node_modules/sprintf-js/src/angular-sprintf.js +0 -18
  291. package/node_modules/sprintf-js/src/sprintf.js +0 -208
  292. package/node_modules/sprintf-js/test/test.js +0 -82
  293. package/node_modules/uint8array-extras/index.d.ts +0 -331
  294. package/node_modules/uint8array-extras/index.js +0 -318
  295. package/node_modules/uint8array-extras/license +0 -9
  296. package/node_modules/uint8array-extras/package.json +0 -54
  297. package/node_modules/uint8array-extras/readme.md +0 -318
  298. package/node_modules/win-guid/LICENSE.txt +0 -9
  299. package/node_modules/win-guid/README.md +0 -113
  300. package/node_modules/win-guid/lib/guid.d.ts +0 -20
  301. package/node_modules/win-guid/lib/guid.js +0 -107
  302. package/node_modules/win-guid/package.json +0 -55
  303. /package/node_modules/{argparse → mammoth/node_modules/argparse}/LICENSE +0 -0
  304. /package/node_modules/{argparse → mammoth/node_modules/argparse}/README.md +0 -0
  305. /package/node_modules/{argparse → mammoth/node_modules/argparse}/index.js +0 -0
  306. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/append/constant.js +0 -0
  307. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/append.js +0 -0
  308. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/count.js +0 -0
  309. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/help.js +0 -0
  310. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/store/constant.js +0 -0
  311. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/store/false.js +0 -0
  312. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/store/true.js +0 -0
  313. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/store.js +0 -0
  314. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/subparsers.js +0 -0
  315. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/version.js +0 -0
  316. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action.js +0 -0
  317. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action_container.js +0 -0
  318. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/argparse.js +0 -0
  319. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/argument/error.js +0 -0
  320. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/argument/exclusive.js +0 -0
  321. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/argument/group.js +0 -0
  322. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/argument_parser.js +0 -0
  323. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/const.js +0 -0
  324. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/help/added_formatters.js +0 -0
  325. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/help/formatter.js +0 -0
  326. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/namespace.js +0 -0
  327. /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/utils.js +0 -0
  328. /package/node_modules/{argparse → mammoth/node_modules/argparse}/package.json +0 -0
@@ -1,46 +1,5 @@
1
- import { type ID3v2MajorVersion, type ITextEncoding } from './ID3v2Token.js';
2
- import type { IWarningCollector } from '../common/MetadataCollector.js';
3
- import { type IChapterInfo } from './ID3v2ChapterToken.js';
4
- interface ICustomTag {
5
- owner_identifier: string;
6
- }
7
- export interface ICustomDataTag extends ICustomTag {
8
- data: Uint8Array;
9
- }
10
- export interface IIdentifierTag extends ICustomTag {
11
- identifier: Uint8Array;
12
- }
13
- export interface ITextTag {
14
- description: string;
15
- text: string[];
16
- }
17
- export interface IPopularimeter {
18
- email: string;
19
- rating: number;
20
- counter: number;
21
- }
22
- export interface IGeneralEncapsulatedObject {
23
- type: string;
24
- filename: string;
25
- description: string;
26
- data: Uint8Array;
27
- }
28
- export type Chapter = {
29
- label: string;
30
- info: IChapterInfo;
31
- frames: Map<string, unknown>;
32
- };
33
- export type TableOfContents = {
34
- label: string;
35
- flags: {
36
- /** If set, this is the top-level table of contents */
37
- topLevel: boolean;
38
- /** If set, the child element IDs are in a defined order */
39
- ordered: boolean;
40
- };
41
- childElementIds: string[];
42
- frames: Map<string, unknown>;
43
- };
1
+ import { ID3v2MajorVersion } from './ID3v2Token';
2
+ import { IWarningCollector } from '../common/MetadataCollector';
44
3
  export declare function parseGenre(origVal: string): string[];
45
4
  export declare class FrameParser {
46
5
  private major;
@@ -51,11 +10,7 @@ export declare class FrameParser {
51
10
  * @param warningCollector - Used to collect decode issue
52
11
  */
53
12
  constructor(major: ID3v2MajorVersion, warningCollector: IWarningCollector);
54
- readData(uint8Array: Uint8Array, type: string, includeCovers: boolean): unknown;
55
- protected static readNullTerminatedString(uint8Array: Uint8Array, encoding: ITextEncoding): {
56
- text: string;
57
- len: number;
58
- };
13
+ readData(uint8Array: Uint8Array, type: string, includeCovers: boolean): any;
59
14
  protected static fixPictureMimeType(pictureType: string): string;
60
15
  /**
61
16
  * Converts TMCL (Musician credits list) or TIPL (Involved people list)
@@ -71,22 +26,6 @@ export declare class FrameParser {
71
26
  */
72
27
  private splitValue;
73
28
  private static trimArray;
74
- private static trimNullPadding;
75
29
  private static readIdentifierAndData;
76
30
  private static getNullTerminatorLength;
77
31
  }
78
- declare const Id3v2ContentError_base: {
79
- new (message: string): {
80
- readonly fileType: string;
81
- toString(): string;
82
- name: "UnexpectedFileContentError";
83
- message: string;
84
- stack?: string;
85
- };
86
- captureStackTrace(targetObject: object, constructorOpt?: Function): void;
87
- prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any;
88
- stackTraceLimit: number;
89
- };
90
- export declare class Id3v2ContentError extends Id3v2ContentError_base {
91
- }
92
- export {};
@@ -1,16 +1,14 @@
1
- import initDebug from 'debug';
2
- import * as Token from 'token-types';
3
- import * as util from '../common/Util.js';
4
- import { AttachedPictureType, SyncTextHeader, TextEncodingToken, TextHeader } from './ID3v2Token.js';
5
- import { Genres } from '../id3v1/ID3v1Parser.js';
6
- import { makeUnexpectedFileContentError } from '../ParseError.js';
7
- import { decodeUintBE } from '../common/Util.js';
8
- import { ChapterInfo } from './ID3v2ChapterToken.js';
9
- import { getFrameHeaderLength, readFrameHeader } from './FrameHeader.js';
10
- const debug = initDebug('music-metadata:id3v2:frame-parser');
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FrameParser = exports.parseGenre = void 0;
4
+ const debug_1 = require("debug");
5
+ const Token = require("token-types");
6
+ const util = require("../common/Util");
7
+ const ID3v2Token_1 = require("./ID3v2Token");
8
+ const ID3v1Parser_1 = require("../id3v1/ID3v1Parser");
9
+ const debug = (0, debug_1.default)('music-metadata:id3v2:frame-parser');
11
10
  const defaultEnc = 'latin1'; // latin1 == iso-8859-1;
12
- const urlEnc = { encoding: defaultEnc, bom: false };
13
- export function parseGenre(origVal) {
11
+ function parseGenre(origVal) {
14
12
  // match everything inside parentheses
15
13
  const genres = [];
16
14
  let code;
@@ -44,24 +42,23 @@ export function parseGenre(origVal) {
44
42
  }
45
43
  if (word) {
46
44
  if (genres.length === 0 && word.match(/^\d*$/)) {
47
- word = parseGenreCode(word);
48
- }
49
- if (word) {
50
- genres.push(word);
45
+ word = ID3v1Parser_1.Genres[word];
51
46
  }
47
+ genres.push(word);
52
48
  }
53
49
  return genres;
54
50
  }
51
+ exports.parseGenre = parseGenre;
55
52
  function parseGenreCode(code) {
56
53
  if (code === 'RX')
57
54
  return 'Remix';
58
55
  if (code === 'CR')
59
56
  return 'Cover';
60
57
  if (code.match(/^\d*$/)) {
61
- return Genres[Number.parseInt(code, 10)];
58
+ return ID3v1Parser_1.Genres[code];
62
59
  }
63
60
  }
64
- export class FrameParser {
61
+ class FrameParser {
65
62
  /**
66
63
  * Create id3v2 frame parser
67
64
  * @param major - Major version, e.g. (4) for id3v2.4
@@ -76,45 +73,38 @@ export class FrameParser {
76
73
  this.warningCollector.addWarning(`id3v2.${this.major} header has empty tag type=${type}`);
77
74
  return;
78
75
  }
79
- const { encoding, bom } = TextEncodingToken.get(uint8Array, 0);
76
+ const { encoding, bom } = ID3v2Token_1.TextEncodingToken.get(uint8Array, 0);
80
77
  const length = uint8Array.length;
81
78
  let offset = 0;
82
79
  let output = []; // ToDo
83
80
  const nullTerminatorLength = FrameParser.getNullTerminatorLength(encoding);
84
81
  let fzero;
82
+ const out = {};
85
83
  debug(`Parsing tag type=${type}, encoding=${encoding}, bom=${bom}`);
86
84
  switch (type !== 'TXXX' && type[0] === 'T' ? 'T*' : type) {
87
85
  case 'T*': // 4.2.1. Text information frames - details
88
- case 'GRP1': // iTunes-specific ID3v2 grouping field
89
- case 'GP1': // iTunes-specific ID3v2.2 grouping field
90
86
  case 'IPLS': // v2.3: Involved people list
91
87
  case 'MVIN':
92
88
  case 'MVNM':
93
89
  case 'PCS':
94
- case 'PCST': {
90
+ case 'PCST':
95
91
  let text;
96
92
  try {
97
- text = FrameParser.trimNullPadding(util.decodeString(uint8Array.subarray(1), encoding));
93
+ text = util.decodeString(uint8Array.slice(1), encoding).replace(/\x00+$/, '');
98
94
  }
99
95
  catch (error) {
100
- if (error instanceof Error) {
101
- this.warningCollector.addWarning(`id3v2.${this.major} type=${type} header has invalid string value: ${error.message}`);
102
- break;
103
- }
104
- throw error;
96
+ this.warningCollector.addWarning(`id3v2.${this.major} type=${type} header has invalid string value: ${error.message}`);
105
97
  }
106
98
  switch (type) {
107
99
  case 'TMCL': // Musician credits list
108
100
  case 'TIPL': // Involved people list
109
101
  case 'IPLS': // Involved people list
110
- output = FrameParser.functionList(this.splitValue(type, text));
102
+ output = this.splitValue(type, text);
103
+ output = FrameParser.functionList(output);
111
104
  break;
112
105
  case 'TRK':
113
106
  case 'TRCK':
114
107
  case 'TPOS':
115
- case 'TIT1':
116
- case 'TIT2':
117
- case 'TIT3':
118
108
  output = text;
119
109
  break;
120
110
  case 'TCOM':
@@ -140,144 +130,107 @@ export class FrameParser {
140
130
  output = this.major >= 4 ? this.splitValue(type, text) : [text];
141
131
  }
142
132
  break;
143
- }
144
- case 'TXXX': {
145
- const idAndData = FrameParser.readIdentifierAndData(uint8Array.subarray(1), encoding);
133
+ case 'TXXX':
134
+ output = FrameParser.readIdentifierAndData(uint8Array, offset + 1, length, encoding);
146
135
  output = {
147
- description: idAndData.id,
148
- text: this.splitValue(type, util.decodeString(idAndData.data, encoding).replace(/\x00+$/, ''))
136
+ description: output.id,
137
+ text: this.splitValue(type, util.decodeString(output.data, encoding).replace(/\x00+$/, ''))
149
138
  };
150
139
  break;
151
- }
152
140
  case 'PIC':
153
141
  case 'APIC':
154
142
  if (includeCovers) {
155
143
  const pic = {};
156
- uint8Array = uint8Array.subarray(1);
144
+ offset += 1;
157
145
  switch (this.major) {
158
146
  case 2:
159
- pic.format = util.decodeString(uint8Array.subarray(0, 3), 'latin1'); // 'latin1'; // latin1 == iso-8859-1;
160
- uint8Array = uint8Array.subarray(3);
147
+ pic.format = util.decodeString(uint8Array.slice(offset, offset + 3), 'latin1'); // 'latin1'; // latin1 == iso-8859-1;
148
+ offset += 3;
161
149
  break;
162
150
  case 3:
163
151
  case 4:
164
- fzero = util.findZero(uint8Array, defaultEnc);
165
- pic.format = util.decodeString(uint8Array.subarray(0, fzero), defaultEnc);
166
- uint8Array = uint8Array.subarray(fzero + 1);
152
+ fzero = util.findZero(uint8Array, offset, length, defaultEnc);
153
+ pic.format = util.decodeString(uint8Array.slice(offset, fzero), defaultEnc);
154
+ offset = fzero + 1;
167
155
  break;
168
156
  default:
169
- throw makeUnexpectedMajorVersionError(this.major);
157
+ throw new Error('Warning: unexpected major versionIndex: ' + this.major);
170
158
  }
171
159
  pic.format = FrameParser.fixPictureMimeType(pic.format);
172
- pic.type = AttachedPictureType[uint8Array[0]];
173
- uint8Array = uint8Array.subarray(1);
174
- fzero = util.findZero(uint8Array, encoding);
175
- pic.description = util.decodeString(uint8Array.subarray(0, fzero), encoding);
176
- uint8Array = uint8Array.subarray(fzero + nullTerminatorLength);
177
- pic.data = uint8Array;
160
+ pic.type = ID3v2Token_1.AttachedPictureType[uint8Array[offset]];
161
+ offset += 1;
162
+ fzero = util.findZero(uint8Array, offset, length, encoding);
163
+ pic.description = util.decodeString(uint8Array.slice(offset, fzero), encoding);
164
+ offset = fzero + nullTerminatorLength;
165
+ pic.data = Buffer.from(uint8Array.slice(offset, length));
178
166
  output = pic;
179
167
  }
180
168
  break;
181
169
  case 'CNT':
182
170
  case 'PCNT':
183
- output = decodeUintBE(uint8Array);
171
+ output = Token.UINT32_BE.get(uint8Array, 0);
184
172
  break;
185
- case 'SYLT': {
186
- const syltHeader = SyncTextHeader.get(uint8Array, 0);
187
- uint8Array = uint8Array.subarray(SyncTextHeader.len);
188
- const result = {
189
- descriptor: '',
190
- language: syltHeader.language,
191
- contentType: syltHeader.contentType,
192
- timeStampFormat: syltHeader.timeStampFormat,
193
- syncText: []
194
- };
195
- let readSyllables = false;
196
- while (uint8Array.length > 0) {
197
- const nullStr = FrameParser.readNullTerminatedString(uint8Array, syltHeader.encoding);
198
- uint8Array = uint8Array.subarray(nullStr.len);
199
- if (readSyllables) {
200
- const timestamp = Token.UINT32_BE.get(uint8Array, 0);
201
- uint8Array = uint8Array.subarray(Token.UINT32_BE.len);
202
- result.syncText.push({
203
- text: nullStr.text,
204
- timestamp
205
- });
206
- }
207
- else {
208
- result.descriptor = nullStr.text;
209
- readSyllables = true;
210
- }
173
+ case 'SYLT':
174
+ // skip text encoding (1 byte),
175
+ // language (3 bytes),
176
+ // time stamp format (1 byte),
177
+ // content tagTypes (1 byte),
178
+ // content descriptor (1 byte)
179
+ offset += 7;
180
+ output = [];
181
+ while (offset < length) {
182
+ const txt = uint8Array.slice(offset, offset = util.findZero(uint8Array, offset, length, encoding));
183
+ offset += 5; // push offset forward one + 4 byte timestamp
184
+ output.push(util.decodeString(txt, encoding));
211
185
  }
212
- output = result;
213
186
  break;
214
- }
215
187
  case 'ULT':
216
188
  case 'USLT':
217
189
  case 'COM':
218
- case 'COMM': {
219
- const textHeader = TextHeader.get(uint8Array, offset);
220
- offset += TextHeader.len;
221
- const descriptorStr = FrameParser.readNullTerminatedString(uint8Array.subarray(offset), textHeader.encoding);
222
- offset += descriptorStr.len;
223
- const textStr = FrameParser.readNullTerminatedString(uint8Array.subarray(offset), textHeader.encoding);
224
- const comment = {
225
- language: textHeader.language,
226
- descriptor: descriptorStr.text,
227
- text: textStr.text
228
- };
229
- output = comment;
190
+ case 'COMM':
191
+ offset += 1;
192
+ out.language = util.decodeString(uint8Array.slice(offset, offset + 3), defaultEnc);
193
+ offset += 3;
194
+ fzero = util.findZero(uint8Array, offset, length, encoding);
195
+ out.description = util.decodeString(uint8Array.slice(offset, fzero), encoding);
196
+ offset = fzero + nullTerminatorLength;
197
+ out.text = util.decodeString(uint8Array.slice(offset, length), encoding).replace(/\x00+$/, '');
198
+ output = [out];
230
199
  break;
231
- }
232
- case 'UFID': {
233
- const ufid = FrameParser.readIdentifierAndData(uint8Array, defaultEnc);
234
- output = { owner_identifier: ufid.id, identifier: ufid.data };
200
+ case 'UFID':
201
+ output = FrameParser.readIdentifierAndData(uint8Array, offset, length, defaultEnc);
202
+ output = { owner_identifier: output.id, identifier: output.data };
235
203
  break;
236
- }
237
- case 'PRIV': { // private frame
238
- const priv = FrameParser.readIdentifierAndData(uint8Array, defaultEnc);
239
- output = { owner_identifier: priv.id, data: priv.data };
204
+ case 'PRIV': // private frame
205
+ output = FrameParser.readIdentifierAndData(uint8Array, offset, length, defaultEnc);
206
+ output = { owner_identifier: output.id, data: output.data };
240
207
  break;
241
- }
242
- case 'POPM': { // Popularimeter
243
- uint8Array = uint8Array.subarray(offset);
244
- const emailStr = FrameParser.readNullTerminatedString(uint8Array, urlEnc);
245
- const email = emailStr.text;
246
- uint8Array = uint8Array.subarray(emailStr.len);
247
- if (uint8Array.length === 0) {
248
- this.warningCollector.addWarning(`id3v2.${this.major} type=${type} POPM frame missing rating byte`);
249
- output = { email, rating: 0, counter: undefined };
250
- break;
251
- }
252
- const rating = Token.UINT8.get(uint8Array, 0);
253
- const counterBytes = uint8Array.subarray(Token.UINT8.len);
208
+ case 'POPM': // Popularimeter
209
+ fzero = util.findZero(uint8Array, offset, length, defaultEnc);
210
+ const email = util.decodeString(uint8Array.slice(offset, fzero), defaultEnc);
211
+ offset = fzero + 1;
212
+ const dataLen = length - offset;
254
213
  output = {
255
214
  email,
256
- rating,
257
- counter: counterBytes.length > 0 ? decodeUintBE(counterBytes) : undefined
215
+ rating: Token.UINT8.get(uint8Array, offset),
216
+ counter: dataLen >= 5 ? Token.UINT32_BE.get(uint8Array, offset + 1) : undefined
258
217
  };
259
218
  break;
260
- }
261
219
  case 'GEOB': { // General encapsulated object
262
- // [encoding] <MIME> 0x00 <filename> 0x00/0x00 0x00 <description> 0x00/0x00 0x00 <data>
263
- const encoding = TextEncodingToken.get(uint8Array, 0);
264
- uint8Array = uint8Array.subarray(1);
265
- const mimeTypeStr = FrameParser.readNullTerminatedString(uint8Array, urlEnc);
266
- const mimeType = mimeTypeStr.text;
267
- uint8Array = uint8Array.subarray(mimeTypeStr.len);
268
- const filenameStr = FrameParser.readNullTerminatedString(uint8Array, encoding);
269
- const filename = filenameStr.text;
270
- uint8Array = uint8Array.subarray(filenameStr.len);
271
- const descriptionStr = FrameParser.readNullTerminatedString(uint8Array, encoding);
272
- const description = descriptionStr.text;
273
- uint8Array = uint8Array.subarray(descriptionStr.len);
274
- const geob = {
220
+ fzero = util.findZero(uint8Array, offset + 1, length, encoding);
221
+ const mimeType = util.decodeString(uint8Array.slice(offset + 1, fzero), defaultEnc);
222
+ offset = fzero + 1;
223
+ fzero = util.findZero(uint8Array, offset, length - offset, encoding);
224
+ const filename = util.decodeString(uint8Array.slice(offset, fzero), defaultEnc);
225
+ offset = fzero + 1;
226
+ fzero = util.findZero(uint8Array, offset, length - offset, encoding);
227
+ const description = util.decodeString(uint8Array.slice(offset, fzero), defaultEnc);
228
+ output = {
275
229
  type: mimeType,
276
230
  filename,
277
231
  description,
278
- data: uint8Array
232
+ data: uint8Array.slice(offset + 1, length)
279
233
  };
280
- output = geob;
281
234
  break;
282
235
  }
283
236
  // W-Frames:
@@ -290,116 +243,31 @@ export class FrameParser {
290
243
  case 'WPAY':
291
244
  case 'WPUB':
292
245
  // Decode URL
293
- output = FrameParser.readNullTerminatedString(uint8Array, urlEnc).text;
246
+ output = util.decodeString(uint8Array.slice(offset, fzero), defaultEnc);
294
247
  break;
295
248
  case 'WXXX': {
296
- // [encoding] <description> 0x00/0x00 0x00 <url>
297
- const encoding = TextEncodingToken.get(uint8Array, 0);
298
- uint8Array = uint8Array.subarray(1);
299
- const descriptionStr = FrameParser.readNullTerminatedString(uint8Array, encoding);
300
- const description = descriptionStr.text;
301
- uint8Array = uint8Array.subarray(descriptionStr.len);
302
- // URL is always ISO-8859-1
303
- output = { description, url: FrameParser.trimNullPadding(util.decodeString(uint8Array, defaultEnc)) };
249
+ // Decode URL
250
+ fzero = util.findZero(uint8Array, offset + 1, length, encoding);
251
+ const description = util.decodeString(uint8Array.slice(offset + 1, fzero), encoding);
252
+ offset = fzero + (encoding === 'utf16le' ? 2 : 1);
253
+ output = { description, url: util.decodeString(uint8Array.slice(offset, length), defaultEnc) };
304
254
  break;
305
255
  }
306
256
  case 'WFD':
307
- case 'WFED': {
308
- const encoding = TextEncodingToken.get(uint8Array, 0);
309
- uint8Array = uint8Array.subarray(1);
310
- output = FrameParser.readNullTerminatedString(uint8Array, encoding).text;
257
+ case 'WFED':
258
+ output = util.decodeString(uint8Array.slice(offset + 1, util.findZero(uint8Array, offset + 1, length, encoding)), encoding);
311
259
  break;
312
- }
313
260
  case 'MCDI': {
314
261
  // Music CD identifier
315
- output = uint8Array.subarray(0, length);
316
- break;
317
- }
318
- // ID3v2 Chapters 1.0
319
- // https://mutagen-specs.readthedocs.io/en/latest/id3/id3v2-chapters-1.0.html#chapter-frame
320
- case 'CHAP': { // // Chapter frame
321
- debug("Reading CHAP");
322
- fzero = util.findZero(uint8Array, defaultEnc);
323
- const chapter = {
324
- label: util.decodeString(uint8Array.subarray(0, fzero), defaultEnc),
325
- info: ChapterInfo.get(uint8Array, fzero + 1),
326
- frames: new Map()
327
- };
328
- offset += fzero + 1 + ChapterInfo.len;
329
- while (offset < length) {
330
- const subFrame = readFrameHeader(uint8Array.subarray(offset), this.major, this.warningCollector);
331
- const headerSize = getFrameHeaderLength(this.major);
332
- offset += headerSize;
333
- const subOutput = this.readData(uint8Array.subarray(offset, offset + subFrame.length), subFrame.id, includeCovers);
334
- offset += subFrame.length;
335
- chapter.frames.set(subFrame.id, subOutput);
336
- }
337
- output = chapter;
338
- break;
339
- }
340
- // ID3v2 Chapters 1.0
341
- // https://mutagen-specs.readthedocs.io/en/latest/id3/id3v2-chapters-1.0.html#table-of-contents-frame
342
- case 'CTOC': { // Table of contents frame
343
- debug('Reading CTOC');
344
- // Element ID (null-terminated latin1)
345
- const idEnd = util.findZero(uint8Array, defaultEnc);
346
- const label = util.decodeString(uint8Array.subarray(0, idEnd), defaultEnc);
347
- offset = idEnd + 1;
348
- // Flags
349
- const flags = uint8Array[offset++];
350
- const topLevel = (flags & 0x02) !== 0;
351
- const ordered = (flags & 0x01) !== 0;
352
- // Child element IDs
353
- const entryCount = uint8Array[offset++];
354
- const childElementIds = [];
355
- for (let i = 0; i < entryCount && offset < length; i++) {
356
- const end = util.findZero(uint8Array.subarray(offset), defaultEnc);
357
- const childId = util.decodeString(uint8Array.subarray(offset, offset + end), defaultEnc);
358
- childElementIds.push(childId);
359
- offset += end + 1;
360
- }
361
- const toc = {
362
- label,
363
- flags: { topLevel, ordered },
364
- childElementIds,
365
- frames: new Map()
366
- };
367
- // Optional embedded sub-frames (e.g. TIT2) follow after the child list
368
- while (offset < length) {
369
- const subFrame = readFrameHeader(uint8Array.subarray(offset), this.major, this.warningCollector);
370
- const headerSize = getFrameHeaderLength(this.major);
371
- offset += headerSize;
372
- const subOutput = this.readData(uint8Array.subarray(offset, offset + subFrame.length), subFrame.id, includeCovers);
373
- offset += subFrame.length;
374
- toc.frames.set(subFrame.id, subOutput);
375
- }
376
- output = toc;
262
+ output = uint8Array.slice(0, length);
377
263
  break;
378
264
  }
379
265
  default:
380
- debug(`Warning: unsupported id3v2-tag-type: ${type}`);
266
+ debug('Warning: unsupported id3v2-tag-type: ' + type);
381
267
  break;
382
268
  }
383
269
  return output;
384
270
  }
385
- static readNullTerminatedString(uint8Array, encoding) {
386
- const bomSize = encoding.bom ? 2 : 0;
387
- const originalLen = uint8Array.length;
388
- const valueArray = uint8Array.subarray(bomSize);
389
- const zeroIndex = util.findZero(valueArray, encoding.encoding);
390
- if (zeroIndex >= valueArray.length) {
391
- // No terminator found, decode full buffer remainder
392
- return {
393
- text: util.decodeString(valueArray, encoding.encoding),
394
- len: originalLen
395
- };
396
- }
397
- const txt = valueArray.subarray(0, zeroIndex);
398
- return {
399
- text: util.decodeString(txt, encoding.encoding),
400
- len: bomSize + zeroIndex + FrameParser.getNullTerminatorLength(encoding.encoding)
401
- };
402
- }
403
271
  static fixPictureMimeType(pictureType) {
404
272
  pictureType = pictureType.toLocaleLowerCase();
405
273
  switch (pictureType) {
@@ -418,7 +286,7 @@ export class FrameParser {
418
286
  const res = {};
419
287
  for (let i = 0; i + 1 < entries.length; i += 2) {
420
288
  const names = entries[i + 1].split(',');
421
- res[entries[i]] = res[entries[i]] ? res[entries[i]].concat(names) : names;
289
+ res[entries[i]] = res.hasOwnProperty(entries[i]) ? res[entries[i]].concat(names) : names;
422
290
  }
423
291
  return res;
424
292
  }
@@ -446,25 +314,16 @@ export class FrameParser {
446
314
  return FrameParser.trimArray(values);
447
315
  }
448
316
  static trimArray(values) {
449
- return values.map(value => FrameParser.trimNullPadding(value).trim());
317
+ return values.map(value => value.replace(/\x00+$/, '').trim());
450
318
  }
451
- static trimNullPadding(value) {
452
- let end = value.length;
453
- while (end > 0 && value.charCodeAt(end - 1) === 0) {
454
- end--;
455
- }
456
- return end === value.length ? value : value.slice(0, end);
457
- }
458
- static readIdentifierAndData(uint8Array, encoding) {
459
- const idStr = FrameParser.readNullTerminatedString(uint8Array, { encoding, bom: false });
460
- return { id: idStr.text, data: uint8Array.subarray(idStr.len) };
319
+ static readIdentifierAndData(uint8Array, offset, length, encoding) {
320
+ const fzero = util.findZero(uint8Array, offset, length, encoding);
321
+ const id = util.decodeString(uint8Array.slice(offset, fzero), encoding);
322
+ offset = fzero + FrameParser.getNullTerminatorLength(encoding);
323
+ return { id, data: uint8Array.slice(offset, length) };
461
324
  }
462
325
  static getNullTerminatorLength(enc) {
463
- return enc.startsWith('utf-16') ? 2 : 1;
326
+ return enc === 'utf16le' ? 2 : 1;
464
327
  }
465
328
  }
466
- export class Id3v2ContentError extends makeUnexpectedFileContentError('id3v2') {
467
- }
468
- function makeUnexpectedMajorVersionError(majorVer) {
469
- throw new Id3v2ContentError(`Unexpected majorVer: ${majorVer}`);
470
- }
329
+ exports.FrameParser = FrameParser;
@@ -1,5 +1,5 @@
1
- import type { INativeTagMap } from '../common/GenericTagTypes.js';
2
- import { CaseInsensitiveTagMap } from '../common/CaseInsensitiveTagMap.js';
1
+ import { INativeTagMap } from '../common/GenericTagTypes';
2
+ import { CaseInsensitiveTagMap } from '../common/CaseInsensitiveTagMap';
3
3
  /**
4
4
  * ID3v2.2 tag mappings
5
5
  */
@@ -1,8 +1,11 @@
1
- import { CaseInsensitiveTagMap } from '../common/CaseInsensitiveTagMap.js';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ID3v22TagMapper = exports.id3v22TagMap = void 0;
4
+ const CaseInsensitiveTagMap_1 = require("../common/CaseInsensitiveTagMap");
2
5
  /**
3
6
  * ID3v2.2 tag mappings
4
7
  */
5
- export const id3v22TagMap = {
8
+ exports.id3v22TagMap = {
6
9
  TT2: 'title',
7
10
  TP1: 'artist',
8
11
  TP2: 'albumartist',
@@ -27,6 +30,12 @@ export const id3v22TagMap = {
27
30
  TEN: 'encodedby',
28
31
  TSS: 'encodersettings',
29
32
  WAR: 'website',
33
+ 'COM:iTunPGAP': 'gapless'
34
+ /* ToDo: iTunes tags:
35
+ 'COM:iTunNORM': ,
36
+ 'COM:iTunSMPB': 'encoder delay',
37
+ 'COM:iTunes_CDDB_IDs'
38
+ */ ,
30
39
  PCS: 'podcast',
31
40
  TCP: "compilation",
32
41
  TDR: 'date',
@@ -36,11 +45,12 @@ export const id3v22TagMap = {
36
45
  TSP: 'artistsort',
37
46
  TST: 'titlesort',
38
47
  WFD: 'podcasturl',
39
- TBP: 'bpm',
40
- GP1: 'grouping'
48
+ TBP: 'bpm'
41
49
  };
42
- export class ID3v22TagMapper extends CaseInsensitiveTagMap {
50
+ class ID3v22TagMapper extends CaseInsensitiveTagMap_1.CaseInsensitiveTagMap {
43
51
  constructor() {
44
- super(['ID3v2.2'], id3v22TagMap);
52
+ super(['ID3v2.2'], exports.id3v22TagMap);
45
53
  }
46
54
  }
55
+ exports.ID3v22TagMapper = ID3v22TagMapper;
56
+ //# sourceMappingURL=ID3v22TagMapper.js.map
@@ -1,14 +1,14 @@
1
- import { CaseInsensitiveTagMap } from '../common/CaseInsensitiveTagMap.js';
2
- import type { INativeMetadataCollector } from '../common/MetadataCollector.js';
3
- import type { IRating, ITag } from '../type.js';
4
- import type { IPopularimeter } from './FrameParser.js';
1
+ import { INativeMetadataCollector } from '../common/MetadataCollector';
2
+ import { CaseInsensitiveTagMap } from '../common/CaseInsensitiveTagMap';
3
+ import { IRating, ITag } from '../type';
5
4
  export declare class ID3v24TagMapper extends CaseInsensitiveTagMap {
6
- static toRating(popm: IPopularimeter): IRating;
5
+ static toRating(popm: any): IRating;
7
6
  constructor();
8
7
  /**
9
8
  * Handle post mapping exceptions / correction
10
9
  * @param tag to post map
11
10
  * @param warnings Wil be used to register (collect) warnings
11
+ * @return Common value e.g. "Buena Vista Social Club"
12
12
  */
13
13
  protected postMap(tag: ITag, warnings: INativeMetadataCollector): void;
14
14
  }