taglib-wasm 0.3.27 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -6
- package/dist/src/errors.d.ts +2 -2
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/taglib.d.ts +6 -3
- package/dist/src/taglib.d.ts.map +1 -1
- package/dist/src/taglib.js +105 -9
- package/dist/src/types.d.ts +37 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/file.d.ts +20 -0
- package/dist/src/utils/file.d.ts.map +1 -1
- package/dist/src/utils/file.js +120 -1
- package/dist/src/wasm.d.ts +6 -0
- package/dist/src/wasm.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -102,6 +102,10 @@ const taglib = await initializeForDenoCompile();
|
|
|
102
102
|
// deno compile --allow-read --include taglib.wasm myapp.ts
|
|
103
103
|
```
|
|
104
104
|
|
|
105
|
+
See the
|
|
106
|
+
[complete Deno compile guide](https://charleswiltgen.github.io/taglib-wasm/guide/deno-compile.html)
|
|
107
|
+
for more options including CDN loading.
|
|
108
|
+
|
|
105
109
|
For manual control:
|
|
106
110
|
|
|
107
111
|
```typescript
|
|
@@ -139,8 +143,8 @@ await updateTags("song.mp3", {
|
|
|
139
143
|
|
|
140
144
|
### Full API
|
|
141
145
|
|
|
142
|
-
The Full API might be a better choice for apps and utilities focused on
|
|
143
|
-
|
|
146
|
+
The Full API might be a better choice for apps and utilities focused on advanced
|
|
147
|
+
metadata management.
|
|
144
148
|
|
|
145
149
|
```typescript
|
|
146
150
|
import { TagLib } from "taglib-wasm";
|
|
@@ -216,17 +220,17 @@ Supported codec detection:
|
|
|
216
220
|
|
|
217
221
|
### Guides
|
|
218
222
|
|
|
219
|
-
- [API Reference](https://charleswiltgen.github.io/taglib-wasm/
|
|
223
|
+
- [API Reference](https://charleswiltgen.github.io/taglib-wasm/api/)
|
|
220
224
|
- [Platform Examples](https://charleswiltgen.github.io/taglib-wasm/guide/platform-examples.html)
|
|
221
225
|
- [Working with Cover Art](https://charleswiltgen.github.io/taglib-wasm/guide/cover-art.html)
|
|
222
226
|
- [Cloudflare Workers Setup](https://charleswiltgen.github.io/taglib-wasm/guide/workers-setup.html)
|
|
223
|
-
- [Error Handling](https://charleswiltgen.github.io/taglib-wasm/
|
|
227
|
+
- [Error Handling](https://charleswiltgen.github.io/taglib-wasm/concepts/error-handling.html)
|
|
224
228
|
|
|
225
229
|
### Development
|
|
226
230
|
|
|
227
231
|
- [Testing Guide](https://charleswiltgen.github.io/taglib-wasm/development/testing.html)
|
|
228
232
|
- [Future Improvements](https://charleswiltgen.github.io/taglib-wasm/development/improvements.html)
|
|
229
|
-
- [Contributing](
|
|
233
|
+
- [Contributing](CONTRIBUTING.md)
|
|
230
234
|
|
|
231
235
|
## 📋 Supported Formats
|
|
232
236
|
|
|
@@ -266,7 +270,41 @@ file.setProperty(Tags.TrackGain, "-6.54 dB");
|
|
|
266
270
|
file.setProperty(Tags.TrackPeak, "0.987654");
|
|
267
271
|
```
|
|
268
272
|
|
|
269
|
-
[View all supported tag constants →](https://charleswiltgen.github.io/taglib-wasm/
|
|
273
|
+
[View all supported tag constants →](https://charleswiltgen.github.io/taglib-wasm/api/tag-name-constants.html)
|
|
274
|
+
|
|
275
|
+
## ⚡ Performance & Smart Partial Loading
|
|
276
|
+
|
|
277
|
+
`taglib-wasm` now supports Smart Partial Loading, dramatically improving
|
|
278
|
+
performance for large audio files:
|
|
279
|
+
|
|
280
|
+
```typescript
|
|
281
|
+
// Enable partial loading for large files (>50MB)
|
|
282
|
+
const file = await taglib.open("large-concert.flac", {
|
|
283
|
+
partial: true,
|
|
284
|
+
maxHeaderSize: 2 * 1024 * 1024, // 2MB header
|
|
285
|
+
maxFooterSize: 256 * 1024, // 256KB footer
|
|
286
|
+
});
|
|
287
|
+
|
|
288
|
+
// Read operations work normally
|
|
289
|
+
const tags = file.tag();
|
|
290
|
+
console.log(tags.title, tags.artist);
|
|
291
|
+
|
|
292
|
+
// Make multiple changes efficiently
|
|
293
|
+
tags.setTitle("Live at Madison Square Garden");
|
|
294
|
+
tags.setArtist("The Beatles");
|
|
295
|
+
tags.setAlbum("Greatest Live Performances");
|
|
296
|
+
|
|
297
|
+
// Smart save - automatically loads full file when needed
|
|
298
|
+
await file.saveToFile(); // Full file loaded only here
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
**Performance gains:**
|
|
302
|
+
|
|
303
|
+
- **500MB file**: ~450x less memory usage (1.1MB vs 500MB)
|
|
304
|
+
- **Initial load**: 50x faster (50ms vs 2500ms)
|
|
305
|
+
- **Memory peak**: 3.3MB instead of 1.5GB
|
|
306
|
+
|
|
307
|
+
[View performance guide →](https://charleswiltgen.github.io/taglib-wasm/concepts/performance.html)
|
|
270
308
|
|
|
271
309
|
## 🏗️ Development
|
|
272
310
|
|
package/dist/src/errors.d.ts
CHANGED
|
@@ -50,9 +50,9 @@ export declare class UnsupportedFormatError extends TagLibError {
|
|
|
50
50
|
* Error thrown during file operations (read, write, save)
|
|
51
51
|
*/
|
|
52
52
|
export declare class FileOperationError extends TagLibError {
|
|
53
|
-
readonly operation: "read" | "write" | "save";
|
|
53
|
+
readonly operation: "read" | "write" | "save" | "stat";
|
|
54
54
|
readonly path?: string | undefined;
|
|
55
|
-
constructor(operation: "read" | "write" | "save", message: string, path?: string | undefined, context?: Record<string, unknown>);
|
|
55
|
+
constructor(operation: "read" | "write" | "save" | "stat", message: string, path?: string | undefined, context?: Record<string, unknown>);
|
|
56
56
|
}
|
|
57
57
|
/**
|
|
58
58
|
* Error thrown when metadata operations fail
|
package/dist/src/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,sDAOpB,CAAC;AAEX;;GAEG;AACH,oBAAY,eAAe;IACzB,qBAAqB,0BAA0B;IAC/C,cAAc,mBAAmB;IACjC,kBAAkB,uBAAuB;IACzC,qBAAqB,0BAA0B;IAC/C,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAC7B,iBAAiB,sBAAsB;CACxC;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;aAGlB,IAAI,EAAE,eAAe;aACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAFjD,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,eAAe,EACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAMpD;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,WAAW;gBAC5C,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAS/D;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;aAG/B,UAAU,CAAC,EAAE,MAAM;gBADnC,OAAO,EAAE,MAAM,EACC,UAAU,CAAC,EAAE,MAAM,YAAA,EACnC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAqBpC;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,WAAW;aAEnC,MAAM,EAAE,MAAM;aACd,gBAAgB,EAAE,SAAS,MAAM,EAAE;gBADnC,MAAM,EAAE,MAAM,EACd,gBAAgB,GAAE,SAAS,MAAM,EAAsB,EACvE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAYpC;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;aAE/B,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/src/taglib.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { TagLibModule, WasmModule } from "./wasm.ts";
|
|
2
|
-
import type { AudioProperties, FileType, Picture, PropertyMap, Tag as BasicTag } from "./types.ts";
|
|
2
|
+
import type { AudioProperties, FileType, OpenOptions, Picture, PropertyMap, Tag as BasicTag } from "./types.ts";
|
|
3
3
|
/**
|
|
4
4
|
* Extended Tag interface with read/write capabilities for audio metadata.
|
|
5
5
|
* Extends the basic Tag interface with setter methods for modifying metadata.
|
|
@@ -291,7 +291,10 @@ export declare class AudioFileImpl implements AudioFile {
|
|
|
291
291
|
private cachedTag;
|
|
292
292
|
private cachedAudioProperties;
|
|
293
293
|
private sourcePath?;
|
|
294
|
-
|
|
294
|
+
private originalSource?;
|
|
295
|
+
private isPartiallyLoaded;
|
|
296
|
+
private partialLoadOptions?;
|
|
297
|
+
constructor(module: TagLibModule, fileHandle: any, sourcePath?: string, originalSource?: string | File | ArrayBuffer | Uint8Array, isPartiallyLoaded?: boolean, partialLoadOptions?: OpenOptions);
|
|
295
298
|
/** @inheritdoc */
|
|
296
299
|
getFormat(): FileType;
|
|
297
300
|
/** @inheritdoc */
|
|
@@ -448,7 +451,7 @@ export declare class TagLib {
|
|
|
448
451
|
* file.dispose();
|
|
449
452
|
* ```
|
|
450
453
|
*/
|
|
451
|
-
open(input: string | ArrayBuffer | Uint8Array | File): Promise<AudioFile>;
|
|
454
|
+
open(input: string | ArrayBuffer | Uint8Array | File, options?: OpenOptions): Promise<AudioFile>;
|
|
452
455
|
/**
|
|
453
456
|
* Update tags in a file and save changes to disk in one operation.
|
|
454
457
|
* This is a convenience method that opens, modifies, saves, and closes the file.
|
package/dist/src/taglib.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taglib.d.ts","sourceRoot":"","sources":["../../src/taglib.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,KAAK,EACV,eAAe,EACf,QAAQ,EACR,OAAO,EACP,WAAW,EACX,GAAG,IAAI,QAAQ,EAChB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"taglib.d.ts","sourceRoot":"","sources":["../../src/taglib.ts"],"names":[],"mappings":"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"}
|
package/dist/src/taglib.js
CHANGED
|
@@ -4,15 +4,23 @@ import {
|
|
|
4
4
|
TagLibInitializationError,
|
|
5
5
|
UnsupportedFormatError
|
|
6
6
|
} from "./errors.js";
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
getFileSize,
|
|
9
|
+
readFileData,
|
|
10
|
+
readPartialFileData
|
|
11
|
+
} from "./utils/file.js";
|
|
8
12
|
import { writeFileData } from "./utils/write.js";
|
|
9
13
|
class AudioFileImpl {
|
|
10
|
-
constructor(module, fileHandle, sourcePath) {
|
|
14
|
+
constructor(module, fileHandle, sourcePath, originalSource, isPartiallyLoaded = false, partialLoadOptions) {
|
|
11
15
|
this.module = module;
|
|
12
16
|
this.cachedTag = null;
|
|
13
17
|
this.cachedAudioProperties = null;
|
|
18
|
+
this.isPartiallyLoaded = false;
|
|
14
19
|
this.fileHandle = fileHandle;
|
|
15
20
|
this.sourcePath = sourcePath;
|
|
21
|
+
this.originalSource = originalSource;
|
|
22
|
+
this.isPartiallyLoaded = isPartiallyLoaded;
|
|
23
|
+
this.partialLoadOptions = partialLoadOptions;
|
|
16
24
|
}
|
|
17
25
|
/** @inheritdoc */
|
|
18
26
|
getFormat() {
|
|
@@ -126,6 +134,11 @@ class AudioFileImpl {
|
|
|
126
134
|
}
|
|
127
135
|
/** @inheritdoc */
|
|
128
136
|
save() {
|
|
137
|
+
if (this.isPartiallyLoaded && this.originalSource) {
|
|
138
|
+
throw new Error(
|
|
139
|
+
"Cannot save partially loaded file directly. Use saveToFile() instead, which will automatically load the full file."
|
|
140
|
+
);
|
|
141
|
+
}
|
|
129
142
|
this.cachedTag = null;
|
|
130
143
|
this.cachedAudioProperties = null;
|
|
131
144
|
return this.fileHandle.save();
|
|
@@ -146,11 +159,47 @@ class AudioFileImpl {
|
|
|
146
159
|
"No file path available. Either provide a path or open the file from a path."
|
|
147
160
|
);
|
|
148
161
|
}
|
|
149
|
-
if (
|
|
150
|
-
|
|
162
|
+
if (this.isPartiallyLoaded && this.originalSource) {
|
|
163
|
+
const fullData = await readFileData(this.originalSource);
|
|
164
|
+
const fullFileHandle = this.module.createFileHandle();
|
|
165
|
+
const success = fullFileHandle.loadFromBuffer(fullData);
|
|
166
|
+
if (!success) {
|
|
167
|
+
throw new InvalidFormatError(
|
|
168
|
+
"Failed to load full audio file for saving",
|
|
169
|
+
fullData.byteLength
|
|
170
|
+
);
|
|
171
|
+
}
|
|
172
|
+
const partialTag = this.fileHandle.getTag();
|
|
173
|
+
const fullTag = fullFileHandle.getTag();
|
|
174
|
+
if (partialTag && fullTag) {
|
|
175
|
+
fullTag.setTitle(partialTag.title());
|
|
176
|
+
fullTag.setArtist(partialTag.artist());
|
|
177
|
+
fullTag.setAlbum(partialTag.album());
|
|
178
|
+
fullTag.setComment(partialTag.comment());
|
|
179
|
+
fullTag.setGenre(partialTag.genre());
|
|
180
|
+
fullTag.setYear(partialTag.year());
|
|
181
|
+
fullTag.setTrack(partialTag.track());
|
|
182
|
+
}
|
|
183
|
+
const properties = this.fileHandle.getProperties();
|
|
184
|
+
fullFileHandle.setProperties(properties);
|
|
185
|
+
const pictures = this.fileHandle.getPictures();
|
|
186
|
+
fullFileHandle.setPictures(pictures);
|
|
187
|
+
if (!fullFileHandle.save()) {
|
|
188
|
+
fullFileHandle.destroy();
|
|
189
|
+
throw new Error("Failed to save changes to full file");
|
|
190
|
+
}
|
|
191
|
+
const buffer = fullFileHandle.getBuffer();
|
|
192
|
+
fullFileHandle.destroy();
|
|
193
|
+
await writeFileData(targetPath, buffer);
|
|
194
|
+
this.isPartiallyLoaded = false;
|
|
195
|
+
this.originalSource = void 0;
|
|
196
|
+
} else {
|
|
197
|
+
if (!this.save()) {
|
|
198
|
+
throw new Error("Failed to save changes to in-memory buffer");
|
|
199
|
+
}
|
|
200
|
+
const buffer = this.getFileBuffer();
|
|
201
|
+
await writeFileData(targetPath, buffer);
|
|
151
202
|
}
|
|
152
|
-
const buffer = this.getFileBuffer();
|
|
153
|
-
await writeFileData(targetPath, buffer);
|
|
154
203
|
}
|
|
155
204
|
/** @inheritdoc */
|
|
156
205
|
isValid() {
|
|
@@ -361,14 +410,53 @@ class TagLib {
|
|
|
361
410
|
* file.dispose();
|
|
362
411
|
* ```
|
|
363
412
|
*/
|
|
364
|
-
async open(input) {
|
|
413
|
+
async open(input, options) {
|
|
365
414
|
if (!this.module.createFileHandle) {
|
|
366
415
|
throw new TagLibInitializationError(
|
|
367
416
|
"TagLib module not properly initialized: createFileHandle not found. Make sure the module is fully loaded before calling open."
|
|
368
417
|
);
|
|
369
418
|
}
|
|
370
419
|
const sourcePath = typeof input === "string" ? input : void 0;
|
|
371
|
-
const
|
|
420
|
+
const opts = {
|
|
421
|
+
partial: false,
|
|
422
|
+
maxHeaderSize: 1024 * 1024,
|
|
423
|
+
// 1MB
|
|
424
|
+
maxFooterSize: 128 * 1024,
|
|
425
|
+
// 128KB
|
|
426
|
+
...options
|
|
427
|
+
};
|
|
428
|
+
let audioData;
|
|
429
|
+
let isPartiallyLoaded = false;
|
|
430
|
+
if (opts.partial && typeof File !== "undefined" && input instanceof File) {
|
|
431
|
+
const headerSize = Math.min(opts.maxHeaderSize, input.size);
|
|
432
|
+
const footerSize = Math.min(opts.maxFooterSize, input.size);
|
|
433
|
+
if (input.size <= headerSize + footerSize) {
|
|
434
|
+
audioData = await readFileData(input);
|
|
435
|
+
} else {
|
|
436
|
+
const header = await input.slice(0, headerSize).arrayBuffer();
|
|
437
|
+
const footerStart = Math.max(0, input.size - footerSize);
|
|
438
|
+
const footer = await input.slice(footerStart).arrayBuffer();
|
|
439
|
+
const combined = new Uint8Array(header.byteLength + footer.byteLength);
|
|
440
|
+
combined.set(new Uint8Array(header), 0);
|
|
441
|
+
combined.set(new Uint8Array(footer), header.byteLength);
|
|
442
|
+
audioData = combined;
|
|
443
|
+
isPartiallyLoaded = true;
|
|
444
|
+
}
|
|
445
|
+
} else if (opts.partial && typeof input === "string") {
|
|
446
|
+
const fileSize = await getFileSize(input);
|
|
447
|
+
if (fileSize > opts.maxHeaderSize + opts.maxFooterSize) {
|
|
448
|
+
audioData = await readPartialFileData(
|
|
449
|
+
input,
|
|
450
|
+
opts.maxHeaderSize,
|
|
451
|
+
opts.maxFooterSize
|
|
452
|
+
);
|
|
453
|
+
isPartiallyLoaded = true;
|
|
454
|
+
} else {
|
|
455
|
+
audioData = await readFileData(input);
|
|
456
|
+
}
|
|
457
|
+
} else {
|
|
458
|
+
audioData = await readFileData(input);
|
|
459
|
+
}
|
|
372
460
|
const buffer = audioData.buffer.slice(
|
|
373
461
|
audioData.byteOffset,
|
|
374
462
|
audioData.byteOffset + audioData.byteLength
|
|
@@ -382,7 +470,15 @@ class TagLib {
|
|
|
382
470
|
buffer.byteLength
|
|
383
471
|
);
|
|
384
472
|
}
|
|
385
|
-
return new AudioFileImpl(
|
|
473
|
+
return new AudioFileImpl(
|
|
474
|
+
this.module,
|
|
475
|
+
fileHandle,
|
|
476
|
+
sourcePath,
|
|
477
|
+
input,
|
|
478
|
+
// Store original source for lazy loading
|
|
479
|
+
isPartiallyLoaded,
|
|
480
|
+
opts
|
|
481
|
+
);
|
|
386
482
|
}
|
|
387
483
|
/**
|
|
388
484
|
* Update tags in a file and save changes to disk in one operation.
|
package/dist/src/types.d.ts
CHANGED
|
@@ -328,4 +328,41 @@ export interface TagLibWorkersConfig {
|
|
|
328
328
|
/** Enable debug output */
|
|
329
329
|
debug?: boolean;
|
|
330
330
|
}
|
|
331
|
+
/**
|
|
332
|
+
* Options for opening audio files with partial loading support.
|
|
333
|
+
*
|
|
334
|
+
* @example
|
|
335
|
+
* ```typescript
|
|
336
|
+
* // Enable partial loading for large files
|
|
337
|
+
* const file = await taglib.open(largeFile, {
|
|
338
|
+
* partial: true,
|
|
339
|
+
* maxHeaderSize: 2 * 1024 * 1024, // 2MB
|
|
340
|
+
* maxFooterSize: 256 * 1024 // 256KB
|
|
341
|
+
* });
|
|
342
|
+
* ```
|
|
343
|
+
*/
|
|
344
|
+
export interface OpenOptions {
|
|
345
|
+
/**
|
|
346
|
+
* Enable partial file loading for better performance with large files.
|
|
347
|
+
* When enabled, only the header and footer sections are loaded initially.
|
|
348
|
+
* The full file is loaded automatically when save() is called.
|
|
349
|
+
*
|
|
350
|
+
* @default false
|
|
351
|
+
*/
|
|
352
|
+
partial?: boolean;
|
|
353
|
+
/**
|
|
354
|
+
* Maximum size of the header section to load (in bytes).
|
|
355
|
+
* This should be large enough to contain all metadata at the beginning of the file.
|
|
356
|
+
*
|
|
357
|
+
* @default 1048576 (1MB)
|
|
358
|
+
*/
|
|
359
|
+
maxHeaderSize?: number;
|
|
360
|
+
/**
|
|
361
|
+
* Maximum size of the footer section to load (in bytes).
|
|
362
|
+
* This should be large enough to contain metadata at the end of the file (e.g., ID3v1 tags).
|
|
363
|
+
*
|
|
364
|
+
* @default 131072 (128KB)
|
|
365
|
+
*/
|
|
366
|
+
maxFooterSize?: number;
|
|
367
|
+
}
|
|
331
368
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAG9C;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,QAAQ,GAChB,KAAK,GACL,KAAK,GACL,MAAM,GACN,KAAK,GACL,MAAM,GACN,KAAK,GACL,MAAM,GACN,SAAS,CAAC;AAEd;;;;GAIG;AACH,MAAM,MAAM,WAAW,GACnB,KAAK,GACL,KAAK,GACL,KAAK,GACL,MAAM,GACN,KAAK,GACL,MAAM,GACN,KAAK,GACL,MAAM,GACN,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,IAAI,CAAC;AAET;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,eAAe;IAC9B,qCAAqC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,sBAAsB;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,wBAAwB;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,+BAA+B;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,uDAAuD;IACvD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,GAAG;IAClB,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,WAAY,SAAQ,GAAG;IACtC,yCAAyC;IACzC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,6BAA6B;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,4BAA4B;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mCAAmC;IACnC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,qDAAqD;IACrD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,4CAA4C;IAC5C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kCAAkC;IAClC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,4CAA4C;IAC5C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAG7B,sDAAsD;IACtD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,YAAY;IAC3B,wBAAwB;IACxB,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,WAAW,EAAE,YAAY,CA2JrE,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,OAAO;IACtB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,mDAAmD;IACnD,IAAI,EAAE,WAAW,CAAC;IAClB,kBAAkB;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;GAcG;AACH,oBAAY,WAAW;IACrB,KAAK,IAAI;IACT,QAAQ,IAAI;IACZ,aAAa,IAAI;IACjB,UAAU,IAAI;IACd,SAAS,IAAI;IACb,WAAW,IAAI;IACf,KAAK,IAAI;IACT,UAAU,IAAI;IACd,MAAM,IAAI;IACV,SAAS,IAAI;IACb,IAAI,KAAK;IACT,QAAQ,KAAK;IACb,QAAQ,KAAK;IACb,iBAAiB,KAAK;IACtB,eAAe,KAAK;IACpB,iBAAiB,KAAK;IACtB,kBAAkB,KAAK;IACvB,YAAY,KAAK;IACjB,YAAY,KAAK;IACjB,QAAQ,KAAK;IACb,aAAa,KAAK;CACnB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAC1B,UAAU,GACV,iBAAiB,GACjB,qBAAqB,GACrB,UAAU,CAAC;AAEf;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAK1E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAKzE,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,mBAAmB;IAClC,iCAAiC;IACjC,MAAM,CAAC,EAAE;QACP,mCAAmC;QACnC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,mCAAmC;QACnC,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,0BAA0B;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
|
package/dist/src/utils/file.d.ts
CHANGED
|
@@ -12,4 +12,24 @@
|
|
|
12
12
|
* @throws {EnvironmentError} If environment doesn't support file paths
|
|
13
13
|
*/
|
|
14
14
|
export declare function readFileData(file: string | Uint8Array | ArrayBuffer | File): Promise<Uint8Array>;
|
|
15
|
+
/**
|
|
16
|
+
* Get the size of a file without reading its contents.
|
|
17
|
+
*
|
|
18
|
+
* @param path - File path
|
|
19
|
+
* @returns Promise resolving to file size in bytes
|
|
20
|
+
* @throws {FileOperationError} If file stat fails
|
|
21
|
+
* @throws {EnvironmentError} If environment doesn't support file paths
|
|
22
|
+
*/
|
|
23
|
+
export declare function getFileSize(path: string): Promise<number>;
|
|
24
|
+
/**
|
|
25
|
+
* Read partial file data (header and footer sections).
|
|
26
|
+
*
|
|
27
|
+
* @param path - File path
|
|
28
|
+
* @param headerSize - Size of header section to read
|
|
29
|
+
* @param footerSize - Size of footer section to read
|
|
30
|
+
* @returns Promise resolving to combined header and footer data
|
|
31
|
+
* @throws {FileOperationError} If file read fails
|
|
32
|
+
* @throws {EnvironmentError} If environment doesn't support file paths
|
|
33
|
+
*/
|
|
34
|
+
export declare function readPartialFileData(path: string, headerSize: number, footerSize: number): Promise<Uint8Array>;
|
|
15
35
|
//# sourceMappingURL=file.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../src/utils/file.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,GAC7C,OAAO,CAAC,UAAU,CAAC,CAmErB"}
|
|
1
|
+
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../src/utils/file.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,GAC7C,OAAO,CAAC,UAAU,CAAC,CAmErB;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgD/D;AAED;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,UAAU,CAAC,CA4GrB"}
|
package/dist/src/utils/file.js
CHANGED
|
@@ -47,6 +47,125 @@ async function readFileData(file) {
|
|
|
47
47
|
`Invalid file input type: ${inputType}. Expected string path, Uint8Array, ArrayBuffer, or File object.`
|
|
48
48
|
);
|
|
49
49
|
}
|
|
50
|
+
async function getFileSize(path) {
|
|
51
|
+
const hasDeno = typeof globalThis.Deno !== "undefined";
|
|
52
|
+
const hasNode = typeof globalThis.process !== "undefined" && globalThis.process.versions && globalThis.process.versions.node;
|
|
53
|
+
const hasBun = typeof globalThis.Bun !== "undefined";
|
|
54
|
+
if (!hasDeno && !hasNode && !hasBun) {
|
|
55
|
+
throw new EnvironmentError(
|
|
56
|
+
"Browser",
|
|
57
|
+
"does not support file path operations",
|
|
58
|
+
"filesystem access"
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
try {
|
|
62
|
+
if (hasDeno) {
|
|
63
|
+
const stat = await globalThis.Deno.stat(path);
|
|
64
|
+
return stat.size;
|
|
65
|
+
}
|
|
66
|
+
if (hasNode) {
|
|
67
|
+
const { stat } = await import("fs/promises");
|
|
68
|
+
const stats = await stat(path);
|
|
69
|
+
return stats.size;
|
|
70
|
+
}
|
|
71
|
+
if (hasBun) {
|
|
72
|
+
const bunFile = globalThis.Bun.file(path);
|
|
73
|
+
return bunFile.size;
|
|
74
|
+
}
|
|
75
|
+
} catch (error) {
|
|
76
|
+
throw new FileOperationError(
|
|
77
|
+
"stat",
|
|
78
|
+
error.message,
|
|
79
|
+
path
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
throw new EnvironmentError(
|
|
83
|
+
"Unknown",
|
|
84
|
+
"No runtime detected",
|
|
85
|
+
"filesystem access"
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
async function readPartialFileData(path, headerSize, footerSize) {
|
|
89
|
+
const hasDeno = typeof globalThis.Deno !== "undefined";
|
|
90
|
+
const hasNode = typeof globalThis.process !== "undefined" && globalThis.process.versions && globalThis.process.versions.node;
|
|
91
|
+
if (!hasDeno && !hasNode) {
|
|
92
|
+
throw new EnvironmentError(
|
|
93
|
+
"Browser/Bun",
|
|
94
|
+
"does not support partial file reading",
|
|
95
|
+
"filesystem access with seek support"
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
try {
|
|
99
|
+
if (hasDeno) {
|
|
100
|
+
const file = await globalThis.Deno.open(path, { read: true });
|
|
101
|
+
try {
|
|
102
|
+
const stat = await file.stat();
|
|
103
|
+
const fileSize = stat.size;
|
|
104
|
+
const actualHeaderSize = Math.min(headerSize, fileSize);
|
|
105
|
+
const header = new Uint8Array(actualHeaderSize);
|
|
106
|
+
await file.read(header);
|
|
107
|
+
const actualFooterSize = Math.min(footerSize, fileSize);
|
|
108
|
+
const footerStart = Math.max(0, fileSize - actualFooterSize);
|
|
109
|
+
if (footerStart <= actualHeaderSize) {
|
|
110
|
+
return header.slice(0, fileSize);
|
|
111
|
+
}
|
|
112
|
+
await file.seek(footerStart, globalThis.Deno.SeekMode.Start);
|
|
113
|
+
const footer = new Uint8Array(actualFooterSize);
|
|
114
|
+
await file.read(footer);
|
|
115
|
+
const combined = new Uint8Array(actualHeaderSize + actualFooterSize);
|
|
116
|
+
combined.set(header, 0);
|
|
117
|
+
combined.set(footer, actualHeaderSize);
|
|
118
|
+
return combined;
|
|
119
|
+
} finally {
|
|
120
|
+
file.close();
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
if (hasNode) {
|
|
124
|
+
const { open } = await import("fs/promises");
|
|
125
|
+
const file = await open(path, "r");
|
|
126
|
+
try {
|
|
127
|
+
const stats = await file.stat();
|
|
128
|
+
const fileSize = stats.size;
|
|
129
|
+
const actualHeaderSize = Math.min(headerSize, fileSize);
|
|
130
|
+
const { Buffer } = await import("buffer");
|
|
131
|
+
const header = Buffer.alloc(actualHeaderSize);
|
|
132
|
+
await file.read(header, 0, actualHeaderSize, 0);
|
|
133
|
+
const actualFooterSize = Math.min(footerSize, fileSize);
|
|
134
|
+
const footerStart = Math.max(0, fileSize - actualFooterSize);
|
|
135
|
+
if (footerStart <= actualHeaderSize) {
|
|
136
|
+
return new Uint8Array(header.buffer, 0, fileSize);
|
|
137
|
+
}
|
|
138
|
+
const footer = Buffer.alloc(actualFooterSize);
|
|
139
|
+
await file.read(footer, 0, actualFooterSize, footerStart);
|
|
140
|
+
const combined = new Uint8Array(actualHeaderSize + actualFooterSize);
|
|
141
|
+
combined.set(
|
|
142
|
+
new Uint8Array(header.buffer, header.byteOffset, header.byteLength),
|
|
143
|
+
0
|
|
144
|
+
);
|
|
145
|
+
combined.set(
|
|
146
|
+
new Uint8Array(footer.buffer, footer.byteOffset, footer.byteLength),
|
|
147
|
+
actualHeaderSize
|
|
148
|
+
);
|
|
149
|
+
return combined;
|
|
150
|
+
} finally {
|
|
151
|
+
await file.close();
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
} catch (error) {
|
|
155
|
+
throw new FileOperationError(
|
|
156
|
+
"read",
|
|
157
|
+
error.message,
|
|
158
|
+
path
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
throw new EnvironmentError(
|
|
162
|
+
"Unknown",
|
|
163
|
+
"No runtime detected",
|
|
164
|
+
"filesystem access"
|
|
165
|
+
);
|
|
166
|
+
}
|
|
50
167
|
export {
|
|
51
|
-
|
|
168
|
+
getFileSize,
|
|
169
|
+
readFileData,
|
|
170
|
+
readPartialFileData
|
|
52
171
|
};
|
package/dist/src/wasm.d.ts
CHANGED
|
@@ -35,6 +35,12 @@ export interface FileHandle {
|
|
|
35
35
|
removeMP4Item(key: string): void;
|
|
36
36
|
getTag(): TagWrapper;
|
|
37
37
|
getAudioProperties(): AudioPropertiesWrapper;
|
|
38
|
+
getBuffer(): Uint8Array;
|
|
39
|
+
getPictures(): any[];
|
|
40
|
+
setPictures(pictures: any[]): void;
|
|
41
|
+
addPicture(picture: any): void;
|
|
42
|
+
removePictures(): void;
|
|
43
|
+
destroy(): void;
|
|
38
44
|
}
|
|
39
45
|
export interface TagWrapper {
|
|
40
46
|
title(): string;
|
package/dist/src/wasm.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wasm.d.ts","sourceRoot":"","sources":["../../src/wasm.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,MAAM,WAAW,gBAAgB;IAE/B,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,YAAY,CAAC;IAGtB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,KAAK,CAAC,CACJ,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAAE,EAClB,IAAI,EAAE,GAAG,EAAE,GACV,GAAG,CAAC;IACP,KAAK,CAAC,CACJ,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAAE,GACjB,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;IAG3B,EAAE,CAAC,EAAE,GAAG,CAAC;IAGT,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,GAAG,IAAI,CAAC;IAC1D,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;CACnC;AAGD,MAAM,WAAW,UAAU;IACzB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAC1C,OAAO,IAAI,OAAO,CAAC;IACnB,IAAI,IAAI,OAAO,CAAC;IAChB,SAAS,IAAI,MAAM,CAAC;IACpB,aAAa,IAAI,GAAG,CAAC;IACrB,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IAChC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,KAAK,IAAI,OAAO,CAAC;IACjB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,MAAM,IAAI,UAAU,CAAC;IACrB,kBAAkB,IAAI,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"wasm.d.ts","sourceRoot":"","sources":["../../src/wasm.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED