taglib-wasm 1.5.3 → 1.6.1

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.
Files changed (52) hide show
  1. package/LICENSE +12 -9
  2. package/README.md +6 -3
  3. package/dist/index.browser.js +402 -90
  4. package/dist/simple.browser.js +400 -89
  5. package/dist/src/constants/complex-properties.d.ts +18 -12
  6. package/dist/src/constants/complex-properties.d.ts.map +1 -1
  7. package/dist/src/constants/properties.d.ts +24 -0
  8. package/dist/src/constants/properties.d.ts.map +1 -1
  9. package/dist/src/constants/properties.js +34 -0
  10. package/dist/src/constants/specialized-properties.d.ts +23 -0
  11. package/dist/src/constants/specialized-properties.d.ts.map +1 -1
  12. package/dist/src/constants/specialized-properties.js +20 -0
  13. package/dist/src/constants/tags.d.ts.map +1 -1
  14. package/dist/src/constants/tags.js +2 -1
  15. package/dist/src/msgpack/encoder.d.ts.map +1 -1
  16. package/dist/src/msgpack/encoder.js +6 -4
  17. package/dist/src/runtime/detector.d.ts +0 -6
  18. package/dist/src/runtime/detector.d.ts.map +1 -1
  19. package/dist/src/runtime/detector.js +1 -14
  20. package/dist/src/runtime/wasi-adapter/file-handle.d.ts +2 -0
  21. package/dist/src/runtime/wasi-adapter/file-handle.d.ts.map +1 -1
  22. package/dist/src/runtime/wasi-adapter/file-handle.js +73 -52
  23. package/dist/src/taglib/audio-file-base.d.ts.map +1 -1
  24. package/dist/src/taglib/audio-file-base.js +33 -77
  25. package/dist/src/taglib/load-audio-data.d.ts.map +1 -1
  26. package/dist/src/taglib/load-audio-data.js +19 -5
  27. package/dist/src/taglib/metadata-extent.d.ts +41 -0
  28. package/dist/src/taglib/metadata-extent.d.ts.map +1 -0
  29. package/dist/src/taglib/metadata-extent.js +128 -0
  30. package/dist/src/taglib/mp4-item-names.d.ts +12 -0
  31. package/dist/src/taglib/mp4-item-names.d.ts.map +1 -0
  32. package/dist/src/taglib/mp4-item-names.js +4 -0
  33. package/dist/src/taglib/mutable-tag-impl.d.ts +14 -0
  34. package/dist/src/taglib/mutable-tag-impl.d.ts.map +1 -0
  35. package/dist/src/taglib/mutable-tag-impl.js +88 -0
  36. package/dist/src/taglib/save-reconstruct.d.ts.map +1 -1
  37. package/dist/src/taglib/save-reconstruct.js +4 -0
  38. package/dist/src/types/metadata-mappings.d.ts.map +1 -1
  39. package/dist/src/types/metadata-mappings.js +14 -0
  40. package/dist/src/types/tags.d.ts +16 -0
  41. package/dist/src/types/tags.d.ts.map +1 -1
  42. package/dist/src/utils/mirror-fields.d.ts +79 -0
  43. package/dist/src/utils/mirror-fields.d.ts.map +1 -0
  44. package/dist/src/utils/mirror-fields.js +67 -0
  45. package/dist/src/utils/tag-mapping.d.ts.map +1 -1
  46. package/dist/src/utils/tag-mapping.js +47 -5
  47. package/dist/src/version.d.ts +1 -1
  48. package/dist/src/version.js +1 -1
  49. package/dist/taglib-wasi.wasm +0 -0
  50. package/dist/taglib-web.wasm +0 -0
  51. package/dist/taglib-wrapper.js +1 -1
  52. package/package.json +3 -3
package/LICENSE CHANGED
@@ -27,21 +27,24 @@ ADDITIONAL LICENSING INFORMATION:
27
27
  This product includes software developed by Scott Wheeler and the TagLib
28
28
  contributors (https://taglib.org/).
29
29
 
30
- The WebAssembly binary (build/taglib.wasm) contains compiled TagLib code
31
- which is licensed under LGPL-2.1-or-later. The original TagLib source code
32
- is located in lib/taglib/. See lib/taglib/COPYING.LGPL for the full LGPL
33
- license terms.
30
+ The WebAssembly binaries (build/taglib-web.wasm for the Emscripten backend
31
+ and build/taglib-wasi.wasm for the WASI backend, shipped as dist/*.wasm)
32
+ contain compiled TagLib code which is licensed under LGPL-2.1-or-later.
33
+ The original TagLib source code is located in lib/taglib/. See
34
+ lib/taglib/COPYING.LGPL for the full LGPL license terms.
34
35
 
35
36
  LGPL COMPLIANCE:
36
- The WebAssembly binary is subject to LGPL requirements. This means:
37
- - You may use it in commercial applications
37
+ The WebAssembly binaries are subject to LGPL requirements. This means:
38
+ - You may use them in commercial applications
38
39
  - Modifications to TagLib must be shared under LGPL
39
40
  - You must enable users to relink with modified TagLib versions
40
41
 
41
- To rebuild the WebAssembly binary with a modified TagLib:
42
+ To rebuild the WebAssembly binaries with a modified TagLib:
42
43
  1. Modify the TagLib source in lib/taglib/
43
- 2. Run: npm run build:wasm
44
- 3. The new binary will be in build/taglib.wasm
44
+ 2. Run: npm run build:wasm (builds both backends; requires the
45
+ Emscripten SDK and WASI SDK 33 see CONTRIBUTING.md)
46
+ 3. The new binaries will be in build/taglib-web.wasm and
47
+ build/taglib-wasi.wasm
45
48
 
46
49
  For more information about LGPL compliance and dual licensing, see:
47
50
  https://github.com/CharlesWiltgen/TagLib-Wasm#licensing
package/README.md CHANGED
@@ -33,8 +33,11 @@ TagLib-Wasm is the **universal tagging library for TypeScript/JavaScript**
33
33
  possible
34
34
  - **Rich metadata** – Cover art, ratings, chapters (MP3 `CHAP`, MP4
35
35
  QuickTime/Nero), and broadcast metadata (BWF `bext`/iXML for WAV/FLAC)
36
+ - **Value fidelity** – Tag values round-trip verbatim: a `"3/12"` track or a
37
+ zero-padded `"03"` is preserved, and MP4 freeform atoms keep their exact
38
+ casing and vendor `mean`, so other tools still recognise them
36
39
  - **Zero dependencies** – Self-contained Wasm bundle
37
- - **Tested** – 293 tests across all formats
40
+ - **Tested** – 448 tests across all formats, with cross-backend parity coverage
38
41
  - **Two API styles** – Use the "Simple" API (3 functions), or the full "Core"
39
42
  API for more advanced applications
40
43
  - **Batch folder operations** – Scan directories, process multiple files, find
@@ -48,8 +51,8 @@ TagLib-Wasm is the **universal tagging library for TypeScript/JavaScript**
48
51
  npm install taglib-wasm
49
52
  ```
50
53
 
51
- > **Note:** Requires Node.js v22.6.0 or higher for WASI and WebAssembly
52
- > exception handling support. To consume the package as TypeScript source
54
+ > **Note:** Requires Node.js v24 or higher (the Active LTS line) for WASI and
55
+ > WebAssembly exception handling support. To consume the package as TypeScript source
53
56
  > (e.g., via `tsx`), see the
54
57
  > [installation guide](https://charleswiltgen.github.io/TagLib-Wasm/guide/installation.html).
55
58