taglib-wasm 0.3.13 → 0.3.15

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 (82) hide show
  1. package/README.md +22 -35
  2. package/dist/index.d.ts +10 -10
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +117 -134
  5. package/dist/index.js.map +1 -0
  6. package/dist/src/constants.js +211 -0
  7. package/dist/src/constants.js.map +1 -0
  8. package/dist/src/errors.js +180 -0
  9. package/dist/src/errors.js.map +1 -0
  10. package/dist/src/file-utils.d.ts +2 -2
  11. package/dist/src/file-utils.d.ts.map +1 -1
  12. package/dist/src/file-utils.js +394 -0
  13. package/dist/src/file-utils.js.map +1 -0
  14. package/dist/src/mod.d.ts +4 -4
  15. package/dist/src/mod.d.ts.map +1 -1
  16. package/dist/src/mod.js +7 -0
  17. package/dist/src/mod.js.map +1 -0
  18. package/dist/src/simple.d.ts +4 -4
  19. package/dist/src/simple.d.ts.map +1 -1
  20. package/dist/src/{simple.ts → simple.js} +193 -311
  21. package/dist/src/simple.js.map +1 -0
  22. package/dist/src/taglib.d.ts +3 -3
  23. package/dist/src/taglib.d.ts.map +1 -1
  24. package/dist/src/taglib.js +516 -0
  25. package/dist/src/taglib.js.map +1 -0
  26. package/dist/src/types.d.ts +2 -2
  27. package/dist/src/types.d.ts.map +1 -1
  28. package/dist/src/types.js +239 -0
  29. package/dist/src/types.js.map +1 -0
  30. package/dist/src/utils/file.js +65 -0
  31. package/dist/src/utils/file.js.map +1 -0
  32. package/dist/src/utils/write.js +49 -0
  33. package/dist/src/utils/write.js.map +1 -0
  34. package/dist/src/wasm-workers.d.ts +1 -1
  35. package/dist/src/wasm-workers.d.ts.map +1 -1
  36. package/dist/src/wasm-workers.js +148 -0
  37. package/dist/src/wasm-workers.js.map +1 -0
  38. package/dist/src/wasm.js +6 -0
  39. package/dist/src/wasm.js.map +1 -0
  40. package/dist/src/web-utils.d.ts +2 -2
  41. package/dist/src/web-utils.d.ts.map +1 -1
  42. package/{src/web-utils.ts → dist/src/web-utils.js} +102 -184
  43. package/dist/src/web-utils.js.map +1 -0
  44. package/dist/src/workers.d.ts +2 -2
  45. package/dist/src/workers.d.ts.map +1 -1
  46. package/dist/src/workers.js +389 -0
  47. package/dist/src/workers.js.map +1 -0
  48. package/dist/taglib-wrapper.js +8 -2528
  49. package/package.json +7 -10
  50. package/dist/index.ts +0 -221
  51. package/dist/src/constants.ts +0 -227
  52. package/dist/src/errors.ts +0 -254
  53. package/dist/src/file-utils.ts +0 -483
  54. package/dist/src/file.js +0 -52
  55. package/dist/src/global.d.ts +0 -12
  56. package/dist/src/mod.ts +0 -19
  57. package/dist/src/taglib.ts +0 -961
  58. package/dist/src/types.ts +0 -538
  59. package/dist/src/utils/file.ts +0 -86
  60. package/dist/src/utils/write.ts +0 -66
  61. package/dist/src/wasm-workers.ts +0 -176
  62. package/dist/src/wasm.ts +0 -133
  63. package/dist/src/web-utils.ts +0 -347
  64. package/dist/src/workers.ts +0 -461
  65. package/dist/src/write.js +0 -33
  66. package/index.ts +0 -221
  67. package/lib/taglib/COPYING.LGPL +0 -502
  68. package/lib/taglib/COPYING.MPL +0 -470
  69. package/lib/taglib/README.md +0 -24
  70. package/src/constants.ts +0 -227
  71. package/src/errors.ts +0 -254
  72. package/src/file-utils.ts +0 -483
  73. package/src/global.d.ts +0 -12
  74. package/src/mod.ts +0 -19
  75. package/src/simple.ts +0 -667
  76. package/src/taglib.ts +0 -961
  77. package/src/types.ts +0 -538
  78. package/src/utils/file.ts +0 -86
  79. package/src/utils/write.ts +0 -66
  80. package/src/wasm-workers.ts +0 -176
  81. package/src/wasm.ts +0 -133
  82. package/src/workers.ts +0 -461
