@dragon708/docmind-markdown 1.2.5 → 1.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/node_modules/music-metadata/LICENSE.txt +3 -3
- package/node_modules/music-metadata/README.md +246 -690
- package/node_modules/music-metadata/lib/ParserFactory.d.ts +31 -27
- package/node_modules/music-metadata/lib/ParserFactory.js +219 -108
- package/node_modules/music-metadata/lib/aiff/AiffParser.d.ts +2 -2
- package/node_modules/music-metadata/lib/aiff/AiffParser.js +38 -34
- package/node_modules/music-metadata/lib/aiff/AiffTagMap.d.ts +1 -1
- package/node_modules/music-metadata/lib/aiff/AiffTagMap.js +7 -2
- package/node_modules/music-metadata/lib/aiff/AiffToken.d.ts +6 -32
- package/node_modules/music-metadata/lib/aiff/AiffToken.js +17 -27
- package/node_modules/music-metadata/lib/apev2/APEv2Parser.d.ts +8 -24
- package/node_modules/music-metadata/lib/apev2/APEv2Parser.js +66 -78
- package/node_modules/music-metadata/lib/apev2/APEv2TagMapper.d.ts +1 -1
- package/node_modules/music-metadata/lib/apev2/APEv2TagMapper.js +8 -4
- package/node_modules/music-metadata/lib/apev2/APEv2Token.d.ts +11 -10
- package/node_modules/music-metadata/lib/apev2/APEv2Token.js +27 -16
- package/node_modules/music-metadata/lib/asf/AsfObject.d.ts +53 -59
- package/node_modules/music-metadata/lib/asf/AsfObject.js +131 -97
- package/node_modules/music-metadata/lib/asf/AsfParser.d.ts +1 -1
- package/node_modules/music-metadata/lib/asf/AsfParser.js +43 -42
- package/node_modules/music-metadata/lib/asf/AsfTagMapper.d.ts +2 -2
- package/node_modules/music-metadata/lib/asf/AsfTagMapper.js +10 -6
- package/node_modules/music-metadata/lib/asf/AsfUtil.d.ts +13 -4
- package/node_modules/music-metadata/lib/asf/AsfUtil.js +36 -30
- package/node_modules/music-metadata/lib/asf/GUID.d.ts +84 -0
- package/node_modules/music-metadata/lib/asf/GUID.js +121 -0
- package/node_modules/music-metadata/lib/common/BasicParser.d.ts +9 -9
- package/node_modules/music-metadata/lib/common/BasicParser.js +7 -2
- package/node_modules/music-metadata/lib/common/CaseInsensitiveTagMap.d.ts +3 -3
- package/node_modules/music-metadata/lib/common/CaseInsensitiveTagMap.js +7 -2
- package/node_modules/music-metadata/lib/common/CombinedTagMapper.d.ts +5 -5
- package/node_modules/music-metadata/lib/common/CombinedTagMapper.js +28 -24
- package/node_modules/music-metadata/lib/common/FourCC.d.ts +1 -1
- package/node_modules/music-metadata/lib/common/FourCC.js +11 -10
- package/node_modules/music-metadata/lib/common/GenericTagMapper.d.ts +13 -13
- package/node_modules/music-metadata/lib/common/GenericTagMapper.js +12 -7
- package/node_modules/music-metadata/lib/common/GenericTagTypes.d.ts +6 -7
- package/node_modules/music-metadata/lib/common/GenericTagTypes.js +85 -86
- package/node_modules/music-metadata/lib/common/MetadataCollector.d.ts +10 -20
- package/node_modules/music-metadata/lib/common/MetadataCollector.js +69 -100
- package/node_modules/music-metadata/lib/common/RandomFileReader.d.ts +22 -0
- package/node_modules/music-metadata/lib/common/RandomFileReader.js +34 -0
- package/node_modules/music-metadata/lib/common/RandomUint8ArrayReader.d.ts +18 -0
- package/node_modules/music-metadata/lib/common/RandomUint8ArrayReader.js +25 -0
- package/node_modules/music-metadata/lib/common/Util.d.ts +12 -11
- package/node_modules/music-metadata/lib/common/Util.js +53 -47
- package/node_modules/music-metadata/lib/core.d.ts +15 -42
- package/node_modules/music-metadata/lib/core.js +38 -74
- package/node_modules/music-metadata/lib/dsdiff/DsdiffParser.d.ts +1 -16
- package/node_modules/music-metadata/lib/dsdiff/DsdiffParser.js +44 -55
- package/node_modules/music-metadata/lib/dsdiff/DsdiffToken.d.ts +3 -3
- package/node_modules/music-metadata/lib/dsdiff/DsdiffToken.js +7 -4
- package/node_modules/music-metadata/lib/dsf/DsfChunk.d.ts +10 -11
- package/node_modules/music-metadata/lib/dsf/DsfChunk.js +19 -15
- package/node_modules/music-metadata/lib/dsf/DsfParser.d.ts +1 -16
- package/node_modules/music-metadata/lib/dsf/DsfParser.js +20 -21
- package/node_modules/music-metadata/lib/flac/FlacParser.d.ts +15 -16
- package/node_modules/music-metadata/lib/flac/FlacParser.js +119 -69
- package/node_modules/music-metadata/lib/id3v1/ID3v1Parser.d.ts +3 -7
- package/node_modules/music-metadata/lib/id3v1/ID3v1Parser.js +36 -39
- package/node_modules/music-metadata/lib/id3v1/ID3v1TagMap.d.ts +1 -1
- package/node_modules/music-metadata/lib/id3v1/ID3v1TagMap.js +7 -2
- package/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.d.ts +2 -2
- package/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js +19 -15
- package/node_modules/music-metadata/lib/id3v2/FrameParser.d.ts +3 -64
- package/node_modules/music-metadata/lib/id3v2/FrameParser.js +103 -244
- package/node_modules/music-metadata/lib/id3v2/ID3v22TagMapper.d.ts +2 -2
- package/node_modules/music-metadata/lib/id3v2/ID3v22TagMapper.js +16 -6
- package/node_modules/music-metadata/lib/id3v2/ID3v24TagMapper.d.ts +5 -5
- package/node_modules/music-metadata/lib/id3v2/ID3v24TagMapper.js +35 -36
- package/node_modules/music-metadata/lib/id3v2/ID3v2Parser.d.ts +6 -11
- package/node_modules/music-metadata/lib/id3v2/ID3v2Parser.js +104 -91
- package/node_modules/music-metadata/lib/id3v2/ID3v2Token.d.ts +29 -67
- package/node_modules/music-metadata/lib/id3v2/ID3v2Token.js +36 -76
- package/node_modules/music-metadata/lib/iff/index.d.ts +1 -1
- package/node_modules/music-metadata/lib/iff/index.js +7 -4
- package/node_modules/music-metadata/lib/index.d.ts +31 -8
- package/node_modules/music-metadata/lib/index.js +53 -32
- package/node_modules/music-metadata/lib/lyrics3/Lyrics3.d.ts +2 -2
- package/node_modules/music-metadata/lib/lyrics3/Lyrics3.js +13 -13
- package/node_modules/music-metadata/lib/matroska/MatroskaDtd.d.ts +2 -2
- package/node_modules/music-metadata/lib/matroska/MatroskaDtd.js +242 -246
- package/node_modules/music-metadata/lib/matroska/MatroskaParser.d.ts +24 -6
- package/node_modules/music-metadata/lib/matroska/MatroskaParser.js +218 -124
- package/node_modules/music-metadata/lib/matroska/MatroskaTagMapper.d.ts +1 -1
- package/node_modules/music-metadata/lib/matroska/MatroskaTagMapper.js +7 -3
- package/node_modules/music-metadata/lib/matroska/types.d.ts +76 -43
- package/node_modules/music-metadata/lib/matroska/types.js +33 -27
- package/node_modules/music-metadata/lib/mp4/Atom.d.ts +7 -7
- package/node_modules/music-metadata/lib/mp4/Atom.js +22 -15
- package/node_modules/music-metadata/lib/mp4/AtomToken.d.ts +18 -110
- package/node_modules/music-metadata/lib/mp4/AtomToken.js +66 -184
- package/node_modules/music-metadata/lib/mp4/MP4Parser.d.ts +4 -6
- package/node_modules/music-metadata/lib/mp4/MP4Parser.js +128 -255
- package/node_modules/music-metadata/lib/mp4/MP4TagMapper.d.ts +4 -4
- package/node_modules/music-metadata/lib/mp4/MP4TagMapper.js +12 -8
- package/node_modules/music-metadata/lib/mpeg/ExtendedLameHeader.d.ts +5 -5
- package/node_modules/music-metadata/lib/mpeg/ExtendedLameHeader.js +10 -7
- package/node_modules/music-metadata/lib/mpeg/MpegParser.d.ts +4 -17
- package/node_modules/music-metadata/lib/mpeg/MpegParser.js +131 -176
- package/node_modules/music-metadata/lib/mpeg/ReplayGainDataFormat.d.ts +14 -16
- package/node_modules/music-metadata/lib/mpeg/ReplayGainDataFormat.js +19 -14
- package/node_modules/music-metadata/lib/mpeg/XingTag.d.ts +7 -6
- package/node_modules/music-metadata/lib/mpeg/XingTag.js +18 -14
- package/node_modules/music-metadata/lib/musepack/index.d.ts +5 -0
- package/node_modules/music-metadata/lib/musepack/index.js +32 -0
- package/node_modules/music-metadata/lib/musepack/sv7/BitReader.d.ts +2 -2
- package/node_modules/music-metadata/lib/musepack/sv7/BitReader.js +24 -16
- package/node_modules/music-metadata/lib/musepack/sv7/MpcSv7Parser.d.ts +1 -1
- package/node_modules/music-metadata/lib/musepack/sv7/MpcSv7Parser.js +15 -16
- package/node_modules/music-metadata/lib/musepack/sv7/StreamVersion7.d.ts +1 -1
- package/node_modules/music-metadata/lib/musepack/sv7/StreamVersion7.js +7 -5
- package/node_modules/music-metadata/lib/musepack/sv8/MpcSv8Parser.d.ts +1 -1
- package/node_modules/music-metadata/lib/musepack/sv8/MpcSv8Parser.js +17 -18
- package/node_modules/music-metadata/lib/musepack/sv8/StreamVersion8.d.ts +3 -5
- package/node_modules/music-metadata/lib/musepack/sv8/StreamVersion8.js +12 -14
- package/node_modules/music-metadata/lib/ogg/{OggToken.d.ts → Ogg.d.ts} +6 -17
- package/node_modules/music-metadata/lib/ogg/Ogg.js +2 -0
- package/node_modules/music-metadata/lib/ogg/OggParser.d.ts +12 -16
- package/node_modules/music-metadata/lib/ogg/OggParser.js +102 -101
- package/node_modules/music-metadata/lib/ogg/opus/Opus.d.ts +2 -17
- package/node_modules/music-metadata/lib/ogg/opus/Opus.js +14 -13
- package/node_modules/music-metadata/lib/ogg/opus/OpusParser.d.ts +25 -0
- package/node_modules/music-metadata/lib/ogg/opus/{OpusStream.js → OpusParser.js} +18 -18
- package/node_modules/music-metadata/lib/ogg/speex/Speex.d.ts +1 -1
- package/node_modules/music-metadata/lib/ogg/speex/Speex.js +19 -16
- package/node_modules/music-metadata/lib/ogg/speex/SpeexParser.d.ts +22 -0
- package/node_modules/music-metadata/lib/ogg/speex/{SpeexStream.js → SpeexParser.js} +13 -9
- package/node_modules/music-metadata/lib/ogg/theora/Theora.d.ts +1 -1
- package/node_modules/music-metadata/lib/ogg/theora/Theora.js +11 -8
- package/node_modules/music-metadata/lib/ogg/theora/TheoraParser.d.ts +28 -0
- package/node_modules/music-metadata/lib/ogg/theora/TheoraParser.js +44 -0
- package/node_modules/music-metadata/lib/ogg/vorbis/Vorbis.d.ts +7 -6
- package/node_modules/music-metadata/lib/ogg/vorbis/Vorbis.js +29 -34
- package/node_modules/music-metadata/lib/ogg/vorbis/VorbisDecoder.d.ts +1 -1
- package/node_modules/music-metadata/lib/ogg/vorbis/VorbisDecoder.js +9 -6
- package/node_modules/music-metadata/lib/ogg/vorbis/VorbisParser.d.ts +36 -0
- package/node_modules/music-metadata/lib/ogg/vorbis/VorbisParser.js +128 -0
- package/node_modules/music-metadata/lib/ogg/vorbis/VorbisTagMapper.d.ts +3 -3
- package/node_modules/music-metadata/lib/ogg/vorbis/VorbisTagMapper.js +9 -5
- package/node_modules/music-metadata/lib/riff/RiffChunk.d.ts +5 -5
- package/node_modules/music-metadata/lib/riff/RiffChunk.js +9 -5
- package/node_modules/music-metadata/lib/riff/RiffInfoTagMap.d.ts +2 -2
- package/node_modules/music-metadata/lib/riff/RiffInfoTagMap.js +25 -20
- package/node_modules/music-metadata/lib/type.d.ts +52 -121
- package/node_modules/music-metadata/lib/type.js +6 -2
- package/node_modules/music-metadata/lib/wav/BwfChunk.d.ts +1 -1
- package/node_modules/music-metadata/lib/wav/BwfChunk.js +11 -8
- package/node_modules/music-metadata/lib/wav/WaveChunk.d.ts +20 -50
- package/node_modules/music-metadata/lib/wav/WaveChunk.js +32 -45
- package/node_modules/music-metadata/lib/wav/WaveParser.d.ts +2 -2
- package/node_modules/music-metadata/lib/wav/WaveParser.js +39 -46
- package/node_modules/music-metadata/lib/wavpack/WavPackParser.d.ts +2 -18
- package/node_modules/music-metadata/lib/wavpack/WavPackParser.js +32 -42
- package/node_modules/music-metadata/lib/wavpack/WavPackToken.d.ts +18 -14
- package/node_modules/music-metadata/lib/wavpack/WavPackToken.js +30 -24
- package/node_modules/music-metadata/package.json +74 -81
- package/package.json +1 -5
- package/node_modules/@borewit/text-codec/LICENSE.txt +0 -9
- package/node_modules/@borewit/text-codec/README.md +0 -87
- package/node_modules/@borewit/text-codec/lib/index.d.ts +0 -6
- package/node_modules/@borewit/text-codec/lib/index.js +0 -380
- package/node_modules/@borewit/text-codec/package.json +0 -70
- package/node_modules/music-metadata/lib/ParseError.d.ts +0 -87
- package/node_modules/music-metadata/lib/ParseError.js +0 -38
- package/node_modules/music-metadata/lib/aiff/AiffLoader.d.ts +0 -2
- package/node_modules/music-metadata/lib/aiff/AiffLoader.js +0 -8
- package/node_modules/music-metadata/lib/apev2/Apev2Loader.d.ts +0 -2
- package/node_modules/music-metadata/lib/apev2/Apev2Loader.js +0 -8
- package/node_modules/music-metadata/lib/asf/AsfGuid.d.ts +0 -83
- package/node_modules/music-metadata/lib/asf/AsfGuid.js +0 -109
- package/node_modules/music-metadata/lib/asf/AsfLoader.d.ts +0 -2
- package/node_modules/music-metadata/lib/asf/AsfLoader.js +0 -8
- package/node_modules/music-metadata/lib/dsdiff/DsdiffLoader.d.ts +0 -2
- package/node_modules/music-metadata/lib/dsdiff/DsdiffLoader.js +0 -8
- package/node_modules/music-metadata/lib/dsf/DsfLoader.d.ts +0 -2
- package/node_modules/music-metadata/lib/dsf/DsfLoader.js +0 -8
- package/node_modules/music-metadata/lib/ebml/EbmlIterator.d.ts +0 -67
- package/node_modules/music-metadata/lib/ebml/EbmlIterator.js +0 -218
- package/node_modules/music-metadata/lib/ebml/types.d.ts +0 -37
- package/node_modules/music-metadata/lib/ebml/types.js +0 -8
- package/node_modules/music-metadata/lib/flac/FlacLoader.d.ts +0 -2
- package/node_modules/music-metadata/lib/flac/FlacLoader.js +0 -8
- package/node_modules/music-metadata/lib/flac/FlacToken.d.ts +0 -45
- package/node_modules/music-metadata/lib/flac/FlacToken.js +0 -63
- package/node_modules/music-metadata/lib/id3v2/FrameHeader.d.ts +0 -31
- package/node_modules/music-metadata/lib/id3v2/FrameHeader.js +0 -73
- package/node_modules/music-metadata/lib/id3v2/ID3v2ChapterToken.d.ts +0 -11
- package/node_modules/music-metadata/lib/id3v2/ID3v2ChapterToken.js +0 -17
- package/node_modules/music-metadata/lib/lrc/LyricsParser.d.ts +0 -9
- package/node_modules/music-metadata/lib/lrc/LyricsParser.js +0 -45
- package/node_modules/music-metadata/lib/matroska/MatroskaLoader.d.ts +0 -2
- package/node_modules/music-metadata/lib/matroska/MatroskaLoader.js +0 -8
- package/node_modules/music-metadata/lib/mp4/Mp4Loader.d.ts +0 -2
- package/node_modules/music-metadata/lib/mp4/Mp4Loader.js +0 -8
- package/node_modules/music-metadata/lib/mpeg/MpegLoader.d.ts +0 -2
- package/node_modules/music-metadata/lib/mpeg/MpegLoader.js +0 -8
- package/node_modules/music-metadata/lib/musepack/MusepackConentError.d.ts +0 -15
- package/node_modules/music-metadata/lib/musepack/MusepackConentError.js +0 -3
- package/node_modules/music-metadata/lib/musepack/MusepackLoader.d.ts +0 -2
- package/node_modules/music-metadata/lib/musepack/MusepackLoader.js +0 -8
- package/node_modules/music-metadata/lib/musepack/MusepackParser.d.ts +0 -4
- package/node_modules/music-metadata/lib/musepack/MusepackParser.js +0 -30
- package/node_modules/music-metadata/lib/ogg/OggLoader.d.ts +0 -2
- package/node_modules/music-metadata/lib/ogg/OggLoader.js +0 -8
- package/node_modules/music-metadata/lib/ogg/OggToken.js +0 -41
- package/node_modules/music-metadata/lib/ogg/flac/FlacStream.d.ts +0 -29
- package/node_modules/music-metadata/lib/ogg/flac/FlacStream.js +0 -74
- package/node_modules/music-metadata/lib/ogg/opus/OpusStream.d.ts +0 -24
- package/node_modules/music-metadata/lib/ogg/speex/SpeexStream.d.ts +0 -20
- package/node_modules/music-metadata/lib/ogg/theora/TheoraStream.d.ts +0 -25
- package/node_modules/music-metadata/lib/ogg/theora/TheoraStream.js +0 -39
- package/node_modules/music-metadata/lib/ogg/vorbis/VorbisStream.d.ts +0 -53
- package/node_modules/music-metadata/lib/ogg/vorbis/VorbisStream.js +0 -136
- package/node_modules/music-metadata/lib/wav/WaveLoader.d.ts +0 -2
- package/node_modules/music-metadata/lib/wav/WaveLoader.js +0 -8
- package/node_modules/music-metadata/lib/wavpack/WavPackLoader.d.ts +0 -2
- package/node_modules/music-metadata/lib/wavpack/WavPackLoader.js +0 -8
- package/node_modules/music-metadata/node_modules/file-type/core.d.ts +0 -253
- package/node_modules/music-metadata/node_modules/file-type/core.js +0 -2899
- package/node_modules/music-metadata/node_modules/file-type/index.d.ts +0 -98
- package/node_modules/music-metadata/node_modules/file-type/index.js +0 -163
- package/node_modules/music-metadata/node_modules/file-type/license +0 -9
- package/node_modules/music-metadata/node_modules/file-type/package.json +0 -290
- package/node_modules/music-metadata/node_modules/file-type/readme.md +0 -667
- package/node_modules/music-metadata/node_modules/file-type/supported.js +0 -360
- package/node_modules/music-metadata/node_modules/file-type/util.js +0 -60
- package/node_modules/music-metadata/node_modules/strtok3/LICENSE.txt +0 -21
- package/node_modules/music-metadata/node_modules/strtok3/README.md +0 -399
- package/node_modules/music-metadata/node_modules/strtok3/lib/AbstractTokenizer.d.ts +0 -76
- package/node_modules/music-metadata/node_modules/strtok3/lib/AbstractTokenizer.js +0 -111
- package/node_modules/music-metadata/node_modules/strtok3/lib/BlobTokenizer.d.ts +0 -29
- package/node_modules/music-metadata/node_modules/strtok3/lib/BlobTokenizer.js +0 -53
- package/node_modules/music-metadata/node_modules/strtok3/lib/BufferTokenizer.d.ts +0 -29
- package/node_modules/music-metadata/node_modules/strtok3/lib/BufferTokenizer.js +0 -52
- package/node_modules/music-metadata/node_modules/strtok3/lib/FileTokenizer.d.ts +0 -37
- package/node_modules/music-metadata/node_modules/strtok3/lib/FileTokenizer.js +0 -61
- package/node_modules/music-metadata/node_modules/strtok3/lib/ReadStreamTokenizer.d.ts +0 -34
- package/node_modules/music-metadata/node_modules/strtok3/lib/ReadStreamTokenizer.js +0 -107
- package/node_modules/music-metadata/node_modules/strtok3/lib/core.d.ts +0 -40
- package/node_modules/music-metadata/node_modules/strtok3/lib/core.js +0 -62
- package/node_modules/music-metadata/node_modules/strtok3/lib/index.d.ts +0 -16
- package/node_modules/music-metadata/node_modules/strtok3/lib/index.js +0 -22
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/AbstractStreamReader.d.ts +0 -54
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/AbstractStreamReader.js +0 -71
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/Deferred.d.ts +0 -6
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/Deferred.js +0 -10
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/Errors.d.ts +0 -10
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/Errors.js +0 -16
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/StreamReader.d.ts +0 -29
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/StreamReader.js +0 -83
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamByobReader.d.ts +0 -14
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamByobReader.js +0 -27
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamDefaultReader.d.ts +0 -19
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamDefaultReader.js +0 -62
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamReader.d.ts +0 -14
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamReader.js +0 -13
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamReaderFactory.d.ts +0 -5
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamReaderFactory.js +0 -19
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/index.d.ts +0 -6
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/index.js +0 -5
- package/node_modules/music-metadata/node_modules/strtok3/lib/types.d.ts +0 -139
- package/node_modules/music-metadata/node_modules/strtok3/lib/types.js +0 -1
- package/node_modules/music-metadata/node_modules/strtok3/package.json +0 -94
- package/node_modules/music-metadata/node_modules/token-types/LICENSE.txt +0 -9
- package/node_modules/music-metadata/node_modules/token-types/README.md +0 -120
- package/node_modules/music-metadata/node_modules/token-types/lib/index.d.ts +0 -135
- package/node_modules/music-metadata/node_modules/token-types/lib/index.js +0 -401
- package/node_modules/music-metadata/node_modules/token-types/package.json +0 -81
- package/node_modules/sprintf-js/.npmignore +0 -1
- package/node_modules/sprintf-js/LICENSE +0 -24
- package/node_modules/sprintf-js/README.md +0 -88
- package/node_modules/sprintf-js/bower.json +0 -14
- package/node_modules/sprintf-js/demo/angular.html +0 -20
- package/node_modules/sprintf-js/dist/angular-sprintf.min.js +0 -4
- package/node_modules/sprintf-js/dist/angular-sprintf.min.js.map +0 -1
- package/node_modules/sprintf-js/dist/angular-sprintf.min.map +0 -1
- package/node_modules/sprintf-js/dist/sprintf.min.js +0 -4
- package/node_modules/sprintf-js/dist/sprintf.min.js.map +0 -1
- package/node_modules/sprintf-js/dist/sprintf.min.map +0 -1
- package/node_modules/sprintf-js/gruntfile.js +0 -36
- package/node_modules/sprintf-js/package.json +0 -22
- package/node_modules/sprintf-js/src/angular-sprintf.js +0 -18
- package/node_modules/sprintf-js/src/sprintf.js +0 -208
- package/node_modules/sprintf-js/test/test.js +0 -82
- package/node_modules/uint8array-extras/index.d.ts +0 -331
- package/node_modules/uint8array-extras/index.js +0 -318
- package/node_modules/uint8array-extras/license +0 -9
- package/node_modules/uint8array-extras/package.json +0 -54
- package/node_modules/uint8array-extras/readme.md +0 -318
- package/node_modules/win-guid/LICENSE.txt +0 -9
- package/node_modules/win-guid/README.md +0 -113
- package/node_modules/win-guid/lib/guid.d.ts +0 -20
- package/node_modules/win-guid/lib/guid.js +0 -107
- package/node_modules/win-guid/package.json +0 -55
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/LICENSE +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/README.md +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/index.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/append/constant.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/append.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/count.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/help.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/store/constant.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/store/false.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/store/true.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/store.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/subparsers.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/version.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action_container.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/argparse.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/argument/error.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/argument/exclusive.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/argument/group.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/argument_parser.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/const.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/help/added_formatters.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/help/formatter.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/namespace.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/utils.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/package.json +0 -0
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ID3v24TagMapper = void 0;
|
|
4
|
+
const GenericTagMapper_1 = require("../common/GenericTagMapper");
|
|
5
|
+
const CaseInsensitiveTagMap_1 = require("../common/CaseInsensitiveTagMap");
|
|
6
|
+
const util = require("../common/Util");
|
|
5
7
|
/**
|
|
6
8
|
* ID3v2.3/ID3v2.4 tag mappings
|
|
7
9
|
*/
|
|
@@ -12,7 +14,7 @@ const id3v24TagMap = {
|
|
|
12
14
|
'TXXX:Artists': 'artists',
|
|
13
15
|
TPE2: 'albumartist',
|
|
14
16
|
TALB: 'album',
|
|
15
|
-
TDRV: 'date',
|
|
17
|
+
TDRV: 'date',
|
|
16
18
|
/**
|
|
17
19
|
* Original release year
|
|
18
20
|
*/
|
|
@@ -21,7 +23,7 @@ const id3v24TagMap = {
|
|
|
21
23
|
TCON: 'genre',
|
|
22
24
|
APIC: 'picture',
|
|
23
25
|
TCOM: 'composer',
|
|
24
|
-
USLT: 'lyrics',
|
|
26
|
+
'USLT:description': 'lyrics',
|
|
25
27
|
TSOA: 'albumsort',
|
|
26
28
|
TSOT: 'titlesort',
|
|
27
29
|
TOAL: 'originalalbum',
|
|
@@ -85,7 +87,7 @@ const id3v24TagMap = {
|
|
|
85
87
|
WOAR: 'website',
|
|
86
88
|
// id3v2.4
|
|
87
89
|
// ToDo: In same sequence as defined at http://id3.org/id3v2.4.0-frames
|
|
88
|
-
TDRC: 'date',
|
|
90
|
+
TDRC: 'date',
|
|
89
91
|
TYER: 'year',
|
|
90
92
|
TDOR: 'originaldate',
|
|
91
93
|
// 'TMCL:instrument': 'performer:instrument',
|
|
@@ -133,18 +135,16 @@ const id3v24TagMap = {
|
|
|
133
135
|
PCST: 'podcast',
|
|
134
136
|
TCAT: 'category',
|
|
135
137
|
TDES: 'description',
|
|
136
|
-
TDRL: '
|
|
138
|
+
TDRL: 'date',
|
|
137
139
|
TGID: 'podcastId',
|
|
138
140
|
TKWD: 'keywords',
|
|
139
|
-
WFED: 'podcasturl'
|
|
140
|
-
GRP1: 'grouping',
|
|
141
|
-
PCNT: 'playCounter',
|
|
141
|
+
WFED: 'podcasturl'
|
|
142
142
|
};
|
|
143
|
-
|
|
143
|
+
class ID3v24TagMapper extends CaseInsensitiveTagMap_1.CaseInsensitiveTagMap {
|
|
144
144
|
static toRating(popm) {
|
|
145
145
|
return {
|
|
146
146
|
source: popm.email,
|
|
147
|
-
rating: popm.rating > 0 ? (popm.rating - 1) / 254 * CommonTagMapper.maxRatingScore : undefined
|
|
147
|
+
rating: popm.rating > 0 ? (popm.rating - 1) / 254 * GenericTagMapper_1.CommonTagMapper.maxRatingScore : undefined
|
|
148
148
|
};
|
|
149
149
|
}
|
|
150
150
|
constructor() {
|
|
@@ -154,37 +154,34 @@ export class ID3v24TagMapper extends CaseInsensitiveTagMap {
|
|
|
154
154
|
* Handle post mapping exceptions / correction
|
|
155
155
|
* @param tag to post map
|
|
156
156
|
* @param warnings Wil be used to register (collect) warnings
|
|
157
|
+
* @return Common value e.g. "Buena Vista Social Club"
|
|
157
158
|
*/
|
|
158
159
|
postMap(tag, warnings) {
|
|
159
160
|
switch (tag.id) {
|
|
160
|
-
case 'UFID':
|
|
161
|
-
{
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
if (idTag.owner_identifier === 'http://musicbrainz.org') {
|
|
165
|
-
tag.id += `:${idTag.owner_identifier}`;
|
|
166
|
-
tag.value = decodeString(idTag.identifier, 'latin1'); // latin1 == iso-8859-1
|
|
167
|
-
}
|
|
161
|
+
case 'UFID': // decode MusicBrainz Recording Id
|
|
162
|
+
if (tag.value.owner_identifier === 'http://musicbrainz.org') {
|
|
163
|
+
tag.id += ':' + tag.value.owner_identifier;
|
|
164
|
+
tag.value = util.decodeString(tag.value.identifier, 'latin1'); // latin1 == iso-8859-1
|
|
168
165
|
}
|
|
169
166
|
break;
|
|
170
167
|
case 'PRIV':
|
|
171
|
-
{
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
default:
|
|
184
|
-
warnings.addWarning(`Unknown PRIV owner-identifier: ${customTag.data}`);
|
|
185
|
-
}
|
|
168
|
+
switch (tag.value.owner_identifier) {
|
|
169
|
+
// decode Windows Media Player
|
|
170
|
+
case 'AverageLevel':
|
|
171
|
+
case 'PeakValue':
|
|
172
|
+
tag.id += ':' + tag.value.owner_identifier;
|
|
173
|
+
tag.value = tag.value.data.length === 4 ? tag.value.data.readUInt32LE(0) : null;
|
|
174
|
+
if (tag.value === null) {
|
|
175
|
+
warnings.addWarning(`Failed to parse PRIV:PeakValue`);
|
|
176
|
+
}
|
|
177
|
+
break;
|
|
178
|
+
default:
|
|
179
|
+
warnings.addWarning(`Unknown PRIV owner-identifier: ${tag.value.owner_identifier}`);
|
|
186
180
|
}
|
|
187
181
|
break;
|
|
182
|
+
case 'COMM':
|
|
183
|
+
tag.value = tag.value ? tag.value.text : null;
|
|
184
|
+
break;
|
|
188
185
|
case 'POPM':
|
|
189
186
|
tag.value = ID3v24TagMapper.toRating(tag.value);
|
|
190
187
|
break;
|
|
@@ -193,3 +190,5 @@ export class ID3v24TagMapper extends CaseInsensitiveTagMap {
|
|
|
193
190
|
}
|
|
194
191
|
}
|
|
195
192
|
}
|
|
193
|
+
exports.ID3v24TagMapper = ID3v24TagMapper;
|
|
194
|
+
//# sourceMappingURL=ID3v24TagMapper.js.map
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import { ITokenizer } from 'strtok3/lib/core';
|
|
2
|
+
import { IOptions } from '../type';
|
|
3
|
+
import { INativeMetadataCollector } from '../common/MetadataCollector';
|
|
4
4
|
export declare class ID3v2Parser {
|
|
5
5
|
static removeUnsyncBytes(buffer: Uint8Array): Uint8Array;
|
|
6
|
+
private static getFrameHeaderLength;
|
|
7
|
+
private static readFrameFlags;
|
|
6
8
|
private static readFrameData;
|
|
7
9
|
/**
|
|
8
10
|
* Create a combined tag key, of tag & description
|
|
@@ -20,14 +22,7 @@ export declare class ID3v2Parser {
|
|
|
20
22
|
parseExtendedHeader(): Promise<void>;
|
|
21
23
|
parseExtendedHeaderData(dataRemaining: number, extendedHeaderSize: number): Promise<void>;
|
|
22
24
|
parseId3Data(dataLen: number): Promise<void>;
|
|
23
|
-
private handleTag;
|
|
24
25
|
private addTag;
|
|
25
26
|
private parseMetadata;
|
|
26
|
-
|
|
27
|
-
* Convert parsed ID3v2 chapter frames (CHAP / CTOC) to generic `format.chapters`.
|
|
28
|
-
*
|
|
29
|
-
* This function expects the `native` tags already to contain parsed `CHAP` and `CTOC` frame values,
|
|
30
|
-
* as produced by `FrameParser.readData`.
|
|
31
|
-
*/
|
|
32
|
-
private static mapId3v2Chapters;
|
|
27
|
+
private readFrameHeader;
|
|
33
28
|
}
|
|
@@ -1,15 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
this.metadata = undefined;
|
|
10
|
-
this.headerType = undefined;
|
|
11
|
-
this.options = undefined;
|
|
12
|
-
}
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ID3v2Parser = void 0;
|
|
4
|
+
const Token = require("token-types");
|
|
5
|
+
const util = require("../common/Util");
|
|
6
|
+
const FrameParser_1 = require("./FrameParser");
|
|
7
|
+
const ID3v2Token_1 = require("./ID3v2Token");
|
|
8
|
+
class ID3v2Parser {
|
|
13
9
|
static removeUnsyncBytes(buffer) {
|
|
14
10
|
let readI = 0;
|
|
15
11
|
let writeI = 0;
|
|
@@ -23,24 +19,51 @@ export class ID3v2Parser {
|
|
|
23
19
|
if (readI < buffer.length) {
|
|
24
20
|
buffer[writeI++] = buffer[readI];
|
|
25
21
|
}
|
|
26
|
-
return buffer.
|
|
22
|
+
return buffer.slice(0, writeI);
|
|
23
|
+
}
|
|
24
|
+
static getFrameHeaderLength(majorVer) {
|
|
25
|
+
switch (majorVer) {
|
|
26
|
+
case 2:
|
|
27
|
+
return 6;
|
|
28
|
+
case 3:
|
|
29
|
+
case 4:
|
|
30
|
+
return 10;
|
|
31
|
+
default:
|
|
32
|
+
throw new Error('header versionIndex is incorrect');
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
static readFrameFlags(b) {
|
|
36
|
+
return {
|
|
37
|
+
status: {
|
|
38
|
+
tag_alter_preservation: util.getBit(b, 0, 6),
|
|
39
|
+
file_alter_preservation: util.getBit(b, 0, 5),
|
|
40
|
+
read_only: util.getBit(b, 0, 4)
|
|
41
|
+
},
|
|
42
|
+
format: {
|
|
43
|
+
grouping_identity: util.getBit(b, 1, 7),
|
|
44
|
+
compression: util.getBit(b, 1, 3),
|
|
45
|
+
encryption: util.getBit(b, 1, 2),
|
|
46
|
+
unsynchronisation: util.getBit(b, 1, 1),
|
|
47
|
+
data_length_indicator: util.getBit(b, 1, 0)
|
|
48
|
+
}
|
|
49
|
+
};
|
|
27
50
|
}
|
|
28
51
|
static readFrameData(uint8Array, frameHeader, majorVer, includeCovers, warningCollector) {
|
|
29
|
-
const frameParser = new FrameParser(majorVer, warningCollector);
|
|
52
|
+
const frameParser = new FrameParser_1.FrameParser(majorVer, warningCollector);
|
|
30
53
|
switch (majorVer) {
|
|
31
54
|
case 2:
|
|
32
55
|
return frameParser.readData(uint8Array, frameHeader.id, includeCovers);
|
|
33
56
|
case 3:
|
|
34
57
|
case 4:
|
|
35
|
-
if (frameHeader.flags
|
|
58
|
+
if (frameHeader.flags.format.unsynchronisation) {
|
|
36
59
|
uint8Array = ID3v2Parser.removeUnsyncBytes(uint8Array);
|
|
37
60
|
}
|
|
38
|
-
if (frameHeader.flags
|
|
39
|
-
uint8Array = uint8Array.
|
|
61
|
+
if (frameHeader.flags.format.data_length_indicator) {
|
|
62
|
+
uint8Array = uint8Array.slice(4, uint8Array.length);
|
|
40
63
|
}
|
|
41
64
|
return frameParser.readData(uint8Array, frameHeader.id, includeCovers);
|
|
42
65
|
default:
|
|
43
|
-
throw
|
|
66
|
+
throw new Error('Unexpected majorVer: ' + majorVer);
|
|
44
67
|
}
|
|
45
68
|
}
|
|
46
69
|
/**
|
|
@@ -50,26 +73,23 @@ export class ID3v2Parser {
|
|
|
50
73
|
* @returns string e.g. COM:iTunPGAP
|
|
51
74
|
*/
|
|
52
75
|
static makeDescriptionTagName(tag, description) {
|
|
53
|
-
return tag + (description ?
|
|
76
|
+
return tag + (description ? ':' + description : '');
|
|
54
77
|
}
|
|
55
78
|
async parse(metadata, tokenizer, options) {
|
|
56
79
|
this.tokenizer = tokenizer;
|
|
57
80
|
this.metadata = metadata;
|
|
58
81
|
this.options = options;
|
|
59
|
-
const id3Header = await this.tokenizer.readToken(ID3v2Header);
|
|
82
|
+
const id3Header = await this.tokenizer.readToken(ID3v2Token_1.ID3v2Header);
|
|
60
83
|
if (id3Header.fileIdentifier !== 'ID3') {
|
|
61
|
-
throw new
|
|
84
|
+
throw new Error('expected ID3-header file-identifier \'ID3\' was not found');
|
|
62
85
|
}
|
|
63
86
|
this.id3Header = id3Header;
|
|
64
|
-
this.headerType = (
|
|
65
|
-
|
|
66
|
-
// Post process
|
|
67
|
-
const chapters = ID3v2Parser.mapId3v2Chapters(this.metadata.native[this.headerType]);
|
|
68
|
-
this.metadata.setFormat('chapters', chapters);
|
|
87
|
+
this.headerType = ('ID3v2.' + id3Header.version.major);
|
|
88
|
+
return id3Header.flags.isExtendedHeader ? this.parseExtendedHeader() : this.parseId3Data(id3Header.size);
|
|
69
89
|
}
|
|
70
90
|
async parseExtendedHeader() {
|
|
71
|
-
const extendedHeader = await this.tokenizer.readToken(ExtendedHeader);
|
|
72
|
-
const dataRemaining = extendedHeader.size - ExtendedHeader.len;
|
|
91
|
+
const extendedHeader = await this.tokenizer.readToken(ID3v2Token_1.ExtendedHeader);
|
|
92
|
+
const dataRemaining = extendedHeader.size - ID3v2Token_1.ExtendedHeader.len;
|
|
73
93
|
return dataRemaining > 0 ? this.parseExtendedHeaderData(dataRemaining, extendedHeader.size) : this.parseId3Data(this.id3Header.size - extendedHeader.size);
|
|
74
94
|
}
|
|
75
95
|
async parseExtendedHeaderData(dataRemaining, extendedHeaderSize) {
|
|
@@ -79,22 +99,35 @@ export class ID3v2Parser {
|
|
|
79
99
|
async parseId3Data(dataLen) {
|
|
80
100
|
const uint8Array = await this.tokenizer.readToken(new Token.Uint8ArrayType(dataLen));
|
|
81
101
|
for (const tag of this.parseMetadata(uint8Array)) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
102
|
+
if (tag.id === 'TXXX') {
|
|
103
|
+
if (tag.value) {
|
|
104
|
+
for (const text of tag.value.text) {
|
|
105
|
+
this.addTag(ID3v2Parser.makeDescriptionTagName(tag.id, tag.value.description), text);
|
|
86
106
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
else if (tag.id === 'COM') {
|
|
110
|
+
for (const value of tag.value) {
|
|
111
|
+
this.addTag(ID3v2Parser.makeDescriptionTagName(tag.id, value.description), value.text);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
else if (tag.id === 'COMM') {
|
|
115
|
+
for (const value of tag.value) {
|
|
116
|
+
this.addTag(ID3v2Parser.makeDescriptionTagName(tag.id, value.description), value);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
else if (Array.isArray(tag.value)) {
|
|
120
|
+
for (const value of tag.value) {
|
|
121
|
+
this.addTag(tag.id, value);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
this.addTag(tag.id, tag.value);
|
|
90
126
|
}
|
|
91
127
|
}
|
|
92
128
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}
|
|
96
|
-
async addTag(id, value) {
|
|
97
|
-
await this.metadata.addTag(this.headerType, id, value);
|
|
129
|
+
addTag(id, value) {
|
|
130
|
+
this.metadata.addTag(this.headerType, id, value);
|
|
98
131
|
}
|
|
99
132
|
parseMetadata(data) {
|
|
100
133
|
let offset = 0;
|
|
@@ -102,16 +135,14 @@ export class ID3v2Parser {
|
|
|
102
135
|
while (true) {
|
|
103
136
|
if (offset === data.length)
|
|
104
137
|
break;
|
|
105
|
-
const frameHeaderLength = getFrameHeaderLength(this.id3Header.version.major);
|
|
138
|
+
const frameHeaderLength = ID3v2Parser.getFrameHeaderLength(this.id3Header.version.major);
|
|
106
139
|
if (offset + frameHeaderLength > data.length) {
|
|
107
140
|
this.metadata.addWarning('Illegal ID3v2 tag length');
|
|
108
141
|
break;
|
|
109
142
|
}
|
|
110
|
-
const frameHeaderBytes = data.
|
|
111
|
-
|
|
112
|
-
const
|
|
113
|
-
const frameDataBytes = data.subarray(offset, offset + frameHeader.length);
|
|
114
|
-
offset += frameHeader.length;
|
|
143
|
+
const frameHeaderBytes = data.slice(offset, offset += frameHeaderLength);
|
|
144
|
+
const frameHeader = this.readFrameHeader(frameHeaderBytes, this.id3Header.version.major);
|
|
145
|
+
const frameDataBytes = data.slice(offset, offset += frameHeader.length);
|
|
115
146
|
const values = ID3v2Parser.readFrameData(frameDataBytes, frameHeader, this.id3Header.version.major, !this.options.skipCovers, this.metadata);
|
|
116
147
|
if (values) {
|
|
117
148
|
tags.push({ id: frameHeader.id, value: values });
|
|
@@ -119,51 +150,33 @@ export class ID3v2Parser {
|
|
|
119
150
|
}
|
|
120
151
|
return tags;
|
|
121
152
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
const frames = chap.frames;
|
|
148
|
-
const title = frames.get('TIT2');
|
|
149
|
-
if (!title)
|
|
150
|
-
continue; // title is required
|
|
151
|
-
chapters.push({
|
|
152
|
-
id,
|
|
153
|
-
title,
|
|
154
|
-
url: frames.get('WXXX'),
|
|
155
|
-
start: chap.info.startTime / 1000,
|
|
156
|
-
end: chap.info.endTime / 1000,
|
|
157
|
-
image: frames.get('APIC')
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
// If no ordered CTOC, sort by time
|
|
161
|
-
if (!orderedIds) {
|
|
162
|
-
chapters.sort((a, b) => a.start - b.start);
|
|
153
|
+
readFrameHeader(uint8Array, majorVer) {
|
|
154
|
+
let header;
|
|
155
|
+
switch (majorVer) {
|
|
156
|
+
case 2:
|
|
157
|
+
header = {
|
|
158
|
+
id: Buffer.from(uint8Array.slice(0, 3)).toString('ascii'),
|
|
159
|
+
length: Token.UINT24_BE.get(uint8Array, 3)
|
|
160
|
+
};
|
|
161
|
+
if (!header.id.match(/[A-Z0-9]{3}/g)) {
|
|
162
|
+
this.metadata.addWarning(`Invalid ID3v2.${this.id3Header.version.major} frame-header-ID: ${header.id}`);
|
|
163
|
+
}
|
|
164
|
+
break;
|
|
165
|
+
case 3:
|
|
166
|
+
case 4:
|
|
167
|
+
header = {
|
|
168
|
+
id: Buffer.from(uint8Array.slice(0, 4)).toString('ascii'),
|
|
169
|
+
length: (majorVer === 4 ? ID3v2Token_1.UINT32SYNCSAFE : Token.UINT32_BE).get(uint8Array, 4),
|
|
170
|
+
flags: ID3v2Parser.readFrameFlags(uint8Array.slice(8, 10))
|
|
171
|
+
};
|
|
172
|
+
if (!header.id.match(/[A-Z0-9]{4}/g)) {
|
|
173
|
+
this.metadata.addWarning(`Invalid ID3v2.${this.id3Header.version.major} frame-header-ID: ${header.id}`);
|
|
174
|
+
}
|
|
175
|
+
break;
|
|
176
|
+
default:
|
|
177
|
+
throw new Error('Unexpected majorVer: ' + majorVer);
|
|
163
178
|
}
|
|
164
|
-
return
|
|
179
|
+
return header;
|
|
165
180
|
}
|
|
166
181
|
}
|
|
167
|
-
|
|
168
|
-
throw new Id3v2ContentError(`Unexpected majorVer: ${majorVer}`);
|
|
169
|
-
}
|
|
182
|
+
exports.ID3v2Parser = ID3v2Parser;
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import
|
|
2
|
-
import * as util from '../common/Util
|
|
1
|
+
import { IGetToken } from 'strtok3/lib/core';
|
|
2
|
+
import * as util from '../common/Util';
|
|
3
3
|
/**
|
|
4
4
|
* The picture type according to the ID3v2 APIC frame
|
|
5
5
|
* Ref: http://id3.org/id3v2.3.0#Attached_picture
|
|
6
6
|
*/
|
|
7
|
-
export declare
|
|
8
|
-
0
|
|
9
|
-
1
|
|
10
|
-
2
|
|
11
|
-
3
|
|
12
|
-
4
|
|
13
|
-
5
|
|
14
|
-
6
|
|
15
|
-
7
|
|
16
|
-
8
|
|
17
|
-
9
|
|
18
|
-
10
|
|
19
|
-
11
|
|
20
|
-
12
|
|
21
|
-
13
|
|
22
|
-
14
|
|
23
|
-
15
|
|
24
|
-
16
|
|
25
|
-
17
|
|
26
|
-
18
|
|
27
|
-
19
|
|
28
|
-
20
|
|
29
|
-
}
|
|
7
|
+
export declare enum AttachedPictureType {
|
|
8
|
+
'Other' = 0,
|
|
9
|
+
"32x32 pixels 'file icon' (PNG only)" = 1,
|
|
10
|
+
'Other file icon' = 2,
|
|
11
|
+
'Cover (front)' = 3,
|
|
12
|
+
'Cover (back)' = 4,
|
|
13
|
+
'Leaflet page' = 5,
|
|
14
|
+
'Media (e.g. label side of CD)' = 6,
|
|
15
|
+
'Lead artist/lead performer/soloist' = 7,
|
|
16
|
+
'Artist/performer' = 8,
|
|
17
|
+
'Conductor' = 9,
|
|
18
|
+
'Band/Orchestra' = 10,
|
|
19
|
+
'Composer' = 11,
|
|
20
|
+
'Lyricist/text writer' = 12,
|
|
21
|
+
'Recording Location' = 13,
|
|
22
|
+
'During recording' = 14,
|
|
23
|
+
'During performance' = 15,
|
|
24
|
+
'Movie/video screen capture' = 16,
|
|
25
|
+
'A bright coloured fish' = 17,
|
|
26
|
+
'Illustration' = 18,
|
|
27
|
+
'Band/artist logotype' = 19,
|
|
28
|
+
'Publisher/Studio logotype' = 20
|
|
29
|
+
}
|
|
30
30
|
export type ID3v2MajorVersion = 2 | 3 | 4;
|
|
31
31
|
export interface IExtendedHeader {
|
|
32
32
|
size: number;
|
|
@@ -34,30 +34,14 @@ export interface IExtendedHeader {
|
|
|
34
34
|
sizeOfPadding: number;
|
|
35
35
|
crcDataPresent: boolean;
|
|
36
36
|
}
|
|
37
|
-
/**
|
|
38
|
-
* https://id3.org/id3v2.3.0#Synchronised_lyrics.2Ftext
|
|
39
|
-
*/
|
|
40
|
-
export declare const LyricsContentType: {
|
|
41
|
-
other: number;
|
|
42
|
-
lyrics: number;
|
|
43
|
-
text: number;
|
|
44
|
-
movement_part: number;
|
|
45
|
-
events: number;
|
|
46
|
-
chord: number;
|
|
47
|
-
trivia_pop: number;
|
|
48
|
-
};
|
|
49
|
-
export type LyricsContentType = typeof LyricsContentType[keyof typeof LyricsContentType];
|
|
50
|
-
export declare const TimestampFormat: {
|
|
51
|
-
notSynchronized: number;
|
|
52
|
-
mpegFrameNumber: number;
|
|
53
|
-
milliseconds: number;
|
|
54
|
-
};
|
|
55
|
-
export type TimestampFormat = typeof TimestampFormat[keyof typeof TimestampFormat];
|
|
56
37
|
/**
|
|
57
38
|
* 28 bits (representing up to 256MB) integer, the msb is 0 to avoid 'false syncsignals'.
|
|
58
39
|
* 4 * %0xxxxxxx
|
|
59
40
|
*/
|
|
60
|
-
export declare const UINT32SYNCSAFE:
|
|
41
|
+
export declare const UINT32SYNCSAFE: {
|
|
42
|
+
get: (buf: Uint8Array, off: number) => number;
|
|
43
|
+
len: number;
|
|
44
|
+
};
|
|
61
45
|
/**
|
|
62
46
|
* ID3v2 tag header
|
|
63
47
|
*/
|
|
@@ -87,25 +71,3 @@ export interface ITextEncoding {
|
|
|
87
71
|
bom?: boolean;
|
|
88
72
|
}
|
|
89
73
|
export declare const TextEncodingToken: IGetToken<ITextEncoding>;
|
|
90
|
-
/**
|
|
91
|
-
* `USLT` frame fields
|
|
92
|
-
*/
|
|
93
|
-
export interface ITextHeader {
|
|
94
|
-
encoding: ITextEncoding;
|
|
95
|
-
language: string;
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Used to read first portion of `SYLT` frame
|
|
99
|
-
*/
|
|
100
|
-
export declare const TextHeader: IGetToken<ITextHeader>;
|
|
101
|
-
/**
|
|
102
|
-
* SYLT` frame fields
|
|
103
|
-
*/
|
|
104
|
-
export interface ISyncTextHeader extends ITextHeader {
|
|
105
|
-
contentType: LyricsContentType;
|
|
106
|
-
timeStampFormat: TimestampFormat;
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Used to read first portion of `SYLT` frame
|
|
110
|
-
*/
|
|
111
|
-
export declare const SyncTextHeader: IGetToken<ISyncTextHeader>;
|