taglib-wasm 1.0.8 → 1.1.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.
Files changed (53) hide show
  1. package/dist/index.browser.js +87 -8
  2. package/dist/simple.browser.js +87 -8
  3. package/dist/src/deno-compile.js +1 -1
  4. package/dist/src/runtime/module-loader.d.ts.map +1 -1
  5. package/dist/src/runtime/module-loader.js +2 -3
  6. package/dist/src/runtime/unified-loader/module-loading.d.ts.map +1 -1
  7. package/dist/src/runtime/unified-loader/module-loading.js +26 -19
  8. package/dist/src/runtime/unified-loader/module-selection.d.ts.map +1 -1
  9. package/dist/src/runtime/unified-loader/module-selection.js +0 -1
  10. package/dist/src/runtime/unified-loader/types.d.ts +1 -3
  11. package/dist/src/runtime/unified-loader/types.d.ts.map +1 -1
  12. package/dist/src/runtime/wasi-adapter/adapter.d.ts +1 -1
  13. package/dist/src/runtime/wasi-adapter/adapter.js +1 -1
  14. package/dist/src/runtime/wasi-adapter/file-handle.d.ts +3 -2
  15. package/dist/src/runtime/wasi-adapter/file-handle.d.ts.map +1 -1
  16. package/dist/src/runtime/wasi-adapter/file-handle.js +27 -11
  17. package/dist/src/runtime/wasi-adapter/wasm-io.d.ts +3 -1
  18. package/dist/src/runtime/wasi-adapter/wasm-io.d.ts.map +1 -1
  19. package/dist/src/runtime/wasi-adapter/wasm-io.js +66 -1
  20. package/dist/src/runtime/wasi-host-loader.d.ts +1 -1
  21. package/dist/src/runtime/wasi-host-loader.js +1 -1
  22. package/dist/src/runtime/wasmer-sdk-loader/types.d.ts +1 -24
  23. package/dist/src/runtime/wasmer-sdk-loader/types.d.ts.map +1 -1
  24. package/dist/src/runtime/wasmer-sdk-loader/types.js +1 -19
  25. package/dist/src/taglib/audio-file-impl.d.ts +1 -0
  26. package/dist/src/taglib/audio-file-impl.d.ts.map +1 -1
  27. package/dist/src/taglib/audio-file-impl.js +37 -6
  28. package/dist/src/taglib/taglib-class.d.ts.map +1 -1
  29. package/dist/src/taglib/taglib-class.js +52 -0
  30. package/dist/src/version.d.ts +1 -1
  31. package/dist/src/version.js +1 -1
  32. package/dist/src/wasm.d.ts +3 -0
  33. package/dist/src/wasm.d.ts.map +1 -1
  34. package/dist/taglib_wasi.wasm +0 -0
  35. package/package.json +2 -2
  36. package/dist/src/runtime/wasmer-sdk-loader/high-level-api.d.ts +0 -10
  37. package/dist/src/runtime/wasmer-sdk-loader/high-level-api.d.ts.map +0 -1
  38. package/dist/src/runtime/wasmer-sdk-loader/high-level-api.js +0 -83
  39. package/dist/src/runtime/wasmer-sdk-loader/index.d.ts +0 -6
  40. package/dist/src/runtime/wasmer-sdk-loader/index.d.ts.map +0 -1
  41. package/dist/src/runtime/wasmer-sdk-loader/index.js +0 -17
  42. package/dist/src/runtime/wasmer-sdk-loader/initialization.d.ts +0 -16
  43. package/dist/src/runtime/wasmer-sdk-loader/initialization.d.ts.map +0 -1
  44. package/dist/src/runtime/wasmer-sdk-loader/initialization.js +0 -55
  45. package/dist/src/runtime/wasmer-sdk-loader/loader.d.ts +0 -9
  46. package/dist/src/runtime/wasmer-sdk-loader/loader.d.ts.map +0 -1
  47. package/dist/src/runtime/wasmer-sdk-loader/loader.js +0 -47
  48. package/dist/src/runtime/wasmer-sdk-loader/module-creation.d.ts +0 -9
  49. package/dist/src/runtime/wasmer-sdk-loader/module-creation.d.ts.map +0 -1
  50. package/dist/src/runtime/wasmer-sdk-loader/module-creation.js +0 -71
  51. package/dist/src/runtime/wasmer-sdk-loader/wasi-stubs.d.ts +0 -16
  52. package/dist/src/runtime/wasmer-sdk-loader/wasi-stubs.d.ts.map +0 -1
  53. package/dist/src/runtime/wasmer-sdk-loader/wasi-stubs.js +0 -64