@@ -0,0 +1,239 @@
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
+ /**
11
+ * Complete metadata field mappings for all formats.
12
+ * This constant defines how each ExtendedTag field maps to
13
+ * format-specific metadata fields across different audio formats.
14
+ * Used for automatic tag mapping in format-agnostic operations.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * // Get the ID3v2 frame for the artist field
19
+ * const artistFrame = METADATA_MAPPINGS.artist.id3v2?.frame; // "TPE1"
20
+ *
21
+ * // Get the Vorbis comment field for album artist
22
+ * const vorbisField = METADATA_MAPPINGS.albumArtist.vorbis; // "ALBUMARTIST"
23
+ * ```
24
+ */
25
+ export const METADATA_MAPPINGS = {
26
+ // Basic fields (already handled by TagLib's standard API)
27
+ title: {
28
+ id3v2: { frame: "TIT2" },
29
+ vorbis: "TITLE",
30
+ mp4: "©nam",
31
+ wav: "INAM",
32
+ },
33
+ artist: {
34
+ id3v2: { frame: "TPE1" },
35
+ vorbis: "ARTIST",
36
+ mp4: "©ART",
37
+ wav: "IART",
38
+ },
39
+ album: {
40
+ id3v2: { frame: "TALB" },
41
+ vorbis: "ALBUM",
42
+ mp4: "©alb",
43
+ wav: "IPRD",
44
+ },
45
+ comment: {
46
+ id3v2: { frame: "COMM" },
47
+ vorbis: "COMMENT",
48
+ mp4: "©cmt",
49
+ wav: "ICMT",
50
+ },
51
+ genre: {
52
+ id3v2: { frame: "TCON" },
53
+ vorbis: "GENRE",
54
+ mp4: "©gen",
55
+ wav: "IGNR",
56
+ },
57
+ year: {
58
+ id3v2: { frame: "TDRC" },
59
+ vorbis: "DATE",
60
+ mp4: "©day",
61
+ wav: "ICRD",
62
+ },
63
+ track: {
64
+ id3v2: { frame: "TRCK" },
65
+ vorbis: "TRACKNUMBER",
66
+ mp4: "trkn",
67
+ wav: "ITRK",
68
+ },
69
+ // Advanced fields requiring format-specific handling
70
+ acoustidFingerprint: {
71
+ id3v2: { frame: "TXXX", description: "Acoustid Fingerprint" },
72
+ vorbis: "ACOUSTID_FINGERPRINT",
73
+ mp4: "----:com.apple.iTunes:Acoustid Fingerprint",
74
+ },
75
+ acoustidId: {
76
+ id3v2: { frame: "TXXX", description: "Acoustid Id" },
77
+ vorbis: "ACOUSTID_ID",
78
+ mp4: "----:com.apple.iTunes:Acoustid Id",
79
+ },
80
+ musicbrainzTrackId: {
81
+ id3v2: { frame: "UFID", description: "http://musicbrainz.org" },
82
+ vorbis: "MUSICBRAINZ_TRACKID",
83
+ mp4: "----:com.apple.iTunes:MusicBrainz Track Id",
84
+ },
85
+ musicbrainzReleaseId: {
86
+ id3v2: { frame: "TXXX", description: "MusicBrainz Album Id" },
87
+ vorbis: "MUSICBRAINZ_ALBUMID",
88
+ mp4: "----:com.apple.iTunes:MusicBrainz Album Id",
89
+ },
90
+ musicbrainzArtistId: {
91
+ id3v2: { frame: "TXXX", description: "MusicBrainz Artist Id" },
92
+ vorbis: "MUSICBRAINZ_ARTISTID",
93
+ mp4: "----:com.apple.iTunes:MusicBrainz Artist Id",
94
+ },
95
+ musicbrainzReleaseGroupId: {
96
+ id3v2: { frame: "TXXX", description: "MusicBrainz Release Group Id" },
97
+ vorbis: "MUSICBRAINZ_RELEASEGROUPID",
98
+ mp4: "----:com.apple.iTunes:MusicBrainz Release Group Id",
99
+ },
100
+ albumArtist: {
101
+ id3v2: { frame: "TPE2" },
102
+ vorbis: "ALBUMARTIST",
103
+ mp4: "aART",
104
+ },
105
+ composer: {
106
+ id3v2: { frame: "TCOM" },
107
+ vorbis: "COMPOSER",
108
+ mp4: "©wrt",
109
+ },
110
+ discNumber: {
111
+ id3v2: { frame: "TPOS" },
112
+ vorbis: "DISCNUMBER",
113
+ mp4: "disk",
114
+ },
115
+ totalTracks: {
116
+ id3v2: { frame: "TRCK" }, // Part of TRCK frame
117
+ vorbis: "TRACKTOTAL",
118
+ mp4: "trkn", // Part of trkn atom
119
+ },
120
+ totalDiscs: {
121
+ id3v2: { frame: "TPOS" }, // Part of TPOS frame
122
+ vorbis: "DISCTOTAL",
123
+ mp4: "disk", // Part of disk atom
124
+ },
125
+ bpm: {
126
+ id3v2: { frame: "TBPM" },
127
+ vorbis: "BPM",
128
+ mp4: "tmpo",
129
+ },
130
+ compilation: {
131
+ id3v2: { frame: "TCMP" },
132
+ vorbis: "COMPILATION",
133
+ mp4: "cpil",
134
+ },
135
+ titleSort: {
136
+ id3v2: { frame: "TSOT" },
137
+ vorbis: "TITLESORT",
138
+ mp4: "sonm",
139
+ },
140
+ artistSort: {
141
+ id3v2: { frame: "TSOP" },
142
+ vorbis: "ARTISTSORT",
143
+ mp4: "soar",
144
+ },
145
+ albumSort: {
146
+ id3v2: { frame: "TSOA" },
147
+ vorbis: "ALBUMSORT",
148
+ mp4: "soal",
149
+ },
150
+ // ReplayGain mappings
151
+ replayGainTrackGain: {
152
+ id3v2: { frame: "TXXX", description: "ReplayGain_Track_Gain" },
153
+ vorbis: "REPLAYGAIN_TRACK_GAIN",
154
+ mp4: "----:com.apple.iTunes:replaygain_track_gain",
155
+ },
156
+ replayGainTrackPeak: {
157
+ id3v2: { frame: "TXXX", description: "ReplayGain_Track_Peak" },
158
+ vorbis: "REPLAYGAIN_TRACK_PEAK",
159
+ mp4: "----:com.apple.iTunes:replaygain_track_peak",
160
+ },
161
+ replayGainAlbumGain: {
162
+ id3v2: { frame: "TXXX", description: "ReplayGain_Album_Gain" },
163
+ vorbis: "REPLAYGAIN_ALBUM_GAIN",
164
+ mp4: "----:com.apple.iTunes:replaygain_album_gain",
165
+ },
166
+ replayGainAlbumPeak: {
167
+ id3v2: { frame: "TXXX", description: "ReplayGain_Album_Peak" },
168
+ vorbis: "REPLAYGAIN_ALBUM_PEAK",
169
+ mp4: "----:com.apple.iTunes:replaygain_album_peak",
170
+ },
171
+ // Apple Sound Check mapping
172
+ appleSoundCheck: {
173
+ id3v2: { frame: "TXXX", description: "iTunNORM" },
174
+ vorbis: "ITUNNORM", // Some tools store it in Vorbis comments too
175
+ mp4: "----:com.apple.iTunes:iTunNORM",
176
+ },
177
+ };
178
+ /**
179
+ * Picture types as defined by ID3v2 APIC frame.
180
+ * Standard picture type codes used across different formats
181
+ * to categorize embedded images.
182
+ *
183
+ * @example
184
+ * ```typescript
185
+ * // Set front cover art
186
+ * const coverArt = {
187
+ * type: PictureType.FrontCover,
188
+ * mimeType: "image/jpeg",
189
+ * data: imageData
190
+ * };
191
+ * ```
192
+ */
193
+ export var PictureType;
194
+ (function (PictureType) {
195
+ PictureType[PictureType["Other"] = 0] = "Other";
196
+ PictureType[PictureType["FileIcon"] = 1] = "FileIcon";
197
+ PictureType[PictureType["OtherFileIcon"] = 2] = "OtherFileIcon";
198
+ PictureType[PictureType["FrontCover"] = 3] = "FrontCover";
199
+ PictureType[PictureType["BackCover"] = 4] = "BackCover";
200
+ PictureType[PictureType["LeafletPage"] = 5] = "LeafletPage";
201
+ PictureType[PictureType["Media"] = 6] = "Media";
202
+ PictureType[PictureType["LeadArtist"] = 7] = "LeadArtist";
203
+ PictureType[PictureType["Artist"] = 8] = "Artist";
204
+ PictureType[PictureType["Conductor"] = 9] = "Conductor";
205
+ PictureType[PictureType["Band"] = 10] = "Band";
206
+ PictureType[PictureType["Composer"] = 11] = "Composer";
207
+ PictureType[PictureType["Lyricist"] = 12] = "Lyricist";
208
+ PictureType[PictureType["RecordingLocation"] = 13] = "RecordingLocation";
209
+ PictureType[PictureType["DuringRecording"] = 14] = "DuringRecording";
210
+ PictureType[PictureType["DuringPerformance"] = 15] = "DuringPerformance";
211
+ PictureType[PictureType["MovieScreenCapture"] = 16] = "MovieScreenCapture";
212
+ PictureType[PictureType["ColouredFish"] = 17] = "ColouredFish";
213
+ PictureType[PictureType["Illustration"] = 18] = "Illustration";
214
+ PictureType[PictureType["BandLogo"] = 19] = "BandLogo";
215
+ PictureType[PictureType["PublisherLogo"] = 20] = "PublisherLogo";
216
+ })(PictureType || (PictureType = {}));
217
+ /**
218
+ * Map of bitrate control mode names to their numeric values.
219
+ * Used for converting between string representations and numeric codes
220
+ * stored in MP4/M4A files.
221
+ */
222
+ export const BITRATE_CONTROL_MODE_VALUES = {
223
+ Constant: 0,
224
+ LongTermAverage: 1,
225
+ VariableConstrained: 2,
226
+ Variable: 3,
227
+ };
228
+ /**
229
+ * Map of numeric values to bitrate control mode names.
230
+ * Used for converting numeric codes from MP4/M4A files
231
+ * to human-readable string representations.
232
+ */
233
+ export const BITRATE_CONTROL_MODE_NAMES = {
234
+ 0: "Constant",
235
+ 1: "LongTermAverage",
236
+ 2: "VariableConstrained",
237
+ 3: "Variable",
238
+ };
239
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * File reading utilities for taglib-wasm
3
+ * Provides cross-runtime support for reading files from various sources
4
+ */
5
+ import { EnvironmentError, FileOperationError } from "../errors.js";
6
+ /**
7
+ * Read a file's data from various sources.
8
+ * Supports file paths (Node.js/Deno/Bun), buffers, and File objects (browser).
9
+ *
10
+ * @param file - File path, Uint8Array, ArrayBuffer, or File object
11
+ * @returns Promise resolving to Uint8Array of file data
12
+ * @throws {FileOperationError} If file read fails
13
+ * @throws {EnvironmentError} If environment doesn't support file paths
14
+ */
15
+ export async function readFileData(file) {
16
+ // Already a Uint8Array
17
+ if (file instanceof Uint8Array) {
18
+ return file;
19
+ }
20
+ // ArrayBuffer - convert to Uint8Array
21
+ if (file instanceof ArrayBuffer) {
22
+ return new Uint8Array(file);
23
+ }
24
+ // File object (browser)
25
+ if (typeof File !== "undefined" && file instanceof File) {
26
+ return new Uint8Array(await file.arrayBuffer());
27
+ }
28
+ // String path - read from filesystem
29
+ if (typeof file === "string") {
30
+ // Check environment support first
31
+ const hasDeno = typeof globalThis.Deno !== "undefined";
32
+ const hasNode = typeof globalThis.process !== "undefined" &&
33
+ globalThis.process.versions &&
34
+ globalThis.process.versions.node;
35
+ const hasBun = typeof globalThis.Bun !== "undefined";
36
+ // If no runtime supports filesystem, throw EnvironmentError
37
+ if (!hasDeno && !hasNode && !hasBun) {
38
+ const env = "Browser";
39
+ throw new EnvironmentError(env, "does not support file path reading", "filesystem access");
40
+ }
41
+ try {
42
+ // Deno
43
+ if (hasDeno) {
44
+ return await globalThis.Deno.readFile(file);
45
+ }
46
+ // Node.js
47
+ if (hasNode) {
48
+ const { readFile } = await import("fs/promises");
49
+ return new Uint8Array(await readFile(file));
50
+ }
51
+ // Bun
52
+ if (hasBun) {
53
+ const bunFile = globalThis.Bun.file(file);
54
+ return new Uint8Array(await bunFile.arrayBuffer());
55
+ }
56
+ }
57
+ catch (error) {
58
+ // Convert system file errors to FileOperationError
59
+ throw new FileOperationError("read", error.message, file);
60
+ }
61
+ }
62
+ const inputType = Object.prototype.toString.call(file);
63
+ throw new FileOperationError("read", `Invalid file input type: ${inputType}. Expected string path, Uint8Array, ArrayBuffer, or File object.`);
64
+ }
65
+ //# sourceMappingURL=file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../../src/utils/file.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEjE;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAA8C;IAE9C,uBAAuB;IACvB,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sCAAsC;IACtC,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QAChC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,wBAAwB;IACxB,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;QACxD,OAAO,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,qCAAqC;IACrC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,kCAAkC;QAClC,MAAM,OAAO,GAAG,OAAQ,UAAkB,CAAC,IAAI,KAAK,WAAW,CAAC;QAChE,MAAM,OAAO,GAAG,OAAQ,UAAkB,CAAC,OAAO,KAAK,WAAW;YAC/D,UAAkB,CAAC,OAAO,CAAC,QAAQ;YACnC,UAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC5C,MAAM,MAAM,GAAG,OAAQ,UAAkB,CAAC,GAAG,KAAK,WAAW,CAAC;QAE9D,4DAA4D;QAC5D,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,SAAS,CAAC;YACtB,MAAM,IAAI,gBAAgB,CACxB,GAAG,EACH,oCAAoC,EACpC,mBAAmB,CACpB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,OAAO;YACP,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,MAAO,UAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACvD,CAAC;YAED,UAAU;YACV,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;gBACjD,OAAO,IAAI,UAAU,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9C,CAAC;YAED,MAAM;YACN,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,OAAO,GAAI,UAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnD,OAAO,IAAI,UAAU,CAAC,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,mDAAmD;YACnD,MAAM,IAAI,kBAAkB,CAC1B,MAAM,EACL,KAAe,CAAC,OAAO,EACxB,IAAI,CACL,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,IAAI,kBAAkB,CAC1B,MAAM,EACN,4BAA4B,SAAS,kEAAkE,CACxG,CAAC;AACJ,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * File writing utilities for taglib-wasm
3
+ * Provides cross-runtime support for writing files
4
+ */
5
+ import { EnvironmentError, FileOperationError } from "../errors.js";
6
+ /**
7
+ * Write data to a file across different runtimes.
8
+ * Supports Node.js, Deno, and Bun environments.
9
+ *
10
+ * @param path - File path to write to
11
+ * @param data - Data to write (Uint8Array)
12
+ * @throws {FileOperationError} If file write fails
13
+ * @throws {EnvironmentError} If environment doesn't support file writing
14
+ */
15
+ export async function writeFileData(path, data) {
16
+ try {
17
+ // Deno
18
+ if (typeof globalThis.Deno !== "undefined") {
19
+ await globalThis.Deno.writeFile(path, data);
20
+ return;
21
+ }
22
+ // Node.js
23
+ if (typeof globalThis.process !== "undefined" &&
24
+ globalThis.process.versions &&
25
+ globalThis.process.versions.node) {
26
+ const { writeFile } = await import("fs/promises");
27
+ await writeFile(path, data);
28
+ return;
29
+ }
30
+ // Bun
31
+ if (typeof globalThis.Bun !== "undefined") {
32
+ await globalThis.Bun.write(path, data);
33
+ return;
34
+ }
35
+ }
36
+ catch (error) {
37
+ // Convert system file errors to FileOperationError
38
+ throw new FileOperationError("write", error.message, path);
39
+ }
40
+ const env = typeof globalThis.Deno !== "undefined"
41
+ ? "Deno"
42
+ : typeof globalThis.process !== "undefined"
43
+ ? "Node.js"
44
+ : typeof globalThis.Bun !== "undefined"
45
+ ? "Bun"
46
+ : "Browser";
47
+ throw new EnvironmentError(env, "does not support file path writing", "filesystem access");
48
+ }
49
+ //# sourceMappingURL=write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../../src/utils/write.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAGjE;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAY,EACZ,IAAgB;IAEhB,IAAI,CAAC;QACH,OAAO;QACP,IAAI,OAAQ,UAAkB,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACpD,MAAO,UAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QAED,UAAU;QACV,IACE,OAAQ,UAAkB,CAAC,OAAO,KAAK,WAAW;YACjD,UAAkB,CAAC,OAAO,CAAC,QAAQ;YACnC,UAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EACzC,CAAC;YACD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;YAClD,MAAM,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,MAAM;QACN,IAAI,OAAQ,UAAkB,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;YACnD,MAAO,UAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,mDAAmD;QACnD,MAAM,IAAI,kBAAkB,CAC1B,OAAO,EACN,KAAe,CAAC,OAAO,EACxB,IAAI,CACL,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,OAAQ,UAAkB,CAAC,IAAI,KAAK,WAAW;QACzD,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,OAAQ,UAAkB,CAAC,OAAO,KAAK,WAAW;YACpD,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,OAAQ,UAAkB,CAAC,GAAG,KAAK,WAAW;gBAChD,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,IAAI,gBAAgB,CACxB,GAAG,EACH,oCAAoC,EACpC,mBAAmB,CACpB,CAAC;AACJ,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @fileoverview WebAssembly module interface for Cloudflare Workers
3
3
  */
