taglib-wasm 1.0.4 → 1.0.6

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 (46) hide show
  1. package/README.md +38 -443
  2. package/dist/index.browser.d.ts +2 -1
  3. package/dist/index.browser.d.ts.map +1 -1
  4. package/dist/index.browser.js +49 -101
  5. package/dist/index.d.ts +2 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +2 -0
  8. package/dist/simple.browser.js +47 -101
  9. package/dist/src/errors/base.d.ts +1 -1
  10. package/dist/src/errors/base.d.ts.map +1 -1
  11. package/dist/src/errors/base.js +2 -1
  12. package/dist/src/folder-api/folder-operations.d.ts +2 -1
  13. package/dist/src/folder-api/folder-operations.d.ts.map +1 -1
  14. package/dist/src/folder-api/types.d.ts.map +1 -1
  15. package/dist/src/folder-api/types.js +4 -1
  16. package/dist/src/runtime/wasi-adapter/file-handle.d.ts.map +1 -1
  17. package/dist/src/runtime/wasi-adapter/file-handle.js +3 -1
  18. package/dist/src/runtime/wasi-adapter/wasm-io.d.ts.map +1 -1
  19. package/dist/src/runtime/wasi-adapter/wasm-io.js +9 -0
  20. package/dist/src/runtime/wasi-host.d.ts.map +1 -1
  21. package/dist/src/runtime/wasi-host.js +5 -0
  22. package/dist/src/simple/batch-operations.d.ts +4 -4
  23. package/dist/src/simple/batch-operations.d.ts.map +1 -1
  24. package/dist/src/simple/batch-operations.js +4 -1
  25. package/dist/src/simple/picture-operations.d.ts.map +1 -1
  26. package/dist/src/simple/picture-operations.js +6 -50
  27. package/dist/src/simple/tag-operations.d.ts.map +1 -1
  28. package/dist/src/simple/tag-operations.js +12 -65
  29. package/dist/src/simple/with-audio-file.d.ts +5 -0
  30. package/dist/src/simple/with-audio-file.d.ts.map +1 -0
  31. package/dist/src/simple/with-audio-file.js +32 -0
  32. package/dist/src/taglib/audio-file-base.d.ts +3 -3
  33. package/dist/src/taglib/audio-file-base.d.ts.map +1 -1
  34. package/dist/src/taglib/audio-file-impl.d.ts +2 -2
  35. package/dist/src/taglib/audio-file-impl.d.ts.map +1 -1
  36. package/dist/src/taglib/taglib-class.d.ts +3 -2
  37. package/dist/src/taglib/taglib-class.d.ts.map +1 -1
  38. package/dist/src/taglib/taglib-class.js +9 -5
  39. package/dist/src/types/audio-formats.d.ts +12 -3
  40. package/dist/src/types/audio-formats.d.ts.map +1 -1
  41. package/dist/src/types/audio-formats.js +6 -0
  42. package/dist/src/types/format-property-keys.d.ts +1 -1
  43. package/dist/src/types/format-property-keys.d.ts.map +1 -1
  44. package/dist/taglib-web.wasm +0 -0
  45. package/dist/taglib-wrapper.js +1 -1
  46. package/package.json +1 -1
