Releases: benrr101/node-taglib-sharp
Releases · benrr101/node-taglib-sharp
v4.0.0 FLAC File Support (and RIFF/Start/End tag rewrite)
Better late than never...
New Features / Fixes
- Support for FLAC files (supports ID3v1, ID3v2, APE, and Xiph tagging formats)
- Rewriting the entire RIFF implementation to support "non-standard" files better
- Support for configuring the default tags to create when the file is read, configure using the appropriate
FileTypeFileSettings
class - Rewriting
NonContainer
implementation to be much cleaner
Breaking Changes
- "Non-Container" file implementation was rewritten
- RIFF implementation was rewritten
AviStream
,AviStreamList
, andAviStreamHeader
classes combined intoAviStream
classAviHeader
added to represent the collection ofAviStreams
and general info about the AVI fileDivxTag.fromFile
removed, useDivxTag.fromData
and pass in chunk dataInfoTag.fromData
replaced withInfoTag.fromList
, pass aRiffList
in directlyMovieIdTag.fromData
replaced withMovieIdTag.fromList
, pass aRiffList
in directlyRiffChunk
andRiffList
written to be treated asIRiffChunk
,RiffFile
has a list of chunks it maintains and uses to determine how to read / write the file- ... probably some others in there. Feel free to raise issues if you're confused on how to upgrade.
MpegFile
renamedMpegContainerFile
NonContainer
renamed toSandwich
RiffFile
now has a singleRiffTag
that collects all the tags aRiffFile
can holdFile.invariantStartPosition
andFile.invariantEndPosition
removed. For "sandwich" files, the information is retained inSandwichFile.mediaStartPosition
andSandwichFile.mediaEndPosition
- Attempting to add a tag to a file that is not support will now throw an error
CombinedTag
will now do tree traversal when performing operations, egCombinedTag.tags
will return all tags under the current instanceTagTypes.FlacMetadata
is renamedTagTypes.FlacPictures
and used to represent if a file contains FLAC style pictures. Value remains the same.
v3.4.0 RIFF File Support
Happy Fourth of July!
New Features / Fixes
- Support for RIFF files (spans a lot of different codecs, but is generally the AVI, WAV, and DIVX containers)
CombinedTag
objects return default values to match behavior of theTag
base class0
for integer numeric propertiesNaN
for floating point properties
Probably Not Breaking Changes
- Updated to v4.1 of TypeScript, though this shouldn't cause too many issues
v3.3.1 Latin1 APIC Hotfix
Fixes in this Version:
- Fixes major bug where loading pictures in ID3v2 tags might throw an exception.
- Issue was caused by an off-by-one bug in detecting the end of the mimetype for an APIC frame when description is encoded with Latin1 stringtype.
- Fix was to make sure the mimetype end detection starts with an offset of 1
v3.3.0 ASF/WMF Support
New Features / Fixes:
- Added support for ASF/WMF files
- Updated package.json to allow node.js
>=12.16.1
🤦♂️ - Verified usage of 32-bit integers and "safe" javascript integers
- Where "safe" integers are allowed, checks for "safe" were added
- Where only 32-bit integers are allowed, checks for int/uint were added
ByteVector
class now acceptsbigint
ornumber
for 64-bit integer operations- Fixed bug in picture extension detection
- The
codecs
property of Properties returns a shallow copy of the codecs to prevent modification
of the list of codecs
Probably Not Breaking Changes:
- IPicture and PictureType classes have moved to their own file
ipicture.ts
, index.ts exports
have not changed - Dropped usage of the
BigInt.BigInteger
frombig-integer
package and replaced withbigint
type in TypeScript
v3.2.0 AIFF Support
What's new in this release:
- Adding AIFF audio file support - supports ID3v2 tags
- Fixing a serious bug in the way streams behaved which could cause files to get corrupted in rare circumstances
Breaking changes:
- None
v3.1.0 MPEG-1/2 Video File Support
What's new in this release:
- Adding MPEG-1/2 video file support - supports ID3v1, ID3v2, and Ape tags
- Fixing a dependency with a vulnerability (thanks @dependabot)
Breaking changes:
- None
AAC File Support
What's new in this release:
- ADTS AAC file support - supports ID3v1, ID3v2, and Ape tags
- Updated docs to be a bit more readable
Breaking changes:
- mpeg/AudioFile class is now renamed to MpegAudioFile (index export has not changed)
- mpeg/AudioHeader class is now renamed MpegAudioHeader (index export has not changed)
v2.0.1
v2.0.0 - APE Support
This version adds:
- Support for Monkey's Audio APE audio files
- Support for APE tags in both APE audio files and MPEG audio files
- Improved documentation
{@see blah}
is replaced with proper linksTag
class has a wealth more information in it now- Removed annoying "defined in ..." links in docs
- Typos fixed all over the place
- Improved integration tests that actually test picture behavior on ID3v2 tags
Bug Fixes:
- Embedded pictures are now working in ID3v2 tags in all situations
- Id3v1 tags can now be added to combined tags (should have been added in v1.0.0)
Breaking changes in this version:
Id3v1.empty()
static constructor renamedId3v1.fromEmpty()
FrameClassType.MusicCdIdentiferFrame
typo renamedFrameClassType.MusicCdIdentifierFrame
Id3v2TagHeaderFlags.Unsynchronication
typo renamedId3v2TagHeaderFlags.Unsynchronization
- Constructor for
NonContainerTag
no longer takesNonContainerTag
, instead takesStartTag
andEndTag
in order to work around cyclical dependency
v1.1.0 - Getting Started
This version adds:
- A getting started section to the readme!
- Auto-generated docs from the TSdoc comments in the source
- Exporting more types via the index.ts
- Adding an engines directive to the package.json to fix an issue where compiling typescript projects referencing the package would blow up b/c node types couldn't be found
- Package works with Node 12 (definitely) and up (probably)
Small breaking changes (that probably won't bother anyone... really, who's using this library right now anyways):
AudioHeader
(from MPEG) is now exported as a default class of the filesrc/mpeg/audioHeader.ts
If you have:
import {AudioHeader} from "node-taglib-sharp/dist/mpeg/audioHeader";
change it to:
import AudioHeader from "node-taglib-sharp/dist/mpeg/audioHeader";
or better yet use the new export:
import {MpegAudioHeader} from "node-taglib-sharp";
- If you worked around the node reference issue by adding a reference to
@types/node
to your project, you no longer need it.