4
- import type { TagLibConfig, TagLibModule } from "./types.ts";
4
+ import type { TagLibConfig, TagLibModule } from "./types";
5
5
  export type { TagLibModule };
6
6
  /**
7
7
  * Load and initialize the TagLib WebAssembly module for Cloudflare Workers
@@ -1 +1 @@
1
- {"version":3,"file":"wasm-workers.d.ts","sourceRoot":"","sources":["../../src/wasm-workers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI7D,YAAY,EAAE,YAAY,EAAE,CAAC;AAc7B;;;;;;;;;;;;;GAaG;AACH,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,UAAU,EACtB,MAAM,GAAE,YAAiB,GACxB,OAAO,CAAC,YAAY,CAAC,CAkEvB;AA4BD;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAQrE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAYrE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAS7C"}
1
+ {"version":3,"file":"wasm-workers.d.ts","sourceRoot":"","sources":["../../src/wasm-workers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI1D,YAAY,EAAE,YAAY,EAAE,CAAC;AAc7B;;;;;;;;;;;;;GAaG;AACH,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,UAAU,EACtB,MAAM,GAAE,YAAiB,GACxB,OAAO,CAAC,YAAY,CAAC,CAkEvB;AA4BD;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAQrE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAYrE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAS7C"}
@@ -0,0 +1,148 @@
1
+ /**
2
+ * @fileoverview WebAssembly module interface for Cloudflare Workers
3
+ */
4
+ import { TagLibInitializationError } from "./errors.js";
5
+ /**
6
+ * Default configuration for taglib-wasm module in Workers environment
7
+ * Reduced memory limits to fit within Workers constraints
8
+ */
9
+ const DEFAULT_WORKERS_CONFIG = {
10
+ memory: {
11
+ initial: 8 * 1024 * 1024, // 8MB (reduced from 16MB)
12
+ maximum: 64 * 1024 * 1024, // 64MB (reduced from 256MB)
13
+ },
14
+ debug: false,
15
+ };
16
+ /**
17
+ * Load and initialize the TagLib WebAssembly module for Cloudflare Workers
18
+ *
19
+ * @param wasmBinary - The WebAssembly binary as Uint8Array
20
+ * @param config - Optional configuration for the Wasm module
21
+ * @returns Promise resolving to initialized TagLib module
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * import wasmBinary from "../build/taglib.wasm.js";
26
+ *
27
+ * const taglib = await loadTagLibModuleForWorkers(wasmBinary);
28
+ * ```
29
+ */
30
+ export async function loadTagLibModuleForWorkers(wasmBinary, config = {}) {
31
+ const mergedConfig = { ...DEFAULT_WORKERS_CONFIG, ...config };
32
+ // Create Emscripten module configuration for Workers
33
+ const moduleConfig = {
34
+ wasmBinary,
35
+ wasmMemory: new WebAssembly.Memory({
36
+ initial: mergedConfig.memory.initial / (64 * 1024),
37
+ maximum: mergedConfig.memory.maximum / (64 * 1024),
38
+ }),
39
+ print: mergedConfig.debug ? console.log : () => { },
40
+ printErr: mergedConfig.debug ? console.error : () => { },
41
+ onRuntimeInitialized: () => {
42
+ if (mergedConfig.debug) {
43
+ console.log("taglib-wasm module initialized in Workers");
44
+ }
45
+ },
46
+ // Workers-specific settings
47
+ locateFile: () => {
48
+ // Return empty string since we're providing wasmBinary directly
49
+ return "";
50
+ },
51
+ // Disable file system access
52
+ noFSInit: true,
53
+ noExitRuntime: true,
54
+ };
55
+ try {
56
+ // For Workers, we need to use a modified version of the Emscripten output
57
+ // that doesn't include Node.js/CommonJS dependencies
58
+ const TagLibWasm = await createWorkersCompatibleModule();
59
+ if (typeof TagLibWasm !== "function") {
60
+ throw new TagLibInitializationError("Failed to load taglib-wasm module for Workers. " +
61
+ "The module may not be properly bundled for the Workers environment.");
62
+ }
63
+ const wasmInstance = await TagLibWasm(moduleConfig);
64
+ // Ensure proper memory arrays are set up
65
+ if (!wasmInstance.HEAPU8) {
66
+ const buffer = wasmInstance.buffer || wasmInstance.wasmMemory?.buffer;
67
+ if (buffer) {
68
+ wasmInstance.HEAPU8 = new Uint8Array(buffer);
69
+ wasmInstance.HEAP8 = new Int8Array(buffer);
70
+ wasmInstance.HEAP16 = new Int16Array(buffer);
71
+ wasmInstance.HEAP32 = new Int32Array(buffer);
72
+ wasmInstance.HEAPU16 = new Uint16Array(buffer);
73
+ wasmInstance.HEAPU32 = new Uint32Array(buffer);
74
+ wasmInstance.HEAPF32 = new Float32Array(buffer);
75
+ wasmInstance.HEAPF64 = new Float64Array(buffer);
76
+ }
77
+ }
78
+ return wasmInstance;
79
+ }
80
+ catch (error) {
81
+ if (error instanceof TagLibInitializationError) {
82
+ throw error;
83
+ }
84
+ throw new TagLibInitializationError(`Failed to load taglib-wasm for Workers: ${error.message}`, { error: error.message });
85
+ }
86
+ }
87
+ /**
88
+ * Create a Workers-compatible version of the Emscripten module
89
+ * This function loads the Wasm module without Node.js/CommonJS dependencies
90
+ */
91
+ async function createWorkersCompatibleModule() {
92
+ // In a real Workers environment, you would typically:
93
+ // 1. Use a build process to create a Workers-compatible version of taglib.js
94
+ // 2. Or inline the essential parts of the Emscripten runtime here
95
+ // 3. Or use dynamic import with proper bundling
96
+ // For now, we'll attempt to load the existing module with Workers compatibility
97
+ try {
98
+ // Try to import the existing module
99
+ const wasmModule = await import("../build/taglib-wrapper.js");
100
+ return wasmModule.default || wasmModule;
101
+ }
102
+ catch (error) {
103
+ // If that fails, provide a fallback implementation
104
+ throw new TagLibInitializationError("Workers-compatible Wasm module not available. " +
105
+ "Please build with Workers target or use a bundler that supports Wasm modules. " +
106
+ `Original error: ${error.message}`, { error: error.message });
107
+ }
108
+ }
109
+ /**
110
+ * Convert a C string pointer to JavaScript string (Workers-compatible)
111
+ */
112
+ export function cStringToJS(module, ptr) {
113
+ if (ptr === 0)
114
+ return "";
115
+ const view = new Uint8Array(module.HEAPU8.buffer, ptr);
116
+ let length = 0;
117
+ while (view[length] !== 0)
118
+ length++;
119
+ return new TextDecoder().decode(view.subarray(0, length));
120
+ }
121
+ /**
122
+ * Convert JavaScript string to C string (Workers-compatible)
123
+ */
124
+ export function jsToCString(module, str) {
125
+ const encoder = new TextEncoder();
126
+ const bytes = encoder.encode(str + "\0");
127
+ // Use allocate if available, otherwise use _malloc
128
+ if (module.allocate && module.ALLOC_NORMAL !== undefined) {
129
+ return module.allocate(bytes, module.ALLOC_NORMAL);
130
+ }
131
+ else {
132
+ const ptr = module._malloc(bytes.length);
133
+ module.HEAPU8.set(bytes, ptr);
134
+ return ptr;
135
+ }
136
+ }
137
+ /**
138
+ * Utility function to check if we're running in Cloudflare Workers
139
+ */
140
+ export function isCloudflareWorkers() {
141
+ return (typeof globalThis !== "undefined" &&
142
+ typeof globalThis.caches !== "undefined" &&
143
+ typeof globalThis.Request !== "undefined" &&
144
+ typeof globalThis.Response !== "undefined" &&
145
+ typeof globalThis.process === "undefined" &&
146
+ typeof globalThis.Deno === "undefined");
147
+ }
148
+ //# sourceMappingURL=wasm-workers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wasm-workers.js","sourceRoot":"","sources":["../../src/wasm-workers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @fileoverview WebAssembly module interface types for Emscripten
3
+ */
4
+ export {};
5
+ // Module loading function removed for modular imports
6
+ //# sourceMappingURL=wasm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wasm.js","sourceRoot":"","sources":["../../src/wasm.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAkIH,sDAAsD"}
@@ -20,8 +20,8 @@
20
20
  * const modifiedBuffer = await setCoverArtFromCanvas("song.mp3", canvas);
