taglib-wasm 1.1.0 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.browser.js +121 -57
- package/dist/simple.browser.js +121 -57
- package/dist/src/runtime/unified-loader/module-loading.d.ts.map +1 -1
- package/dist/src/runtime/unified-loader/module-loading.js +22 -1
- package/dist/src/runtime/wasi-adapter/adapter.d.ts +0 -2
- package/dist/src/runtime/wasi-adapter/adapter.d.ts.map +1 -1
- package/dist/src/runtime/wasi-adapter/adapter.js +0 -12
- package/dist/src/runtime/wasi-adapter/file-handle.d.ts +6 -4
- package/dist/src/runtime/wasi-adapter/file-handle.d.ts.map +1 -1
- package/dist/src/runtime/wasi-adapter/file-handle.js +33 -53
- package/dist/src/taglib/audio-file-base.d.ts.map +1 -1
- package/dist/src/taglib/audio-file-base.js +25 -42
- package/dist/src/taglib/audio-file-impl.d.ts.map +1 -1
- package/dist/src/taglib/audio-file-impl.js +4 -12
- package/dist/src/taglib/embind-adapter.d.ts +51 -0
- package/dist/src/taglib/embind-adapter.d.ts.map +1 -0
- package/dist/src/taglib/embind-adapter.js +57 -0
- package/dist/src/taglib/taglib-class.d.ts.map +1 -1
- package/dist/src/taglib/taglib-class.js +30 -2
- package/dist/src/types/audio-formats.d.ts +2 -0
- package/dist/src/types/audio-formats.d.ts.map +1 -1
- package/dist/src/types/tags.d.ts +14 -0
- package/dist/src/types/tags.d.ts.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/wasm.d.ts +3 -37
- package/dist/src/wasm.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-handle.d.ts","sourceRoot":"","sources":["../../../../src/runtime/wasi-adapter/file-handle.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"file-handle.d.ts","sourceRoot":"","sources":["../../../../src/runtime/wasi-adapter/file-handle.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAEV,eAAe,EAEhB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAqDhE,qBAAa,cAAe,YAAW,UAAU;IAC/C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,SAAS,CAAS;gBAEd,UAAU,EAAE,UAAU;IAIlC,OAAO,CAAC,iBAAiB;IAQzB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAW3C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAWnC,OAAO,IAAI,OAAO;IAMlB,IAAI,IAAI,OAAO;IAqBf,UAAU,IAAI,YAAY;IAc1B,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAK7C,kBAAkB,IAAI,eAAe,GAAG,IAAI;IA4B5C,SAAS,IAAI,MAAM;IA2DnB,OAAO,CAAC,cAAc;IAiBtB,SAAS,IAAI,UAAU;IAKvB,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAuBzC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI;IAgBpD,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAOhC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAc7C,KAAK,IAAI,OAAO;IAehB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAK/B,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK5C,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAShC,WAAW,IAAI,UAAU,EAAE;IAK3B,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI;IAKzC,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAOrC,cAAc,IAAI,IAAI;IAKtB,UAAU,IAAI;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE;IAOlE,UAAU,CACR,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,GAC9D,IAAI;IAaP,OAAO,IAAI,IAAI;CAKhB"}
|
|
@@ -43,6 +43,10 @@ const NUMERIC_FIELD_ALIASES = {
|
|
|
43
43
|
date: "year",
|
|
44
44
|
trackNumber: "track"
|
|
45
45
|
};
|
|
46
|
+
function firstString(v) {
|
|
47
|
+
if (Array.isArray(v)) return v[0] ?? "";
|
|
48
|
+
return v || "";
|
|
49
|
+
}
|
|
46
50
|
class WasiFileHandle {
|
|
47
51
|
constructor(wasiModule) {
|
|
48
52
|
__publicField(this, "wasi");
|
|
@@ -95,67 +99,43 @@ class WasiFileHandle {
|
|
|
95
99
|
}
|
|
96
100
|
return false;
|
|
97
101
|
}
|
|
98
|
-
|
|
102
|
+
getTagData() {
|
|
99
103
|
this.checkNotDestroyed();
|
|
100
|
-
|
|
101
|
-
return this.createTagWrapper({});
|
|
102
|
-
}
|
|
103
|
-
return this.createTagWrapper(this.tagData);
|
|
104
|
-
}
|
|
105
|
-
createTagWrapper(data) {
|
|
106
|
-
const firstString = (v) => {
|
|
107
|
-
if (Array.isArray(v)) return v[0] ?? "";
|
|
108
|
-
return v || "";
|
|
109
|
-
};
|
|
104
|
+
const d = this.tagData ?? {};
|
|
110
105
|
return {
|
|
111
|
-
title:
|
|
112
|
-
artist:
|
|
113
|
-
album:
|
|
114
|
-
comment:
|
|
115
|
-
genre:
|
|
116
|
-
year:
|
|
117
|
-
track:
|
|
118
|
-
setTitle: (value) => {
|
|
119
|
-
this.tagData = { ...this.tagData, title: value };
|
|
120
|
-
},
|
|
121
|
-
setArtist: (value) => {
|
|
122
|
-
this.tagData = { ...this.tagData, artist: value };
|
|
123
|
-
},
|
|
124
|
-
setAlbum: (value) => {
|
|
125
|
-
this.tagData = { ...this.tagData, album: value };
|
|
126
|
-
},
|
|
127
|
-
setComment: (value) => {
|
|
128
|
-
this.tagData = { ...this.tagData, comment: value };
|
|
129
|
-
},
|
|
130
|
-
setGenre: (value) => {
|
|
131
|
-
this.tagData = { ...this.tagData, genre: value };
|
|
132
|
-
},
|
|
133
|
-
setYear: (value) => {
|
|
134
|
-
this.tagData = { ...this.tagData, year: value };
|
|
135
|
-
},
|
|
136
|
-
setTrack: (value) => {
|
|
137
|
-
this.tagData = { ...this.tagData, track: value };
|
|
138
|
-
}
|
|
106
|
+
title: firstString(d.title),
|
|
107
|
+
artist: firstString(d.artist),
|
|
108
|
+
album: firstString(d.album),
|
|
109
|
+
comment: firstString(d.comment),
|
|
110
|
+
genre: firstString(d.genre),
|
|
111
|
+
year: d.year || 0,
|
|
112
|
+
track: d.track || 0
|
|
139
113
|
};
|
|
140
114
|
}
|
|
115
|
+
setTagData(data) {
|
|
116
|
+
this.checkNotDestroyed();
|
|
117
|
+
this.tagData = { ...this.tagData, ...data };
|
|
118
|
+
}
|
|
141
119
|
getAudioProperties() {
|
|
142
120
|
this.checkNotDestroyed();
|
|
143
121
|
if (!this.tagData || !("sampleRate" in this.tagData)) return null;
|
|
144
|
-
const
|
|
122
|
+
const d = this.tagData;
|
|
123
|
+
const containerFormat = d.containerFormat || "unknown";
|
|
124
|
+
const mpegVersion = d.mpegVersion ?? 0;
|
|
125
|
+
const formatVersion = d.formatVersion ?? 0;
|
|
145
126
|
return {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
bitrate:
|
|
149
|
-
sampleRate:
|
|
150
|
-
channels:
|
|
151
|
-
bitsPerSample:
|
|
152
|
-
codec:
|
|
153
|
-
containerFormat
|
|
154
|
-
isLossless:
|
|
155
|
-
mpegVersion
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
formatVersion: () => data.formatVersion ?? 0
|
|
127
|
+
duration: d.length ?? 0,
|
|
128
|
+
durationMs: d.lengthMs ?? 0,
|
|
129
|
+
bitrate: d.bitrate ?? 0,
|
|
130
|
+
sampleRate: d.sampleRate ?? 0,
|
|
131
|
+
channels: d.channels ?? 0,
|
|
132
|
+
bitsPerSample: d.bitsPerSample ?? 0,
|
|
133
|
+
codec: d.codec || "unknown",
|
|
134
|
+
containerFormat,
|
|
135
|
+
isLossless: d.isLossless ?? false,
|
|
136
|
+
...mpegVersion > 0 ? { mpegVersion, mpegLayer: d.mpegLayer ?? 0 } : {},
|
|
137
|
+
...containerFormat === "MP4" || containerFormat === "ASF" ? { isEncrypted: d.isEncrypted ?? false } : {},
|
|
138
|
+
...formatVersion > 0 ? { formatVersion } : {}
|
|
159
139
|
};
|
|
160
140
|
}
|
|
161
141
|
getFormat() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audio-file-base.d.ts","sourceRoot":"","sources":["../../../src/taglib/audio-file-base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"audio-file-base.d.ts","sourceRoot":"","sources":["../../../src/taglib/audio-file-base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,KAAK,EACV,eAAe,EACf,QAAQ,EACR,WAAW,EACX,WAAW,EACZ,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE;;;;;GAKG;AACH,8BAAsB,iBAAiB;IASnC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY;IARzC,SAAS,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IACxC,SAAS,CAAC,qBAAqB,EAAE,eAAe,GAAG,IAAI,CAAQ;IAC/D,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IACvC,SAAS,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,CAAC;IACpE,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAS;IAC7C,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,WAAW,CAAC;gBAG/B,MAAM,EAAE,YAAY,EACvC,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;IASlC,SAAS,KAAK,MAAM,IAAI,UAAU,CAKjC;IAED,SAAS,IAAI,QAAQ;IAIrB,QAAQ,CAAC,CAAC,SAAS,QAAQ,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,IAAI,cAAc,CAAC,CAAC,CAAC;IAIlE,GAAG,IAAI,UAAU;IAgEjB,eAAe,IAAI,eAAe,GAAG,SAAS;IAO9C,UAAU,IAAI,WAAW;IAIzB,aAAa,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI;IAQ5C,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAK5C,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7C,KAAK,IAAI,OAAO;IAIhB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAQ3C,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAO5C,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAOhC,OAAO,IAAI,OAAO;IAIlB,OAAO,IAAI,IAAI;IAQf,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;CAGzB"}
|
|
@@ -31,61 +31,63 @@ class BaseAudioFileImpl {
|
|
|
31
31
|
return this.getFormat() === format;
|
|
32
32
|
}
|
|
33
33
|
tag() {
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
throw new MetadataError(
|
|
37
|
-
"read",
|
|
38
|
-
"Tag may be corrupted or format not fully supported"
|
|
39
|
-
);
|
|
40
|
-
}
|
|
34
|
+
const handle = this.handle;
|
|
35
|
+
let data = handle.getTagData();
|
|
41
36
|
const tag = {
|
|
42
37
|
get title() {
|
|
43
|
-
return
|
|
38
|
+
return data.title;
|
|
44
39
|
},
|
|
45
40
|
get artist() {
|
|
46
|
-
return
|
|
41
|
+
return data.artist;
|
|
47
42
|
},
|
|
48
43
|
get album() {
|
|
49
|
-
return
|
|
44
|
+
return data.album;
|
|
50
45
|
},
|
|
51
46
|
get comment() {
|
|
52
|
-
return
|
|
47
|
+
return data.comment;
|
|
53
48
|
},
|
|
54
49
|
get genre() {
|
|
55
|
-
return
|
|
50
|
+
return data.genre;
|
|
56
51
|
},
|
|
57
52
|
get year() {
|
|
58
|
-
return
|
|
53
|
+
return data.year;
|
|
59
54
|
},
|
|
60
55
|
get track() {
|
|
61
|
-
return
|
|
56
|
+
return data.track;
|
|
62
57
|
},
|
|
63
58
|
setTitle: (value) => {
|
|
64
|
-
|
|
59
|
+
handle.setTagData({ title: value });
|
|
60
|
+
data = handle.getTagData();
|
|
65
61
|
return tag;
|
|
66
62
|
},
|
|
67
63
|
setArtist: (value) => {
|
|
68
|
-
|
|
64
|
+
handle.setTagData({ artist: value });
|
|
65
|
+
data = handle.getTagData();
|
|
69
66
|
return tag;
|
|
70
67
|
},
|
|
71
68
|
setAlbum: (value) => {
|
|
72
|
-
|
|
69
|
+
handle.setTagData({ album: value });
|
|
70
|
+
data = handle.getTagData();
|
|
73
71
|
return tag;
|
|
74
72
|
},
|
|
75
73
|
setComment: (value) => {
|
|
76
|
-
|
|
74
|
+
handle.setTagData({ comment: value });
|
|
75
|
+
data = handle.getTagData();
|
|
77
76
|
return tag;
|
|
78
77
|
},
|
|
79
78
|
setGenre: (value) => {
|
|
80
|
-
|
|
79
|
+
handle.setTagData({ genre: value });
|
|
80
|
+
data = handle.getTagData();
|
|
81
81
|
return tag;
|
|
82
82
|
},
|
|
83
83
|
setYear: (value) => {
|
|
84
|
-
|
|
84
|
+
handle.setTagData({ year: value });
|
|
85
|
+
data = handle.getTagData();
|
|
85
86
|
return tag;
|
|
86
87
|
},
|
|
87
88
|
setTrack: (value) => {
|
|
88
|
-
|
|
89
|
+
handle.setTagData({ track: value });
|
|
90
|
+
data = handle.getTagData();
|
|
89
91
|
return tag;
|
|
90
92
|
}
|
|
91
93
|
};
|
|
@@ -93,28 +95,9 @@ class BaseAudioFileImpl {
|
|
|
93
95
|
}
|
|
94
96
|
audioProperties() {
|
|
95
97
|
if (!this.cachedAudioProperties) {
|
|
96
|
-
|
|
97
|
-
if (!propsWrapper) {
|
|
98
|
-
return void 0;
|
|
99
|
-
}
|
|
100
|
-
const containerFormat = propsWrapper.containerFormat() || "unknown";
|
|
101
|
-
const mpegVersion = propsWrapper.mpegVersion();
|
|
102
|
-
const formatVersion = propsWrapper.formatVersion();
|
|
103
|
-
this.cachedAudioProperties = {
|
|
104
|
-
duration: propsWrapper.lengthInSeconds(),
|
|
105
|
-
bitrate: propsWrapper.bitrate(),
|
|
106
|
-
sampleRate: propsWrapper.sampleRate(),
|
|
107
|
-
channels: propsWrapper.channels(),
|
|
108
|
-
bitsPerSample: propsWrapper.bitsPerSample(),
|
|
109
|
-
codec: propsWrapper.codec() || "unknown",
|
|
110
|
-
containerFormat,
|
|
111
|
-
isLossless: propsWrapper.isLossless(),
|
|
112
|
-
...mpegVersion > 0 ? { mpegVersion, mpegLayer: propsWrapper.mpegLayer() } : {},
|
|
113
|
-
...containerFormat === "MP4" || containerFormat === "ASF" ? { isEncrypted: propsWrapper.isEncrypted() } : {},
|
|
114
|
-
...formatVersion > 0 ? { formatVersion } : {}
|
|
115
|
-
};
|
|
98
|
+
this.cachedAudioProperties = this.handle.getAudioProperties() ?? null;
|
|
116
99
|
}
|
|
117
|
-
return this.cachedAudioProperties;
|
|
100
|
+
return this.cachedAudioProperties ?? void 0;
|
|
118
101
|
}
|
|
119
102
|
properties() {
|
|
120
103
|
return remapKeysFromTagLib(this.handle.getProperties());
|
|
@@ -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;
|
|
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;AAoBzD;;;;;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;IA+D9C,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"}
|
|
@@ -6,6 +6,7 @@ import { FileOperationError, InvalidFormatError } from "../errors.js";
|
|
|
6
6
|
import { readFileData } from "../utils/file.js";
|
|
7
7
|
import { writeFileData } from "../utils/write.js";
|
|
8
8
|
import { BaseAudioFileImpl } from "./audio-file-base.js";
|
|
9
|
+
import { wrapEmbindHandle } from "./embind-adapter.js";
|
|
9
10
|
let _nodeFs;
|
|
10
11
|
function readFileSync(path) {
|
|
11
12
|
if (typeof Deno !== "undefined") return Deno.readFileSync(path);
|
|
@@ -64,7 +65,8 @@ class AudioFileImpl extends BaseAudioFileImpl {
|
|
|
64
65
|
);
|
|
65
66
|
}
|
|
66
67
|
if (this.isPartiallyLoaded && this.originalSource) {
|
|
67
|
-
const
|
|
68
|
+
const rawFullHandle = this.module.createFileHandle();
|
|
69
|
+
const fullFileHandle = this.module.isWasi ? rawFullHandle : wrapEmbindHandle(rawFullHandle);
|
|
68
70
|
try {
|
|
69
71
|
const success = await (async () => {
|
|
70
72
|
const data = await readFileData(this.originalSource);
|
|
@@ -75,17 +77,7 @@ class AudioFileImpl extends BaseAudioFileImpl {
|
|
|
75
77
|
"Failed to load full audio file for saving"
|
|
76
78
|
);
|
|
77
79
|
}
|
|
78
|
-
|
|
79
|
-
const fullTag = fullFileHandle.getTag();
|
|
80
|
-
if (partialTag && fullTag) {
|
|
81
|
-
fullTag.setTitle(partialTag.title());
|
|
82
|
-
fullTag.setArtist(partialTag.artist());
|
|
83
|
-
fullTag.setAlbum(partialTag.album());
|
|
84
|
-
fullTag.setComment(partialTag.comment());
|
|
85
|
-
fullTag.setGenre(partialTag.genre());
|
|
86
|
-
fullTag.setYear(partialTag.year());
|
|
87
|
-
fullTag.setTrack(partialTag.track());
|
|
88
|
-
}
|
|
80
|
+
fullFileHandle.setTagData(this.handle.getTagData());
|
|
89
81
|
fullFileHandle.setProperties(this.handle.getProperties());
|
|
90
82
|
fullFileHandle.setPictures(this.handle.getPictures());
|
|
91
83
|
if (!fullFileHandle.save()) {
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Adapts Embind-generated FileHandle to the data-oriented interface.
|
|
3
|
+
*
|
|
4
|
+
* Embind objects store methods on the prototype, so `{ ...raw }` won't copy them.
|
|
5
|
+
* A Proxy forwards all property access to the raw Embind object by default,
|
|
6
|
+
* overriding only getTagData, setTagData, and getAudioProperties.
|
|
7
|
+
*/
|
|
8
|
+
import type { FileHandle } from "../wasm.js";
|
|
9
|
+
/** @internal Embind-generated TagWrapper — methods on C++ prototype. */
|
|
10
|
+
interface EmbindTagWrapper {
|
|
11
|
+
title(): string;
|
|
12
|
+
artist(): string;
|
|
13
|
+
album(): string;
|
|
14
|
+
comment(): string;
|
|
15
|
+
genre(): string;
|
|
16
|
+
year(): number;
|
|
17
|
+
track(): number;
|
|
18
|
+
setTitle(v: string): void;
|
|
19
|
+
setArtist(v: string): void;
|
|
20
|
+
setAlbum(v: string): void;
|
|
21
|
+
setComment(v: string): void;
|
|
22
|
+
setGenre(v: string): void;
|
|
23
|
+
setYear(v: number): void;
|
|
24
|
+
setTrack(v: number): void;
|
|
25
|
+
}
|
|
26
|
+
/** @internal Embind-generated AudioPropertiesWrapper — methods on C++ prototype. */
|
|
27
|
+
interface EmbindAudioPropertiesWrapper {
|
|
28
|
+
lengthInSeconds(): number;
|
|
29
|
+
lengthInMilliseconds(): number;
|
|
30
|
+
bitrate(): number;
|
|
31
|
+
sampleRate(): number;
|
|
32
|
+
channels(): number;
|
|
33
|
+
bitsPerSample(): number;
|
|
34
|
+
codec(): string;
|
|
35
|
+
containerFormat(): string;
|
|
36
|
+
isLossless(): boolean;
|
|
37
|
+
mpegVersion(): number;
|
|
38
|
+
mpegLayer(): number;
|
|
39
|
+
isEncrypted(): boolean;
|
|
40
|
+
formatVersion(): number;
|
|
41
|
+
}
|
|
42
|
+
/** @internal The raw Embind FileHandle before adaptation. */
|
|
43
|
+
export interface EmbindFileHandle {
|
|
44
|
+
getTag(): EmbindTagWrapper;
|
|
45
|
+
getAudioProperties(): EmbindAudioPropertiesWrapper | null;
|
|
46
|
+
[key: string]: unknown;
|
|
47
|
+
}
|
|
48
|
+
/** @internal Wrap an Embind FileHandle with a Proxy for the data-oriented interface. */
|
|
49
|
+
export declare function wrapEmbindHandle(raw: EmbindFileHandle): FileHandle;
|
|
50
|
+
export {};
|
|
51
|
+
//# sourceMappingURL=embind-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embind-adapter.d.ts","sourceRoot":"","sources":["../../../src/taglib/embind-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,wEAAwE;AACxE,UAAU,gBAAgB;IACxB,KAAK,IAAI,MAAM,CAAC;IAChB,MAAM,IAAI,MAAM,CAAC;IACjB,KAAK,IAAI,MAAM,CAAC;IAChB,OAAO,IAAI,MAAM,CAAC;IAClB,KAAK,IAAI,MAAM,CAAC;IAChB,IAAI,IAAI,MAAM,CAAC;IACf,KAAK,IAAI,MAAM,CAAC;IAChB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,oFAAoF;AACpF,UAAU,4BAA4B;IACpC,eAAe,IAAI,MAAM,CAAC;IAC1B,oBAAoB,IAAI,MAAM,CAAC;IAC/B,OAAO,IAAI,MAAM,CAAC;IAClB,UAAU,IAAI,MAAM,CAAC;IACrB,QAAQ,IAAI,MAAM,CAAC;IACnB,aAAa,IAAI,MAAM,CAAC;IACxB,KAAK,IAAI,MAAM,CAAC;IAChB,eAAe,IAAI,MAAM,CAAC;IAC1B,UAAU,IAAI,OAAO,CAAC;IACtB,WAAW,IAAI,MAAM,CAAC;IACtB,SAAS,IAAI,MAAM,CAAC;IACpB,WAAW,IAAI,OAAO,CAAC;IACvB,aAAa,IAAI,MAAM,CAAC;CACzB;AAED,6DAA6D;AAC7D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,IAAI,gBAAgB,CAAC;IAC3B,kBAAkB,IAAI,4BAA4B,GAAG,IAAI,CAAC;IAC1D,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,wFAAwF;AACxF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,GAAG,UAAU,CAyDlE"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
function wrapEmbindHandle(raw) {
|
|
2
|
+
const overrides = {
|
|
3
|
+
getTagData() {
|
|
4
|
+
const tw = raw.getTag();
|
|
5
|
+
return {
|
|
6
|
+
title: tw.title(),
|
|
7
|
+
artist: tw.artist(),
|
|
8
|
+
album: tw.album(),
|
|
9
|
+
comment: tw.comment(),
|
|
10
|
+
genre: tw.genre(),
|
|
11
|
+
year: tw.year(),
|
|
12
|
+
track: tw.track()
|
|
13
|
+
};
|
|
14
|
+
},
|
|
15
|
+
setTagData(data) {
|
|
16
|
+
const tw = raw.getTag();
|
|
17
|
+
if (data.title !== void 0) tw.setTitle(data.title);
|
|
18
|
+
if (data.artist !== void 0) tw.setArtist(data.artist);
|
|
19
|
+
if (data.album !== void 0) tw.setAlbum(data.album);
|
|
20
|
+
if (data.comment !== void 0) tw.setComment(data.comment);
|
|
21
|
+
if (data.genre !== void 0) tw.setGenre(data.genre);
|
|
22
|
+
if (data.year !== void 0) tw.setYear(data.year);
|
|
23
|
+
if (data.track !== void 0) tw.setTrack(data.track);
|
|
24
|
+
},
|
|
25
|
+
getAudioProperties() {
|
|
26
|
+
const pw = raw.getAudioProperties();
|
|
27
|
+
if (!pw) return null;
|
|
28
|
+
const containerFormat = pw.containerFormat() || "unknown";
|
|
29
|
+
const mpegVersion = pw.mpegVersion();
|
|
30
|
+
const formatVersion = pw.formatVersion();
|
|
31
|
+
return {
|
|
32
|
+
duration: pw.lengthInSeconds(),
|
|
33
|
+
durationMs: pw.lengthInMilliseconds(),
|
|
34
|
+
bitrate: pw.bitrate(),
|
|
35
|
+
sampleRate: pw.sampleRate(),
|
|
36
|
+
channels: pw.channels(),
|
|
37
|
+
bitsPerSample: pw.bitsPerSample(),
|
|
38
|
+
codec: pw.codec() || "unknown",
|
|
39
|
+
containerFormat,
|
|
40
|
+
isLossless: pw.isLossless(),
|
|
41
|
+
...mpegVersion > 0 ? { mpegVersion, mpegLayer: pw.mpegLayer() } : {},
|
|
42
|
+
...containerFormat === "MP4" || containerFormat === "ASF" ? { isEncrypted: pw.isEncrypted() } : {},
|
|
43
|
+
...formatVersion > 0 ? { formatVersion } : {}
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
return new Proxy(raw, {
|
|
48
|
+
get(target, prop, receiver) {
|
|
49
|
+
if (prop in overrides) return overrides[prop];
|
|
50
|
+
const value = Reflect.get(target, prop, receiver);
|
|
51
|
+
return typeof value === "function" ? value.bind(target) : value;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
export {
|
|
56
|
+
wrapEmbindHandle
|
|
57
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taglib-class.d.ts","sourceRoot":"","sources":["../../../src/taglib/taglib-class.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"taglib-class.d.ts","sourceRoot":"","sources":["../../../src/taglib/taglib-class.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA4B,UAAU,EAAE,MAAM,YAAY,CAAC;AACvE,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;AA4C3D;;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;IAiGrB;;;;;;;;;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,33 @@ 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
|
+
import { wrapEmbindHandle } from "./embind-adapter.js";
|
|
14
|
+
function toWasiPath(osPath) {
|
|
15
|
+
if (osPath.startsWith("\\\\") || osPath.startsWith("//")) {
|
|
16
|
+
throw new FileOperationError(
|
|
17
|
+
"read",
|
|
18
|
+
`UNC paths are not supported. Path: ${osPath}`
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
let p = osPath;
|
|
22
|
+
if (!p.startsWith("/") && !/^[A-Za-z]:/.test(p)) {
|
|
23
|
+
const g = globalThis;
|
|
24
|
+
const cwd = typeof Deno !== "undefined" ? Deno.cwd() : g.process?.cwd?.();
|
|
25
|
+
if (cwd) {
|
|
26
|
+
p = cwd.replace(/[/\\]+$/, "") + "/" + p;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
p = p.replaceAll("\\", "/");
|
|
30
|
+
const driveMatch = p.match(/^([A-Za-z]):\//);
|
|
31
|
+
if (driveMatch) {
|
|
32
|
+
p = `/${driveMatch[1].toUpperCase()}${p.slice(2)}`;
|
|
33
|
+
}
|
|
34
|
+
p = p.replace(/\/\.\//g, "/").replace(/\/+/g, "/");
|
|
35
|
+
if (!p.startsWith("/")) p = "/" + p;
|
|
36
|
+
return p;
|
|
37
|
+
}
|
|
12
38
|
class TagLib {
|
|
13
39
|
constructor(module) {
|
|
14
40
|
__publicField(this, "module");
|
|
@@ -46,7 +72,8 @@ class TagLib {
|
|
|
46
72
|
try {
|
|
47
73
|
const fh = fileHandle2;
|
|
48
74
|
if (fh.loadFromPath) {
|
|
49
|
-
const
|
|
75
|
+
const wasiPath = toWasiPath(actualInput);
|
|
76
|
+
const success = fh.loadFromPath(wasiPath);
|
|
50
77
|
if (!success) {
|
|
51
78
|
throw new InvalidFormatError(
|
|
52
79
|
`Failed to load audio file. Path: ${actualInput}`
|
|
@@ -83,7 +110,8 @@ class TagLib {
|
|
|
83
110
|
audioData.byteOffset + audioData.byteLength
|
|
84
111
|
)
|
|
85
112
|
) : audioData;
|
|
86
|
-
const
|
|
113
|
+
const rawHandle = this.module.createFileHandle();
|
|
114
|
+
const fileHandle = this.module.isWasi ? rawHandle : wrapEmbindHandle(rawHandle);
|
|
87
115
|
try {
|
|
88
116
|
const success = fileHandle.loadFromBuffer(uint8Array);
|
|
89
117
|
if (!success) {
|
|
@@ -73,6 +73,8 @@ export type AudioCodec = "AAC" | "ALAC" | "MP3" | "FLAC" | "Vorbis" | "Opus" | "
|
|
|
73
73
|
export interface AudioProperties {
|
|
74
74
|
/** Duration of the audio in seconds */
|
|
75
75
|
readonly duration: number;
|
|
76
|
+
/** Duration of the audio in milliseconds (more precise than `duration`) */
|
|
77
|
+
readonly durationMs?: number;
|
|
76
78
|
/** Bitrate in kb/s */
|
|
77
79
|
readonly bitrate: number;
|
|
78
80
|
/** Sample rate in Hz */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audio-formats.d.ts","sourceRoot":"","sources":["../../../src/types/audio-formats.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"audio-formats.d.ts","sourceRoot":"","sources":["../../../src/types/audio-formats.ts"],"names":[],"mappings":"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"}
|
package/dist/src/types/tags.d.ts
CHANGED
|
@@ -31,6 +31,20 @@ export interface Tag {
|
|
|
31
31
|
/** Track number */
|
|
32
32
|
readonly track?: number;
|
|
33
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Basic tag data as returned by the internal FileHandle interface.
|
|
36
|
+
* Single string values (not arrays) matching TagLib's C++ Tag accessors.
|
|
37
|
+
* @internal
|
|
38
|
+
*/
|
|
39
|
+
export interface BasicTagData {
|
|
40
|
+
title: string;
|
|
41
|
+
artist: string;
|
|
42
|
+
album: string;
|
|
43
|
+
comment: string;
|
|
44
|
+
genre: string;
|
|
45
|
+
year: number;
|
|
46
|
+
track: number;
|
|
47
|
+
}
|
|
34
48
|
/**
|
|
35
49
|
* Input type for writing tags. Accepts both single strings and arrays.
|
|
36
50
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../../src/types/tags.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../../src/types/tags.ts"],"names":[],"mappings":"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"}
|
package/dist/src/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "1.1.
|
|
1
|
+
export declare const VERSION = "1.1.2";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/src/version.js
CHANGED
package/dist/src/wasm.d.ts
CHANGED
|
@@ -49,8 +49,9 @@ export interface FileHandle {
|
|
|
49
49
|
getMP4Item(key: string): string;
|
|
50
50
|
setMP4Item(key: string, value: string): void;
|
|
51
51
|
removeMP4Item(key: string): void;
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
getTagData(): import("./types/tags.js").BasicTagData;
|
|
53
|
+
setTagData(data: Partial<import("./types/tags.js").BasicTagData>): void;
|
|
54
|
+
getAudioProperties(): import("./types.js").AudioProperties | null;
|
|
54
55
|
getBuffer(): Uint8Array;
|
|
55
56
|
getPictures(): RawPicture[];
|
|
56
57
|
setPictures(pictures: RawPicture[]): void;
|
|
@@ -68,37 +69,6 @@ export interface FileHandle {
|
|
|
68
69
|
}[]): void;
|
|
69
70
|
destroy(): void;
|
|
70
71
|
}
|
|
71
|
-
export interface TagWrapper {
|
|
72
|
-
title(): string;
|
|
73
|
-
artist(): string;
|
|
74
|
-
album(): string;
|
|
75
|
-
comment(): string;
|
|
76
|
-
genre(): string;
|
|
77
|
-
year(): number;
|
|
78
|
-
track(): number;
|
|
79
|
-
setTitle(value: string): void;
|
|
80
|
-
setArtist(value: string): void;
|
|
81
|
-
setAlbum(value: string): void;
|
|
82
|
-
setComment(value: string): void;
|
|
83
|
-
setGenre(value: string): void;
|
|
84
|
-
setYear(value: number): void;
|
|
85
|
-
setTrack(value: number): void;
|
|
86
|
-
}
|
|
87
|
-
export interface AudioPropertiesWrapper {
|
|
88
|
-
lengthInSeconds(): number;
|
|
89
|
-
lengthInMilliseconds(): number;
|
|
90
|
-
bitrate(): number;
|
|
91
|
-
sampleRate(): number;
|
|
92
|
-
channels(): number;
|
|
93
|
-
bitsPerSample(): number;
|
|
94
|
-
codec(): string;
|
|
95
|
-
containerFormat(): string;
|
|
96
|
-
isLossless(): boolean;
|
|
97
|
-
mpegVersion(): number;
|
|
98
|
-
mpegLayer(): number;
|
|
99
|
-
isEncrypted(): boolean;
|
|
100
|
-
formatVersion(): number;
|
|
101
|
-
}
|
|
102
72
|
/**
|
|
103
73
|
* TagLib WebAssembly module interface.
|
|
104
74
|
* Provides access to Embind classes and low-level C-style functions.
|
|
@@ -109,10 +79,6 @@ export interface TagLibModule extends Omit<EmscriptenModule, "then"> {
|
|
|
109
79
|
isWasi?: boolean;
|
|
110
80
|
/** @internal Embind FileHandle class constructor */
|
|
111
81
|
FileHandle: new () => FileHandle;
|
|
112
|
-
/** @internal Embind TagWrapper class constructor */
|
|
113
|
-
TagWrapper: new () => TagWrapper;
|
|
114
|
-
/** @internal Embind AudioPropertiesWrapper class constructor */
|
|
115
|
-
AudioPropertiesWrapper: new () => AudioPropertiesWrapper;
|
|
116
82
|
/** @internal Create a new file handle for audio file operations */
|
|
117
83
|
createFileHandle(): FileHandle;
|
|
118
84
|
/** @internal Embind function: returns TagLib version (e.g. "2.2.1") */
|
package/dist/src/wasm.d.ts.map
CHANGED
|
@@ -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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"}
|