Borewit
c619ac4a5a
Replace text-coded with @exodus/bytes for text encoding and decoding
2026-02-21 16:13:00 +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
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
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
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
Gérald LEBAN
44f262f011
Add support for vorbis unsynced lyrics ( #2489 )
...
Extract unsynced vorbis lyrics
---------
Co-authored-by: Borewit <Borewit@users.noreply.github.com >
2025-11-09 14:55:57 +01:00
Borewit
5445cbb816
Support variable length PCNT and POPM numeric values.
...
Add `common.playCounter`
2025-09-15 20:36:21 +02:00
Borewit
bcae011214
Favor subarray over slice, reusing instead of copying data
2025-09-15 20:28:29 +02:00
Borewit
95c35ff566
Update Biome to 2.2.0
2025-08-19 12:28:41 +02:00
Borewit
06d83b2e7a
Fix missing uint8array-extras dependency
2025-08-19 12:09:40 +02:00
Borewit
763f72854c
Replace @kayahr/text-encoding with @borewit/text-codec
2025-08-13 21:48:37 +01:00
Borewit
a5bc776e6d
Remove uint8array-extras dependency
...
Remove `uint8array-extras` dependency in favour of having the same TextEncoder everywhere.
2025-08-13 09:58:54 +01:00
Borewit
a9094e9829
Indicate on every media file if it contains an audio and/or video stream.
...
Introduces: `format.hasAudio` and `format.hasVideo`
2025-06-30 17:33:09 +02:00
Borewit
f16f584b0b
Fix code style issues
2025-06-26 20:24:05 +02:00
Justinas Delinda
1894acb748
Refactor commonTags structure to use defaultTagInfo for consistency and improve readability
2025-04-01 20:03:49 +02:00
Justinas Delinda
7ff2786318
Refactor constructors to use explicit property assignments
2025-04-01 19:57:20 +02:00
Justinas Delinda
9d2d2a7c69
Refactor enums to mapped objects
2025-04-01 19:57:20 +02:00
Borewit
a29bcc2172
Remove unused file
2025-01-21 12:54:23 +01:00
Borewit
01ad22bc5e
Utilize strtok3 random access reading
2024-11-28 19:16:13 +01:00
Borewit
f12c588ad1
Add support for LRC Lyrics
2024-11-10 16:58:57 +01:00
Borewit
4456defc99
Dynamic import parsers
2024-09-05 20:25:18 +02:00
Borewit
8fe9ac2057
Implement own custom Error using ADT style implementation
2024-08-29 17:48:28 +02:00
Borewit
3937085154
Enable TypeScript options strict & verbatimModuleSyntax
2024-08-12 08:54:43 +02:00
Borewit
89ff43a053
Migrate eslint to biome, fix lint errors
2024-08-08 19:15:49 +02:00
Borewit
c7fd893a22
Add support for ID3v2 SYLT frame
...
Improve and extend generic comment mapping
2024-07-20 15:32:17 +02:00
Borewit
d6c275509d
Remove remaining Buffer usages.
...
Add lint rule to prevent global Buffer usage.
2024-07-12 12:01:12 +02:00
Borewit
573c505a84
Prevent subpath imports, for Angular compatibility
2024-07-09 21:26:38 +02:00
Bjorn Stromberg
eb0f8e61b8
feat: convert most Buffer usage to Uint8Array ( #2103 )
...
Convert most Buffer usage to Uint8Array and `uint8array-extras` to fill functionality gaps
* Update `token-types` to version 6.0.0
* Update `strtok3` to version 7.1.0
* Update `file-type` to version 19.1.0
* Update dependency diagram to desired Node.js free via primary entry point
Co-authored-by: Borewit <Borewit@users.noreply.github.com >
2024-07-08 19:53:02 +02:00
certuna
216ef33cad
Update GenericTagTypes.ts
2023-11-01 12:05:06 +01:00
certuna
3b257766c4
Update GenericTagTypes.ts
2023-11-01 12:05:06 +01:00
Borewit
e08ee039d4
Merge pull request #1291 from Borewit/aiff-text-chunks
...
Add AIFF text chunk support, resulting in AIFF metadata & mapping
2022-09-18 13:31:03 +02:00
Borewit
d17547d7e4
Add AIFF text chunk support, resulting in AIFF metadata & mapping
2022-09-18 13:23:48 +02:00
Borewit
0687a0a824
Simplify handling FourCC
2022-09-18 13:19:31 +02:00
Borewit
7cdebd1ca6
Migrate from CommonJS to ES Modules
2022-02-27 15:27:40 +01:00
Borewit
65ba6661fa
Normalize import debug towards ES module compatibility
2022-02-27 13:28:45 +01:00
Borewit
011cfb0a98
Minor code improvements in MPEG parser, replacing Buffer with Uint8Array
2022-02-27 12:40:25 +01:00
Borewit
02d07928a1
Merge pull request #1037 from Borewit/fix-issue-1028
...
Ensure Node.js `Buffer` class is used to decode strings from `Uint8Aray`
2022-02-24 22:51:20 +01:00
Borewit
e089a474bd
Ensure Node.js Buffer class is used to decode strings from Uint8Array
2022-02-24 22:46:59 +01:00
Borewit
9fd5593e45
Utilize Node.js, fs API module, FileHandle object
2022-02-24 22:04:15 +01:00
Borewit
40bdf32040
Fix comment formatting
2022-01-29 19:20:53 +01:00
Borewit
19366b896c
Fix lint code style issues
...
Parse TypeScript files recursive.
Fix duplicate interface declarations.
2022-01-29 19:02:24 +01:00
Borewit
be2222c0e7
Handle invalid (odd octet length) UTF-16 string
...
Register a warning instead of a fatal error.
Resolves Borewit/music-metadata#979
2022-01-17 15:58:51 +01:00
Borewit
48f9571c21
Map tag ID3v2.2 TBP to common.bpm
...
Also ensures `common.bpm` is a numeric value.
2022-01-12 22:13:17 +01:00
Borewit
5ae7f3817d
Minor source code improvements
2021-12-10 17:50:09 +01:00
Borewit
71fb350606
Remove redundant space
2021-08-30 21:40:08 +02:00
Borewit
72223a39f0
Abstraction from Buffer to Uint8Array in randomRead & parseBuffer
2021-07-23 11:11:58 +02:00
Borewit
973e90978c
Use Uint8Array instead of Buffer where reasonable possible
2021-07-22 15:34:01 +02:00