@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,109 +0,0 @@
|
|
|
1
|
-
import { parseWindowsGuid, Guid } from 'win-guid';
|
|
2
|
-
/**
|
|
3
|
-
* Ref:
|
|
4
|
-
* - https://tools.ietf.org/html/draft-fleischman-asf-01, Appendix A: ASF GUIDs
|
|
5
|
-
* - http://drang.s4.xrea.com/program/tips/id3tag/wmp/10_asf_guids.html
|
|
6
|
-
* - http://drang.s4.xrea.com/program/tips/id3tag/wmp/index.html
|
|
7
|
-
* - http://drang.s4.xrea.com/program/tips/id3tag/wmp/10_asf_guids.html
|
|
8
|
-
*
|
|
9
|
-
* ASF File Structure:
|
|
10
|
-
* - https://msdn.microsoft.com/en-us/library/windows/desktop/ee663575(v=vs.85).aspx
|
|
11
|
-
*
|
|
12
|
-
* ASF GUIDs:
|
|
13
|
-
* - http://drang.s4.xrea.com/program/tips/id3tag/wmp/10_asf_guids.html
|
|
14
|
-
* - https://github.com/dji-sdk/FFmpeg/blob/master/libavformat/asf.c
|
|
15
|
-
*/
|
|
16
|
-
class AsfGuid {
|
|
17
|
-
static fromBin(bin, offset = 0) {
|
|
18
|
-
return new AsfGuid(AsfGuid.decode(bin, offset));
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Decode GUID in format like "B503BF5F-2EA9-CF11-8EE3-00C00C205365"
|
|
22
|
-
* @param objectId Binary GUID
|
|
23
|
-
* @param offset Read offset in bytes, default 0
|
|
24
|
-
* @returns GUID as dashed hexadecimal representation
|
|
25
|
-
*/
|
|
26
|
-
static decode(objectId, offset = 0) {
|
|
27
|
-
return new Guid(objectId.subarray(offset, offset + 16)).toString();
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Decode stream type
|
|
31
|
-
* @param mediaType Media type GUID
|
|
32
|
-
* @returns Media type
|
|
33
|
-
*/
|
|
34
|
-
static decodeMediaType(mediaType) {
|
|
35
|
-
switch (mediaType.str) {
|
|
36
|
-
case AsfGuid.AudioMedia.str: return 'audio';
|
|
37
|
-
case AsfGuid.VideoMedia.str: return 'video';
|
|
38
|
-
case AsfGuid.CommandMedia.str: return 'command';
|
|
39
|
-
case AsfGuid.Degradable_JPEG_Media.str: return 'degradable-jpeg';
|
|
40
|
-
case AsfGuid.FileTransferMedia.str: return 'file-transfer';
|
|
41
|
-
case AsfGuid.BinaryMedia.str: return 'binary';
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Encode GUID
|
|
46
|
-
* @param guid GUID like: "B503BF5F-2EA9-CF11-8EE3-00C00C205365"
|
|
47
|
-
* @returns Encoded Binary GUID
|
|
48
|
-
*/
|
|
49
|
-
static encode(guid) {
|
|
50
|
-
return parseWindowsGuid(guid);
|
|
51
|
-
}
|
|
52
|
-
constructor(str) {
|
|
53
|
-
this.str = str;
|
|
54
|
-
}
|
|
55
|
-
equals(guid) {
|
|
56
|
-
return this.str === guid.str;
|
|
57
|
-
}
|
|
58
|
-
toBin() {
|
|
59
|
-
return AsfGuid.encode(this.str);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
// 10.1 Top-level ASF object GUIDs
|
|
63
|
-
AsfGuid.HeaderObject = new AsfGuid("75B22630-668E-11CF-A6D9-00AA0062CE6C");
|
|
64
|
-
AsfGuid.DataObject = new AsfGuid("75B22636-668E-11CF-A6D9-00AA0062CE6C");
|
|
65
|
-
AsfGuid.SimpleIndexObject = new AsfGuid("33000890-E5B1-11CF-89F4-00A0C90349CB");
|
|
66
|
-
AsfGuid.IndexObject = new AsfGuid("D6E229D3-35DA-11D1-9034-00A0C90349BE");
|
|
67
|
-
AsfGuid.MediaObjectIndexObject = new AsfGuid("FEB103F8-12AD-4C64-840F-2A1D2F7AD48C");
|
|
68
|
-
AsfGuid.TimecodeIndexObject = new AsfGuid("3CB73FD0-0C4A-4803-953D-EDF7B6228F0C");
|
|
69
|
-
// 10.2 Header Object GUIDs
|
|
70
|
-
AsfGuid.FilePropertiesObject = new AsfGuid("8CABDCA1-A947-11CF-8EE4-00C00C205365");
|
|
71
|
-
AsfGuid.StreamPropertiesObject = new AsfGuid("B7DC0791-A9B7-11CF-8EE6-00C00C205365");
|
|
72
|
-
AsfGuid.HeaderExtensionObject = new AsfGuid("5FBF03B5-A92E-11CF-8EE3-00C00C205365");
|
|
73
|
-
AsfGuid.CodecListObject = new AsfGuid("86D15240-311D-11D0-A3A4-00A0C90348F6");
|
|
74
|
-
AsfGuid.ScriptCommandObject = new AsfGuid("1EFB1A30-0B62-11D0-A39B-00A0C90348F6");
|
|
75
|
-
AsfGuid.MarkerObject = new AsfGuid("F487CD01-A951-11CF-8EE6-00C00C205365");
|
|
76
|
-
AsfGuid.BitrateMutualExclusionObject = new AsfGuid("D6E229DC-35DA-11D1-9034-00A0C90349BE");
|
|
77
|
-
AsfGuid.ErrorCorrectionObject = new AsfGuid("75B22635-668E-11CF-A6D9-00AA0062CE6C");
|
|
78
|
-
AsfGuid.ContentDescriptionObject = new AsfGuid("75B22633-668E-11CF-A6D9-00AA0062CE6C");
|
|
79
|
-
AsfGuid.ExtendedContentDescriptionObject = new AsfGuid("D2D0A440-E307-11D2-97F0-00A0C95EA850");
|
|
80
|
-
AsfGuid.ContentBrandingObject = new AsfGuid("2211B3FA-BD23-11D2-B4B7-00A0C955FC6E");
|
|
81
|
-
AsfGuid.StreamBitratePropertiesObject = new AsfGuid("7BF875CE-468D-11D1-8D82-006097C9A2B2");
|
|
82
|
-
AsfGuid.ContentEncryptionObject = new AsfGuid("2211B3FB-BD23-11D2-B4B7-00A0C955FC6E");
|
|
83
|
-
AsfGuid.ExtendedContentEncryptionObject = new AsfGuid("298AE614-2622-4C17-B935-DAE07EE9289C");
|
|
84
|
-
AsfGuid.DigitalSignatureObject = new AsfGuid("2211B3FC-BD23-11D2-B4B7-00A0C955FC6E");
|
|
85
|
-
AsfGuid.PaddingObject = new AsfGuid("1806D474-CADF-4509-A4BA-9AABCB96AAE8");
|
|
86
|
-
// 10.3 Header Extension Object GUIDs
|
|
87
|
-
AsfGuid.ExtendedStreamPropertiesObject = new AsfGuid("14E6A5CB-C672-4332-8399-A96952065B5A");
|
|
88
|
-
AsfGuid.AdvancedMutualExclusionObject = new AsfGuid("A08649CF-4775-4670-8A16-6E35357566CD");
|
|
89
|
-
AsfGuid.GroupMutualExclusionObject = new AsfGuid("D1465A40-5A79-4338-B71B-E36B8FD6C249");
|
|
90
|
-
AsfGuid.StreamPrioritizationObject = new AsfGuid("D4FED15B-88D3-454F-81F0-ED5C45999E24");
|
|
91
|
-
AsfGuid.BandwidthSharingObject = new AsfGuid("A69609E6-517B-11D2-B6AF-00C04FD908E9");
|
|
92
|
-
AsfGuid.LanguageListObject = new AsfGuid("7C4346A9-EFE0-4BFC-B229-393EDE415C85");
|
|
93
|
-
AsfGuid.MetadataObject = new AsfGuid("C5F8CBEA-5BAF-4877-8467-AA8C44FA4CCA");
|
|
94
|
-
AsfGuid.MetadataLibraryObject = new AsfGuid("44231C94-9498-49D1-A141-1D134E457054");
|
|
95
|
-
AsfGuid.IndexParametersObject = new AsfGuid("D6E229DF-35DA-11D1-9034-00A0C90349BE");
|
|
96
|
-
AsfGuid.MediaObjectIndexParametersObject = new AsfGuid("6B203BAD-3F11-48E4-ACA8-D7613DE2CFA7");
|
|
97
|
-
AsfGuid.TimecodeIndexParametersObject = new AsfGuid("F55E496D-9797-4B5D-8C8B-604DFE9BFB24");
|
|
98
|
-
AsfGuid.CompatibilityObject = new AsfGuid("26F18B5D-4584-47EC-9F5F-0E651F0452C9");
|
|
99
|
-
AsfGuid.AdvancedContentEncryptionObject = new AsfGuid("43058533-6981-49E6-9B74-AD12CB86D58C");
|
|
100
|
-
// 10.4 Stream Properties Object Stream Type GUIDs
|
|
101
|
-
AsfGuid.AudioMedia = new AsfGuid("F8699E40-5B4D-11CF-A8FD-00805F5C442B");
|
|
102
|
-
AsfGuid.VideoMedia = new AsfGuid("BC19EFC0-5B4D-11CF-A8FD-00805F5C442B");
|
|
103
|
-
AsfGuid.CommandMedia = new AsfGuid("59DACFC0-59E6-11D0-A3AC-00A0C90348F6");
|
|
104
|
-
AsfGuid.JFIF_Media = new AsfGuid("B61BE100-5B4E-11CF-A8FD-00805F5C442B");
|
|
105
|
-
AsfGuid.Degradable_JPEG_Media = new AsfGuid("35907DE0-E415-11CF-A917-00805F5C442B");
|
|
106
|
-
AsfGuid.FileTransferMedia = new AsfGuid("91BD222C-F21C-497A-8B6D-5AA86BFC0185");
|
|
107
|
-
AsfGuid.BinaryMedia = new AsfGuid("3AFB65E2-47EF-40F2-AC2C-70A90D71D343");
|
|
108
|
-
AsfGuid.ASF_Index_Placeholder_Object = new AsfGuid("D9AADE20-7C17-4F9C-BC28-8555DD98E2A2");
|
|
109
|
-
export default AsfGuid;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export const asfParserLoader = {
|
|
2
|
-
parserType: 'asf',
|
|
3
|
-
extensions: ['.asf', '.wma', '.wmv'],
|
|
4
|
-
mimeTypes: ['audio/ms-wma', 'video/ms-wmv', 'audio/ms-asf', 'video/ms-asf', 'application/vnd.ms-asf'],
|
|
5
|
-
async load() {
|
|
6
|
-
return (await import('./AsfParser.js')).AsfParser;
|
|
7
|
-
}
|
|
8
|
-
};
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { type ITokenizer } from 'strtok3';
|
|
2
|
-
import { type IElementType, type ITree, type ValueType } from './types.js';
|
|
3
|
-
declare const EbmlContentError_base: {
|
|
4
|
-
new (message: string): {
|
|
5
|
-
readonly fileType: string;
|
|
6
|
-
toString(): string;
|
|
7
|
-
name: "UnexpectedFileContentError";
|
|
8
|
-
message: string;
|
|
9
|
-
stack?: string;
|
|
10
|
-
};
|
|
11
|
-
captureStackTrace(targetObject: object, constructorOpt?: Function): void;
|
|
12
|
-
prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any;
|
|
13
|
-
stackTraceLimit: number;
|
|
14
|
-
};
|
|
15
|
-
export declare class EbmlContentError extends EbmlContentError_base {
|
|
16
|
-
}
|
|
17
|
-
export interface ILinkedElementType extends IElementType {
|
|
18
|
-
id: number;
|
|
19
|
-
parent: ILinkedElementType | undefined;
|
|
20
|
-
readonly container?: {
|
|
21
|
-
[id: number]: ILinkedElementType;
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
export declare const ParseAction: {
|
|
25
|
-
readonly ReadNext: 0;
|
|
26
|
-
readonly IgnoreElement: 2;
|
|
27
|
-
readonly SkipSiblings: 3;
|
|
28
|
-
readonly TerminateParsing: 4;
|
|
29
|
-
readonly SkipElement: 5;
|
|
30
|
-
};
|
|
31
|
-
export type ParseAction = typeof ParseAction[keyof typeof ParseAction];
|
|
32
|
-
/**
|
|
33
|
-
* @return true, to quit the parser
|
|
34
|
-
*/
|
|
35
|
-
export type IElementListener = {
|
|
36
|
-
startNext: (dtdElement: ILinkedElementType) => ParseAction;
|
|
37
|
-
elementValue: (dtdElement: ILinkedElementType, value: ValueType, offset: number) => Promise<void>;
|
|
38
|
-
};
|
|
39
|
-
/**
|
|
40
|
-
* Extensible Binary Meta Language (EBML) iterator
|
|
41
|
-
* https://en.wikipedia.org/wiki/Extensible_Binary_Meta_Language
|
|
42
|
-
* http://matroska.sourceforge.net/technical/specs/rfc/index.html
|
|
43
|
-
*
|
|
44
|
-
* WEBM VP8 AUDIO FILE
|
|
45
|
-
*/
|
|
46
|
-
export declare class EbmlIterator {
|
|
47
|
-
private parserMap;
|
|
48
|
-
private ebmlMaxIDLength;
|
|
49
|
-
private ebmlMaxSizeLength;
|
|
50
|
-
private tokenizer;
|
|
51
|
-
/**
|
|
52
|
-
* @param {ITokenizer} tokenizer Input
|
|
53
|
-
* @param tokenizer
|
|
54
|
-
*/
|
|
55
|
-
constructor(tokenizer: ITokenizer);
|
|
56
|
-
iterate(dtdElement: IElementType, posDone: number, listener: IElementListener): Promise<ITree>;
|
|
57
|
-
private parseContainer;
|
|
58
|
-
private readVintData;
|
|
59
|
-
private readElement;
|
|
60
|
-
private readFloat;
|
|
61
|
-
private readFlag;
|
|
62
|
-
private readUint;
|
|
63
|
-
private readString;
|
|
64
|
-
private readBuffer;
|
|
65
|
-
}
|
|
66
|
-
export declare function getElementPath(element: ILinkedElementType): string;
|
|
67
|
-
export {};
|
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
import { Float32_BE, Float64_BE, StringType, UINT8 } from 'token-types';
|
|
2
|
-
import initDebug from 'debug';
|
|
3
|
-
import { EndOfStreamError } from 'strtok3';
|
|
4
|
-
import { DataType } from './types.js';
|
|
5
|
-
import * as Token from 'token-types';
|
|
6
|
-
import { makeUnexpectedFileContentError } from '../ParseError.js';
|
|
7
|
-
const debug = initDebug('music-metadata:parser:ebml');
|
|
8
|
-
export class EbmlContentError extends makeUnexpectedFileContentError('EBML') {
|
|
9
|
-
}
|
|
10
|
-
export const ParseAction = {
|
|
11
|
-
ReadNext: 0, // Continue reading the next elements
|
|
12
|
-
IgnoreElement: 2, // Ignore (do not read) this element
|
|
13
|
-
SkipSiblings: 3, // Skip all remaining elements at the same level
|
|
14
|
-
TerminateParsing: 4, // Terminate the parsing process
|
|
15
|
-
SkipElement: 5 // Consider the element has read, assume position is at the next element
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* Extensible Binary Meta Language (EBML) iterator
|
|
19
|
-
* https://en.wikipedia.org/wiki/Extensible_Binary_Meta_Language
|
|
20
|
-
* http://matroska.sourceforge.net/technical/specs/rfc/index.html
|
|
21
|
-
*
|
|
22
|
-
* WEBM VP8 AUDIO FILE
|
|
23
|
-
*/
|
|
24
|
-
export class EbmlIterator {
|
|
25
|
-
/**
|
|
26
|
-
* @param {ITokenizer} tokenizer Input
|
|
27
|
-
* @param tokenizer
|
|
28
|
-
*/
|
|
29
|
-
constructor(tokenizer) {
|
|
30
|
-
this.parserMap = new Map();
|
|
31
|
-
this.ebmlMaxIDLength = 4;
|
|
32
|
-
this.ebmlMaxSizeLength = 8;
|
|
33
|
-
this.tokenizer = tokenizer;
|
|
34
|
-
this.parserMap.set(DataType.uint, e => this.readUint(e));
|
|
35
|
-
this.parserMap.set(DataType.string, e => this.readString(e));
|
|
36
|
-
this.parserMap.set(DataType.binary, e => this.readBuffer(e));
|
|
37
|
-
this.parserMap.set(DataType.uid, async (e) => this.readBuffer(e));
|
|
38
|
-
this.parserMap.set(DataType.bool, e => this.readFlag(e));
|
|
39
|
-
this.parserMap.set(DataType.float, e => this.readFloat(e));
|
|
40
|
-
}
|
|
41
|
-
async iterate(dtdElement, posDone, listener) {
|
|
42
|
-
return this.parseContainer(linkParents(dtdElement), posDone, listener);
|
|
43
|
-
}
|
|
44
|
-
async parseContainer(dtdElement, posDone, listener) {
|
|
45
|
-
const tree = {};
|
|
46
|
-
while (this.tokenizer.position < posDone) {
|
|
47
|
-
let element;
|
|
48
|
-
const elementPosition = this.tokenizer.position;
|
|
49
|
-
try {
|
|
50
|
-
element = await this.readElement();
|
|
51
|
-
}
|
|
52
|
-
catch (error) {
|
|
53
|
-
if (error instanceof EndOfStreamError) {
|
|
54
|
-
break;
|
|
55
|
-
}
|
|
56
|
-
throw error;
|
|
57
|
-
}
|
|
58
|
-
const child = dtdElement.container[element.id];
|
|
59
|
-
if (child) {
|
|
60
|
-
const action = listener.startNext(child);
|
|
61
|
-
switch (action) {
|
|
62
|
-
case ParseAction.ReadNext:
|
|
63
|
-
{
|
|
64
|
-
if (element.id === 0x1F43B675) {
|
|
65
|
-
// Hack to ignore remaining segment, when cluster element received
|
|
66
|
-
// await this.tokenizer.ignore(posDone - this.tokenizer.position);
|
|
67
|
-
// break;
|
|
68
|
-
}
|
|
69
|
-
debug(`Read element: name=${getElementPath(child)}{id=0x${element.id.toString(16)}, container=${!!child.container}} at position=${elementPosition}`);
|
|
70
|
-
if (child.container) {
|
|
71
|
-
const res = await this.parseContainer(child, element.len >= 0 ? this.tokenizer.position + element.len : -1, listener);
|
|
72
|
-
if (child.multiple) {
|
|
73
|
-
if (!tree[child.name]) {
|
|
74
|
-
tree[child.name] = [];
|
|
75
|
-
}
|
|
76
|
-
tree[child.name].push(res);
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
tree[child.name] = res;
|
|
80
|
-
}
|
|
81
|
-
await listener.elementValue(child, res, elementPosition);
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
const parser = this.parserMap.get(child.value);
|
|
85
|
-
if (typeof parser === 'function') {
|
|
86
|
-
const value = await parser(element);
|
|
87
|
-
tree[child.name] = value;
|
|
88
|
-
await listener.elementValue(child, value, elementPosition);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
break;
|
|
93
|
-
case ParseAction.SkipElement:
|
|
94
|
-
debug(`Go to next element: name=${getElementPath(child)}, element.id=0x${element.id}, container=${!!child.container} at position=${elementPosition}`);
|
|
95
|
-
break;
|
|
96
|
-
case ParseAction.IgnoreElement:
|
|
97
|
-
debug(`Ignore element: name=${getElementPath(child)}, element.id=0x${element.id}, container=${!!child.container} at position=${elementPosition}`);
|
|
98
|
-
await this.tokenizer.ignore(element.len);
|
|
99
|
-
break;
|
|
100
|
-
case ParseAction.SkipSiblings:
|
|
101
|
-
debug(`Ignore remaining container, at: name=${getElementPath(child)}, element.id=0x${element.id}, container=${!!child.container} at position=${elementPosition}`);
|
|
102
|
-
await this.tokenizer.ignore(posDone - this.tokenizer.position);
|
|
103
|
-
break;
|
|
104
|
-
case ParseAction.TerminateParsing:
|
|
105
|
-
debug(`Terminate parsing at element: name=${getElementPath(child)}, element.id=0x${element.id}, container=${!!child.container} at position=${elementPosition}`);
|
|
106
|
-
return tree;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
switch (element.id) {
|
|
111
|
-
case 0xec: // void
|
|
112
|
-
await this.tokenizer.ignore(element.len);
|
|
113
|
-
break;
|
|
114
|
-
default:
|
|
115
|
-
debug(`parseEbml: parent=${getElementPath(dtdElement)}, unknown child: id=${element.id.toString(16)} at position=${elementPosition}`);
|
|
116
|
-
await this.tokenizer.ignore(element.len);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
return tree;
|
|
121
|
-
}
|
|
122
|
-
async readVintData(maxLength) {
|
|
123
|
-
const msb = await this.tokenizer.peekNumber(UINT8);
|
|
124
|
-
let mask = 0x80;
|
|
125
|
-
let oc = 1;
|
|
126
|
-
// Calculate VINT_WIDTH
|
|
127
|
-
while ((msb & mask) === 0) {
|
|
128
|
-
if (oc > maxLength) {
|
|
129
|
-
throw new EbmlContentError('VINT value exceeding maximum size');
|
|
130
|
-
}
|
|
131
|
-
++oc;
|
|
132
|
-
mask >>= 1;
|
|
133
|
-
}
|
|
134
|
-
const id = new Uint8Array(oc);
|
|
135
|
-
await this.tokenizer.readBuffer(id);
|
|
136
|
-
return id;
|
|
137
|
-
}
|
|
138
|
-
async readElement() {
|
|
139
|
-
const id = await this.readVintData(this.ebmlMaxIDLength);
|
|
140
|
-
const lenField = await this.readVintData(this.ebmlMaxSizeLength);
|
|
141
|
-
lenField[0] ^= 0x80 >> (lenField.length - 1);
|
|
142
|
-
return {
|
|
143
|
-
id: readUIntBE(id, id.length),
|
|
144
|
-
len: readUIntBE(lenField, lenField.length)
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
async readFloat(e) {
|
|
148
|
-
switch (e.len) {
|
|
149
|
-
case 0:
|
|
150
|
-
return 0.0;
|
|
151
|
-
case 4:
|
|
152
|
-
return this.tokenizer.readNumber(Float32_BE);
|
|
153
|
-
case 8:
|
|
154
|
-
return this.tokenizer.readNumber(Float64_BE);
|
|
155
|
-
case 10:
|
|
156
|
-
return this.tokenizer.readNumber(Float64_BE);
|
|
157
|
-
default:
|
|
158
|
-
throw new EbmlContentError(`Invalid IEEE-754 float length: ${e.len}`);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
async readFlag(e) {
|
|
162
|
-
return (await this.readUint(e)) === 1;
|
|
163
|
-
}
|
|
164
|
-
async readUint(e) {
|
|
165
|
-
const buf = await this.readBuffer(e);
|
|
166
|
-
return readUIntBE(buf, e.len);
|
|
167
|
-
}
|
|
168
|
-
async readString(e) {
|
|
169
|
-
const rawString = await this.tokenizer.readToken(new StringType(e.len, 'utf-8'));
|
|
170
|
-
return rawString.replace(/\x00.*$/g, '');
|
|
171
|
-
}
|
|
172
|
-
async readBuffer(e) {
|
|
173
|
-
const buf = new Uint8Array(e.len);
|
|
174
|
-
await this.tokenizer.readBuffer(buf);
|
|
175
|
-
return buf;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
function readUIntBE(buf, len) {
|
|
179
|
-
return Number(readUIntBeAsBigInt(buf, len));
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* Reeds an unsigned integer from a big endian buffer of length `len`
|
|
183
|
-
* @param buf Buffer to decode from
|
|
184
|
-
* @param len Number of bytes
|
|
185
|
-
* @private
|
|
186
|
-
*/
|
|
187
|
-
function readUIntBeAsBigInt(buf, len) {
|
|
188
|
-
const normalizedNumber = new Uint8Array(8);
|
|
189
|
-
const cleanNumber = buf.subarray(0, len);
|
|
190
|
-
try {
|
|
191
|
-
normalizedNumber.set(cleanNumber, 8 - len);
|
|
192
|
-
return Token.UINT64_BE.get(normalizedNumber, 0);
|
|
193
|
-
}
|
|
194
|
-
catch (_error) {
|
|
195
|
-
return BigInt(-1);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
function linkParents(element) {
|
|
199
|
-
if (element.container) {
|
|
200
|
-
Object.keys(element.container)
|
|
201
|
-
.map(id => {
|
|
202
|
-
const child = element.container[id];
|
|
203
|
-
child.id = Number.parseInt(id, 10);
|
|
204
|
-
return child;
|
|
205
|
-
}).forEach(child => {
|
|
206
|
-
child.parent = element;
|
|
207
|
-
linkParents(child);
|
|
208
|
-
});
|
|
209
|
-
}
|
|
210
|
-
return element;
|
|
211
|
-
}
|
|
212
|
-
export function getElementPath(element) {
|
|
213
|
-
let path = '';
|
|
214
|
-
if (element.parent && element.parent.name !== 'dtd') {
|
|
215
|
-
path += `${getElementPath(element.parent)}/`;
|
|
216
|
-
}
|
|
217
|
-
return path + element.name;
|
|
218
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
export interface ITree {
|
|
2
|
-
[name: string]: string | number | boolean | Uint8Array | ITree | ITree[];
|
|
3
|
-
}
|
|
4
|
-
export declare const DataType: {
|
|
5
|
-
readonly string: 0;
|
|
6
|
-
readonly uint: 1;
|
|
7
|
-
readonly uid: 2;
|
|
8
|
-
readonly bool: 3;
|
|
9
|
-
readonly binary: 4;
|
|
10
|
-
readonly float: 5;
|
|
11
|
-
};
|
|
12
|
-
export type DataType = typeof DataType[keyof typeof DataType];
|
|
13
|
-
export type ValueType = string | number | Uint8Array | boolean | ITree | ITree[];
|
|
14
|
-
export interface IHeader {
|
|
15
|
-
id: number;
|
|
16
|
-
len: number;
|
|
17
|
-
}
|
|
18
|
-
export interface IEbmlElements {
|
|
19
|
-
version?: number;
|
|
20
|
-
readVersion?: number;
|
|
21
|
-
maxIDWidth?: number;
|
|
22
|
-
maxSizeWidth?: number;
|
|
23
|
-
docType?: string;
|
|
24
|
-
docTypeVersion?: number;
|
|
25
|
-
docTypeReadVersion?: number;
|
|
26
|
-
}
|
|
27
|
-
export interface IElementType {
|
|
28
|
-
readonly name: string;
|
|
29
|
-
readonly value?: DataType;
|
|
30
|
-
readonly container?: {
|
|
31
|
-
[id: number]: IElementType;
|
|
32
|
-
};
|
|
33
|
-
readonly multiple?: boolean;
|
|
34
|
-
}
|
|
35
|
-
export interface IEbmlDoc {
|
|
36
|
-
ebml: IEbmlElements;
|
|
37
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import type { IGetToken } from 'strtok3';
|
|
2
|
-
/**
|
|
3
|
-
* FLAC supports up to 128 kinds of metadata blocks; currently the following are defined:
|
|
4
|
-
* ref: https://xiph.org/flac/format.html#metadata_block
|
|
5
|
-
*/
|
|
6
|
-
export declare const BlockType: {
|
|
7
|
-
STREAMINFO: number;
|
|
8
|
-
PADDING: number;
|
|
9
|
-
APPLICATION: number;
|
|
10
|
-
SEEKTABLE: number;
|
|
11
|
-
VORBIS_COMMENT: number;
|
|
12
|
-
CUESHEET: number;
|
|
13
|
-
PICTURE: number;
|
|
14
|
-
};
|
|
15
|
-
export type BlockType = typeof BlockType[keyof typeof BlockType];
|
|
16
|
-
/**
|
|
17
|
-
* METADATA_BLOCK_DATA
|
|
18
|
-
* Ref: https://xiph.org/flac/format.html#metadata_block_streaminfo
|
|
19
|
-
*/
|
|
20
|
-
export interface IBlockHeader {
|
|
21
|
-
lastBlock: boolean;
|
|
22
|
-
type: BlockType;
|
|
23
|
-
length: number;
|
|
24
|
-
}
|
|
25
|
-
export declare const BlockHeader: IGetToken<IBlockHeader>;
|
|
26
|
-
/**
|
|
27
|
-
* METADATA_BLOCK_DATA
|
|
28
|
-
* Ref: https://xiph.org/flac/format.html#metadata_block_streaminfo
|
|
29
|
-
*/
|
|
30
|
-
export interface IBlockStreamInfo {
|
|
31
|
-
minimumBlockSize: number;
|
|
32
|
-
maximumBlockSize: number;
|
|
33
|
-
minimumFrameSize: number;
|
|
34
|
-
maximumFrameSize: number;
|
|
35
|
-
sampleRate: number;
|
|
36
|
-
channels: number;
|
|
37
|
-
bitsPerSample: number;
|
|
38
|
-
totalSamples: number;
|
|
39
|
-
fileMD5: Uint8Array;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* METADATA_BLOCK_DATA
|
|
43
|
-
* Ref: https://xiph.org/flac/format.html#metadata_block_streaminfo
|
|
44
|
-
*/
|
|
45
|
-
export declare const BlockStreamInfo: IGetToken<IBlockStreamInfo>;
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import * as util from '../common/Util.js';
|
|
2
|
-
import { UINT16_BE, UINT24_BE, Uint8ArrayType } from 'token-types';
|
|
3
|
-
/**
|
|
4
|
-
* FLAC supports up to 128 kinds of metadata blocks; currently the following are defined:
|
|
5
|
-
* ref: https://xiph.org/flac/format.html#metadata_block
|
|
6
|
-
*/
|
|
7
|
-
export const BlockType = {
|
|
8
|
-
STREAMINFO: 0, // STREAMINFO
|
|
9
|
-
PADDING: 1, // PADDING
|
|
10
|
-
APPLICATION: 2, // APPLICATION
|
|
11
|
-
SEEKTABLE: 3, // SEEKTABLE
|
|
12
|
-
VORBIS_COMMENT: 4, // VORBIS_COMMENT
|
|
13
|
-
CUESHEET: 5, // CUESHEET
|
|
14
|
-
PICTURE: 6 // PICTURE
|
|
15
|
-
};
|
|
16
|
-
export const BlockHeader = {
|
|
17
|
-
len: 4,
|
|
18
|
-
get: (buf, off) => {
|
|
19
|
-
return {
|
|
20
|
-
lastBlock: util.getBit(buf, off, 7),
|
|
21
|
-
type: util.getBitAllignedNumber(buf, off, 1, 7),
|
|
22
|
-
length: UINT24_BE.get(buf, off + 1)
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
/**
|
|
27
|
-
* METADATA_BLOCK_DATA
|
|
28
|
-
* Ref: https://xiph.org/flac/format.html#metadata_block_streaminfo
|
|
29
|
-
*/
|
|
30
|
-
export const BlockStreamInfo = {
|
|
31
|
-
len: 34,
|
|
32
|
-
get: (buf, off) => {
|
|
33
|
-
return {
|
|
34
|
-
// The minimum block size (in samples) used in the stream.
|
|
35
|
-
minimumBlockSize: UINT16_BE.get(buf, off),
|
|
36
|
-
// The maximum block size (in samples) used in the stream.
|
|
37
|
-
// (Minimum blocksize == maximum blocksize) implies a fixed-blocksize stream.
|
|
38
|
-
maximumBlockSize: UINT16_BE.get(buf, off + 2) / 1000,
|
|
39
|
-
// The minimum frame size (in bytes) used in the stream.
|
|
40
|
-
// May be 0 to imply the value is not known.
|
|
41
|
-
minimumFrameSize: UINT24_BE.get(buf, off + 4),
|
|
42
|
-
// The maximum frame size (in bytes) used in the stream.
|
|
43
|
-
// May be 0 to imply the value is not known.
|
|
44
|
-
maximumFrameSize: UINT24_BE.get(buf, off + 7),
|
|
45
|
-
// Sample rate in Hz. Though 20 bits are available,
|
|
46
|
-
// the maximum sample rate is limited by the structure of frame headers to 655350Hz.
|
|
47
|
-
// Also, a value of 0 is invalid.
|
|
48
|
-
sampleRate: UINT24_BE.get(buf, off + 10) >> 4,
|
|
49
|
-
// probably slower: sampleRate: common.getBitAllignedNumber(buf, off + 10, 0, 20),
|
|
50
|
-
// (number of channels)-1. FLAC supports from 1 to 8 channels
|
|
51
|
-
channels: util.getBitAllignedNumber(buf, off + 12, 4, 3) + 1,
|
|
52
|
-
// bits per sample)-1.
|
|
53
|
-
// FLAC supports from 4 to 32 bits per sample. Currently the reference encoder and decoders only support up to 24 bits per sample.
|
|
54
|
-
bitsPerSample: util.getBitAllignedNumber(buf, off + 12, 7, 5) + 1,
|
|
55
|
-
// Total samples in stream.
|
|
56
|
-
// 'Samples' means inter-channel sample, i.e. one second of 44.1Khz audio will have 44100 samples regardless of the number of channels.
|
|
57
|
-
// A value of zero here means the number of total samples is unknown.
|
|
58
|
-
totalSamples: util.getBitAllignedNumber(buf, off + 13, 4, 36),
|
|
59
|
-
// the MD5 hash of the file (see notes for usage... it's a littly tricky)
|
|
60
|
-
fileMD5: new Uint8ArrayType(16).get(buf, off + 18)
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
};
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { type ID3v2MajorVersion } from './ID3v2Token.js';
|
|
2
|
-
import type { IWarningCollector } from '../common/MetadataCollector.js';
|
|
3
|
-
export interface IFrameFlags {
|
|
4
|
-
status: {
|
|
5
|
-
tag_alter_preservation: boolean;
|
|
6
|
-
file_alter_preservation: boolean;
|
|
7
|
-
read_only: boolean;
|
|
8
|
-
};
|
|
9
|
-
format: {
|
|
10
|
-
grouping_identity: boolean;
|
|
11
|
-
compression: boolean;
|
|
12
|
-
encryption: boolean;
|
|
13
|
-
unsynchronisation: boolean;
|
|
14
|
-
data_length_indicator: boolean;
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
export interface IFrameHeader {
|
|
18
|
-
id: string;
|
|
19
|
-
length: number;
|
|
20
|
-
flags?: IFrameFlags;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Frame header length (bytes) depending on ID3v2 major version.
|
|
24
|
-
*/
|
|
25
|
-
export declare function getFrameHeaderLength(majorVer: number): 6 | 10;
|
|
26
|
-
/**
|
|
27
|
-
* Factory: parse a frame header from its header bytes (6 for v2.2, 10 for v2.3/v2.4).
|
|
28
|
-
*
|
|
29
|
-
* Note: It only *parses* and does light validation. It does not read payload bytes.
|
|
30
|
-
*/
|
|
31
|
-
export declare function readFrameHeader(uint8Array: Uint8Array, majorVer: ID3v2MajorVersion, warningCollector: IWarningCollector): IFrameHeader;
|