Borewit
5036fbcdda
Use Codecov
2026-02-28 13:54:34 +01:00
Borewit
a40b3296f6
Separate production and development build
...
Only the development includes source maps
2026-02-28 13:53:59 +01:00
Borewit
50eed638b9
11.12.1
v11.12.1
2026-02-16 19:32:30 +01:00
dependabot[bot]
e5ebe01fa1
Bump @biomejs/biome from 2.3.14 to 2.4.0
...
Bumps [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome ) from 2.3.14 to 2.4.0.
- [Release notes](https://github.com/biomejs/biome/releases )
- [Changelog](https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md )
- [Commits](https://github.com/biomejs/biome/commits/@biomejs/biome@2.4.0/packages/@biomejs/biome )
---
updated-dependencies:
- dependency-name: "@biomejs/biome"
dependency-version: 2.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-02-16 19:31:40 +01:00
Borewit
952ceae807
Fix miscalculation Ogg/Vorbis, duration miscalculation
...
Fix miscalculation occurring when Ogg/Vorbis files when the duration option is not explicitly enabled. In that case, the parser performs a partial read of the file and reports the duration based only on the processed portion, resulting in an incomplete value.
Resolves #2518
2026-02-16 19:30:57 +01:00
Borewit
69377eb9bb
11.12.0
v11.12.0
2026-02-08 14:30:10 +01:00
Borewit
7df04e6408
Update documentation
2026-02-08 14:30:07 +01:00
dependabot[bot]
5dbebf53ed
Bump @types/node from 25.1.0 to 25.2.0 in the types group
...
Bumps the types group with 1 update: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ).
Updates `@types/node` from 25.1.0 to 25.2.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 25.2.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: types
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-02-08 14:28:18 +01:00
Borewit
da9c403a34
Update Biome to 2.3.14
2026-02-08 14:28:05 +01:00
ma225tq
7c57bdcbdf
refactor(MetadataCollector): add common types for SingularArtistId & PluralArtistId
2026-02-08 14:15:46 +01:00
ma225tq
86b5d9b7c7
refactor(MetaDataCollector): extract artist/albumartist handling into helper functions
2026-02-08 14:15:46 +01:00
ma225tq
17216a903a
fix(type.ts): correct indentation in albumartist field description
2026-02-08 14:15:46 +01:00
ma225tq
62cd1a12d3
fix: add missing backtick in albumartists description
2026-02-08 14:15:46 +01:00
ma225tq
d1916dea39
test: add test for multiple album artists in FLAC files
2026-02-08 14:15:46 +01:00
ma225tq
46568de6b2
docs: regenerate common_metadata.md
2026-02-08 14:15:46 +01:00
ma225tq
2f35aacd29
fix(type.ts): correct albumartist field description
2026-02-08 14:15:46 +01:00
ma225tq
f2bef6b945
docs: add albumartist description in common.json
2026-02-08 14:15:46 +01:00
ma225tq
829b923e37
fix(type.ts): clarify albumartist field description
...
This was done to help tell the difference between the existing albumartist and the new albumartists
2026-02-08 14:15:46 +01:00
ma225tq
6027f894c2
test: add multiple album artists (TPE2) test
...
Verifies that albumartists array is populated from null-separated TPE2 frame values.
2026-02-08 14:15:46 +01:00
ma225tq
cd43849970
feat(MetadataCollector): add common.albumartists array support
...
Add albumartists field following the same pattern as artists:
- Multiple TPE2 frames or null-separated values now populate common.albumartists array (like TPE1 does for common.artists)
- Cross-population between albumartist/albumartists fields
2026-02-08 14:15:46 +01:00
Borewit
c233ede0ad
11.11.2
v11.11.2
2026-02-02 20:21:35 +01:00
glebrock
a3c53f00c8
#2574 : update docs for grouping field to include reference to GP1 frame, update to consistently use strictEqual() in test
2026-02-02 20:18:17 +01:00
glebrock
e191ae87e8
#2574 : add support for correctly populating the 'metadata.common.grouping' field for a file with an Tunes IDv2.2 tag with the 'GP1' frame
2026-02-02 20:18:17 +01:00
dependabot[bot]
ff9fb7784d
Bump win-guid from 0.2.0 to 0.2.1
...
Bumps [win-guid](https://github.com/Borewit/win-guid ) from 0.2.0 to 0.2.1.
- [Release notes](https://github.com/Borewit/win-guid/releases )
- [Commits](https://github.com/Borewit/win-guid/compare/v0.2.0...v0.2.1 )
---
updated-dependencies:
- dependency-name: win-guid
dependency-version: 0.2.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-29 09:59:39 +01:00
dependabot[bot]
807dc7c847
Bump tar from 7.5.6 to 7.5.7
...
Bumps [tar](https://github.com/isaacs/node-tar ) from 7.5.6 to 7.5.7.
- [Release notes](https://github.com/isaacs/node-tar/releases )
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md )
- [Commits](https://github.com/isaacs/node-tar/compare/v7.5.6...v7.5.7 )
---
updated-dependencies:
- dependency-name: tar
dependency-version: 7.5.7
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-29 08:39:19 +01:00
Borewit
555354345d
11.11.1
v11.11.1
2026-01-28 19:57:40 +01:00
dependabot[bot]
42ddac6f0d
Bump @types/node from 25.0.10 to 25.1.0 in the types group
...
Bumps the types group with 1 update: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ).
Updates `@types/node` from 25.0.10 to 25.1.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 25.1.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: types
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-28 19:57:07 +01:00
Borewit
17c57c68d2
Update Biome to 2.3.13
2026-01-28 19:56:56 +01:00
Borewit
4909b6fe12
fix(id3v2): prevent crash when no tag frames present
...
Fix TypeError: Cannot read properties of undefined (reading 'filter') by defaulting missing frame/tag collections to empty arrays/objects.
- Add MP3 sample without tags + regression test
- Update related TS configs and dependencies/lockfile
2026-01-28 19:54:25 +01:00
Borewit
0ec4b7e79e
Add logo
2026-01-26 20:59:39 +01:00
Borewit
06ef2dac8f
11.11.0
v11.11.0
2026-01-24 19:49:30 +01:00
dependabot[bot]
63a8bb439a
Bump @types/node from 25.0.3 to 25.0.6 in the types group
...
Bumps the types group with 1 update: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ).
Updates `@types/node` from 25.0.3 to 25.0.6
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 25.0.6
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: types
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-24 19:49:03 +01:00
dependabot[bot]
9fa48233b6
Bump tar from 7.4.3 to 7.5.6
...
Bumps [tar](https://github.com/isaacs/node-tar ) from 7.4.3 to 7.5.6.
- [Release notes](https://github.com/isaacs/node-tar/releases )
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md )
- [Commits](https://github.com/isaacs/node-tar/compare/v7.4.3...v7.5.6 )
---
updated-dependencies:
- dependency-name: tar
dependency-version: 7.5.6
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-24 19:48:39 +01:00
Borewit
8c822709d3
Add ID3v2 chapter support
2026-01-24 19:48:05 +01:00
Borewit
9809b7dcb0
Drop Discord link
2026-01-23 12:58:23 +01:00
dependabot[bot]
509010a699
Change NPM download statistics to weekly
2026-01-23 12:57:58 +01:00
dependabot[bot]
213e08dc90
Bump win-guid from 0.1.3 to 0.2.0
...
Bumps [win-guid](https://github.com/Borewit/win-guid ) from 0.1.3 to 0.2.0.
- [Release notes](https://github.com/Borewit/win-guid/releases )
- [Commits](https://github.com/Borewit/win-guid/compare/v0.1.3...v0.2.0 )
---
updated-dependencies:
- dependency-name: win-guid
dependency-version: 0.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-22 23:55:36 +01:00
Borewit
e86e878c15
11.10.6
v11.10.6
2026-01-14 18:11:29 +01:00
dependabot[bot]
99d80e5685
Bump file-type from 21.2.0 to 21.3.0
...
Bumps [file-type](https://github.com/sindresorhus/file-type ) from 21.2.0 to 21.3.0.
- [Release notes](https://github.com/sindresorhus/file-type/releases )
- [Commits](https://github.com/sindresorhus/file-type/compare/v21.2.0...v21.3.0 )
---
updated-dependencies:
- dependency-name: file-type
dependency-version: 21.3.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-14 18:04:56 +01:00
Borewit
b13fab0e7b
Depend on win-guid for Windows GUID conversion
2026-01-14 18:04:39 +01:00
Borewit
81dca61fee
Fix small code smalls, update Biome to 2.3.11
2026-01-06 15:50:42 +01:00
Borewit
9368e35f7a
11.10.5
v11.10.5
2026-01-06 13:47:18 +01:00
Borewit
64d2148d11
id3v2: harden frame parsing and fix edge cases
...
- Correctly handle missing null terminators in text fields
- Avoid reading text encoding for frames that do not define it
- Decode URL link frames according to ID3v2 specification
- Improve robustness of POPM and GEOB frame parsing
2026-01-06 13:39:38 +01:00
Borewit
fd8b32b309
Improve findZero:
...
- eliminates all OOB reads.
- makes the “not found” behavior explicit and consistent.
2026-01-06 13:39:38 +01:00
Borewit
7ad0198d67
Improve readNullTerminatedString
...
- Don’t overwrite `uint8Array`, keep `valueArray` so the length comparison is correct and readable.
- Replace `zeroIndex === -`1 with `zeroIndex >= valueArray.length`.
2026-01-06 13:39:38 +01:00
Borewit
0e4156b986
id3v2: tighten frame decoding, trim nulls without regex, reduce allocations
...
- Use flatMap for TCON genre expansion to avoid concat/reduce allocations
- Add trimNullPadding helper and replace regex-based trailing null trimming
- Add defensive length checks for COMM/USLT and POPM parsing
- Use decodeUintBE consistently for POPM counter decoding
2026-01-06 13:39:38 +01:00
Borewit
26696ec75f
Removed the eager, unconditional TextEncodingToken.get(...) at the start of readData()
2026-01-06 13:39:38 +01:00
Borewit
da2f4ca2e9
Better reuse FrameParser.readNullTerminatedString
2026-01-06 13:39:38 +01:00
Borewit
abbe09323d
Improve MP3 parsing code
...
Favor Uint8Array.subarray, over passing offset and length
2026-01-06 13:39:38 +01:00
Borewit
65ec1c8fbd
Move header parsing to FrameHeader.ts file, to allow re-using
...
Replace passing offset, and utilize `Uint8Array.subarray` instead.
2026-01-06 13:39:38 +01:00