@@ -88,6 +88,69 @@ function readTagsFromWasm(wasi, buffer) {
88
88
  __callDispose(_stack, _error, _hasError);
89
89
  }
90
90
  }
91
+ function readTagsFromWasmPath(wasi, path) {
92
+ var _stack = [];
93
+ try {
94
+ const arena = __using(_stack, new WasmArena(wasi));
95
+ const pathAlloc = arena.allocString(path);
96
+ const outSizePtr = arena.allocUint32();
97
+ const resultPtr = wasi.tl_read_tags(pathAlloc.ptr, 0, 0, outSizePtr.ptr);
98
+ if (resultPtr === 0) {
99
+ const errorCode = wasi.tl_get_last_error_code();
100
+ if (errorCode === TL_ERROR_UNSUPPORTED_FORMAT || errorCode === TL_ERROR_PARSE_FAILED) {
101
+ throw new InvalidFormatError(
102
+ `File may be corrupted or in an unsupported format. Path: ${path}`
103
+ );
104
+ }
105
+ throw new WasmMemoryError(
106
+ `error code ${errorCode}. Path: ${path}`,
107
+ "read tags from path",
108
+ errorCode
109
+ );
110
+ }
111
+ const outSize = outSizePtr.readUint32();
112
+ const u8 = new Uint8Array(wasi.memory.buffer);
113
+ const result = new Uint8Array(u8.slice(resultPtr, resultPtr + outSize));
114
+ wasi.free(resultPtr);
115
+ return result;
116
+ } catch (_) {
117
+ var _error = _, _hasError = true;
118
+ } finally {
119
+ __callDispose(_stack, _error, _hasError);
120
+ }
121
+ }
122
+ function writeTagsToWasmPath(wasi, path, tagData) {
123
+ var _stack = [];
124
+ try {
125
+ const arena = __using(_stack, new WasmArena(wasi));
126
+ const pathAlloc = arena.allocString(path);
127
+ const tagBytes = encodeTagData(tagData);
128
+ const tagBuf = arena.allocBuffer(tagBytes);
129
+ const outSizePtr = arena.allocUint32();
130
+ const result = wasi.tl_write_tags(
131
+ pathAlloc.ptr,
132
+ 0,
133
+ 0,
134
+ tagBuf.ptr,
135
+ tagBuf.size,
136
+ 0,
137
+ outSizePtr.ptr
138
+ );
139
+ if (result !== 0) {
140
+ const errorCode = wasi.tl_get_last_error_code();
141
+ throw new WasmMemoryError(
142
+ `error code ${errorCode}. Path: ${path}`,
143
+ "write tags to path",
144
+ errorCode
145
+ );
146
+ }
147
+ return true;
148
+ } catch (_) {
149
+ var _error = _, _hasError = true;
150
+ } finally {
151
+ __callDispose(_stack, _error, _hasError);
152
+ }
153
+ }
91
154
  function writeTagsToWasm(wasi, fileData, tagData) {
92
155
  var _stack = [];
93
156
  try {
@@ -125,5 +188,7 @@ function writeTagsToWasm(wasi, fileData, tagData) {
125
188
  }
126
189
  export {
127
190
  readTagsFromWasm,
128
- writeTagsToWasm
191
+ readTagsFromWasmPath,
192
+ writeTagsToWasm,
193
+ writeTagsToWasmPath
129
194
  };
@@ -5,7 +5,7 @@
5
5
  * implementations, enabling efficient seek-based file I/O.
6
6
  */
7
7
  import type { FileSystemProvider } from "./wasi-fs-provider.js";
8
- import type { WasiModule } from "./wasmer-sdk-loader/index.js";
8
+ import type { WasiModule } from "./wasmer-sdk-loader/types.js";
9
9
  import { TagLibError } from "../errors/base.js";
10
10
  export interface WasiHostLoaderConfig {
11
11
  wasmPath?: string;
@@ -22,7 +22,7 @@ async function resolveFs(provided) {
22
22
  }
23
23
  async function loadWasiHost(config) {
24
24
  const defaultPath = (() => {
25
- const url = new URL("../../build/taglib_wasi.wasm", import.meta.url);
25
+ const url = new URL("../../taglib_wasi.wasm", import.meta.url);
26
26
  return url.protocol === "file:" ? fileUrlToPath(url) : url.href;
27
27
  })();
28
28
  const wasmPath = config.wasmPath ?? defaultPath;
@@ -1,13 +1,7 @@
1
1
  /**
2
- * @fileoverview Error types and interfaces for Wasmer SDK loader
2
+ * @fileoverview WASI module interface and error types
3
3
  */
4
4
  import { TagLibError } from "../../errors/base.js";
5
- export declare class WasmerInitError extends TagLibError {
6
- constructor(message: string, cause?: unknown);
7
- }
8
- export declare class WasmerLoadError extends TagLibError {
9
- constructor(message: string, cause?: unknown);
10
- }
11
5
  export declare class WasmerExecutionError extends TagLibError {
12
6
  constructor(message: string, cause?: unknown);
13
7
  }
@@ -26,21 +20,4 @@ export interface WasiModule {
26
20
  tl_clear_error(): void;
27
21
  memory: WebAssembly.Memory;
28
22
  }
29
- /**
30
- * Configuration for Wasmer SDK loader
31
- */
32
- export interface WasmerLoaderConfig {
33
- /** Path to WASI WASM binary */
34
- wasmPath?: string;
35
- /** Use inline WASM for bundling */
36
- useInlineWasm?: boolean;
37
- /** Initial file system mounts */
38
- mounts?: Record<string, unknown>;
39
- /** Environment variables */
40
- env?: Record<string, string>;
41
- /** Arguments to pass to WASI module */
42
- args?: string[];
43
- /** Enable debug output */
44
- debug?: boolean;
45
- }
46
23
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/runtime/wasmer-sdk-loader/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,qBAAa,eAAgB,SAAQ,WAAW;gBAClC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAM7C;AAED,qBAAa,eAAgB,SAAQ,WAAW;gBAClC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAM7C;AAED,qBAAa,oBAAqB,SAAQ,WAAW;gBACvC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAM7C;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IAEzB,UAAU,IAAI,MAAM,CAAC;IACrB,cAAc,IAAI,MAAM,CAAC;IAGzB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAGxB,YAAY,CACV,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,GACjB,MAAM,CAAC;IACV,aAAa,CACX,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,MAAM,CAAC;IAGV,iBAAiB,IAAI,MAAM,CAAC;IAC5B,sBAAsB,IAAI,MAAM,CAAC;IACjC,cAAc,IAAI,IAAI,CAAC;IAGvB,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/runtime/wasmer-sdk-loader/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,qBAAa,oBAAqB,SAAQ,WAAW;gBACvC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAM7C;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IAEzB,UAAU,IAAI,MAAM,CAAC;IACrB,cAAc,IAAI,MAAM,CAAC;IAGzB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAGxB,YAAY,CACV,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,GACjB,MAAM,CAAC;IACV,aAAa,CACX,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,MAAM,CAAC;IAGV,iBAAiB,IAAI,MAAM,CAAC;IAC5B,sBAAsB,IAAI,MAAM,CAAC;IACjC,cAAc,IAAI,IAAI,CAAC;IAGvB,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC;CAC5B"}
@@ -1,20 +1,4 @@
1
1
  import { TagLibError } from "../../errors/base.js";
2
- class WasmerInitError extends TagLibError {
3
- constructor(message, cause) {
4
- super("MODULE_LOAD", message, cause ? { cause } : void 0);
5
- this.name = "WasmerInitError";
6
- if (cause) this.cause = cause;
7
- Object.setPrototypeOf(this, WasmerInitError.prototype);
8
- }
9
- }
10
- class WasmerLoadError extends TagLibError {
11
- constructor(message, cause) {
12
- super("MODULE_LOAD", message, cause ? { cause } : void 0);
13
- this.name = "WasmerLoadError";
14
- if (cause) this.cause = cause;
15
- Object.setPrototypeOf(this, WasmerLoadError.prototype);
16
- }
17
- }
18
2
  class WasmerExecutionError extends TagLibError {
19
3
  constructor(message, cause) {
20
4
  super("WASM_MEMORY", message, cause ? { cause } : void 0);
@@ -24,7 +8,5 @@ class WasmerExecutionError extends TagLibError {
24
8
  }
25
9
  }
26
10
  export {
27
- WasmerExecutionError,
28
- WasmerInitError,
29
- WasmerLoadError
11
+ WasmerExecutionError
30
12
  };
@@ -10,6 +10,7 @@ import { BaseAudioFileImpl } from "./audio-file-base.js";
10
10
  * Use TagLib.open() to create instances.
11
11
  */
12
12
  export declare class AudioFileImpl extends BaseAudioFileImpl implements AudioFile {
13
+ private pathModeBuffer;
13
14
  constructor(module: TagLibModule, fileHandle: FileHandle, sourcePath?: string, originalSource?: string | Uint8Array | ArrayBuffer | File, isPartiallyLoaded?: boolean, partialLoadOptions?: OpenOptions);
14
15
  save(): boolean;
15
16
  getFileBuffer(): Uint8Array;
@@ -1 +1 @@
1
- {"version":3,"file":"audio-file-impl.d.ts","sourceRoot":"","sources":["../../../src/taglib/audio-file-impl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAIjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,iBAAkB,YAAW,SAAS;gBAErE,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,UAAU,EACtB,UAAU,CAAC,EAAE,MAAM,EACnB,cAAc,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,EACzD,iBAAiB,GAAE,OAAe,EAClC,kBAAkB,CAAC,EAAE,WAAW;IAYlC,IAAI,IAAI,OAAO;IAYf,aAAa,IAAI,UAAU;IAKrB,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8D9C,WAAW,IAAI,OAAO,EAAE;IAUxB,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAStC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IASlC,cAAc,IAAI,IAAI;IAItB,UAAU,IAAI,MAAM,EAAE;IAUtB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAQnC,SAAS,IAAI,MAAM,GAAG,SAAS;IAK/B,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;CAGhD"}
1
+ {"version":3,"file":"audio-file-impl.d.ts","sourceRoot":"","sources":["../../../src/taglib/audio-file-impl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAIjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAmBzD;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,iBAAkB,YAAW,SAAS;IACvE,OAAO,CAAC,cAAc,CAA2B;gBAG/C,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,UAAU,EACtB,UAAU,CAAC,EAAE,MAAM,EACnB,cAAc,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,EACzD,iBAAiB,GAAE,OAAe,EAClC,kBAAkB,CAAC,EAAE,WAAW;IAYlC,IAAI,IAAI,OAAO;IAYf,aAAa,IAAI,UAAU;IAgBrB,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsE9C,WAAW,IAAI,OAAO,EAAE;IAUxB,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAStC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IASlC,cAAc,IAAI,IAAI;IAItB,UAAU,IAAI,MAAM,EAAE;IAUtB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAQnC,SAAS,IAAI,MAAM,GAAG,SAAS;IAK/B,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;CAGhD"}
@@ -1,8 +1,24 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
1
4
  import { PICTURE_TYPE_NAMES, PICTURE_TYPE_VALUES } from "../types.js";
2
5
  import { FileOperationError, InvalidFormatError } from "../errors.js";
3
6
  import { readFileData } from "../utils/file.js";
4
7
  import { writeFileData } from "../utils/write.js";
5
8
  import { BaseAudioFileImpl } from "./audio-file-base.js";
9
+ let _nodeFs;
10
+ function readFileSync(path) {
11
+ if (typeof Deno !== "undefined") return Deno.readFileSync(path);
12
+ if (_nodeFs === void 0) {
13
+ try {
14
+ _nodeFs = new Function("return require('node:fs')")();
15
+ } catch {
16
+ _nodeFs = null;
17
+ }
18
+ }
19
+ if (_nodeFs) return new Uint8Array(_nodeFs.readFileSync(path));
20
+ return new Uint8Array(0);
21
+ }
6
22
  class AudioFileImpl extends BaseAudioFileImpl {
7
23
  constructor(module, fileHandle, sourcePath, originalSource, isPartiallyLoaded = false, partialLoadOptions) {
8
24
  super(
@@ -13,6 +29,7 @@ class AudioFileImpl extends BaseAudioFileImpl {
13
29
  isPartiallyLoaded,
14
30
  partialLoadOptions
15
31
  );
32
+ __publicField(this, "pathModeBuffer", null);
16
33
  }
17
34
  save() {
18
35
  if (this.isPartiallyLoaded && this.originalSource) {
@@ -26,7 +43,17 @@ class AudioFileImpl extends BaseAudioFileImpl {
26
43
  }
27
44
  getFileBuffer() {
28
45
  const buffer = this.handle.getBuffer();
29
- return buffer ?? new Uint8Array(0);
46
+ if (buffer.length > 0) return buffer;
47
+ if (this.pathModeBuffer) return this.pathModeBuffer;
48
+ if (this.sourcePath) {
49
+ try {
50
+ this.pathModeBuffer = readFileSync(this.sourcePath);
51
+ return this.pathModeBuffer;
52
+ } catch {
53
+ return new Uint8Array(0);
54
+ }
55
+ }
56
+ return new Uint8Array(0);
30
57
  }
31
58
  async saveToFile(path) {
32
59
  const targetPath = path ?? this.sourcePath;
@@ -37,14 +64,15 @@ class AudioFileImpl extends BaseAudioFileImpl {
37
64
  );
38
65
  }
39
66
  if (this.isPartiallyLoaded && this.originalSource) {
40
- const fullData = await readFileData(this.originalSource);
41
67
  const fullFileHandle = this.module.createFileHandle();
42
68
  try {
43
- const success = fullFileHandle.loadFromBuffer(fullData);
69
+ const success = await (async () => {
70
+ const data = await readFileData(this.originalSource);
71
+ return fullFileHandle.loadFromBuffer(data);
72
+ })();
44
73
  if (!success) {
45
74
  throw new InvalidFormatError(
46
- "Failed to load full audio file for saving",
47
- fullData.byteLength
75
+ "Failed to load full audio file for saving"
48
76
  );
49
77
  }
50
78
  const partialTag = this.handle.getTag();
@@ -80,7 +108,10 @@ class AudioFileImpl extends BaseAudioFileImpl {
80
108
  "Failed to save changes to in-memory buffer"
81
109
  );
82
110
  }
83
- await writeFileData(targetPath, this.getFileBuffer());
111
+ const buffer = this.handle.getBuffer();
112
+ if (buffer.length > 0) {
113
+ await writeFileData(targetPath, buffer);
114
+ }
84
115
  }
85
116
  }
86
117
  getPictures() {
@@ -1 +1 @@
1
- {"version":3,"file":"taglib-class.d.ts","sourceRoot":"","sources":["../../../src/taglib/taglib-class.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,UAAU,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAM3D;;GAEG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;gBAE1B,MAAM,EAAE,UAAU;IAI9B;;;;;OAKG;WACU,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAMrE;;;;;;;OAOG;IACG,IAAI,CACR,KAAK,EAAE,cAAc,EACrB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,SAAS,CAAC;IA+DrB;;;;;;;;;OASG;IACG,IAAI,CACR,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC5C,OAAO,CAAC,IAAI,CAAC;IACV,IAAI,CACR,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,IAAI,GAAG,eAAe,EACxD,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC5C,OAAO,CAAC,UAAU,CAAC;IAmBtB;;;;;;OAMG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtE;;;;;;;OAOG;IACG,YAAY,CAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,GACtB,OAAO,CAAC,IAAI,CAAC;IAUhB,oEAAoE;IACpE,OAAO,IAAI,MAAM;IAIjB,OAAO,CAAC,aAAa;CAStB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAEtE"}
1
+ {"version":3,"file":"taglib-class.d.ts","sourceRoot":"","sources":["../../../src/taglib/taglib-class.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,UAAU,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AA2C3D;;GAEG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;gBAE1B,MAAM,EAAE,UAAU;IAI9B;;;;;OAKG;WACU,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAMrE;;;;;;;OAOG;IACG,IAAI,CACR,KAAK,EAAE,cAAc,EACrB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,SAAS,CAAC;IA8FrB;;;;;;;;;OASG;IACG,IAAI,CACR,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC5C,OAAO,CAAC,IAAI,CAAC;IACV,IAAI,CACR,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,IAAI,GAAG,eAAe,EACxD,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC5C,OAAO,CAAC,UAAU,CAAC;IAmBtB;;;;;;OAMG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtE;;;;;;;OAOG;IACG,YAAY,CAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,GACtB,OAAO,CAAC,IAAI,CAAC;IAUhB,oEAAoE;IACpE,OAAO,IAAI,MAAM;IAIjB,OAAO,CAAC,aAAa;CAStB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAEtE"}
@@ -8,7 +8,32 @@ import { InvalidFormatError, TagLibInitializationError } from "../errors.js";
8
8
  import { AudioFileImpl } from "./audio-file-impl.js";
9
9
  import { loadAudioData } from "./load-audio-data.js";
10
10
  import { mergeTagUpdates } from "../utils/tag-mapping.js";
11
+ import { FileOperationError } from "../errors.js";
11
12
  import { VERSION } from "../version.js";
13
+ function toWasiPath(osPath) {
14
+ if (osPath.startsWith("\\\\") || osPath.startsWith("//")) {
15
+ throw new FileOperationError(
16
+ "read",
17
+ `UNC paths are not supported. Path: ${osPath}`
18
+ );
19
+ }
20
+ let p = osPath;
21
+ if (!p.startsWith("/") && !/^[A-Za-z]:/.test(p)) {
22
+ const g = globalThis;
23
+ const cwd = typeof Deno !== "undefined" ? Deno.cwd() : g.process?.cwd?.();
24
+ if (cwd) {
25
+ p = cwd.replace(/[/\\]+$/, "") + "/" + p;
26
+ }
27
+ }
28
+ p = p.replaceAll("\\", "/");
29
+ const driveMatch = p.match(/^([A-Za-z]):\//);
30
+ if (driveMatch) {
31
+ p = `/${driveMatch[1].toUpperCase()}${p.slice(2)}`;
32
+ }
33
+ p = p.replace(/\/\.\//g, "/").replace(/\/+/g, "/");
34
+ if (!p.startsWith("/")) p = "/" + p;
35
+ return p;
36
+ }
12
37
  class TagLib {
13
38
  constructor(module) {
14
39
  __publicField(this, "module");
@@ -41,6 +66,33 @@ class TagLib {
41
66
  }
42
67
  const actualInput = isNamedAudioInput(input) ? input.data : input;
43
68
  const sourcePath = typeof actualInput === "string" ? actualInput : void 0;
69
+ if (typeof actualInput === "string" && this.module.isWasi) {
70
+ const fileHandle2 = this.module.createFileHandle();
71
+ try {
72
+ const fh = fileHandle2;
73
+ if (fh.loadFromPath) {
74
+ const wasiPath = toWasiPath(actualInput);
75
+ const success = fh.loadFromPath(wasiPath);
76
+ if (!success) {
77
+ throw new InvalidFormatError(
78
+ `Failed to load audio file. Path: ${actualInput}`
79
+ );
80
+ }
81
+ return new AudioFileImpl(
82
+ this.module,
83
+ fileHandle2,
84
+ sourcePath,
85
+ actualInput,
86
+ false
87
+ );
88
+ }
89
+ } catch (error) {
90
+ if (typeof fileHandle2.destroy === "function") {
91
+ fileHandle2.destroy();
92
+ }
93
+ throw error;
94
+ }
95
+ }
44
96
  const opts = {
45
97
  partial: true,
46
98
  maxHeaderSize: 1024 * 1024,
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "1.0.8";
1
+ export declare const VERSION = "1.1.1";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,4 +1,4 @@
1
- const VERSION = "1.0.8";
1
+ const VERSION = "1.1.1";
2
2
  export {
3
3
  VERSION
4
4
  };
@@ -37,6 +37,7 @@ export interface EmscriptenModule {
37
37
  }
38
38
  export interface FileHandle {
39
39
  loadFromBuffer(data: Uint8Array): boolean;
40
+ loadFromPath?(path: string): boolean;
40
41
  isValid(): boolean;
41
42
  save(): boolean;
42
43
  getFormat(): string;
@@ -104,6 +105,8 @@ export interface AudioPropertiesWrapper {
104
105
  * @internal Most users should use {@link TagLib} instead of accessing this directly.
105
106
  */
106
107
  export interface TagLibModule extends Omit<EmscriptenModule, "then"> {
108
+ /** Whether this module uses the WASI backend (vs Emscripten) */
109
+ isWasi?: boolean;
107
110
  /** @internal Embind FileHandle class constructor */
108
111
  FileHandle: new () => FileHandle;
109
112
  /** @internal Embind TagWrapper class constructor */
@@ -1 +1 @@
1
- {"version":3,"file":"wasm.d.ts","sourceRoot":"","sources":["../../src/wasm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wasm.d.ts","sourceRoot":"","sources":["../../src/wasm.ts"],"names":[],"mappings":"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"}
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "taglib-wasm",
3
- "version": "1.0.8",
3
+ "version": "1.1.1",
4
4
  "description": "TagLib-Wasm is the universal tagging library for TypeScript/JavaScript platforms: Browsers, Node.js, Deno, Bun, Cloudflare Workers, and Electron apps",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -78,7 +78,7 @@
78
78
  "build:wasm": "./build/build-wasm.sh",
79
79
  "build:ts": "tsc && deno run --allow-read --allow-write --allow-run --allow-env scripts/build-js.mjs",
80
80
  "postbuild": "deno run --allow-read --allow-write --allow-run --allow-env scripts/postbuild.mjs",
81
- "build:copy-wasm": "mkdir -p dist && cp build/taglib-web.wasm build/taglib-wrapper.js build/taglib-wrapper.d.ts dist/",
81
+ "build:copy-wasm": "mkdir -p dist && cp build/taglib-web.wasm build/taglib_wasi.wasm build/taglib-wrapper.js build/taglib-wrapper.d.ts dist/",
82
82
  "build": "npm run build:wasm && npm run build:copy-wasm && npm run build:ts && npm run postbuild",
83
83
  "test": "deno test --allow-read --allow-write --allow-env tests/",
84
84
  "test:all": "deno test --allow-read --allow-write --allow-env tests/index.test.ts",
@@ -1,10 +0,0 @@
1
- /**
2
- * @fileoverview High-level API for reading tags using WASI
3
- */
4
- import type { WasiModule } from "./types.js";
5
- /**
6
- * High-level API for reading tags from audio files using WASI
7
- * Uses RAII pattern with automatic memory cleanup
8
- */
9
- export declare function readTagsWithWasi(audioBuffer: Uint8Array, wasiModule: WasiModule): Uint8Array;
10
- //# sourceMappingURL=high-level-api.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"high-level-api.d.ts","sourceRoot":"","sources":["../../../../src/runtime/wasmer-sdk-loader/high-level-api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,UAAU,EACvB,UAAU,EAAE,UAAU,GACrB,UAAU,CA2BZ"}
@@ -1,83 +0,0 @@
1
- var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : /* @__PURE__ */ Symbol.for("Symbol." + name);
2
- var __typeError = (msg) => {
3
- throw TypeError(msg);
4
- };
5
- var __using = (stack, value, async) => {
6
- if (value != null) {
7
- if (typeof value !== "object" && typeof value !== "function") __typeError("Object expected");
8
- var dispose, inner;
9
- if (async) dispose = value[__knownSymbol("asyncDispose")];
10
- if (dispose === void 0) {
11
- dispose = value[__knownSymbol("dispose")];
12
- if (async) inner = dispose;
13
- }
14
- if (typeof dispose !== "function") __typeError("Object not disposable");
15
- if (inner) dispose = function() {
16
- try {
17
- inner.call(this);
18
- } catch (e) {
19
- return Promise.reject(e);
20
- }
21
- };
22
- stack.push([async, dispose, value]);
23
- } else if (async) {
24
- stack.push([async]);
25
- }
26
- return value;
27
- };
28
- var __callDispose = (stack, error, hasError) => {
29
- var E = typeof SuppressedError === "function" ? SuppressedError : function(e, s, m, _) {
30
- return _ = Error(m), _.name = "SuppressedError", _.error = e, _.suppressed = s, _;
31
- };
32
- var fail = (e) => error = hasError ? new E(e, error, "An error was suppressed during disposal") : (hasError = true, e);
33
- var next = (it) => {
34
- while (it = stack.pop()) {
35
- try {
36
- var result = it[1] && it[1].call(it[2]);
37
- if (it[0]) return Promise.resolve(result).then(next, (e) => (fail(e), next()));
38
- } catch (e) {
39
- fail(e);
40
- }
41
- }
42
- if (hasError) throw error;
43
- };
44
- return next();
45
- };
46
- import {
47
- WasmArena,
48
- WasmMemoryError
49
- } from "../wasi-memory.js";
50
- function readTagsWithWasi(audioBuffer, wasiModule) {
51
- var _stack = [];
52
- try {
53
- const arena = __using(_stack, new WasmArena(wasiModule));
54
- const inputBuf = arena.allocBuffer(audioBuffer);
55
- const outSizePtr = arena.allocUint32();
56
- const resultPtr = wasiModule.tl_read_tags(
57
- 0,
58
- inputBuf.ptr,
59
- inputBuf.size,
60
- outSizePtr.ptr
61
- );
62
- if (resultPtr === 0) {
63
- const errorCode = wasiModule.tl_get_last_error_code();
64
- throw new WasmMemoryError(
65
- `error code ${errorCode}. Buffer size: ${audioBuffer.length} bytes`,
66
- "read tags",
67
- errorCode
68
- );
69
- }
70
- const outSize = outSizePtr.readUint32();
71
- const u8 = new Uint8Array(wasiModule.memory.buffer);
72
- const result = new Uint8Array(u8.slice(resultPtr, resultPtr + outSize));
73
- wasiModule.free(resultPtr);
74
- return result;
75
- } catch (_) {
76
- var _error = _, _hasError = true;
77
- } finally {
78
- __callDispose(_stack, _error, _hasError);
79
- }
80
- }
81
- export {
82
- readTagsWithWasi
83
- };
@@ -1,6 +0,0 @@
1
- export { WasmerExecutionError, WasmerInitError, WasmerLoadError, } from "./types.js";
2
- export type { WasiModule, WasmerLoaderConfig } from "./types.js";
3
- export { initializeWasmer, isWasmerAvailable } from "./initialization.js";
4
- export { loadWasmerWasi } from "./loader.js";
5
- export { readTagsWithWasi } from "./high-level-api.js";
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/runtime/wasmer-sdk-loader/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,17 +0,0 @@
1
- import {
2
- WasmerExecutionError,
3
- WasmerInitError,
4
- WasmerLoadError
5
- } from "./types.js";
6
- import { initializeWasmer, isWasmerAvailable } from "./initialization.js";
7
- import { loadWasmerWasi } from "./loader.js";
8
- import { readTagsWithWasi } from "./high-level-api.js";
9
- export {
10
- WasmerExecutionError,
11
- WasmerInitError,
12
- WasmerLoadError,
13
- initializeWasmer,
14
- isWasmerAvailable,
15
- loadWasmerWasi,
16
- readTagsWithWasi
17
- };
@@ -1,16 +0,0 @@
1
- /**
2
- * @fileoverview Wasmer SDK initialization and WASM binary loading
3
- */
4
- /**
5
- * Initialize Wasmer SDK (must be called once before any Wasmer APIs)
6
- */
7
- export declare function initializeWasmer(useInline?: boolean): Promise<void>;
8
- /**
9
- * Load WASM binary from file or URL
10
- */
11
- export declare function loadWasmBinary(path: string): Promise<Uint8Array>;
12
- /**
13
- * Check if Wasmer SDK is available and can be initialized
14
- */
15
- export declare function isWasmerAvailable(): Promise<boolean>;
16
- //# sourceMappingURL=initialization.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"initialization.d.ts","sourceRoot":"","sources":["../../../../src/runtime/wasmer-sdk-loader/initialization.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBvE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAatE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAO1D"}
@@ -1,55 +0,0 @@
1
- import { init } from "@wasmer/sdk";
2
- import { WasmerInitError } from "./types.js";
3
- import {
4
- errorMessage,
5
- TagLibInitializationError
6
- } from "../../errors/classes.js";
7
- let isInitialized = false;
8
- async function initializeWasmer(useInline = false) {
9
- if (isInitialized) return;
10
- try {
11
- if (useInline) {
12
- try {
13
- const wasmInline = await import("@wasmer/sdk/wasm-inline");
14
- await init({ module: wasmInline.default || wasmInline });
15
- } catch {
16
- await init();
17
- }
18
- } else {
19
- await init();
20
- }
21
- isInitialized = true;
22
- } catch (error) {
23
- throw new WasmerInitError(
24
- `Failed to initialize Wasmer SDK: ${errorMessage(error)}`,
25
- error
26
- );
27
- }
28
- }
29
- async function loadWasmBinary(path) {
30
- if (path.startsWith("http://") || path.startsWith("https://")) {
31
- const response = await fetch(path);
32
- if (!response.ok) {
33
- throw new TagLibInitializationError(
34
- `Failed to fetch WASM: ${response.statusText}`
35
- );
36
- }
37
- return new Uint8Array(await response.arrayBuffer());
38
- } else {
39
- const { readFileData } = await import("../../utils/file.js");
40
- return await readFileData(path);
41
- }
42
- }
43
- async function isWasmerAvailable() {
44
- try {
45
- await initializeWasmer();
46
- return true;
47
- } catch {
48
- return false;
49
- }
50
- }
51
- export {
52
- initializeWasmer,
53
- isWasmerAvailable,
54
- loadWasmBinary
55
- };
@@ -1,9 +0,0 @@
1
- /**
2
- * @fileoverview Main Wasmer WASI loader function
3
- */
4
- import type { WasiModule, WasmerLoaderConfig } from "./types.js";
5
- /**
6
- * Load WASI module using Wasmer SDK
7
- */
8
- export declare function loadWasmerWasi(config?: WasmerLoaderConfig): Promise<WasiModule>;
9
- //# sourceMappingURL=loader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../src/runtime/wasmer-sdk-loader/loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAQjE;;GAEG;AACH,wBAAsB,cAAc,CAClC,MAAM,GAAE,kBAAuB,GAC9B,OAAO,CAAC,UAAU,CAAC,CAgDrB"}