@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,19 +1,22 @@
1
- import { TrackTypeValueToKeyMap, } from '../type.js';
2
- import initDebug from 'debug';
3
- import { isSingleton, isUnique } from './GenericTagTypes.js';
4
- import { CombinedTagMapper } from './CombinedTagMapper.js';
5
- import { CommonTagMapper } from './GenericTagMapper.js';
6
- import { toRatio } from './Util.js';
7
- import { fileTypeFromBuffer } from 'file-type';
8
- import { parseLyrics } from '../lrc/LyricsParser.js';
9
- const debug = initDebug('music-metadata:collector');
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.joinArtists = exports.MetadataCollector = void 0;
4
+ const type_1 = require("../type");
5
+ const debug_1 = require("debug");
6
+ const GenericTagTypes_1 = require("./GenericTagTypes");
7
+ const CombinedTagMapper_1 = require("./CombinedTagMapper");
8
+ const GenericTagMapper_1 = require("./GenericTagMapper");
9
+ const Util_1 = require("./Util");
10
+ const FileType = require("file-type/core");
11
+ const debug = (0, debug_1.default)('music-metadata:collector');
10
12
  const TagPriority = ['matroska', 'APEv2', 'vorbis', 'ID3v2.4', 'ID3v2.3', 'ID3v2.2', 'exif', 'asf', 'iTunes', 'AIFF', 'ID3v1'];
11
13
  /**
12
14
  * Provided to the parser to uodate the metadata result.
13
15
  * Responsible for triggering async updates
14
16
  */