21
21
  * ```
22
22
  */
23
- import type { Picture } from "./types.ts";
24
- import { PictureType } from "./types.ts";
23
+ import type { Picture } from "./types";
24
+ import { PictureType } from "./types";
25
25
  /**
26
26
  * Convert a Picture object to a data URL for display in web browsers
27
27
  *
@@ -1 +1 @@
1
- {"version":3,"file":"web-utils.d.ts","sourceRoot":"","sources":["../../src/web-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAIzD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,WAAoC,EAC1C,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAsBT;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,EAC9C,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACjB,GACL,OAAO,CAAC,UAAU,CAAC,CAgBrB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACjB,GACL,OAAO,CAAC,OAAO,CAAC,CA+BlB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,EACV,IAAI,GAAE,WAAoC,EAC1C,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,gBAAgB,GAC3B,IAAI,CAkBN;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,EAChB,QAAQ,GAAE,MAAgB,GACzB,MAAM,CAGR;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,EAC9C,SAAS,EAAE,WAAW,EACtB,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD,GACL,OAAO,CAAC,IAAI,CAAC,CA6Bf"}
1
+ {"version":3,"file":"web-utils.d.ts","sourceRoot":"","sources":["../../src/web-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGtC;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAIzD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,WAAoC,EAC1C,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAsBT;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,EAC9C,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACjB,GACL,OAAO,CAAC,UAAU,CAAC,CAgBrB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACjB,GACL,OAAO,CAAC,OAAO,CAAC,CA+BlB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,EACV,IAAI,GAAE,WAAoC,EAC1C,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,gBAAgB,GAC3B,IAAI,CAkBN;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,EAChB,QAAQ,GAAE,MAAgB,GACzB,MAAM,CAGR;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,EAC9C,SAAS,EAAE,WAAW,EACtB,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD,GACL,OAAO,CAAC,IAAI,CAAC,CA6Bf"}