taglib-wasm 1.0.6 → 1.0.8
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.
- package/dist/index.browser.js +285 -41
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/simple.browser.js +265 -20
- package/dist/src/constants/additional-properties.d.ts +242 -0
- package/dist/src/constants/additional-properties.d.ts.map +1 -0
- package/dist/src/constants/additional-properties.js +204 -0
- package/dist/src/constants/general-extended-properties.d.ts +7 -3
- package/dist/src/constants/general-extended-properties.d.ts.map +1 -1
- package/dist/src/constants/general-extended-properties.js +5 -3
- package/dist/src/constants/properties.d.ts +239 -3
- package/dist/src/constants/properties.d.ts.map +1 -1
- package/dist/src/constants/properties.js +3 -1
- package/dist/src/constants/tags.d.ts +20 -21
- package/dist/src/constants/tags.d.ts.map +1 -1
- package/dist/src/constants/tags.js +20 -21
- package/dist/src/runtime/wasi-adapter/file-handle.d.ts.map +1 -1
- package/dist/src/runtime/wasi-adapter/file-handle.js +9 -1
- package/dist/src/simple/tag-operations.d.ts.map +1 -1
- package/dist/src/simple/tag-operations.js +8 -4
- package/dist/src/simple/with-audio-file.d.ts +3 -2
- package/dist/src/simple/with-audio-file.d.ts.map +1 -1
- package/dist/src/simple/with-audio-file.js +11 -4
- package/dist/src/taglib/audio-file-base.d.ts.map +1 -1
- package/dist/src/taglib/audio-file-base.js +8 -2
- package/dist/src/taglib/audio-file-interface.d.ts +3 -1
- package/dist/src/taglib/audio-file-interface.d.ts.map +1 -1
- package/dist/src/taglib/taglib-class.d.ts +1 -0
- package/dist/src/taglib/taglib-class.d.ts.map +1 -1
- package/dist/src/taglib/taglib-class.js +19 -8
- package/dist/src/types/audio-formats.d.ts +25 -0
- package/dist/src/types/audio-formats.d.ts.map +1 -1
- package/dist/src/types/config.d.ts +1 -1
- package/dist/src/types/metadata-mappings.d.ts.map +1 -1
- package/dist/src/types/metadata-mappings.js +20 -1
- package/dist/src/types/tags.d.ts +24 -0
- package/dist/src/types/tags.d.ts.map +1 -1
- package/dist/src/version.d.ts +2 -0
- package/dist/src/version.d.ts.map +1 -0
- package/dist/src/version.js +4 -0
- package/dist/src/wasm.d.ts +8 -0
- package/dist/src/wasm.d.ts.map +1 -1
- package/dist/taglib-web.wasm +0 -0
- package/dist/taglib-wrapper.js +1 -1
- package/package.json +1 -1
package/dist/index.browser.js
CHANGED
|
@@ -461,6 +461,215 @@ var init_write = __esm({
|
|
|
461
461
|
}
|
|
462
462
|
});
|
|
463
463
|
|
|
464
|
+
// src/constants/additional-properties.ts
|
|
465
|
+
var ADDITIONAL_PROPERTIES;
|
|
466
|
+
var init_additional_properties = __esm({
|
|
467
|
+
"src/constants/additional-properties.ts"() {
|
|
468
|
+
"use strict";
|
|
469
|
+
ADDITIONAL_PROPERTIES = {
|
|
470
|
+
albumArtistSort: {
|
|
471
|
+
key: "ALBUMARTISTSORT",
|
|
472
|
+
description: "Sort name for album artist (for alphabetization)",
|
|
473
|
+
type: "string",
|
|
474
|
+
supportedFormats: ["ID3v2", "MP4", "Vorbis"],
|
|
475
|
+
mappings: {
|
|
476
|
+
id3v2: { frame: "TSO2" },
|
|
477
|
+
vorbis: "ALBUMARTISTSORT",
|
|
478
|
+
mp4: "soaa"
|
|
479
|
+
}
|
|
480
|
+
},
|
|
481
|
+
composerSort: {
|
|
482
|
+
key: "COMPOSERSORT",
|
|
483
|
+
description: "Sort name for composer (for alphabetization)",
|
|
484
|
+
type: "string",
|
|
485
|
+
supportedFormats: ["ID3v2", "MP4", "Vorbis"],
|
|
486
|
+
mappings: {
|
|
487
|
+
id3v2: { frame: "TSOC" },
|
|
488
|
+
vorbis: "COMPOSERSORT",
|
|
489
|
+
mp4: "soco"
|
|
490
|
+
}
|
|
491
|
+
},
|
|
492
|
+
subtitle: {
|
|
493
|
+
key: "SUBTITLE",
|
|
494
|
+
description: "Subtitle or description refinement",
|
|
495
|
+
type: "string",
|
|
496
|
+
supportedFormats: ["ID3v2", "MP4", "Vorbis"],
|
|
497
|
+
mappings: {
|
|
498
|
+
id3v2: { frame: "TIT3" },
|
|
499
|
+
vorbis: "SUBTITLE",
|
|
500
|
+
mp4: "----:com.apple.iTunes:SUBTITLE"
|
|
501
|
+
}
|
|
502
|
+
},
|
|
503
|
+
label: {
|
|
504
|
+
key: "LABEL",
|
|
505
|
+
description: "Record label name",
|
|
506
|
+
type: "string",
|
|
507
|
+
supportedFormats: ["ID3v2", "MP4", "Vorbis", "WAV"],
|
|
508
|
+
mappings: {
|
|
509
|
+
id3v2: { frame: "TPUB" },
|
|
510
|
+
vorbis: "LABEL",
|
|
511
|
+
mp4: "----:com.apple.iTunes:LABEL",
|
|
512
|
+
wav: "IPUB"
|
|
513
|
+
}
|
|
514
|
+
},
|
|
515
|
+
producer: {
|
|
516
|
+
key: "PRODUCER",
|
|
517
|
+
description: "Producer of the recording",
|
|
518
|
+
type: "string",
|
|
519
|
+
supportedFormats: ["ID3v2", "MP4", "Vorbis"],
|
|
520
|
+
mappings: {
|
|
521
|
+
id3v2: { frame: "TXXX", description: "PRODUCER" },
|
|
522
|
+
vorbis: "PRODUCER",
|
|
523
|
+
mp4: "----:com.apple.iTunes:PRODUCER"
|
|
524
|
+
}
|
|
525
|
+
},
|
|
526
|
+
radioStationOwner: {
|
|
527
|
+
key: "RADIOSTATIONOWNER",
|
|
528
|
+
description: "Owner of the radio station",
|
|
529
|
+
type: "string",
|
|
530
|
+
supportedFormats: ["ID3v2"],
|
|
531
|
+
mappings: {
|
|
532
|
+
id3v2: { frame: "TRSO" }
|
|
533
|
+
}
|
|
534
|
+
},
|
|
535
|
+
asin: {
|
|
536
|
+
key: "ASIN",
|
|
537
|
+
description: "Amazon Standard Identification Number",
|
|
538
|
+
type: "string",
|
|
539
|
+
supportedFormats: ["ID3v2", "MP4", "Vorbis"],
|
|
540
|
+
mappings: {
|
|
541
|
+
id3v2: { frame: "TXXX", description: "ASIN" },
|
|
542
|
+
vorbis: "ASIN",
|
|
543
|
+
mp4: "----:com.apple.iTunes:ASIN"
|
|
544
|
+
}
|
|
545
|
+
},
|
|
546
|
+
musicbrainzReleaseArtistId: {
|
|
547
|
+
key: "MUSICBRAINZ_ALBUMARTISTID",
|
|
548
|
+
description: "MusicBrainz Release Artist ID (UUID)",
|
|
549
|
+
type: "string",
|
|
550
|
+
supportedFormats: ["ID3v2", "MP4", "Vorbis"],
|
|
551
|
+
mappings: {
|
|
552
|
+
id3v2: {
|
|
553
|
+
frame: "TXXX",
|
|
554
|
+
description: "MusicBrainz Album Artist Id"
|
|
555
|
+
},
|
|
556
|
+
vorbis: "MUSICBRAINZ_ALBUMARTISTID",
|
|
557
|
+
mp4: "----:com.apple.iTunes:MusicBrainz Album Artist Id"
|
|
558
|
+
}
|
|
559
|
+
},
|
|
560
|
+
musicbrainzWorkId: {
|
|
561
|
+
key: "MUSICBRAINZ_WORKID",
|
|
562
|
+
description: "MusicBrainz Work ID (UUID)",
|
|
563
|
+
type: "string",
|
|
564
|
+
supportedFormats: ["ID3v2", "MP4", "Vorbis"],
|
|
565
|
+
mappings: {
|
|
566
|
+
id3v2: { frame: "TXXX", description: "MusicBrainz Work Id" },
|
|
567
|
+
vorbis: "MUSICBRAINZ_WORKID",
|
|
568
|
+
mp4: "----:com.apple.iTunes:MusicBrainz Work Id"
|
|
569
|
+
}
|
|
570
|
+
},
|
|
571
|
+
musicbrainzReleaseTrackId: {
|
|
572
|
+
key: "MUSICBRAINZ_RELEASETRACKID",
|
|
573
|
+
description: "MusicBrainz Release Track ID (UUID)",
|
|
574
|
+
type: "string",
|
|
575
|
+
supportedFormats: ["ID3v2", "MP4", "Vorbis"],
|
|
576
|
+
mappings: {
|
|
577
|
+
id3v2: {
|
|
578
|
+
frame: "TXXX",
|
|
579
|
+
description: "MusicBrainz Release Track Id"
|
|
580
|
+
},
|
|
581
|
+
vorbis: "MUSICBRAINZ_RELEASETRACKID",
|
|
582
|
+
mp4: "----:com.apple.iTunes:MusicBrainz Release Track Id"
|
|
583
|
+
}
|
|
584
|
+
},
|
|
585
|
+
podcastId: {
|
|
586
|
+
key: "PODCASTID",
|
|
587
|
+
description: "Podcast episode identifier",
|
|
588
|
+
type: "string",
|
|
589
|
+
supportedFormats: ["ID3v2", "MP4", "Vorbis"],
|
|
590
|
+
mappings: {
|
|
591
|
+
id3v2: { frame: "TGID" },
|
|
592
|
+
vorbis: "PODCASTID",
|
|
593
|
+
mp4: "egid"
|
|
594
|
+
}
|
|
595
|
+
},
|
|
596
|
+
podcastUrl: {
|
|
597
|
+
key: "PODCASTURL",
|
|
598
|
+
description: "Podcast feed URL",
|
|
599
|
+
type: "string",
|
|
600
|
+
supportedFormats: ["ID3v2", "MP4", "Vorbis"],
|
|
601
|
+
mappings: {
|
|
602
|
+
id3v2: { frame: "WFED" },
|
|
603
|
+
vorbis: "PODCASTURL",
|
|
604
|
+
mp4: "purl"
|
|
605
|
+
}
|
|
606
|
+
},
|
|
607
|
+
originalArtist: {
|
|
608
|
+
key: "ORIGINALARTIST",
|
|
609
|
+
description: "Original artist of a cover or remix",
|
|
610
|
+
type: "string",
|
|
611
|
+
supportedFormats: ["ID3v2", "Vorbis"],
|
|
612
|
+
mappings: {
|
|
613
|
+
id3v2: { frame: "TOPE" },
|
|
614
|
+
vorbis: "ORIGINALARTIST"
|
|
615
|
+
}
|
|
616
|
+
},
|
|
617
|
+
originalAlbum: {
|
|
618
|
+
key: "ORIGINALALBUM",
|
|
619
|
+
description: "Original album of a cover or remix",
|
|
620
|
+
type: "string",
|
|
621
|
+
supportedFormats: ["ID3v2", "Vorbis"],
|
|
622
|
+
mappings: {
|
|
623
|
+
id3v2: { frame: "TOAL" },
|
|
624
|
+
vorbis: "ORIGINALALBUM"
|
|
625
|
+
}
|
|
626
|
+
},
|
|
627
|
+
originalDate: {
|
|
628
|
+
key: "ORIGINALDATE",
|
|
629
|
+
description: "Original release date",
|
|
630
|
+
type: "string",
|
|
631
|
+
supportedFormats: ["ID3v2", "MP4", "Vorbis"],
|
|
632
|
+
mappings: {
|
|
633
|
+
id3v2: { frame: "TDOR" },
|
|
634
|
+
vorbis: "ORIGINALDATE",
|
|
635
|
+
mp4: "----:com.apple.iTunes:ORIGINALDATE"
|
|
636
|
+
}
|
|
637
|
+
},
|
|
638
|
+
script: {
|
|
639
|
+
key: "SCRIPT",
|
|
640
|
+
description: "Writing script used for text (e.g., Latn, Jpan)",
|
|
641
|
+
type: "string",
|
|
642
|
+
supportedFormats: ["MP4", "Vorbis"],
|
|
643
|
+
mappings: {
|
|
644
|
+
vorbis: "SCRIPT",
|
|
645
|
+
mp4: "----:com.apple.iTunes:SCRIPT"
|
|
646
|
+
}
|
|
647
|
+
},
|
|
648
|
+
involvedPeople: {
|
|
649
|
+
key: "INVOLVEDPEOPLE",
|
|
650
|
+
description: "List of involved people and their roles",
|
|
651
|
+
type: "string",
|
|
652
|
+
supportedFormats: ["ID3v2"],
|
|
653
|
+
mappings: {
|
|
654
|
+
id3v2: { frame: "TIPL" }
|
|
655
|
+
}
|
|
656
|
+
},
|
|
657
|
+
encoding: {
|
|
658
|
+
key: "ENCODING",
|
|
659
|
+
description: "Encoding software or settings",
|
|
660
|
+
type: "string",
|
|
661
|
+
supportedFormats: ["ID3v2", "MP4", "Vorbis", "WAV"],
|
|
662
|
+
mappings: {
|
|
663
|
+
id3v2: { frame: "TSSE" },
|
|
664
|
+
vorbis: "ENCODING",
|
|
665
|
+
mp4: "\xA9too",
|
|
666
|
+
wav: "ISFT"
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
};
|
|
670
|
+
}
|
|
671
|
+
});
|
|
672
|
+
|
|
464
673
|
// src/constants/basic-properties.ts
|
|
465
674
|
var BASIC_PROPERTIES;
|
|
466
675
|
var init_basic_properties = __esm({
|
|
@@ -710,12 +919,14 @@ var init_general_extended_properties = __esm({
|
|
|
710
919
|
}
|
|
711
920
|
},
|
|
712
921
|
remixedBy: {
|
|
713
|
-
key: "
|
|
922
|
+
key: "REMIXER",
|
|
714
923
|
description: "Person who remixed the track",
|
|
715
924
|
type: "string",
|
|
716
|
-
supportedFormats: ["Vorbis"],
|
|
925
|
+
supportedFormats: ["ID3v2", "MP4", "Vorbis"],
|
|
717
926
|
mappings: {
|
|
718
|
-
|
|
927
|
+
id3v2: { frame: "TPE4" },
|
|
928
|
+
vorbis: "REMIXER",
|
|
929
|
+
mp4: "----:com.apple.iTunes:REMIXER"
|
|
719
930
|
}
|
|
720
931
|
},
|
|
721
932
|
language: {
|
|
@@ -965,13 +1176,15 @@ var PROPERTIES, _toTagLib, _fromTagLib;
|
|
|
965
1176
|
var init_properties = __esm({
|
|
966
1177
|
"src/constants/properties.ts"() {
|
|
967
1178
|
"use strict";
|
|
1179
|
+
init_additional_properties();
|
|
968
1180
|
init_basic_properties();
|
|
969
1181
|
init_general_extended_properties();
|
|
970
1182
|
init_specialized_properties();
|
|
971
1183
|
PROPERTIES = {
|
|
972
1184
|
...BASIC_PROPERTIES,
|
|
973
1185
|
...GENERAL_EXTENDED_PROPERTIES,
|
|
974
|
-
...SPECIALIZED_PROPERTIES
|
|
1186
|
+
...SPECIALIZED_PROPERTIES,
|
|
1187
|
+
...ADDITIONAL_PROPERTIES
|
|
975
1188
|
};
|
|
976
1189
|
_toTagLib = {};
|
|
977
1190
|
_fromTagLib = {};
|
|
@@ -1087,6 +1300,9 @@ var init_audio_file_base = __esm({
|
|
|
1087
1300
|
if (!propsWrapper) {
|
|
1088
1301
|
return void 0;
|
|
1089
1302
|
}
|
|
1303
|
+
const containerFormat = propsWrapper.containerFormat() || "unknown";
|
|
1304
|
+
const mpegVersion = propsWrapper.mpegVersion();
|
|
1305
|
+
const formatVersion = propsWrapper.formatVersion();
|
|
1090
1306
|
this.cachedAudioProperties = {
|
|
1091
1307
|
duration: propsWrapper.lengthInSeconds(),
|
|
1092
1308
|
bitrate: propsWrapper.bitrate(),
|
|
@@ -1094,8 +1310,11 @@ var init_audio_file_base = __esm({
|
|
|
1094
1310
|
channels: propsWrapper.channels(),
|
|
1095
1311
|
bitsPerSample: propsWrapper.bitsPerSample(),
|
|
1096
1312
|
codec: propsWrapper.codec() || "unknown",
|
|
1097
|
-
containerFormat
|
|
1098
|
-
isLossless: propsWrapper.isLossless()
|
|
1313
|
+
containerFormat,
|
|
1314
|
+
isLossless: propsWrapper.isLossless(),
|
|
1315
|
+
...mpegVersion > 0 ? { mpegVersion, mpegLayer: propsWrapper.mpegLayer() } : {},
|
|
1316
|
+
...containerFormat === "MP4" || containerFormat === "ASF" ? { isEncrypted: propsWrapper.isEncrypted() } : {},
|
|
1317
|
+
...formatVersion > 0 ? { formatVersion } : {}
|
|
1099
1318
|
};
|
|
1100
1319
|
}
|
|
1101
1320
|
return this.cachedAudioProperties;
|
|
@@ -1442,6 +1661,15 @@ var init_tag_mapping = __esm({
|
|
|
1442
1661
|
}
|
|
1443
1662
|
});
|
|
1444
1663
|
|
|
1664
|
+
// src/version.ts
|
|
1665
|
+
var VERSION;
|
|
1666
|
+
var init_version = __esm({
|
|
1667
|
+
"src/version.ts"() {
|
|
1668
|
+
"use strict";
|
|
1669
|
+
VERSION = "1.0.8";
|
|
1670
|
+
}
|
|
1671
|
+
});
|
|
1672
|
+
|
|
1445
1673
|
// src/runtime/module-loader-browser.ts
|
|
1446
1674
|
var module_loader_browser_exports = {};
|
|
1447
1675
|
__export(module_loader_browser_exports, {
|
|
@@ -1500,6 +1728,7 @@ var init_taglib_class = __esm({
|
|
|
1500
1728
|
init_audio_file_impl();
|
|
1501
1729
|
init_load_audio_data();
|
|
1502
1730
|
init_tag_mapping();
|
|
1731
|
+
init_version();
|
|
1503
1732
|
TagLib = class _TagLib {
|
|
1504
1733
|
constructor(module) {
|
|
1505
1734
|
__publicField(this, "module");
|
|
@@ -1533,7 +1762,7 @@ var init_taglib_class = __esm({
|
|
|
1533
1762
|
const actualInput = isNamedAudioInput(input) ? input.data : input;
|
|
1534
1763
|
const sourcePath = typeof actualInput === "string" ? actualInput : void 0;
|
|
1535
1764
|
const opts = {
|
|
1536
|
-
partial:
|
|
1765
|
+
partial: true,
|
|
1537
1766
|
maxHeaderSize: 1024 * 1024,
|
|
1538
1767
|
maxFooterSize: 128 * 1024,
|
|
1539
1768
|
...options
|
|
@@ -1542,18 +1771,19 @@ var init_taglib_class = __esm({
|
|
|
1542
1771
|
actualInput,
|
|
1543
1772
|
opts
|
|
1544
1773
|
);
|
|
1545
|
-
const
|
|
1546
|
-
audioData.
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1774
|
+
const uint8Array = actualInput instanceof Uint8Array && audioData.buffer === actualInput.buffer ? new Uint8Array(
|
|
1775
|
+
audioData.buffer.slice(
|
|
1776
|
+
audioData.byteOffset,
|
|
1777
|
+
audioData.byteOffset + audioData.byteLength
|
|
1778
|
+
)
|
|
1779
|
+
) : audioData;
|
|
1550
1780
|
const fileHandle = this.module.createFileHandle();
|
|
1551
1781
|
try {
|
|
1552
1782
|
const success = fileHandle.loadFromBuffer(uint8Array);
|
|
1553
1783
|
if (!success) {
|
|
1554
1784
|
throw new InvalidFormatError(
|
|
1555
1785
|
"Failed to load audio file. File may be corrupted or in an unsupported format",
|
|
1556
|
-
|
|
1786
|
+
uint8Array.byteLength
|
|
1557
1787
|
);
|
|
1558
1788
|
}
|
|
1559
1789
|
return new AudioFileImpl(
|
|
@@ -1620,7 +1850,16 @@ var init_taglib_class = __esm({
|
|
|
1620
1850
|
}
|
|
1621
1851
|
/** Returns the taglib-wasm version with embedded TagLib version. */
|
|
1622
1852
|
version() {
|
|
1623
|
-
return
|
|
1853
|
+
return `${VERSION} (TagLib ${this.taglibVersion()})`;
|
|
1854
|
+
}
|
|
1855
|
+
taglibVersion() {
|
|
1856
|
+
if (this.module.getVersion) {
|
|
1857
|
+
return this.module.getVersion();
|
|
1858
|
+
}
|
|
1859
|
+
if (this.module.version) {
|
|
1860
|
+
return this.module.version();
|
|
1861
|
+
}
|
|
1862
|
+
return "unknown";
|
|
1624
1863
|
}
|
|
1625
1864
|
};
|
|
1626
1865
|
}
|
|
@@ -1689,21 +1928,20 @@ async function getTagLib() {
|
|
|
1689
1928
|
|
|
1690
1929
|
// src/simple/tag-operations.ts
|
|
1691
1930
|
init_errors2();
|
|
1692
|
-
init_write();
|
|
1693
1931
|
init_tag_mapping();
|
|
1694
1932
|
|
|
1695
1933
|
// src/simple/with-audio-file.ts
|
|
1696
1934
|
init_errors2();
|
|
1697
|
-
async function withAudioFile(file, fn) {
|
|
1935
|
+
async function withAudioFile(file, fn, options) {
|
|
1698
1936
|
const taglib = await getTagLib();
|
|
1699
|
-
const audioFile = await taglib.open(file);
|
|
1937
|
+
const audioFile = await taglib.open(file, options);
|
|
1700
1938
|
try {
|
|
1701
1939
|
if (!audioFile.isValid()) {
|
|
1702
1940
|
throw new InvalidFormatError(
|
|
1703
1941
|
"File may be corrupted or in an unsupported format"
|
|
1704
1942
|
);
|
|
1705
1943
|
}
|
|
1706
|
-
return fn(audioFile);
|
|
1944
|
+
return await fn(audioFile);
|
|
1707
1945
|
} finally {
|
|
1708
1946
|
audioFile.dispose();
|
|
1709
1947
|
}
|
|
@@ -1718,6 +1956,12 @@ async function withAudioFileSave(file, fn) {
|
|
|
1718
1956
|
);
|
|
1719
1957
|
}
|
|
1720
1958
|
return audioFile.getFileBuffer();
|
|
1959
|
+
}, { partial: false });
|
|
1960
|
+
}
|
|
1961
|
+
async function withAudioFileSaveToFile(file, fn) {
|
|
1962
|
+
return withAudioFile(file, async (audioFile) => {
|
|
1963
|
+
fn(audioFile);
|
|
1964
|
+
await audioFile.saveToFile(file);
|
|
1721
1965
|
});
|
|
1722
1966
|
}
|
|
1723
1967
|
|
|
@@ -1740,8 +1984,9 @@ async function applyTagsToFile(file, tags) {
|
|
|
1740
1984
|
"applyTagsToFile requires a file path string to save changes"
|
|
1741
1985
|
);
|
|
1742
1986
|
}
|
|
1743
|
-
|
|
1744
|
-
|
|
1987
|
+
await withAudioFileSaveToFile(file, (audioFile) => {
|
|
1988
|
+
mergeTagUpdates(audioFile, tags);
|
|
1989
|
+
});
|
|
1745
1990
|
}
|
|
1746
1991
|
async function readProperties(file) {
|
|
1747
1992
|
return withAudioFile(file, (audioFile) => {
|
|
@@ -1996,36 +2241,36 @@ var Tags = {
|
|
|
1996
2241
|
Publisher: "publisher",
|
|
1997
2242
|
Mood: "mood",
|
|
1998
2243
|
Media: "media",
|
|
1999
|
-
RadioStationOwner: "
|
|
2000
|
-
Producer: "
|
|
2001
|
-
Subtitle: "
|
|
2002
|
-
Label: "
|
|
2244
|
+
RadioStationOwner: "radioStationOwner",
|
|
2245
|
+
Producer: "producer",
|
|
2246
|
+
Subtitle: "subtitle",
|
|
2247
|
+
Label: "label",
|
|
2003
2248
|
// Sorting Properties
|
|
2004
2249
|
TitleSort: "titleSort",
|
|
2005
2250
|
ArtistSort: "artistSort",
|
|
2006
|
-
AlbumArtistSort: "
|
|
2251
|
+
AlbumArtistSort: "albumArtistSort",
|
|
2007
2252
|
AlbumSort: "albumSort",
|
|
2008
|
-
ComposerSort: "
|
|
2253
|
+
ComposerSort: "composerSort",
|
|
2009
2254
|
// Identifiers
|
|
2010
2255
|
Isrc: "isrc",
|
|
2011
|
-
Asin: "
|
|
2256
|
+
Asin: "asin",
|
|
2012
2257
|
CatalogNumber: "catalogNumber",
|
|
2013
2258
|
Barcode: "barcode",
|
|
2014
2259
|
// MusicBrainz Identifiers
|
|
2015
2260
|
MusicBrainzArtistId: "musicbrainzArtistId",
|
|
2016
|
-
MusicBrainzReleaseArtistId: "
|
|
2017
|
-
MusicBrainzWorkId: "
|
|
2261
|
+
MusicBrainzReleaseArtistId: "musicbrainzReleaseArtistId",
|
|
2262
|
+
MusicBrainzWorkId: "musicbrainzWorkId",
|
|
2018
2263
|
MusicBrainzReleaseId: "musicbrainzReleaseId",
|
|
2019
2264
|
MusicBrainzRecordingId: "musicbrainzTrackId",
|
|
2020
2265
|
MusicBrainzTrackId: "musicbrainzTrackId",
|
|
2021
2266
|
MusicBrainzReleaseGroupId: "musicbrainzReleaseGroupId",
|
|
2022
|
-
MusicBrainzReleaseTrackId: "
|
|
2267
|
+
MusicBrainzReleaseTrackId: "musicbrainzReleaseTrackId",
|
|
2023
2268
|
// AcoustID
|
|
2024
2269
|
AcoustidFingerprint: "acoustidFingerprint",
|
|
2025
2270
|
AcoustidId: "acoustidId",
|
|
2026
2271
|
// Podcast Properties
|
|
2027
|
-
PodcastId: "
|
|
2028
|
-
PodcastUrl: "
|
|
2272
|
+
PodcastId: "podcastId",
|
|
2273
|
+
PodcastUrl: "podcastUrl",
|
|
2029
2274
|
// Grouping and Work
|
|
2030
2275
|
Grouping: "grouping",
|
|
2031
2276
|
Work: "work",
|
|
@@ -2035,15 +2280,14 @@ var Tags = {
|
|
|
2035
2280
|
AlbumPeak: "replayGainAlbumPeak",
|
|
2036
2281
|
TrackGain: "replayGainTrackGain",
|
|
2037
2282
|
TrackPeak: "replayGainTrackPeak",
|
|
2038
|
-
//
|
|
2039
|
-
OriginalArtist: "
|
|
2040
|
-
OriginalAlbum: "
|
|
2041
|
-
OriginalDate: "
|
|
2042
|
-
|
|
2043
|
-
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
SourceMedia: "SOURCEMEDIA"
|
|
2283
|
+
// Original release
|
|
2284
|
+
OriginalArtist: "originalArtist",
|
|
2285
|
+
OriginalAlbum: "originalAlbum",
|
|
2286
|
+
OriginalDate: "originalDate",
|
|
2287
|
+
// Miscellaneous
|
|
2288
|
+
Script: "script",
|
|
2289
|
+
InvolvedPeople: "involvedPeople",
|
|
2290
|
+
Encoding: "encoding"
|
|
2047
2291
|
};
|
|
2048
2292
|
function isValidTagName(name) {
|
|
2049
2293
|
return Object.values(Tags).includes(name);
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @fileoverview Main module exports for TagLib-Wasm
|
|
3
3
|
*
|
|
4
|
-
* TagLib v2.
|
|
4
|
+
* TagLib v2.2 compiled to WebAssembly with TypeScript bindings
|
|
5
5
|
* for universal audio metadata handling across all JavaScript runtimes.
|
|
6
6
|
*
|
|
7
7
|
* @module TagLib-Wasm
|
|
@@ -49,6 +49,7 @@ export type { AudioCodec, AudioFileInput, AudioProperties, BitrateControlMode, C
|
|
|
49
49
|
export { BITRATE_CONTROL_MODE_NAMES, BITRATE_CONTROL_MODE_VALUES, PICTURE_TYPE_NAMES, PICTURE_TYPE_VALUES, } from "./src/types.js";
|
|
50
50
|
export type { PropertyKey, PropertyValue } from "./src/constants.js";
|
|
51
51
|
export type { FormatPropertyKey, TagFormat, } from "./src/types/format-property-keys.js";
|
|
52
|
+
export type { TypedAudioProperties } from "./src/types/audio-formats.js";
|
|
52
53
|
export { COMPLEX_PROPERTIES, COMPLEX_PROPERTY_KEY, } from "./src/constants/complex-properties.js";
|
|
53
54
|
export type { ComplexPropertyKey, ComplexPropertyKeyMap, ComplexPropertyValueMap, Rating, UnsyncedLyrics, VariantMap, } from "./src/constants/complex-properties.js";
|
|
54
55
|
export { RatingUtils } from "./src/utils/rating.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAGH,YAAY,EACV,SAAS,EACT,cAAc,GACf,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACtE,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAGjE,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,aAAa,EACb,wBAAwB,EACxB,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGvD,OAAO,EACL,wBAAwB,EACxB,cAAc,EACd,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,UAAU,EACV,aAAa,EACb,aAAa,EACb,SAAS,EACT,eAAe,EACf,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,aAAa,EACb,SAAS,EACT,KAAK,YAAY,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,QAAQ,EACR,aAAa,EACb,oBAAoB,EACpB,aAAa,GACd,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,UAAU,EACV,IAAI,GACL,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAG1E,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,oBAAoB,EACpB,cAAc,EACd,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,UAAU,EACV,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EACV,UAAU,EACV,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,WAAW,EACX,OAAO,EACP,WAAW,EACX,WAAW,EACX,GAAG,EACH,QAAQ,EACR,OAAO,GACR,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACrE,YAAY,EACV,iBAAiB,EACjB,SAAS,GACV,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|