15
- export class MetadataCollector {
17
+ class MetadataCollector {
16
18
  constructor(opts) {
19
+ this.opts = opts;
17
20
  this.format = {
18
21
  tagTypes: [],
19
22
  trackInfo: []
@@ -22,7 +25,7 @@ export class MetadataCollector {
22
25
  this.common = {
23
26
  track: { no: null, of: null },
24
27
  disk: { no: null, of: null },
25
- movementIndex: { no: null, of: null }
28
+ movementIndex: {}
26
29
  };
27
30
  this.quality = {
28
31
  warnings: []
@@ -35,8 +38,7 @@ export class MetadataCollector {
35
38
  * Maps a tag type to a priority
36
39
  */
37
40
  this.originPriority = {};
38
- this.tagMapper = new CombinedTagMapper();
39
- this.opts = opts;
41
+ this.tagMapper = new CombinedTagMapper_1.CombinedTagMapper();
40
42
  let priority = 1;
41
43
  for (const tagType of TagPriority) {
42
44
  this.originPriority[tagType] = priority++;
@@ -51,132 +53,124 @@ export class MetadataCollector {
51
53
  return Object.keys(this.native).length > 0;
52
54
  }
53
55
  addStreamInfo(streamInfo) {
54
- debug(`streamInfo: type=${streamInfo.type ? TrackTypeValueToKeyMap[streamInfo.type] : '?'}, codec=${streamInfo.codecName}`);
56
+ debug(`streamInfo: type=${type_1.TrackType[streamInfo.type]}, codec=${streamInfo.codecName}`);
55
57
  this.format.trackInfo.push(streamInfo);
56
58
  }
57
59
  setFormat(key, value) {
58
60
  debug(`format: ${key} = ${value}`);
59
61
  this.format[key] = value; // as any to override readonly
60
- if (this.opts?.observer) {
62
+ if (this.opts.observer) {
61
63
  this.opts.observer({ metadata: this, tag: { type: 'format', id: key, value } });
62
64
  }
63
65
  }
64
- setAudioOnly() {
65
- this.setFormat('hasAudio', true);
66
- this.setFormat('hasVideo', false);
67
- }
68
- async addTag(tagType, tagId, value) {
66
+ addTag(tagType, tagId, value) {
69
67
  debug(`tag ${tagType}.${tagId} = ${value}`);
70
68
  if (!this.native[tagType]) {
71
69
  this.format.tagTypes.push(tagType);
72
70
  this.native[tagType] = [];
73
71
  }
74
72
  this.native[tagType].push({ id: tagId, value });
75
- await this.toCommon(tagType, tagId, value);
73
+ this.toCommon(tagType, tagId, value);
76
74
  }
77
75
  addWarning(warning) {
78
76
  this.quality.warnings.push({ message: warning });
79
77
  }
80
- async postMap(tagType, tag) {
78
+ postMap(tagType, tag) {
81
79
  // Common tag (alias) found
82
80
  // check if we need to do something special with common tag
83
81
  // if the event has been aliased then we need to clean it before
84
82
  // it is emitted to the user. e.g. genre (20) -> Electronic
85
83
  switch (tag.id) {
86
84
  case 'artist':
87
- return this.handleSingularArtistTag(tagType, tag, 'artist', 'artists');
88
- case 'albumartist':
89
- return this.handleSingularArtistTag(tagType, tag, 'albumartist', 'albumartists');
85
+ if (this.commonOrigin.artist === this.originPriority[tagType]) {
86
+ // Assume the artist field is used as artists
87
+ return this.postMap('artificial', { id: 'artists', value: tag.value });
88
+ }
89
+ if (!this.common.artists) {
90
+ // Fill artists using artist source
91
+ this.setGenericTag('artificial', { id: 'artists', value: tag.value });
92
+ }
93
+ break;
90
94
  case 'artists':
91
- return this.handlePluralArtistTag(tagType, tag, 'artist', 'artists');
92
- case 'albumartists':
93
- return this.handlePluralArtistTag(tagType, tag, 'albumartist', 'albumartists');
95
+ if (!this.common.artist || this.commonOrigin.artist === this.originPriority.artificial) {
96
+ if (!this.common.artists || this.common.artists.indexOf(tag.value) === -1) {
97
+ // Fill artist using artists source
98
+ const artists = (this.common.artists || []).concat([tag.value]);
99
+ const value = joinArtists(artists);
100
+ const artistTag = { id: 'artist', value };
101
+ this.setGenericTag('artificial', artistTag);
102
+ }
103
+ }
104
+ break;
94
105
  case 'picture':
95
- return this.postFixPicture(tag.value).then(picture => {
106
+ this.postFixPicture(tag.value).then(picture => {
96
107
  if (picture !== null) {
97
108
  tag.value = picture;
98
109
  this.setGenericTag(tagType, tag);
99
110
  }
100
111
  });
112
+ return;
101
113
  case 'totaltracks':
102
- this.common.track.of = CommonTagMapper.toIntOrNull(tag.value);
114
+ this.common.track.of = GenericTagMapper_1.CommonTagMapper.toIntOrNull(tag.value);
103
115
  return;
104
116
  case 'totaldiscs':
105
- this.common.disk.of = CommonTagMapper.toIntOrNull(tag.value);
117
+ this.common.disk.of = GenericTagMapper_1.CommonTagMapper.toIntOrNull(tag.value);
106
118
  return;
107
119
  case 'movementTotal':
108
- this.common.movementIndex.of = CommonTagMapper.toIntOrNull(tag.value);
120
+ this.common.movementIndex.of = GenericTagMapper_1.CommonTagMapper.toIntOrNull(tag.value);
109
121
  return;
110
122
  case 'track':
111
123
  case 'disk':
112
- case 'movementIndex': {
124
+ case 'movementIndex':
113
125
  const of = this.common[tag.id].of; // store of value, maybe maybe overwritten
114
- this.common[tag.id] = CommonTagMapper.normalizeTrack(tag.value);
126
+ this.common[tag.id] = GenericTagMapper_1.CommonTagMapper.normalizeTrack(tag.value);
115
127
  this.common[tag.id].of = of != null ? of : this.common[tag.id].of;
116
128
  return;
117
- }
118
129
  case 'bpm':
119
130
  case 'year':
120
131
  case 'originalyear':
121
- tag.value = Number.parseInt(tag.value, 10);
132
+ tag.value = parseInt(tag.value, 10);
122
133
  break;
123
- case 'date': {
134
+ case 'date':
124
135
  // ToDo: be more strict on 'YYYY...'
125
- const year = Number.parseInt(tag.value.substr(0, 4), 10);
126
- if (!Number.isNaN(year)) {
136
+ const year = parseInt(tag.value.substr(0, 4), 10);
137
+ if (!isNaN(year)) {
127
138
  this.common.year = year;
128
139
  }
129
140
  break;
130
- }
131
141
  case 'discogs_label_id':
132
142
  case 'discogs_release_id':
133
143
  case 'discogs_master_release_id':
134
144
  case 'discogs_artist_id':
135
145
  case 'discogs_votes':
136
- tag.value = typeof tag.value === 'string' ? Number.parseInt(tag.value, 10) : tag.value;
146
+ tag.value = typeof tag.value === 'string' ? parseInt(tag.value, 10) : tag.value;
137
147
  break;
138
148
  case 'replaygain_track_gain':
139
149
  case 'replaygain_track_peak':
140
150
  case 'replaygain_album_gain':
141
151
  case 'replaygain_album_peak':
142
- tag.value = toRatio(tag.value);
152
+ tag.value = (0, Util_1.toRatio)(tag.value);
143
153
  break;
144
154
  case 'replaygain_track_minmax':
145
- tag.value = tag.value.split(',').map(v => Number.parseInt(v, 10));
155
+ tag.value = tag.value.split(',').map(v => parseInt(v, 10));
146
156
  break;
147
- case 'replaygain_undo': {
148
- const minMix = tag.value.split(',').map(v => Number.parseInt(v, 10));
157
+ case 'replaygain_undo':
158
+ const minMix = tag.value.split(',').map(v => parseInt(v, 10));
149
159
  tag.value = {
150
160
  leftChannel: minMix[0],
151
161
  rightChannel: minMix[1]
152
162
  };
153
163
  break;
154
- }
155
164
  case 'gapless': // iTunes gap-less flag
156
165
  case 'compilation':
157
166
  case 'podcast':
158
167
  case 'showMovement':
159
168
  tag.value = tag.value === '1' || tag.value === 1; // boolean
160
169
  break;
161
- case 'isrc': { // Only keep unique values
162
- const commonTag = this.common[tag.id];
163
- if (commonTag && commonTag.indexOf(tag.value) !== -1)
170
+ case 'isrc': // Only keep unique values
171
+ if (this.common[tag.id] && this.common[tag.id].indexOf(tag.value) !== -1)
164
172
  return;
165
173
  break;
166
- }
167
- case 'comment':
168
- if (typeof tag.value === 'string') {
169
- tag.value = { text: tag.value };
170
- }
171
- if (tag.value.descriptor === 'iTunPGAP') {
172
- this.setGenericTag(tagType, { id: 'gapless', value: tag.value.text === '1' });
173
- }
174
- break;
175
- case 'lyrics':
176
- if (typeof tag.value === 'string') {
177
- tag.value = parseLyrics(tag.value);
178
- }
179
- break;
180
174
  default:
181
175
  // nothing to do
182
176
  }
@@ -196,34 +190,6 @@ export class MetadataCollector {
196
190
  common: this.common
197
191
  };
198
192
  }
199
- /**
200
- * Handle singular artist tags (artist, albumartist) and cross-populate to plural form
201
- */
202
- handleSingularArtistTag(tagType, tag, singularId, pluralId) {
203
- if (this.commonOrigin[singularId] === this.originPriority[tagType]) {
204
- // Assume the singular field is used as plural (multiple values from same source)
205
- return this.postMap('artificial', { id: pluralId, value: tag.value });
206
- }
207
- if (!this.common[pluralId]) {
208
- // Fill plural using singular source
209
- this.setGenericTag('artificial', { id: pluralId, value: tag.value });
210
- }
211
- this.setGenericTag(tagType, tag);
212
- }
213
- /**
214
- * Handle plural artist tags (artists, albumartists) and cross-populate to singular form
215
- */
216
- handlePluralArtistTag(tagType, tag, singularId, pluralId) {
217
- if (!this.common[singularId] || this.commonOrigin[singularId] === this.originPriority.artificial) {
218
- if (!this.common[pluralId] || this.common[pluralId].indexOf(tag.value) === -1) {
219
- // Fill singular using plural source
220
- const values = (this.common[pluralId] || []).concat([tag.value]);
221
- const value = joinArtists(values);
222
- this.setGenericTag('artificial', { id: singularId, value });
223
- }
224
- }
225
- this.setGenericTag(tagType, tag);
226
- }
227
193
  /**
228
194
  * Fix some common issues with picture object
229
195
  * @param picture Picture
@@ -231,7 +197,7 @@ export class MetadataCollector {
231
197
  async postFixPicture(picture) {
232
198
  if (picture.data && picture.data.length > 0) {
233
199
  if (!picture.format) {
234
- const fileType = await fileTypeFromBuffer(Uint8Array.from(picture.data)); // ToDO: remove Buffer
200
+ const fileType = await FileType.fromBuffer(picture.data);
235
201
  if (fileType) {
236
202
  picture.format = fileType.mime;
237
203
  }
@@ -246,17 +212,17 @@ export class MetadataCollector {
246
212
  }
247
213
  return picture;
248
214
  }
249
- this.addWarning("Empty picture tag found");
215
+ this.addWarning(`Empty picture tag found`);
250
216
  return null;
251
217
  }
252
218
  /**
253
219
  * Convert native tag to common tags
254
220
  */
255
- async toCommon(tagType, tagId, value) {
221
+ toCommon(tagType, tagId, value) {
256
222
  const tag = { id: tagId, value };
257
223
  const genericTag = this.tagMapper.mapTag(tagType, tag, this);
258
224
  if (genericTag) {
259
- await this.postMap(tagType, genericTag);
225
+ this.postMap(tagType, genericTag);
260
226
  }
261
227
  }
262
228
  /**
@@ -266,7 +232,7 @@ export class MetadataCollector {
266
232
  debug(`common.${tag.id} = ${tag.value}`);
267
233
  const prio0 = this.commonOrigin[tag.id] || 1000;
268
234
  const prio1 = this.originPriority[tagType];
269
- if (isSingleton(tag.id)) {
235
+ if ((0, GenericTagTypes_1.isSingleton)(tag.id)) {
270
236
  if (prio1 <= prio0) {
271
237
  this.common[tag.id] = tag.value;
272
238
  this.commonOrigin[tag.id] = prio1;
@@ -277,7 +243,7 @@ export class MetadataCollector {
277
243
  }
278
244
  else {
279
245
  if (prio1 === prio0) {
280
- if (!isUnique(tag.id) || this.common[tag.id].indexOf(tag.value) === -1) {
246
+ if (!(0, GenericTagTypes_1.isUnique)(tag.id) || this.common[tag.id].indexOf(tag.value) === -1) {
281
247
  this.common[tag.id].push(tag.value);
282
248
  }
283
249
  else {
@@ -293,15 +259,18 @@ export class MetadataCollector {
293
259
  return debug(`Ignore native tag (list): ${tagType}.${tag.id} = ${tag.value}`);
294
260
  }
295
261
  }
296
- if (this.opts?.observer) {
262
+ if (this.opts.observer) {
297
263
  this.opts.observer({ metadata: this, tag: { type: 'common', id: tag.id, value: tag.value } });
298
264
  }
299
265
  // ToDo: trigger metadata event
300
266
  }
301
267
  }
302
- export function joinArtists(artists) {
268
+ exports.MetadataCollector = MetadataCollector;
269
+ function joinArtists(artists) {
303
270
  if (artists.length > 2) {
304
- return `${artists.slice(0, artists.length - 1).join(', ')} & ${artists[artists.length - 1]}`;
271
+ return artists.slice(0, artists.length - 1).join(', ') + ' & ' + artists[artists.length - 1];
305
272
  }
306
273
  return artists.join(' & ');
307
274
  }
275
+ exports.joinArtists = joinArtists;
276
+ //# sourceMappingURL=MetadataCollector.js.map
@@ -0,0 +1,22 @@
1
+ /// <reference types="node" />
2
+ import { IRandomReader } from '../type';
3
+ /**
4
+ * Provides abstract file access via the IRandomRead interface
5
+ */
6
+ export declare class RandomFileReader implements IRandomReader {
7
+ private readonly fileHandle;
8
+ filePath: string;
9
+ fileSize: number;
10
+ private constructor();
11
+ /**
12
+ * Read from a given position of an abstracted file or buffer.
13
+ * @param buffer {Buffer} is the buffer that the data will be written to.
14
+ * @param offset {number} is the offset in the buffer to start writing at.
15
+ * @param length {number}is an integer specifying the number of bytes to read.
16
+ * @param position {number} is an argument specifying where to begin reading from in the file.
17
+ * @return {Promise<number>} bytes read
18
+ */
19
+ randomRead(buffer: Buffer, offset: number, length: number, position: number): Promise<number>;
20
+ close(): Promise<void>;
21
+ static init(filePath: string, fileSize: number): Promise<RandomFileReader>;
22
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RandomFileReader = void 0;
4
+ const fs = require("fs");
5
+ /**
6
+ * Provides abstract file access via the IRandomRead interface
7
+ */
8
+ class RandomFileReader {
9
+ constructor(fileHandle, filePath, fileSize) {
10
+ this.fileHandle = fileHandle;
11
+ this.filePath = filePath;
12
+ this.fileSize = fileSize;
13
+ }
14
+ /**
15
+ * Read from a given position of an abstracted file or buffer.
16
+ * @param buffer {Buffer} is the buffer that the data will be written to.
17
+ * @param offset {number} is the offset in the buffer to start writing at.
18
+ * @param length {number}is an integer specifying the number of bytes to read.
19
+ * @param position {number} is an argument specifying where to begin reading from in the file.
20
+ * @return {Promise<number>} bytes read
21
+ */
22
+ async randomRead(buffer, offset, length, position) {
23
+ const result = await this.fileHandle.read(buffer, offset, length, position);
24
+ return result.bytesRead;
25
+ }
26
+ async close() {
27
+ return this.fileHandle.close();
28
+ }
29
+ static async init(filePath, fileSize) {
30
+ const fileHandle = await fs.promises.open(filePath, 'r');
31
+ return new RandomFileReader(fileHandle, filePath, fileSize);
32
+ }
33
+ }
34
+ exports.RandomFileReader = RandomFileReader;
@@ -0,0 +1,18 @@
1
+ import { IRandomReader } from '../type';
2
+ /**
3
+ * Provides abstract Uint8Array access via the IRandomRead interface
4
+ */
5
+ export declare class RandomUint8ArrayReader implements IRandomReader {
6
+ private readonly uint8Array;
7
+ readonly fileSize: number;
8
+ constructor(uint8Array: Uint8Array);
9
+ /**
10
+ * Read from a given position of an abstracted file or buffer.
11
+ * @param uint8Array - Uint8Array that the data will be written to.
12
+ * @param offset - Offset in the buffer to start writing at.
13
+ * @param length - Integer specifying the number of bytes to read.
14
+ * @param position - Specifies where to begin reading from in the file.
15
+ * @return Promise providing bytes read
16
+ */
17
+ randomRead(uint8Array: Uint8Array, offset: number, length: number, position: number): Promise<number>;
18
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RandomUint8ArrayReader = void 0;
4
+ /**
5
+ * Provides abstract Uint8Array access via the IRandomRead interface
6
+ */
7
+ class RandomUint8ArrayReader {
8
+ constructor(uint8Array) {
9
+ this.uint8Array = uint8Array;
10
+ this.fileSize = uint8Array.length;
11
+ }
12
+ /**
13
+ * Read from a given position of an abstracted file or buffer.
14
+ * @param uint8Array - Uint8Array that the data will be written to.
15
+ * @param offset - Offset in the buffer to start writing at.
16
+ * @param length - Integer specifying the number of bytes to read.
17
+ * @param position - Specifies where to begin reading from in the file.
18
+ * @return Promise providing bytes read
19
+ */
20
+ async randomRead(uint8Array, offset, length, position) {
21
+ uint8Array.set(this.uint8Array.subarray(position, position + length), offset);
22
+ return length;
23
+ }
24
+ }
25
+ exports.RandomUint8ArrayReader = RandomUint8ArrayReader;
@@ -1,13 +1,19 @@
1
- import type { IRatio } from '../type.js';
2
- export type StringEncoding = 'ascii' | 'utf8' | 'utf-16le' | 'ucs2' | 'base64url' | 'latin1' | 'hex';
1
+ import { IRatio } from '../type';
2
+ export type StringEncoding = 'ascii' | 'utf8' | 'utf16le' | 'ucs2' | 'base64url' | 'latin1' | 'hex';
3
+ export interface ITextEncoding {
4
+ encoding: StringEncoding;
5
+ bom?: boolean;
6
+ }
3
7
  export declare function getBit(buf: Uint8Array, off: number, bit: number): boolean;
4
8
  /**
5
- * Find delimiting zero in uint8Array
9
+ * Found delimiting zero in uint8Array
6
10
  * @param uint8Array Uint8Array to find the zero delimiter in
11
+ * @param start Offset in uint8Array
12
+ * @param end Last position to parse in uint8Array
7
13
  * @param encoding The string encoding used
8
- * @return position in uint8Array where zero found, or uint8Array.length if not found
14
+ * @return Absolute position on uint8Array where zero found
9
15
  */
10
- export declare function findZero(uint8Array: Uint8Array, encoding?: StringEncoding): number;
16
+ export declare function findZero(uint8Array: Uint8Array, start: number, end: number, encoding?: StringEncoding): number;
11
17
  export declare function trimRightNull(x: string): string;
12
18
  /**
13
19
  * Decode string
@@ -48,9 +54,4 @@ export declare function dbToRatio(dB: number): number;
48
54
  * Convert replay gain to ratio and Decibel
49
55
  * @param value string holding a ratio like '0.034' or '-7.54 dB'
50
56
  */
51
- export declare function toRatio(value: string): IRatio | undefined;
52
- /**
53
- * Decode a big-endian unsigned integer from a Uint8Array.
54
- * Supports dynamic length (1–8 bytes).
55
- */
56
- export declare function decodeUintBE(uint8Array: Uint8Array): number;
57
+ export declare function toRatio(value: string): IRatio;
@@ -1,40 +1,47 @@
1
- import { StringType } from 'token-types';
2
- import { FieldDecodingError } from '../ParseError.js';
3
- import { getUintBE } from 'uint8array-extras';
4
- export function getBit(buf, off, bit) {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toRatio = exports.dbToRatio = exports.ratioToDb = exports.a2hex = exports.isBitSet = exports.getBitAllignedNumber = exports.stripNulls = exports.decodeString = exports.trimRightNull = exports.findZero = exports.getBit = void 0;
4
+ function getBit(buf, off, bit) {
5
5
  return (buf[off] & (1 << bit)) !== 0;
6
6
  }
7
+ exports.getBit = getBit;
7
8
  /**
8
- * Find delimiting zero in uint8Array
9
+ * Found delimiting zero in uint8Array
9
10
  * @param uint8Array Uint8Array to find the zero delimiter in
11
+ * @param start Offset in uint8Array
12
+ * @param end Last position to parse in uint8Array
10
13
  * @param encoding The string encoding used
11
- * @return position in uint8Array where zero found, or uint8Array.length if not found
14
+ * @return Absolute position on uint8Array where zero found
12
15
  */
13
- export function findZero(uint8Array, encoding) {
14
- const len = uint8Array.length;
15
- if (encoding === 'utf-16le') {
16
- // Look for 0x00 0x00 on 2-byte boundary
17
- for (let i = 0; i + 1 < len; i += 2) {
18
- if (uint8Array[i] === 0 && uint8Array[i + 1] === 0)
19
- return i;
16
+ function findZero(uint8Array, start, end, encoding) {
17
+ let i = start;
18
+ if (encoding === 'utf16le') {
19
+ while (uint8Array[i] !== 0 || uint8Array[i + 1] !== 0) {
20
+ if (i >= end)
21
+ return end;
22
+ i += 2;
20
23
  }
21
- return len;
24
+ return i;
22
25
  }
23
- // latin1 / utf8 / utf16be (caller typically handles utf16be separately or via decode)
24
- for (let i = 0; i < len; i++) {
25
- if (uint8Array[i] === 0)
26
- return i;
26
+ else {
27
+ while (uint8Array[i] !== 0) {
28
+ if (i >= end)
29
+ return end;
30
+ i++;
31
+ }
32
+ return i;
27
33
  }
28
- return len;
29
34
  }
30
- export function trimRightNull(x) {
35
+ exports.findZero = findZero;
36
+ function trimRightNull(x) {
31
37
  const pos0 = x.indexOf('\0');
32
- return pos0 === -1 ? x : x.substring(0, pos0);
38
+ return pos0 === -1 ? x : x.substr(0, pos0);
33
39
  }
40
+ exports.trimRightNull = trimRightNull;
34
41
  function swapBytes(uint8Array) {
35
42
  const l = uint8Array.length;
36
43
  if ((l & 1) !== 0)
37
- throw new FieldDecodingError('Buffer length must be even');
44
+ throw new Error('Buffer length must be even');
38
45
  for (let i = 0; i < l; i += 2) {
39
46
  const a = uint8Array[i];
40
47
  uint8Array[i] = uint8Array[i + 1];
@@ -45,25 +52,27 @@ function swapBytes(uint8Array) {
45
52
  /**
46
53
  * Decode string
47
54
  */
48
- export function decodeString(uint8Array, encoding) {
55
+ function decodeString(uint8Array, encoding) {
49
56
  // annoying workaround for a double BOM issue
50
57
  // https://github.com/leetreveil/musicmetadata/issues/84
51
58
  if (uint8Array[0] === 0xFF && uint8Array[1] === 0xFE) { // little endian
52
59
  return decodeString(uint8Array.subarray(2), encoding);
53
60
  }
54
- if (encoding === 'utf-16le' && uint8Array[0] === 0xFE && uint8Array[1] === 0xFF) {
61
+ else if (encoding === 'utf16le' && uint8Array[0] === 0xFE && uint8Array[1] === 0xFF) {
55
62
  // BOM, indicating big endian decoding
56
63
  if ((uint8Array.length & 1) !== 0)
57
- throw new FieldDecodingError('Expected even number of octets for 16-bit unicode string');
64
+ throw new Error('Expected even number of octets for 16-bit unicode string');
58
65
  return decodeString(swapBytes(uint8Array), encoding);
59
66
  }
60
- return new StringType(uint8Array.length, encoding).get(uint8Array, 0);
67
+ return Buffer.from(uint8Array).toString(encoding);
61
68
  }
62
- export function stripNulls(str) {
69
+ exports.decodeString = decodeString;
70
+ function stripNulls(str) {
63
71
  str = str.replace(/^\x00+/g, '');
64
72
  str = str.replace(/\x00+$/g, '');
65
73
  return str;
66
74
  }
75
+ exports.stripNulls = stripNulls;
67
76
  /**
68
77
  * Read bit-aligned number start from buffer
69
78
  * Total offset in bits = byteOffset * 8 + bitOffset
@@ -73,7 +82,7 @@ export function stripNulls(str) {
73
82
  * @param len Length of number in bits
74
83
  * @return Decoded bit aligned number
75
84
  */
76
- export function getBitAllignedNumber(source, byteOffset, bitOffset, len) {
85
+ function getBitAllignedNumber(source, byteOffset, bitOffset, len) {
77
86
  const byteOff = byteOffset + ~~(bitOffset / 8);
78
87
  const bitOff = bitOffset % 8;
79
88
  let value = source[byteOff];
@@ -89,6 +98,7 @@ export function getBitAllignedNumber(source, byteOffset, bitOffset, len) {
89
98
  }
90
99
  return value;
91
100
  }
101
+ exports.getBitAllignedNumber = getBitAllignedNumber;
92
102
  /**
93
103
  * Read bit-aligned number start from buffer
94
104
  * Total offset in bits = byteOffset * 8 + bitOffset
@@ -97,39 +107,44 @@ export function getBitAllignedNumber(source, byteOffset, bitOffset, len) {
97
107
  * @param bitOffset Starting offset in bits: 0 = most significant bit, 7 is the least significant bit
98
108
  * @return True if bit is set
99
109
  */
100
- export function isBitSet(source, byteOffset, bitOffset) {
110
+ function isBitSet(source, byteOffset, bitOffset) {
101
111
  return getBitAllignedNumber(source, byteOffset, bitOffset, 1) === 1;
102
112
  }
103
- export function a2hex(str) {
113
+ exports.isBitSet = isBitSet;
114
+ function a2hex(str) {
104
115
  const arr = [];
105
116
  for (let i = 0, l = str.length; i < l; i++) {
106
117
  const hex = Number(str.charCodeAt(i)).toString(16);
107
- arr.push(hex.length === 1 ? `0${hex}` : hex);
118
+ arr.push(hex.length === 1 ? '0' + hex : hex);
108
119
  }
109
120
  return arr.join(' ');
110
121
  }
122
+ exports.a2hex = a2hex;
111
123
  /**
112
124
  * Convert power ratio to DB
113
125
  * ratio: [0..1]
114
126
  */
115
- export function ratioToDb(ratio) {
127
+ function ratioToDb(ratio) {
116
128
  return 10 * Math.log10(ratio);
117
129
  }
130
+ exports.ratioToDb = ratioToDb;
118
131
  /**
119
132
  * Convert dB to ratio
120
133
  * db Decibels
121
134
  */
122
- export function dbToRatio(dB) {
123
- return 10 ** (dB / 10);
135
+ function dbToRatio(dB) {
136
+ return Math.pow(10, dB / 10);
124
137
  }
138
+ exports.dbToRatio = dbToRatio;
125
139
  /**
126
140
  * Convert replay gain to ratio and Decibel
127
141
  * @param value string holding a ratio like '0.034' or '-7.54 dB'
128
142
  */
129
- export function toRatio(value) {
143
+ function toRatio(value) {
130
144
  const ps = value.split(' ').map(p => p.trim().toLowerCase());
145
+ // @ts-ignore
131
146
  if (ps.length >= 1) {
132
- const v = Number.parseFloat(ps[0]);
147
+ const v = parseFloat(ps[0]);
133
148
  return ps.length === 2 && ps[1] === 'db' ? {
134
149
  dB: v,
135
150
  ratio: dbToRatio(v)
@@ -139,14 +154,5 @@ export function toRatio(value) {
139
154
  };
140
155
  }
141
156
  }
142
- /**
143
- * Decode a big-endian unsigned integer from a Uint8Array.
144
- * Supports dynamic length (1–8 bytes).
145
- */
146
- export function decodeUintBE(uint8Array) {
147
- if (uint8Array.length === 0) {
148
- throw new Error("decodeUintBE: empty Uint8Array");
149
- }
150
- const view = new DataView(uint8Array.buffer, uint8Array.byteOffset, uint8Array.byteLength);
151
- return getUintBE(view);
152
- }
157
+ exports.toRatio = toRatio;
158
+ //# sourceMappingURL=Util.js.map