Skip to content

Releases: benrr101/node-taglib-sharp

v4.0.0 FLAC File Support (and RIFF/Start/End tag rewrite)

03 Oct 20:44
Compare
Choose a tag to compare

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, and AviStreamHeader classes combined into AviStream class
    • AviHeader added to represent the collection of AviStreams and general info about the AVI file
    • DivxTag.fromFile removed, use DivxTag.fromData and pass in chunk data
    • InfoTag.fromData replaced with InfoTag.fromList, pass a RiffList in directly
    • MovieIdTag.fromData replaced with MovieIdTag.fromList, pass a RiffList in directly
    • RiffChunk and RiffList written to be treated as IRiffChunk, 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 renamed MpegContainerFile
  • NonContainer renamed to Sandwich
  • RiffFile now has a single RiffTag that collects all the tags a RiffFile can hold
  • File.invariantStartPosition and File.invariantEndPosition removed. For "sandwich" files, the information is retained in SandwichFile.mediaStartPosition and SandwichFile.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, eg CombinedTag.tags will return all tags under the current instance
  • TagTypes.FlacMetadata is renamed TagTypes.FlacPictures and used to represent if a file contains FLAC style pictures. Value remains the same.

v3.4.0 RIFF File Support

05 Jul 05:25
Compare
Choose a tag to compare

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 the Tag base class
    • 0 for integer numeric properties
    • NaN 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

08 May 19:36
Compare
Choose a tag to compare

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

20 Apr 20:29
Compare
Choose a tag to compare

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 accepts bigint or number 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 from big-integer package and replaced with bigint
    type in TypeScript

v3.2.0 AIFF Support

12 Feb 03:17
Compare
Choose a tag to compare

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

31 Dec 03:22
Compare
Choose a tag to compare

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

06 Dec 21:01
Compare
Choose a tag to compare

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

22 Nov 23:27
Compare
Choose a tag to compare

Identical to v2.0.0 just had to republish to NPM b/c I derped and forgot to build before publishing 🤦

v2.0.0 - APE Support

22 Nov 22:58
Compare
Choose a tag to compare

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 links
    • Tag 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 renamed Id3v1.fromEmpty()
  • FrameClassType.MusicCdIdentiferFrame typo renamed FrameClassType.MusicCdIdentifierFrame
  • Id3v2TagHeaderFlags.Unsynchronication typo renamed Id3v2TagHeaderFlags.Unsynchronization
  • Constructor for NonContainerTag no longer takes NonContainerTag, instead takes StartTag and EndTag in order to work around cyclical dependency

v1.1.0 - Getting Started

27 Sep 02:52
Compare
Choose a tag to compare

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 file src/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.