@@ -11,6 +11,9 @@ var __export = (target, all) => {
11
11
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
12
12
 
13
13
  // src/types/audio-formats.ts
14
+ function isNamedAudioInput(input) {
15
+ return typeof input === "object" && input !== null && "name" in input && "data" in input && !(input instanceof File) && !(input instanceof Uint8Array) && !(input instanceof ArrayBuffer);
16
+ }
14
17
  var init_audio_formats = __esm({
15
18
  "src/types/audio-formats.ts"() {
16
19
  "use strict";
@@ -143,7 +146,8 @@ var init_base = __esm({
143
146
  "M4A",
144
147
  "FLAC",
145
148
  "OGG",
146
- "WAV"
149
+ "WAV",
150
+ "MKA"
147
151
  ];
148
152
  TagLibError = class _TagLibError extends Error {
149
153
  /**
@@ -1491,6 +1495,7 @@ var TagLib;
1491
1495
  var init_taglib_class = __esm({
1492
1496
  "src/taglib/taglib-class.ts"() {
1493
1497
  "use strict";
1498
+ init_audio_formats();
1494
1499
  init_errors2();
1495
1500
  init_audio_file_impl();
1496
1501
  init_load_audio_data();
@@ -1513,7 +1518,7 @@ var init_taglib_class = __esm({
1513
1518
  }
1514
1519
  /**
1515
1520
  * Open an audio file for reading and writing metadata.
1516
- * @param input - File path, Uint8Array, ArrayBuffer, or File object.
1521
+ * @param input - File path, Uint8Array, ArrayBuffer, File object, or NamedAudioInput.
1517
1522
  * @param options - Partial-loading options for large files.
1518
1523
  * @returns An AudioFile instance (use `using` for automatic cleanup).
1519
1524
  * @throws {TagLibInitializationError} If the module is not properly initialized.
@@ -1525,7 +1530,8 @@ var init_taglib_class = __esm({
1525
1530
  "TagLib module not properly initialized: createFileHandle not found. Make sure the module is fully loaded before calling open."
1526
1531
  );
1527
1532
  }
1528
- const sourcePath = typeof input === "string" ? input : void 0;
1533
+ const actualInput = isNamedAudioInput(input) ? input.data : input;
1534
+ const sourcePath = typeof actualInput === "string" ? actualInput : void 0;
1529
1535
  const opts = {
1530
1536
  partial: false,
1531
1537
  maxHeaderSize: 1024 * 1024,
@@ -1533,7 +1539,7 @@ var init_taglib_class = __esm({
1533
1539
  ...options
1534
1540
  };
1535
1541
  const { data: audioData, isPartiallyLoaded } = await loadAudioData(
1536
- input,
1542
+ actualInput,
1537
1543
  opts
1538
1544
  );
1539
1545
  const buffer = audioData.buffer.slice(
@@ -1554,7 +1560,7 @@ var init_taglib_class = __esm({
1554
1560
  this.module,
1555
1561
  fileHandle,
1556
1562
  sourcePath,
1557
- input,
1563
+ actualInput,
1558
1564
  isPartiallyLoaded,
1559
1565
  opts
1560
1566
  );
@@ -1614,7 +1620,7 @@ var init_taglib_class = __esm({
1614
1620
  }
1615
1621
  /** Returns the taglib-wasm version with embedded TagLib version. */
1616
1622
  version() {
1617
- return "1.0.4 (TagLib 2.1.1)";
1623
+ return "1.0.6 (TagLib 2.2.1)";
1618
1624
  }
1619
1625
  };
1620
1626
  }
@@ -1662,6 +1668,7 @@ var init_taglib2 = __esm({
1662
1668
 
1663
1669
  // index.browser.ts
1664
1670
  init_taglib2();
1671
+ init_audio_formats();
1665
1672
  init_errors2();
1666
1673
 
1667
1674
  // src/simple/config.ts
@@ -1684,7 +1691,10 @@ async function getTagLib() {
1684
1691
  init_errors2();
1685
1692
  init_write();
1686
1693
  init_tag_mapping();
1687
- async function readTags(file) {
1694
+
1695
+ // src/simple/with-audio-file.ts
1696
+ init_errors2();
1697
+ async function withAudioFile(file, fn) {
1688
1698
  const taglib = await getTagLib();
1689
1699
  const audioFile = await taglib.open(file);
1690
1700
  try {
@@ -1693,22 +1703,14 @@ async function readTags(file) {
1693
1703
  "File may be corrupted or in an unsupported format"
1694
1704
  );
1695
1705
  }
1696
- const props = audioFile.properties();
1697
- return mapPropertiesToExtendedTag(props);
1706
+ return fn(audioFile);
1698
1707
  } finally {
1699
1708
  audioFile.dispose();
1700
1709
  }
1701
1710
  }
1702
- async function applyTags(file, tags) {
1703
- const taglib = await getTagLib();
1704
- const audioFile = await taglib.open(file);
1705
- try {
1706
- if (!audioFile.isValid()) {
1707
- throw new InvalidFormatError(
1708
- "File may be corrupted or in an unsupported format"
1709
- );
1710
- }
1711
- mergeTagUpdates(audioFile, tags);
1711
+ async function withAudioFileSave(file, fn) {
1712
+ return withAudioFile(file, (audioFile) => {
1713
+ fn(audioFile);
1712
1714
  if (!audioFile.save()) {
1713
1715
  throw new FileOperationError(
1714
1716
  "save",
@@ -1716,9 +1718,20 @@ async function applyTags(file, tags) {
1716
1718
  );
1717
1719
  }
1718
1720
  return audioFile.getFileBuffer();
1719
- } finally {
1720
- audioFile.dispose();
1721
- }
1721
+ });
1722
+ }
1723
+
1724
+ // src/simple/tag-operations.ts
1725
+ async function readTags(file) {
1726
+ return withAudioFile(
1727
+ file,
1728
+ (audioFile) => mapPropertiesToExtendedTag(audioFile.properties())
1729
+ );
1730
+ }
1731
+ async function applyTags(file, tags) {
1732
+ return withAudioFileSave(file, (audioFile) => {
1733
+ mergeTagUpdates(audioFile, tags);
1734
+ });
1722
1735
  }
1723
1736
  async function applyTagsToFile(file, tags) {
1724
1737
  if (typeof file !== "string") {
@@ -1731,14 +1744,7 @@ async function applyTagsToFile(file, tags) {
1731
1744
  await writeFileData(file, modifiedBuffer);
1732
1745
  }
1733
1746
  async function readProperties(file) {
1734
- const taglib = await getTagLib();
1735
- const audioFile = await taglib.open(file);
1736
- try {
1737
- if (!audioFile.isValid()) {
1738
- throw new InvalidFormatError(
1739
- "File may be corrupted or in an unsupported format"
1740
- );
1741
- }
1747
+ return withAudioFile(file, (audioFile) => {
1742
1748
  const props = audioFile.audioProperties();
1743
1749
  if (!props) {
1744
1750
  throw new MetadataError(
@@ -1748,9 +1754,7 @@ async function readProperties(file) {
1748
1754
  );
1749
1755
  }
1750
1756
  return props;
1751
- } finally {
1752
- audioFile.dispose();
1753
- }
1757
+ });
1754
1758
  }
1755
1759
  async function isValidAudioFile(file) {
1756
1760
  try {
@@ -1778,85 +1782,25 @@ async function readFormat(file) {
1778
1782
  }
1779
1783
  }
1780
1784
  async function clearTags(file) {
1781
- const taglib = await getTagLib();
1782
- const audioFile = await taglib.open(file);
1783
- try {
1784
- if (!audioFile.isValid()) {
1785
- throw new InvalidFormatError(
1786
- "File may be corrupted or in an unsupported format"
1787
- );
1788
- }
1785
+ return withAudioFileSave(file, (audioFile) => {
1789
1786
  audioFile.setProperties({});
1790
1787
  audioFile.removePictures();
1791
- if (!audioFile.save()) {
1792
- throw new FileOperationError(
1793
- "save",
1794
- "Failed to save metadata changes. The file may be read-only or corrupted."
1795
- );
1796
- }
1797
- return audioFile.getFileBuffer();
1798
- } finally {
1799
- audioFile.dispose();
1800
- }
1788
+ });
1801
1789
  }
1802
1790
 
1803
1791
  // src/simple/picture-operations.ts
1804
- init_errors2();
1805
1792
  async function readPictures(file) {
1806
- const taglib = await getTagLib();
1807
- const audioFile = await taglib.open(file);
1808
- try {
1809
- if (!audioFile.isValid()) {
1810
- throw new InvalidFormatError(
1811
- "File may be corrupted or in an unsupported format"
1812
- );
1813
- }
1814
- return audioFile.getPictures();
1815
- } finally {
1816
- audioFile.dispose();
1817
- }
1793
+ return withAudioFile(file, (audioFile) => audioFile.getPictures());
1818
1794
  }
1819
1795
  async function applyPictures(file, pictures) {
1820
- const taglib = await getTagLib();
1821
- const audioFile = await taglib.open(file);
1822
- try {
1823
- if (!audioFile.isValid()) {
1824
- throw new InvalidFormatError(
1825
- "File may be corrupted or in an unsupported format"
1826
- );
1827
- }
1796
+ return withAudioFileSave(file, (audioFile) => {
1828
1797
  audioFile.setPictures(pictures);
1829
- if (!audioFile.save()) {
1830
- throw new FileOperationError(
1831
- "save",
1832
- "Failed to save picture changes. The file may be read-only or corrupted."
1833
- );
1834
- }
1835
- return audioFile.getFileBuffer();
1836
- } finally {
1837
- audioFile.dispose();
1838
- }
1798
+ });
1839
1799
  }
1840
1800
  async function addPicture(file, picture) {
1841
- const taglib = await getTagLib();
1842
- const audioFile = await taglib.open(file);
1843
- try {
1844
- if (!audioFile.isValid()) {
1845
- throw new InvalidFormatError(
1846
- "File may be corrupted or in an unsupported format"
1847
- );
1848
- }
1801
+ return withAudioFileSave(file, (audioFile) => {
1849
1802
  audioFile.addPicture(picture);
1850
- if (!audioFile.save()) {
1851
- throw new FileOperationError(
1852
- "save",
1853
- "Failed to save picture changes. The file may be read-only or corrupted."
1854
- );
1855
- }
1856
- return audioFile.getFileBuffer();
1857
- } finally {
1858
- audioFile.dispose();
1859
- }
1803
+ });
1860
1804
  }
1861
1805
  async function clearPictures(file) {
1862
1806
  return applyPictures(file, []);
@@ -1903,6 +1847,7 @@ async function readPictureMetadata(file) {
1903
1847
  }
1904
1848
 
1905
1849
  // src/simple/batch-operations.ts
1850
+ init_audio_formats();
1906
1851
  init_errors2();
1907
1852
  init_tag_mapping();
1908
1853
  async function executeBatch(files, options, processor) {
@@ -1918,7 +1863,7 @@ async function executeBatch(files, options, processor) {
1918
1863
  const chunk = files.slice(i, i + concurrency);
1919
1864
  const chunkPromises = chunk.map(async (file, idx) => {
1920
1865
  const index = i + idx;
1921
- const fileName = typeof file === "string" ? file : `file-${index}`;
1866
+ const fileName = typeof file === "string" ? file : file instanceof File ? file.name : isNamedAudioInput(file) ? file.name : `buffer-${index}`;
1922
1867
  try {
1923
1868
  const audioFile = await taglib.open(file);
1924
1869
  try {
@@ -1990,6 +1935,8 @@ async function readMetadata(file) {
1990
1935
  name = file;
1991
1936
  } else if (file instanceof File) {
1992
1937
  name = file.name;
1938
+ } else if (isNamedAudioInput(file)) {
1939
+ name = file.name;
1993
1940
  } else {
1994
1941
  name = `buffer (${file.byteLength} bytes)`;
1995
1942
  }
@@ -2472,6 +2419,7 @@ export {
2472
2419
  isInvalidFormatError,
2473
2420
  isMemoryError,
2474
2421
  isMetadataError,
2422
+ isNamedAudioInput,
2475
2423
  isTagLibError,
2476
2424
  isUnsupportedFormatError,
2477
2425
  isValidAudioFile,
package/dist/index.d.ts CHANGED
@@ -35,6 +35,7 @@
35
35
  export type { AudioFile, TypedAudioFile, } from "./src/taglib/audio-file-interface.js";
36
36
  export { AudioFileImpl, createTagLib, TagLib } from "./src/taglib.js";
37
37
  export type { MutableTag } from "./src/taglib.js";
38
+ export { isNamedAudioInput } from "./src/types/audio-formats.js";
38
39
  export { EnvironmentError, FileOperationError, InvalidFormatError, isEnvironmentError, isFileOperationError, isInvalidFormatError, isMemoryError, isMetadataError, isTagLibError, isUnsupportedFormatError, MemoryError, MetadataError, SUPPORTED_FORMATS, TagLibError, TagLibInitializationError, UnsupportedFormatError, } from "./src/errors.js";
39
40
  export type { TagLibErrorCode } from "./src/errors.js";
40
41
  export { initializeForDenoCompile, isDenoCompiled, prepareWasmForEmbedding, } from "./src/deno-compile.js";
@@ -44,7 +45,7 @@ export type { PropertyMetadata } from "./src/constants/property-types.js";
44
45
  export { copyCoverArt, exportAllPictures, exportCoverArt, exportPictureByType, findCoverArtFiles, importCoverArt, importPictureWithType, loadPictureFromFile, savePictureToFile, } from "./src/file-utils/index.js";
45
46
  export { type AudioDynamics, type AudioFileMetadata, type DuplicateGroup, exportFolderMetadata, findDuplicates, type FolderScanItem, type FolderScanOptions, type FolderScanResult, type FolderUpdateItem, type FolderUpdateResult, scanFolder, updateFolderTags, } from "./src/folder-api/index.js";
46
47
  export { canvasToPicture, createPictureDownloadURL, createPictureGallery, dataURLToPicture, displayPicture, imageFileToPicture, pictureToDataURL, setCoverArtFromCanvas, } from "./src/web-utils/index.js";
47
- export type { AudioCodec, AudioFileInput, AudioProperties, BitrateControlMode, ContainerFormat, ExtendedTag, FieldMapping, FileType, OpenOptions, Picture, PictureType, PropertyMap, Tag, TagInput, TagName, } from "./src/types.js";
48
+ export type { AudioCodec, AudioFileInput, AudioProperties, BitrateControlMode, ContainerFormat, ExtendedTag, FieldMapping, FileType, NamedAudioInput, OpenOptions, Picture, PictureType, PropertyMap, Tag, TagInput, TagName, } from "./src/types.js";
48
49
  export { BITRATE_CONTROL_MODE_NAMES, BITRATE_CONTROL_MODE_VALUES, PICTURE_TYPE_NAMES, PICTURE_TYPE_VALUES, } from "./src/types.js";
49
50
  export type { PropertyKey, PropertyValue } from "./src/constants.js";
50
51
  export type { FormatPropertyKey, TagFormat, } from "./src/types/format-property-keys.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  // index.ts
2
2
  import { AudioFileImpl, createTagLib, TagLib } from "./src/taglib.js";
3
+ import { isNamedAudioInput } from "./src/types/audio-formats.js";
3
4
  import {
4
5
  EnvironmentError,
5
6
  FileOperationError,
@@ -155,6 +156,7 @@ export {
155
156
  isInvalidFormatError,
156
157
  isMemoryError,
157
158
  isMetadataError,
159
+ isNamedAudioInput,
158
160
  isTagLibError,
159
161
  isUnsupportedFormatError,
160
162
  isValidAudioFile,
@@ -11,6 +11,9 @@ var __export = (target, all) => {
11
11
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
12
12
 
13
13
  // src/types/audio-formats.ts
14
+ function isNamedAudioInput(input) {
15
+ return typeof input === "object" && input !== null && "name" in input && "data" in input && !(input instanceof File) && !(input instanceof Uint8Array) && !(input instanceof ArrayBuffer);
16
+ }
14
17
  var init_audio_formats = __esm({
15
18
  "src/types/audio-formats.ts"() {
16
19
  "use strict";
@@ -131,7 +134,8 @@ var init_base = __esm({
131
134
  "M4A",
132
135
  "FLAC",
133
136
  "OGG",
134
- "WAV"
137
+ "WAV",
138
+ "MKA"
135
139
  ];
136
140
  TagLibError = class _TagLibError extends Error {
137
141
  /**
@@ -1478,6 +1482,7 @@ var TagLib;
1478
1482
  var init_taglib_class = __esm({
1479
1483
  "src/taglib/taglib-class.ts"() {
1480
1484
  "use strict";
1485
+ init_audio_formats();
1481
1486
  init_errors2();
1482
1487
  init_audio_file_impl();
1483
1488
  init_load_audio_data();
@@ -1500,7 +1505,7 @@ var init_taglib_class = __esm({
1500
1505
  }
1501
1506
  /**
1502
1507
  * Open an audio file for reading and writing metadata.
1503
- * @param input - File path, Uint8Array, ArrayBuffer, or File object.
1508
+ * @param input - File path, Uint8Array, ArrayBuffer, File object, or NamedAudioInput.
1504
1509
  * @param options - Partial-loading options for large files.
1505
1510
  * @returns An AudioFile instance (use `using` for automatic cleanup).
1506
1511
  * @throws {TagLibInitializationError} If the module is not properly initialized.
@@ -1512,7 +1517,8 @@ var init_taglib_class = __esm({
1512
1517
  "TagLib module not properly initialized: createFileHandle not found. Make sure the module is fully loaded before calling open."
1513
1518
  );
1514
1519
  }
1515
- const sourcePath = typeof input === "string" ? input : void 0;
1520
+ const actualInput = isNamedAudioInput(input) ? input.data : input;
1521
+ const sourcePath = typeof actualInput === "string" ? actualInput : void 0;
1516
1522
  const opts = {
1517
1523
  partial: false,
1518
1524
  maxHeaderSize: 1024 * 1024,
@@ -1520,7 +1526,7 @@ var init_taglib_class = __esm({
1520
1526
  ...options
1521
1527
  };
1522
1528
  const { data: audioData, isPartiallyLoaded } = await loadAudioData(
1523
- input,
1529
+ actualInput,
1524
1530
  opts
1525
1531
  );
1526
1532
  const buffer = audioData.buffer.slice(
@@ -1541,7 +1547,7 @@ var init_taglib_class = __esm({
1541
1547
  this.module,
1542
1548
  fileHandle,
1543
1549
  sourcePath,
1544
- input,
1550
+ actualInput,
1545
1551
  isPartiallyLoaded,
1546
1552
  opts
1547
1553
  );
@@ -1601,7 +1607,7 @@ var init_taglib_class = __esm({
1601
1607
  }
1602
1608
  /** Returns the taglib-wasm version with embedded TagLib version. */
1603
1609
  version() {
1604
- return "1.0.4 (TagLib 2.1.1)";
1610
+ return "1.0.6 (TagLib 2.2.1)";
1605
1611
  }
1606
1612
  };
1607
1613
  }
@@ -1667,7 +1673,10 @@ async function getTagLib() {
1667
1673
  init_errors2();
1668
1674
  init_write();
1669
1675
  init_tag_mapping();
1670
- async function readTags(file) {
1676
+
1677
+ // src/simple/with-audio-file.ts
1678
+ init_errors2();
1679
+ async function withAudioFile(file, fn) {
1671
1680
  const taglib = await getTagLib();
1672
1681
  const audioFile = await taglib.open(file);
1673
1682
  try {
@@ -1676,22 +1685,14 @@ async function readTags(file) {
1676
1685
  "File may be corrupted or in an unsupported format"
1677
1686
  );
1678
1687
  }
1679
- const props = audioFile.properties();
1680
- return mapPropertiesToExtendedTag(props);
1688
+ return fn(audioFile);
1681
1689
  } finally {
1682
1690
  audioFile.dispose();
1683
1691
  }
1684
1692
  }
1685
- async function applyTags(file, tags) {
1686
- const taglib = await getTagLib();
1687
- const audioFile = await taglib.open(file);
1688
- try {
1689
- if (!audioFile.isValid()) {
1690
- throw new InvalidFormatError(
1691
- "File may be corrupted or in an unsupported format"
1692
- );
1693
- }
1694
- mergeTagUpdates(audioFile, tags);
1693
+ async function withAudioFileSave(file, fn) {
1694
+ return withAudioFile(file, (audioFile) => {
1695
+ fn(audioFile);
1695
1696
  if (!audioFile.save()) {
1696
1697
  throw new FileOperationError(
1697
1698
  "save",
@@ -1699,9 +1700,20 @@ async function applyTags(file, tags) {
1699
1700
  );
1700
1701
  }
1701
1702
  return audioFile.getFileBuffer();
1702
- } finally {
1703
- audioFile.dispose();
1704
- }
1703
+ });
1704
+ }
1705
+
1706
+ // src/simple/tag-operations.ts
1707
+ async function readTags(file) {
1708
+ return withAudioFile(
1709
+ file,
1710
+ (audioFile) => mapPropertiesToExtendedTag(audioFile.properties())
1711
+ );
1712
+ }
1713
+ async function applyTags(file, tags) {
1714
+ return withAudioFileSave(file, (audioFile) => {
1715
+ mergeTagUpdates(audioFile, tags);
1716
+ });
1705
1717
  }
1706
1718
  async function applyTagsToFile(file, tags) {
1707
1719
  if (typeof file !== "string") {
@@ -1714,14 +1726,7 @@ async function applyTagsToFile(file, tags) {
1714
1726
  await writeFileData(file, modifiedBuffer);
1715
1727
  }
1716
1728
  async function readProperties(file) {
1717
- const taglib = await getTagLib();
1718
- const audioFile = await taglib.open(file);
1719
- try {
1720
- if (!audioFile.isValid()) {
1721
- throw new InvalidFormatError(
1722
- "File may be corrupted or in an unsupported format"
1723
- );
1724
- }
1729
+ return withAudioFile(file, (audioFile) => {
1725
1730
  const props = audioFile.audioProperties();
1726
1731
  if (!props) {
1727
1732
  throw new MetadataError(
@@ -1731,9 +1736,7 @@ async function readProperties(file) {
1731
1736
  );
1732
1737
  }
1733
1738
  return props;
1734
- } finally {
1735
- audioFile.dispose();
1736
- }
1739
+ });
1737
1740
  }
1738
1741
  async function isValidAudioFile(file) {
1739
1742
  try {
@@ -1761,85 +1764,25 @@ async function readFormat(file) {
1761
1764
  }
1762
1765
  }
1763
1766
  async function clearTags(file) {
1764
- const taglib = await getTagLib();
1765
- const audioFile = await taglib.open(file);
1766
- try {
1767
- if (!audioFile.isValid()) {
1768
- throw new InvalidFormatError(
1769
- "File may be corrupted or in an unsupported format"
1770
- );
1771
- }
1767
+ return withAudioFileSave(file, (audioFile) => {
1772
1768
  audioFile.setProperties({});
1773
1769
  audioFile.removePictures();
1774
- if (!audioFile.save()) {
1775
- throw new FileOperationError(
1776
- "save",
1777
- "Failed to save metadata changes. The file may be read-only or corrupted."
1778
- );
1779
- }
1780
- return audioFile.getFileBuffer();
1781
- } finally {
1782
- audioFile.dispose();
1783
- }
1770
+ });
1784
1771
  }
1785
1772
 
1786
1773
  // src/simple/picture-operations.ts
1787
- init_errors2();
1788
1774
  async function readPictures(file) {
1789
- const taglib = await getTagLib();
1790
- const audioFile = await taglib.open(file);
1791
- try {
1792
- if (!audioFile.isValid()) {
1793
- throw new InvalidFormatError(
1794
- "File may be corrupted or in an unsupported format"
1795
- );
1796
- }
1797
- return audioFile.getPictures();
1798
- } finally {
1799
- audioFile.dispose();
1800
- }
1775
+ return withAudioFile(file, (audioFile) => audioFile.getPictures());
1801
1776
  }
1802
1777
  async function applyPictures(file, pictures) {
1803
- const taglib = await getTagLib();
1804
- const audioFile = await taglib.open(file);
1805
- try {
1806
- if (!audioFile.isValid()) {
1807
- throw new InvalidFormatError(
1808
- "File may be corrupted or in an unsupported format"
1809
- );
1810
- }
1778
+ return withAudioFileSave(file, (audioFile) => {
1811
1779
  audioFile.setPictures(pictures);
1812
- if (!audioFile.save()) {
1813
- throw new FileOperationError(
1814
- "save",
1815
- "Failed to save picture changes. The file may be read-only or corrupted."
1816
- );
1817
- }
1818
- return audioFile.getFileBuffer();
1819
- } finally {
1820
- audioFile.dispose();
1821
- }
1780
+ });
1822
1781
  }
1823
1782
  async function addPicture(file, picture) {
1824
- const taglib = await getTagLib();
1825
- const audioFile = await taglib.open(file);
1826
- try {
1827
- if (!audioFile.isValid()) {
1828
- throw new InvalidFormatError(
1829
- "File may be corrupted or in an unsupported format"
1830
- );
1831
- }
1783
+ return withAudioFileSave(file, (audioFile) => {
1832
1784
  audioFile.addPicture(picture);
1833
- if (!audioFile.save()) {
1834
- throw new FileOperationError(
1835
- "save",
1836
- "Failed to save picture changes. The file may be read-only or corrupted."
1837
- );
1838
- }
1839
- return audioFile.getFileBuffer();
1840
- } finally {
1841
- audioFile.dispose();
1842
- }
1785
+ });
1843
1786
  }
1844
1787
  async function clearPictures(file) {
1845
1788
  return applyPictures(file, []);
@@ -1886,6 +1829,7 @@ async function readPictureMetadata(file) {
1886
1829
  }
1887
1830
 
1888
1831
  // src/simple/batch-operations.ts
1832
+ init_audio_formats();
1889
1833
  init_errors2();
1890
1834
  init_tag_mapping();
1891
1835
  async function executeBatch(files, options, processor) {
@@ -1901,7 +1845,7 @@ async function executeBatch(files, options, processor) {
1901
1845
  const chunk = files.slice(i, i + concurrency);
1902
1846
  const chunkPromises = chunk.map(async (file, idx) => {
1903
1847
  const index = i + idx;
1904
- const fileName = typeof file === "string" ? file : `file-${index}`;
1848
+ const fileName = typeof file === "string" ? file : file instanceof File ? file.name : isNamedAudioInput(file) ? file.name : `buffer-${index}`;
1905
1849
  try {
1906
1850
  const audioFile = await taglib.open(file);
1907
1851
  try {
@@ -1973,6 +1917,8 @@ async function readMetadata(file) {
1973
1917
  name = file;
1974
1918
  } else if (file instanceof File) {
1975
1919
  name = file.name;
1920
+ } else if (isNamedAudioInput(file)) {
1921
+ name = file.name;
1976
1922
  } else {
1977
1923
  name = `buffer (${file.byteLength} bytes)`;
1978
1924
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * List of audio formats supported by TagLib-Wasm
3
3
  */
4
- export declare const SUPPORTED_FORMATS: readonly ["MP3", "MP4", "M4A", "FLAC", "OGG", "WAV"];
4
+ export declare const SUPPORTED_FORMATS: readonly ["MP3", "MP4", "M4A", "FLAC", "OGG", "WAV", "MKA"];
5
5
  /**
6
6
  * Error codes for programmatic error handling
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/errors/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,iBAAiB,sDAOpB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,gBAAgB,GAChB,gBAAgB,GAChB,oBAAoB,GACpB,gBAAgB,GAChB,UAAU,GACV,QAAQ,GACR,aAAa,GACb,aAAa,GACb,aAAa,GACb,WAAW,CAAC;AAEhB;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;aAQlB,IAAI,EAAE,eAAe;aAErB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IATnD;;;;;OAKG;gBAEe,IAAI,EAAE,eAAe,EACrC,OAAO,EAAE,MAAM,EACC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAMpD"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/errors/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,iBAAiB,6DAQpB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,gBAAgB,GAChB,gBAAgB,GAChB,oBAAoB,GACpB,gBAAgB,GAChB,UAAU,GACV,QAAQ,GACR,aAAa,GACb,aAAa,GACb,aAAa,GACb,WAAW,CAAC;AAEhB;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;aAQlB,IAAI,EAAE,eAAe;aAErB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IATnD;;;;;OAKG;gBAEe,IAAI,EAAE,eAAe,EACrC,OAAO,EAAE,MAAM,EACC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAMpD"}
@@ -4,7 +4,8 @@ const SUPPORTED_FORMATS = [
4
4
  "M4A",
5
5
  "FLAC",
6
6
  "OGG",
7
- "WAV"
7
+ "WAV",
8
+ "MKA"
8
9
  ];
9
10
  class TagLibError extends Error {
10
11
  /**
@@ -18,7 +18,8 @@ import type { DuplicateGroup, FolderScanOptions, FolderUpdateResult } from "./ty
18
18
  * ];
19
19
  *
20
20
  * const result = await updateFolderTags(updates);
21
- * console.log(`Updated ${result.successful} files`);
21
+ * const updated = result.items.filter((i) => i.status === "ok").length;
22
+ * console.log(`Updated ${updated} files`);
22
23
  * ```
23
24
  */
24
25
  export declare function updateFolderTags(updates: Array<{
@@ -1 +1 @@
1
- {"version":3,"file":"folder-operations.d.ts","sourceRoot":"","sources":["../../../src/folder-api/folder-operations.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAO,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAKxD,OAAO,KAAK,EAEV,cAAc,EACd,iBAAiB,EAEjB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAGpB;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;CAAE,CAAC,EACzD,OAAO,GAAE;IACP,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;CACjB,GACL,OAAO,CAAC,kBAAkB,CAAC,CAgC7B;AAiBD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,cAAc,EAAE,CAAC,CAuB3B;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAoBf"}
1
+ {"version":3,"file":"folder-operations.d.ts","sourceRoot":"","sources":["../../../src/folder-api/folder-operations.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAO,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAKxD,OAAO,KAAK,EAEV,cAAc,EACd,iBAAiB,EAEjB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAGpB;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;CAAE,CAAC,EACzD,OAAO,GAAE;IACP,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;CACjB,GACL,OAAO,CAAC,kBAAkB,CAAC,CAgC7B;AAiBD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,cAAc,EAAE,CAAC,CAuB3B;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAoBf"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/folder-api/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/folder-api/types.ts"],"names":[],"mappings":"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"}