taglib-wasm 0.3.3 → 0.3.9
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/CONTRIBUTING.md +293 -0
- package/NOTICE +34 -0
- package/README.md +122 -511
- package/dist/index.d.ts +132 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +137 -0
- package/dist/index.ts +220 -0
- package/dist/src/constants.d.ts +201 -0
- package/dist/src/constants.d.ts.map +1 -0
- package/dist/src/constants.ts +227 -0
- package/dist/src/errors.d.ts +89 -0
- package/dist/src/errors.d.ts.map +1 -0
- package/dist/src/errors.ts +237 -0
- package/dist/src/file-utils.d.ts +205 -0
- package/dist/src/file-utils.d.ts.map +1 -0
- package/dist/src/file-utils.ts +467 -0
- package/dist/src/file.js +47 -0
- package/dist/src/global.d.ts +10 -0
- package/dist/src/mod.d.ts +9 -0
- package/dist/src/mod.d.ts.map +1 -0
- package/dist/src/mod.ts +19 -0
- package/dist/src/simple.d.ts +347 -0
- package/dist/src/simple.d.ts.map +1 -0
- package/dist/src/simple.ts +659 -0
- package/dist/src/taglib.d.ts +502 -0
- package/dist/src/taglib.d.ts.map +1 -0
- package/dist/src/taglib.ts +959 -0
- package/dist/src/types.d.ts +323 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.ts +538 -0
- package/dist/src/utils/file.d.ts +15 -0
- package/dist/src/utils/file.d.ts.map +1 -0
- package/dist/src/utils/file.ts +82 -0
- package/dist/src/utils/write.d.ts +15 -0
- package/dist/src/utils/write.d.ts.map +1 -0
- package/dist/src/utils/write.ts +61 -0
- package/dist/src/wasm-workers.d.ts +33 -0
- package/dist/src/wasm-workers.d.ts.map +1 -0
- package/dist/src/wasm-workers.ts +176 -0
- package/dist/src/wasm.d.ts +97 -0
- package/dist/src/wasm.d.ts.map +1 -0
- package/dist/src/wasm.ts +133 -0
- package/dist/src/web-utils.d.ts +180 -0
- package/dist/src/web-utils.d.ts.map +1 -0
- package/dist/src/web-utils.ts +347 -0
- package/dist/src/workers.d.ts +219 -0
- package/dist/src/workers.d.ts.map +1 -0
- package/dist/src/workers.ts +465 -0
- package/dist/src/write.js +33 -0
- package/dist/taglib-wrapper.d.ts +5 -0
- package/dist/taglib-wrapper.js +14 -0
- package/dist/taglib.wasm +0 -0
- package/index.ts +100 -7
- package/package.json +40 -16
- package/src/errors.ts +237 -0
- package/src/file-utils.ts +467 -0
- package/src/global.d.ts +10 -0
- package/src/simple.ts +399 -84
- package/src/taglib.ts +522 -28
- package/src/types.ts +1 -1
- package/src/utils/file.ts +82 -0
- package/src/utils/write.ts +61 -0
- package/src/wasm-workers.ts +13 -4
- package/src/wasm.ts +1 -1
- package/src/web-utils.ts +347 -0
- package/src/workers.ts +32 -13
- package/build/taglib.js +0 -2407
- package/build/taglib.wasm +0 -0
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview TypeScript type definitions for taglib-wasm
|
|
3
|
+
*
|
|
4
|
+
* This module contains all the type definitions used throughout
|
|
5
|
+
* the taglib-wasm library, including metadata structures,
|
|
6
|
+
* audio properties, and format-specific mappings.
|
|
7
|
+
*
|
|
8
|
+
* @module taglib-wasm/types
|
|
9
|
+
*/
|
|
10
|
+
export type { TagLibModule } from "./wasm.ts";
|
|
11
|
+
/**
|
|
12
|
+
* Supported file types detected by TagLib.
|
|
13
|
+
* "UNKNOWN" indicates the format could not be determined.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const file = await taglib.open(buffer);
|
|
18
|
+
* const format = file.getFormat();
|
|
19
|
+
* if (format === "MP3") {
|
|
20
|
+
* // Handle MP3-specific features
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export type FileType = "MP3" | "MP4" | "FLAC" | "OGG" | "OPUS" | "WAV" | "AIFF" | "UNKNOWN";
|
|
25
|
+
/**
|
|
26
|
+
* Audio format types supported by TagLib.
|
|
27
|
+
* More comprehensive than FileType, includes additional formats
|
|
28
|
+
* that TagLib can read but may have limited support.
|
|
29
|
+
*/
|
|
30
|
+
export type AudioFormat = "MP3" | "MP4" | "M4A" | "FLAC" | "OGG" | "OPUS" | "WAV" | "AIFF" | "WMA" | "APE" | "MPC" | "TTA" | "WV" | "MOD" | "IT" | "S3M" | "XM";
|
|
31
|
+
/**
|
|
32
|
+
* Audio properties containing technical information about the file.
|
|
33
|
+
* All properties are read-only and represent the actual audio stream data.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* const props = file.audioProperties();
|
|
38
|
+
* console.log(`Duration: ${props.length} seconds`);
|
|
39
|
+
* console.log(`Bitrate: ${props.bitrate} kbps`);
|
|
40
|
+
* console.log(`Sample rate: ${props.sampleRate} Hz`);
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export interface AudioProperties {
|
|
44
|
+
/** Length of the audio in seconds */
|
|
45
|
+
readonly length: number;
|
|
46
|
+
/** Bitrate in kb/s */
|
|
47
|
+
readonly bitrate: number;
|
|
48
|
+
/** Sample rate in Hz */
|
|
49
|
+
readonly sampleRate: number;
|
|
50
|
+
/** Number of audio channels */
|
|
51
|
+
readonly channels: number;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Basic metadata tags common to all audio formats.
|
|
55
|
+
* These are the standard fields supported by most audio files.
|
|
56
|
+
* All fields are optional as not all formats support all fields.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```typescript
|
|
60
|
+
* const tag: Tag = {
|
|
61
|
+
* title: "Song Title",
|
|
62
|
+
* artist: "Artist Name",
|
|
63
|
+
* album: "Album Name",
|
|
64
|
+
* year: 2025,
|
|
65
|
+
* track: 5
|
|
66
|
+
* };
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
export interface Tag {
|
|
70
|
+
/** Track title */
|
|
71
|
+
title?: string;
|
|
72
|
+
/** Artist name */
|
|
73
|
+
artist?: string;
|
|
74
|
+
/** Album name */
|
|
75
|
+
album?: string;
|
|
76
|
+
/** Comment */
|
|
77
|
+
comment?: string;
|
|
78
|
+
/** Genre */
|
|
79
|
+
genre?: string;
|
|
80
|
+
/** Year */
|
|
81
|
+
year?: number;
|
|
82
|
+
/** Track number */
|
|
83
|
+
track?: number;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Extended metadata with format-agnostic field names.
|
|
87
|
+
* Includes advanced fields like MusicBrainz IDs, ReplayGain values,
|
|
88
|
+
* and other specialized metadata. Field availability depends on
|
|
89
|
+
* the audio format and existing metadata.
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* ```typescript
|
|
93
|
+
* const extTag: ExtendedTag = {
|
|
94
|
+
* ...basicTag,
|
|
95
|
+
* albumArtist: "Various Artists",
|
|
96
|
+
* musicbrainzTrackId: "123e4567-e89b-12d3-a456-426614174000",
|
|
97
|
+
* replayGainTrackGain: "-6.54 dB",
|
|
98
|
+
* bpm: 120
|
|
99
|
+
* };
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
export interface ExtendedTag extends Tag {
|
|
103
|
+
/** AcoustID fingerprint (Chromaprint) */
|
|
104
|
+
acoustidFingerprint?: string;
|
|
105
|
+
/** AcoustID UUID */
|
|
106
|
+
acoustidId?: string;
|
|
107
|
+
/** MusicBrainz Track ID */
|
|
108
|
+
musicbrainzTrackId?: string;
|
|
109
|
+
/** MusicBrainz Release ID */
|
|
110
|
+
musicbrainzReleaseId?: string;
|
|
111
|
+
/** MusicBrainz Artist ID */
|
|
112
|
+
musicbrainzArtistId?: string;
|
|
113
|
+
/** MusicBrainz Release Group ID */
|
|
114
|
+
musicbrainzReleaseGroupId?: string;
|
|
115
|
+
/** Album artist (different from track artist) */
|
|
116
|
+
albumArtist?: string;
|
|
117
|
+
/** Composer */
|
|
118
|
+
composer?: string;
|
|
119
|
+
/** Disc number */
|
|
120
|
+
discNumber?: number;
|
|
121
|
+
/** Total tracks on album */
|
|
122
|
+
totalTracks?: number;
|
|
123
|
+
/** Total discs in release */
|
|
124
|
+
totalDiscs?: number;
|
|
125
|
+
/** BPM (beats per minute) */
|
|
126
|
+
bpm?: number;
|
|
127
|
+
/** Compilation flag */
|
|
128
|
+
compilation?: boolean;
|
|
129
|
+
/** Sort title for alphabetization */
|
|
130
|
+
titleSort?: string;
|
|
131
|
+
/** Sort artist for alphabetization */
|
|
132
|
+
artistSort?: string;
|
|
133
|
+
/** Sort album for alphabetization */
|
|
134
|
+
albumSort?: string;
|
|
135
|
+
/** ReplayGain track gain in dB (e.g., "-6.54 dB") */
|
|
136
|
+
replayGainTrackGain?: string;
|
|
137
|
+
/** ReplayGain track peak value (0.0-1.0) */
|
|
138
|
+
replayGainTrackPeak?: string;
|
|
139
|
+
/** ReplayGain album gain in dB */
|
|
140
|
+
replayGainAlbumGain?: string;
|
|
141
|
+
/** ReplayGain album peak value (0.0-1.0) */
|
|
142
|
+
replayGainAlbumPeak?: string;
|
|
143
|
+
/** Apple Sound Check normalization data (iTunNORM) */
|
|
144
|
+
appleSoundCheck?: string;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Format-specific field mapping for automatic tag mapping.
|
|
148
|
+
* Defines how a metadata field maps to different audio formats.
|
|
149
|
+
* Used internally for format-agnostic metadata operations.
|
|
150
|
+
*
|
|
151
|
+
* @example
|
|
152
|
+
* ```typescript
|
|
153
|
+
* const artistMapping: FieldMapping = {
|
|
154
|
+
* id3v2: { frame: "TPE1" },
|
|
155
|
+
* vorbis: "ARTIST",
|
|
156
|
+
* mp4: "©ART",
|
|
157
|
+
* wav: "IART"
|
|
158
|
+
* };
|
|
159
|
+
* ```
|
|
160
|
+
*/
|
|
161
|
+
export interface FieldMapping {
|
|
162
|
+
/** MP3 ID3v2 mapping */
|
|
163
|
+
id3v2?: {
|
|
164
|
+
frame: string;
|
|
165
|
+
description?: string;
|
|
166
|
+
};
|
|
167
|
+
/** FLAC/OGG Vorbis Comments mapping */
|
|
168
|
+
vorbis?: string;
|
|
169
|
+
/** MP4/M4A atom mapping */
|
|
170
|
+
mp4?: string;
|
|
171
|
+
/** WAV INFO chunk mapping */
|
|
172
|
+
wav?: string;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Complete metadata field mappings for all formats.
|
|
176
|
+
* This constant defines how each ExtendedTag field maps to
|
|
177
|
+
* format-specific metadata fields across different audio formats.
|
|
178
|
+
* Used for automatic tag mapping in format-agnostic operations.
|
|
179
|
+
*
|
|
180
|
+
* @example
|
|
181
|
+
* ```typescript
|
|
182
|
+
* // Get the ID3v2 frame for the artist field
|
|
183
|
+
* const artistFrame = METADATA_MAPPINGS.artist.id3v2?.frame; // "TPE1"
|
|
184
|
+
*
|
|
185
|
+
* // Get the Vorbis comment field for album artist
|
|
186
|
+
* const vorbisField = METADATA_MAPPINGS.albumArtist.vorbis; // "ALBUMARTIST"
|
|
187
|
+
* ```
|
|
188
|
+
*/
|
|
189
|
+
export declare const METADATA_MAPPINGS: Record<keyof ExtendedTag, FieldMapping>;
|
|
190
|
+
/**
|
|
191
|
+
* Extended metadata properties map.
|
|
192
|
+
* A flexible key-value structure where each key can have multiple values.
|
|
193
|
+
* Used for accessing all metadata in a file, including non-standard fields.
|
|
194
|
+
*
|
|
195
|
+
* @example
|
|
196
|
+
* ```typescript
|
|
197
|
+
* const properties: PropertyMap = {
|
|
198
|
+
* "ARTIST": ["Artist Name"],
|
|
199
|
+
* "ALBUMARTIST": ["Album Artist"],
|
|
200
|
+
* "MUSICBRAINZ_TRACKID": ["123e4567-e89b-12d3-a456-426614174000"]
|
|
201
|
+
* };
|
|
202
|
+
* ```
|
|
203
|
+
*/
|
|
204
|
+
export interface PropertyMap {
|
|
205
|
+
[key: string]: string[];
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Re-export TagName type from constants
|
|
209
|
+
*/
|
|
210
|
+
export type { TagName } from "./constants.ts";
|
|
211
|
+
/**
|
|
212
|
+
* Picture/artwork data embedded in audio files.
|
|
213
|
+
* Represents album art, artist photos, or other images.
|
|
214
|
+
*
|
|
215
|
+
* @example
|
|
216
|
+
* ```typescript
|
|
217
|
+
* const picture: Picture = {
|
|
218
|
+
* mimeType: "image/jpeg",
|
|
219
|
+
* data: new Uint8Array(imageBuffer),
|
|
220
|
+
* type: PictureType.FrontCover,
|
|
221
|
+
* description: "Album cover"
|
|
222
|
+
* };
|
|
223
|
+
* ```
|
|
224
|
+
*/
|
|
225
|
+
export interface Picture {
|
|
226
|
+
/** MIME type of the image */
|
|
227
|
+
mimeType: string;
|
|
228
|
+
/** Image data */
|
|
229
|
+
data: Uint8Array;
|
|
230
|
+
/** Picture type (front cover, back cover, etc.) */
|
|
231
|
+
type: PictureType;
|
|
232
|
+
/** Description */
|
|
233
|
+
description?: string;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Picture types as defined by ID3v2 APIC frame.
|
|
237
|
+
* Standard picture type codes used across different formats
|
|
238
|
+
* to categorize embedded images.
|
|
239
|
+
*
|
|
240
|
+
* @example
|
|
241
|
+
* ```typescript
|
|
242
|
+
* // Set front cover art
|
|
243
|
+
* const coverArt = {
|
|
244
|
+
* type: PictureType.FrontCover,
|
|
245
|
+
* mimeType: "image/jpeg",
|
|
246
|
+
* data: imageData
|
|
247
|
+
* };
|
|
248
|
+
* ```
|
|
249
|
+
*/
|
|
250
|
+
export declare enum PictureType {
|
|
251
|
+
Other = 0,
|
|
252
|
+
FileIcon = 1,
|
|
253
|
+
OtherFileIcon = 2,
|
|
254
|
+
FrontCover = 3,
|
|
255
|
+
BackCover = 4,
|
|
256
|
+
LeafletPage = 5,
|
|
257
|
+
Media = 6,
|
|
258
|
+
LeadArtist = 7,
|
|
259
|
+
Artist = 8,
|
|
260
|
+
Conductor = 9,
|
|
261
|
+
Band = 10,
|
|
262
|
+
Composer = 11,
|
|
263
|
+
Lyricist = 12,
|
|
264
|
+
RecordingLocation = 13,
|
|
265
|
+
DuringRecording = 14,
|
|
266
|
+
DuringPerformance = 15,
|
|
267
|
+
MovieScreenCapture = 16,
|
|
268
|
+
ColouredFish = 17,
|
|
269
|
+
Illustration = 18,
|
|
270
|
+
BandLogo = 19,
|
|
271
|
+
PublisherLogo = 20
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Bitrate control modes for audio encoding (MP4/M4A specific).
|
|
275
|
+
* Indicates how the audio was encoded in terms of bitrate management.
|
|
276
|
+
*
|
|
277
|
+
* - Constant: Fixed bitrate throughout the file
|
|
278
|
+
* - LongTermAverage: Average bitrate over time
|
|
279
|
+
* - VariableConstrained: Variable within limits
|
|
280
|
+
* - Variable: Fully variable bitrate
|
|
281
|
+
*/
|
|
282
|
+
export type BitrateControlMode = "Constant" | "LongTermAverage" | "VariableConstrained" | "Variable";
|
|
283
|
+
/**
|
|
284
|
+
* Map of bitrate control mode names to their numeric values.
|
|
285
|
+
* Used for converting between string representations and numeric codes
|
|
286
|
+
* stored in MP4/M4A files.
|
|
287
|
+
*/
|
|
288
|
+
export declare const BITRATE_CONTROL_MODE_VALUES: Record<BitrateControlMode, number>;
|
|
289
|
+
/**
|
|
290
|
+
* Map of numeric values to bitrate control mode names.
|
|
291
|
+
* Used for converting numeric codes from MP4/M4A files
|
|
292
|
+
* to human-readable string representations.
|
|
293
|
+
*/
|
|
294
|
+
export declare const BITRATE_CONTROL_MODE_NAMES: Record<number, BitrateControlMode>;
|
|
295
|
+
/**
|
|
296
|
+
* Configuration options for TagLib initialization.
|
|
297
|
+
* Allows customization of memory limits and debug settings.
|
|
298
|
+
*
|
|
299
|
+
* @example
|
|
300
|
+
* ```typescript
|
|
301
|
+
* const config: TagLibConfig = {
|
|
302
|
+
* memory: {
|
|
303
|
+
* initial: 16 * 1024 * 1024, // 16MB
|
|
304
|
+
* maximum: 64 * 1024 * 1024 // 64MB
|
|
305
|
+
* },
|
|
306
|
+
* debug: true
|
|
307
|
+
* };
|
|
308
|
+
*
|
|
309
|
+
* const taglib = await TagLibWorkers.initialize(wasmBinary, config);
|
|
310
|
+
* ```
|
|
311
|
+
*/
|
|
312
|
+
export interface TagLibConfig {
|
|
313
|
+
/** Memory allocation settings */
|
|
314
|
+
memory?: {
|
|
315
|
+
/** Initial memory size in bytes */
|
|
316
|
+
initial?: number;
|
|
317
|
+
/** Maximum memory size in bytes */
|
|
318
|
+
maximum?: number;
|
|
319
|
+
};
|
|
320
|
+
/** Enable debug output */
|
|
321
|
+
debug?: boolean;
|
|
322
|
+
}
|
|
323
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|