echogarden 2.6.0 → 2.8.0

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 (153) hide show
  1. package/data/lexicons/heteronyms.en.json +6 -2
  2. package/data/lexicons/words.en.json +379 -19
  3. package/dist/alignment/SemanticTextAlignment.js +6 -7
  4. package/dist/alignment/SemanticTextAlignment.js.map +1 -1
  5. package/dist/api/Alignment.js +2 -2
  6. package/dist/api/Alignment.js.map +1 -1
  7. package/dist/api/Recognition.js +2 -2
  8. package/dist/api/Recognition.js.map +1 -1
  9. package/dist/api/SourceSeparation.js +1 -1
  10. package/dist/api/SpeechTranslation.js +2 -2
  11. package/dist/api/SpeechTranslation.js.map +1 -1
  12. package/dist/api/Synthesis.js +7 -7
  13. package/dist/api/Synthesis.js.map +1 -1
  14. package/dist/api/TimelineTranslationAlignment.js +2 -2
  15. package/dist/api/TimelineTranslationAlignment.js.map +1 -1
  16. package/dist/api/TranslationAlignment.js +2 -2
  17. package/dist/api/TranslationAlignment.js.map +1 -1
  18. package/dist/audio/AudioBufferConversion.d.ts +5 -6
  19. package/dist/audio/AudioBufferConversion.js +16 -248
  20. package/dist/audio/AudioBufferConversion.js.map +1 -1
  21. package/dist/audio/AudioPlayer.js +2 -2
  22. package/dist/audio/AudioPlayer.js.map +1 -1
  23. package/dist/audio/AudioRecorder.js +1 -1
  24. package/dist/audio/AudioRecorder.js.map +1 -1
  25. package/dist/audio/AudioUtilities.d.ts +2 -8
  26. package/dist/audio/AudioUtilities.js +4 -3
  27. package/dist/audio/AudioUtilities.js.map +1 -1
  28. package/dist/cli/CLI.js +4 -4
  29. package/dist/cli/CLI.js.map +1 -1
  30. package/dist/codecs/FFMpegTranscoder.d.ts +1 -4
  31. package/dist/codecs/TIMITCodec.js +1 -2
  32. package/dist/codecs/TIMITCodec.js.map +1 -1
  33. package/dist/denoising/RNNoise.js +5 -5
  34. package/dist/denoising/RNNoise.js.map +1 -1
  35. package/dist/dsp/FFT.js +13 -19
  36. package/dist/dsp/FFT.js.map +1 -1
  37. package/dist/dsp/Rubberband.js +5 -5
  38. package/dist/dsp/Rubberband.js.map +1 -1
  39. package/dist/dsp/Sonic.js +6 -6
  40. package/dist/dsp/Sonic.js.map +1 -1
  41. package/dist/dsp/SpeexResampler.js +11 -11
  42. package/dist/dsp/SpeexResampler.js.map +1 -1
  43. package/dist/encodings/Ascii.js +1 -1
  44. package/dist/encodings/Ascii.js.map +1 -1
  45. package/dist/encodings/Utf16.js +1 -1
  46. package/dist/encodings/Utf16.js.map +1 -1
  47. package/dist/encodings/Utf8.js +1 -1
  48. package/dist/encodings/Utf8.js.map +1 -1
  49. package/dist/nlp/EspeakPhonemizer.js +1 -1
  50. package/dist/nlp/EspeakPhonemizer.js.map +1 -1
  51. package/dist/nlp/Segmentation.d.ts +13 -10
  52. package/dist/nlp/Segmentation.js +129 -106
  53. package/dist/nlp/Segmentation.js.map +1 -1
  54. package/dist/nlp/TextNormalizer.js +74 -42
  55. package/dist/nlp/TextNormalizer.js.map +1 -1
  56. package/dist/recognition/AmazonTranscribeSTT.js +2 -2
  57. package/dist/recognition/AmazonTranscribeSTT.js.map +1 -1
  58. package/dist/recognition/SileroSTT.js +2 -2
  59. package/dist/recognition/SileroSTT.js.map +1 -1
  60. package/dist/recognition/WhisperSTT.js +4 -16
  61. package/dist/recognition/WhisperSTT.js.map +1 -1
  62. package/dist/subtitles/Subtitles.js +52 -7
  63. package/dist/subtitles/Subtitles.js.map +1 -1
  64. package/dist/synthesis/AwsPollyTTS.d.ts +1 -4
  65. package/dist/synthesis/CoquiServerTTS.d.ts +1 -4
  66. package/dist/synthesis/DeepgramTTS.d.ts +1 -4
  67. package/dist/synthesis/ElevenLabsTTS.d.ts +1 -4
  68. package/dist/synthesis/ElevenLabsTTS.js +11 -10
  69. package/dist/synthesis/ElevenLabsTTS.js.map +1 -1
  70. package/dist/synthesis/EspeakTTS.js +8 -8
  71. package/dist/synthesis/EspeakTTS.js.map +1 -1
  72. package/dist/synthesis/FliteTTS.d.ts +1 -4
  73. package/dist/synthesis/GnuSpeechTTS.d.ts +1 -7
  74. package/dist/synthesis/GoogleCloudTTS.d.ts +1 -4
  75. package/dist/synthesis/KokoroTTS.js +21 -10
  76. package/dist/synthesis/KokoroTTS.js.map +1 -1
  77. package/dist/synthesis/SapiTTS.js +1 -2
  78. package/dist/synthesis/SapiTTS.js.map +1 -1
  79. package/dist/synthesis/SvoxPicoTTS.js +25 -25
  80. package/dist/synthesis/SvoxPicoTTS.js.map +1 -1
  81. package/dist/text-translation/DeepLTextTranslation.js +4 -3
  82. package/dist/text-translation/DeepLTextTranslation.js.map +1 -1
  83. package/dist/text-translation/NLLBTextTranslation.js +7 -6
  84. package/dist/text-translation/NLLBTextTranslation.js.map +1 -1
  85. package/dist/utilities/StringUtilities.d.ts +1 -1
  86. package/dist/utilities/StringUtilities.js +5 -5
  87. package/dist/utilities/StringUtilities.js.map +1 -1
  88. package/dist/utilities/Timeline.d.ts +2 -3
  89. package/dist/utilities/Timeline.js +96 -147
  90. package/dist/utilities/Timeline.js.map +1 -1
  91. package/dist/utilities/WikipediaReader.js +3 -3
  92. package/dist/utilities/WikipediaReader.js.map +1 -1
  93. package/dist/voice-activity-detection/WebRtcVAD.js +4 -4
  94. package/dist/voice-activity-detection/WebRtcVAD.js.map +1 -1
  95. package/docs/Tasklist.md +1 -6
  96. package/package.json +13 -11
  97. package/src/alignment/SemanticTextAlignment.ts +6 -7
  98. package/src/api/Alignment.ts +2 -2
  99. package/src/api/Recognition.ts +2 -2
  100. package/src/api/SourceSeparation.ts +1 -1
  101. package/src/api/SpeechTranslation.ts +2 -2
  102. package/src/api/Synthesis.ts +7 -7
  103. package/src/api/TimelineTranslationAlignment.ts +2 -2
  104. package/src/api/TranslationAlignment.ts +2 -2
  105. package/src/audio/AudioBufferConversion.ts +17 -263
  106. package/src/audio/AudioPlayer.ts +3 -3
  107. package/src/audio/AudioRecorder.ts +1 -1
  108. package/src/audio/AudioUtilities.ts +5 -3
  109. package/src/cli/CLI.ts +4 -4
  110. package/src/codecs/TIMITCodec.ts +1 -2
  111. package/src/denoising/RNNoise.ts +5 -5
  112. package/src/dsp/FFT.ts +22 -19
  113. package/src/dsp/Rubberband.ts +5 -5
  114. package/src/dsp/Sonic.ts +6 -6
  115. package/src/dsp/SpeexResampler.ts +11 -11
  116. package/src/encodings/Ascii.ts +1 -1
  117. package/src/encodings/Utf16.ts +1 -1
  118. package/src/encodings/Utf8.ts +1 -1
  119. package/src/nlp/EspeakPhonemizer.ts +1 -1
  120. package/src/nlp/Segmentation.ts +146 -111
  121. package/src/nlp/TextNormalizer.ts +94 -52
  122. package/src/recognition/AmazonTranscribeSTT.ts +2 -2
  123. package/src/recognition/SileroSTT.ts +2 -2
  124. package/src/recognition/WhisperSTT.ts +4 -18
  125. package/src/subtitles/Subtitles.ts +69 -8
  126. package/src/synthesis/ElevenLabsTTS.ts +12 -11
  127. package/src/synthesis/EspeakTTS.ts +9 -8
  128. package/src/synthesis/KokoroTTS.ts +24 -12
  129. package/src/synthesis/SapiTTS.ts +1 -2
  130. package/src/synthesis/SvoxPicoTTS.ts +27 -25
  131. package/src/text-translation/DeepLTextTranslation.ts +4 -3
  132. package/src/text-translation/NLLBTextTranslation.ts +8 -6
  133. package/src/typings/Fillers.d.ts +0 -16
  134. package/src/utilities/StringUtilities.ts +5 -6
  135. package/src/utilities/Timeline.ts +100 -170
  136. package/src/utilities/WikipediaReader.ts +3 -3
  137. package/src/voice-activity-detection/WebRtcVAD.ts +5 -4
  138. package/dist/codecs/WaveCodec.d.ts +0 -19
  139. package/dist/codecs/WaveCodec.js +0 -224
  140. package/dist/codecs/WaveCodec.js.map +0 -1
  141. package/dist/nlp/CompromiseNLP.d.ts +0 -15
  142. package/dist/nlp/CompromiseNLP.js +0 -79
  143. package/dist/nlp/CompromiseNLP.js.map +0 -1
  144. package/dist/utilities/BinaryArrayConversion.d.ts +0 -14
  145. package/dist/utilities/BinaryArrayConversion.js +0 -92
  146. package/dist/utilities/BinaryArrayConversion.js.map +0 -1
  147. package/dist/utilities/WasmMemoryManager.d.ts +0 -153
  148. package/dist/utilities/WasmMemoryManager.js +0 -440
  149. package/dist/utilities/WasmMemoryManager.js.map +0 -1
  150. package/src/codecs/WaveCodec.ts +0 -281
  151. package/src/nlp/CompromiseNLP.ts +0 -119
  152. package/src/utilities/BinaryArrayConversion.ts +0 -117
  153. package/src/utilities/WasmMemoryManager.ts +0 -566
@@ -1,153 +0,0 @@
1
- import { TypedArray } from "../typings/TypedArray.js";
2
- export declare class WasmMemoryManager {
3
- wasmModule: any;
4
- private wasmAlloc;
5
- private wasmFree;
6
- private allocatedReferences;
7
- constructor(wasmModule: any, options?: WasmMemoryManagerOptions);
8
- allocInt8(): Int8Ref;
9
- wrapInt8(address: number): Int8Ref;
10
- allocUint8(): Uint8Ref;
11
- wrapUint8(address: number): Uint8Ref;
12
- allocInt16(): Int16Ref;
13
- wrapInt16(address: number): Int16Ref;
14
- allocUint16(): Uint16Ref;
15
- wrapUint16(address: number): Uint16Ref;
16
- allocInt32(): Int32Ref;
17
- wrapInt32(address: number): Int32Ref;
18
- allocUint32(): Uint32Ref;
19
- wrapUint32(address: number): Uint32Ref;
20
- allocPointer(): PointerRef;
21
- wrapPointer(address: number): PointerRef;
22
- allocFloat32(): Float64Ref;
23
- wrapFloat32(address: number): Float32Ref;
24
- allocFloat64(): Float64Ref;
25
- wrapFloat64(address: number): Float64Ref;
26
- allocInt8Array(length: number): Int8ArrayRef;
27
- wrapInt8Array(address: number, length: number): Int8ArrayRef;
28
- allocUint8Array(length: number): Uint8ArrayRef;
29
- wrapUint8Array(address: number, length: number): Uint8ArrayRef;
30
- allocInt16Array(length: number): Int16ArrayRef;
31
- wrapInt16Array(address: number, length: number): Int16ArrayRef;
32
- allocUint16Array(length: number): Uint16ArrayRef;
33
- wrapUint16Array(address: number, length: number): Uint16ArrayRef;
34
- allocInt32Array(length: number): Int32ArrayRef;
35
- wrapInt32Array(address: number, length: number): Int32ArrayRef;
36
- allocUint32Array(length: number): Uint32ArrayRef;
37
- wrapUint32Array(address: number, length: number): Uint32ArrayRef;
38
- allocFloat32Array(length: number): Float32ArrayRef;
39
- wrapFloat32Array(address: number, length: number): Float32ArrayRef;
40
- allocFloat64Array(length: number): Float64ArrayRef;
41
- wrapFloat64Array(address: number, length: number): Float64ArrayRef;
42
- allocNullTerminatedUtf8String(str: string): Uint8ArrayRef;
43
- wrapNullTerminatedUtf8String(address: number): NullTerminatedUtf8StringRef;
44
- private alloc;
45
- free(wasmReference: WasmRef): void;
46
- freeAll(): void;
47
- detach<T extends WasmRef>(wasmReference: T): T;
48
- }
49
- declare abstract class ValueRef<T extends number | string> {
50
- protected ptr: number;
51
- private readonly manager;
52
- protected get module(): any;
53
- constructor(ptr: number, manager: WasmMemoryManager);
54
- get value(): T;
55
- set value(newValue: T);
56
- abstract getValue(): T;
57
- abstract setValue(newValue: T): void;
58
- get address(): number;
59
- clear(): this;
60
- free(): void;
61
- detach(): this;
62
- clearAddress(): void;
63
- get isFreed(): boolean;
64
- protected assertNotFreed(): void;
65
- }
66
- export declare class Int8Ref extends ValueRef<number> {
67
- getValue(): number;
68
- setValue(newValue: number): void;
69
- }
70
- export declare class Uint8Ref extends ValueRef<number> {
71
- getValue(): number;
72
- setValue(newValue: number): void;
73
- }
74
- export declare class Int16Ref extends ValueRef<number> {
75
- getValue(): number;
76
- setValue(newValue: number): void;
77
- }
78
- export declare class Uint16Ref extends ValueRef<number> {
79
- getValue(): number;
80
- setValue(newValue: number): void;
81
- }
82
- export declare class Int32Ref extends ValueRef<number> {
83
- getValue(): number;
84
- setValue(newValue: number): void;
85
- }
86
- export declare class Uint32Ref extends ValueRef<number> {
87
- getValue(): number;
88
- setValue(newValue: number): void;
89
- }
90
- export declare class PointerRef extends Uint32Ref {
91
- }
92
- export declare class Float32Ref extends ValueRef<number> {
93
- getValue(): number;
94
- setValue(newValue: number): void;
95
- }
96
- export declare class Float64Ref extends ValueRef<number> {
97
- getValue(): number;
98
- setValue(newValue: number): void;
99
- }
100
- export declare class NullTerminatedUtf8StringRef extends ValueRef<string> {
101
- getValue(): string;
102
- setValue(newValue: string): void;
103
- }
104
- declare abstract class TypedArrayRef<T extends TypedArray> {
105
- protected ptr: number;
106
- readonly length: number;
107
- private readonly manager;
108
- get module(): any;
109
- constructor(ptr: number, length: number, manager: WasmMemoryManager);
110
- get view(): T;
111
- protected abstract getView(): T;
112
- slice(start?: number, end?: number): Int32Array<ArrayBuffer> | Uint8Array<ArrayBuffer> | Float32Array<ArrayBuffer> | Float64Array<ArrayBuffer> | Int8Array<ArrayBuffer> | Int16Array<ArrayBuffer> | Uint8ClampedArray<ArrayBuffer> | Uint16Array<ArrayBuffer> | Uint32Array<ArrayBuffer>;
113
- get address(): number;
114
- clear(): this;
115
- free(): void;
116
- clearAddress(): void;
117
- detach(): this;
118
- get isFreed(): boolean;
119
- protected assertNotFreed(): void;
120
- }
121
- export declare class Int8ArrayRef extends TypedArrayRef<Int8Array> {
122
- getView(): Int8Array;
123
- }
124
- export declare class Uint8ArrayRef extends TypedArrayRef<Uint8Array> {
125
- getView(): Uint8Array;
126
- readAsNullTerminatedUtf8String(): string;
127
- }
128
- export declare class Int16ArrayRef extends TypedArrayRef<Int16Array> {
129
- getView(): Int16Array;
130
- }
131
- export declare class Uint16ArrayRef extends TypedArrayRef<Uint16Array> {
132
- getView(): Uint16Array;
133
- }
134
- export declare class Int32ArrayRef extends TypedArrayRef<Int32Array> {
135
- getView(): Int32Array;
136
- }
137
- export declare class Uint32ArrayRef extends TypedArrayRef<Uint32Array> {
138
- getView(): Uint32Array;
139
- }
140
- export declare class Float32ArrayRef extends TypedArrayRef<Float32Array> {
141
- getView(): Float32Array;
142
- }
143
- export declare class Float64ArrayRef extends TypedArrayRef<Float64Array> {
144
- getView(): Float64Array;
145
- }
146
- export type WasmRef = ValueRef<number> | ValueRef<string> | TypedArrayRef<TypedArray>;
147
- export interface WasmMemoryManagerOptions {
148
- wasmAlloc?: WasmAllocMethod;
149
- wasmFree?: WasmFreeMethod;
150
- }
151
- export type WasmAllocMethod = (size: number) => number;
152
- export type WasmFreeMethod = (address: number) => void;
153
- export {};
@@ -1,440 +0,0 @@
1
- import { decodeUtf8, encodeUtf8 } from "../encodings/Utf8.js";
2
- import { concatUint8Arrays } from "./Utilities.js";
3
- export class WasmMemoryManager {
4
- wasmModule;
5
- wasmAlloc;
6
- wasmFree;
7
- allocatedReferences = new Set();
8
- constructor(wasmModule, options) {
9
- options = options ?? {};
10
- this.wasmModule = wasmModule;
11
- if (options.wasmAlloc) {
12
- this.wasmAlloc = options.wasmAlloc;
13
- }
14
- else {
15
- if (!wasmModule._malloc) {
16
- throw new Error(`Couldn't find a '_malloc' function in the module and no custom 'wasmAlloc' was provided in the options`);
17
- }
18
- this.wasmAlloc = wasmModule._malloc;
19
- }
20
- if (options.wasmFree) {
21
- this.wasmFree = options.wasmFree;
22
- }
23
- else {
24
- if (!wasmModule._free) {
25
- throw new Error(`Couldn't find a '_malloc' function in the module and no custom 'wasmFree' was provided in the options`);
26
- }
27
- this.wasmFree = wasmModule._free;
28
- }
29
- }
30
- allocInt8() {
31
- const address = this.alloc(1);
32
- return this.wrapInt8(address).clear();
33
- }
34
- wrapInt8(address) {
35
- const ref = new Int8Ref(address, this);
36
- this.allocatedReferences.add(ref);
37
- return ref;
38
- }
39
- allocUint8() {
40
- const address = this.alloc(1);
41
- return this.wrapUint8(address).clear();
42
- }
43
- wrapUint8(address) {
44
- const ref = new Uint8Ref(address, this);
45
- this.allocatedReferences.add(ref);
46
- return ref;
47
- }
48
- allocInt16() {
49
- const address = this.alloc(2);
50
- return this.wrapInt16(address).clear();
51
- }
52
- wrapInt16(address) {
53
- const ref = new Int16Ref(address, this);
54
- this.allocatedReferences.add(ref);
55
- return ref;
56
- }
57
- allocUint16() {
58
- const address = this.alloc(2);
59
- return this.wrapUint16(address).clear();
60
- }
61
- wrapUint16(address) {
62
- const ref = new Uint16Ref(address, this);
63
- this.allocatedReferences.add(ref);
64
- return ref;
65
- }
66
- allocInt32() {
67
- const address = this.alloc(4);
68
- return this.wrapInt32(address).clear();
69
- }
70
- wrapInt32(address) {
71
- const ref = new Int32Ref(address, this);
72
- this.allocatedReferences.add(ref);
73
- return ref;
74
- }
75
- allocUint32() {
76
- const address = this.alloc(4);
77
- return this.wrapUint32(address).clear();
78
- }
79
- wrapUint32(address) {
80
- const ref = new Uint32Ref(address, this);
81
- this.allocatedReferences.add(ref);
82
- return ref;
83
- }
84
- allocPointer() {
85
- const address = this.alloc(4);
86
- return this.wrapPointer(address).clear();
87
- }
88
- wrapPointer(address) {
89
- const ref = new PointerRef(address, this);
90
- this.allocatedReferences.add(ref);
91
- return ref;
92
- }
93
- allocFloat32() {
94
- const address = this.alloc(4);
95
- return this.wrapFloat64(address).clear();
96
- }
97
- wrapFloat32(address) {
98
- const ref = new Float32Ref(address, this);
99
- this.allocatedReferences.add(ref);
100
- return ref;
101
- }
102
- allocFloat64() {
103
- const address = this.alloc(8);
104
- return this.wrapFloat64(address).clear();
105
- }
106
- wrapFloat64(address) {
107
- const ref = new Float64Ref(address, this);
108
- this.allocatedReferences.add(ref);
109
- return ref;
110
- }
111
- // Allocate or wrap arrays
112
- allocInt8Array(length) {
113
- const address = this.alloc(length << 0);
114
- return this.wrapInt8Array(address, length).clear();
115
- }
116
- wrapInt8Array(address, length) {
117
- const ref = new Int8ArrayRef(address, length, this);
118
- this.allocatedReferences.add(ref);
119
- return ref;
120
- }
121
- allocUint8Array(length) {
122
- const address = this.alloc(length << 0);
123
- return this.wrapUint8Array(address, length).clear();
124
- }
125
- wrapUint8Array(address, length) {
126
- const ref = new Uint8ArrayRef(address, length, this);
127
- this.allocatedReferences.add(ref);
128
- return ref;
129
- }
130
- allocInt16Array(length) {
131
- const address = this.alloc(length << 1);
132
- return this.wrapInt16Array(address, length).clear();
133
- }
134
- wrapInt16Array(address, length) {
135
- const ref = new Int16ArrayRef(address, length, this);
136
- this.allocatedReferences.add(ref);
137
- return ref;
138
- }
139
- allocUint16Array(length) {
140
- const address = this.alloc(length << 1);
141
- return this.wrapUint16Array(address, length).clear();
142
- }
143
- wrapUint16Array(address, length) {
144
- const ref = new Uint16ArrayRef(address, length, this);
145
- this.allocatedReferences.add(ref);
146
- return ref;
147
- }
148
- allocInt32Array(length) {
149
- const address = this.alloc(length << 2);
150
- return this.wrapInt32Array(address, length).clear();
151
- }
152
- wrapInt32Array(address, length) {
153
- const ref = new Int32ArrayRef(address, length, this);
154
- this.allocatedReferences.add(ref);
155
- return ref;
156
- }
157
- allocUint32Array(length) {
158
- const address = this.alloc(length << 2);
159
- return this.wrapUint32Array(address, length).clear();
160
- }
161
- wrapUint32Array(address, length) {
162
- const ref = new Uint32ArrayRef(address, length, this);
163
- this.allocatedReferences.add(ref);
164
- return ref;
165
- }
166
- allocFloat32Array(length) {
167
- const address = this.alloc(length << 2);
168
- return this.wrapFloat32Array(address, length).clear();
169
- }
170
- wrapFloat32Array(address, length) {
171
- const ref = new Float32ArrayRef(address, length, this);
172
- this.allocatedReferences.add(ref);
173
- return ref;
174
- }
175
- allocFloat64Array(length) {
176
- const address = this.alloc(length << 3);
177
- return this.wrapFloat64Array(address, length).clear();
178
- }
179
- wrapFloat64Array(address, length) {
180
- const ref = new Float64ArrayRef(address, length, this);
181
- this.allocatedReferences.add(ref);
182
- return ref;
183
- }
184
- allocNullTerminatedUtf8String(str) {
185
- const strBuffer = concatUint8Arrays([encodeUtf8(str), new Uint8Array(1)]);
186
- const ref = this.allocUint8Array(strBuffer.length);
187
- ref.view.set(strBuffer);
188
- return ref;
189
- }
190
- wrapNullTerminatedUtf8String(address) {
191
- const ref = new NullTerminatedUtf8StringRef(address, this);
192
- this.allocatedReferences.add(ref);
193
- return ref;
194
- }
195
- alloc(size) {
196
- const ptr = this.wasmAlloc(size);
197
- return ptr;
198
- }
199
- free(wasmReference) {
200
- if (wasmReference.isFreed) {
201
- return;
202
- }
203
- this.wasmFree(wasmReference.address);
204
- this.allocatedReferences.delete(wasmReference);
205
- wasmReference.clearAddress();
206
- }
207
- freeAll() {
208
- for (const wasmReference of this.allocatedReferences) {
209
- this.free(wasmReference);
210
- }
211
- }
212
- detach(wasmReference) {
213
- this.allocatedReferences.delete(wasmReference);
214
- return wasmReference;
215
- }
216
- }
217
- class ValueRef {
218
- ptr;
219
- manager;
220
- get module() { return this.manager.wasmModule; }
221
- constructor(ptr, manager) {
222
- this.ptr = ptr;
223
- this.manager = manager;
224
- }
225
- get value() {
226
- this.assertNotFreed();
227
- return this.getValue();
228
- }
229
- set value(newValue) {
230
- this.assertNotFreed();
231
- this.setValue(newValue);
232
- }
233
- get address() {
234
- this.assertNotFreed();
235
- return this.ptr;
236
- }
237
- clear() {
238
- this.assertNotFreed();
239
- if (typeof this.value == 'number') {
240
- this.value = 0;
241
- }
242
- else if (typeof this.value == 'string') {
243
- throw new Error('Unimplemented');
244
- }
245
- return this;
246
- }
247
- free() {
248
- this.manager.free(this);
249
- }
250
- detach() {
251
- return this.manager.detach(this);
252
- }
253
- clearAddress() {
254
- this.ptr = 0;
255
- }
256
- get isFreed() { return this.ptr == 0; }
257
- assertNotFreed() {
258
- if (this.isFreed) {
259
- throw new Error('Attempt to read a freed WASM value reference.');
260
- }
261
- }
262
- }
263
- export class Int8Ref extends ValueRef {
264
- getValue() {
265
- return this.module.HEAP8[this.ptr >>> 0];
266
- }
267
- setValue(newValue) {
268
- this.module.HEAP8[this.ptr >>> 0] = newValue;
269
- }
270
- }
271
- export class Uint8Ref extends ValueRef {
272
- getValue() {
273
- return this.module.HEAPU8[this.ptr >>> 0];
274
- }
275
- setValue(newValue) {
276
- this.module.HEAPU8[this.ptr >>> 0] = newValue;
277
- }
278
- }
279
- export class Int16Ref extends ValueRef {
280
- getValue() {
281
- return this.module.HEAP16[this.ptr >>> 1];
282
- }
283
- setValue(newValue) {
284
- this.module.HEAP16[this.ptr >>> 1] = newValue;
285
- }
286
- }
287
- export class Uint16Ref extends ValueRef {
288
- getValue() {
289
- return this.module.HEAPU16[this.ptr >>> 1];
290
- }
291
- setValue(newValue) {
292
- this.module.HEAPU16[this.ptr >>> 1] = newValue;
293
- }
294
- }
295
- export class Int32Ref extends ValueRef {
296
- getValue() {
297
- return this.module.HEAP32[this.ptr >>> 2];
298
- }
299
- setValue(newValue) {
300
- this.module.HEAP32[this.ptr >>> 2] = newValue;
301
- }
302
- }
303
- export class Uint32Ref extends ValueRef {
304
- getValue() {
305
- return this.module.HEAPU32[this.ptr >>> 2];
306
- }
307
- setValue(newValue) {
308
- this.module.HEAPU32[this.ptr >>> 2] = newValue;
309
- }
310
- }
311
- export class PointerRef extends Uint32Ref {
312
- }
313
- export class Float32Ref extends ValueRef {
314
- getValue() {
315
- return this.module.HEAPF32[this.ptr >>> 2];
316
- }
317
- setValue(newValue) {
318
- this.module.HEAPF32[this.ptr >>> 2] = newValue;
319
- }
320
- }
321
- export class Float64Ref extends ValueRef {
322
- getValue() {
323
- return this.module.HEAPF64[this.ptr >>> 3];
324
- }
325
- setValue(newValue) {
326
- this.module.HEAPF64[this.ptr >>> 3] = newValue;
327
- }
328
- }
329
- export class NullTerminatedUtf8StringRef extends ValueRef {
330
- getValue() {
331
- const ptr = this.ptr >>> 0;
332
- const heapU8 = this.module.HEAPU8;
333
- const endByteOffset = heapU8.subarray(ptr).indexOf(0);
334
- const strBytes = heapU8.subarray(ptr, ptr + endByteOffset);
335
- const str = decodeUtf8(strBytes);
336
- return str;
337
- }
338
- setValue(newValue) {
339
- throw new Error('Unimplemented');
340
- }
341
- }
342
- class TypedArrayRef {
343
- ptr;
344
- length;
345
- manager;
346
- get module() { return this.manager.wasmModule; }
347
- constructor(ptr, length, manager) {
348
- this.ptr = ptr;
349
- this.length = length;
350
- this.manager = manager;
351
- }
352
- get view() {
353
- this.assertNotFreed();
354
- return this.getView();
355
- }
356
- slice(start, end) {
357
- return this.view.slice(start, end);
358
- }
359
- get address() {
360
- this.assertNotFreed();
361
- return this.ptr;
362
- }
363
- clear() {
364
- this.view.fill(0);
365
- return this;
366
- }
367
- free() {
368
- this.manager.free(this);
369
- }
370
- clearAddress() {
371
- this.ptr = 0;
372
- }
373
- detach() {
374
- return this.manager.detach(this);
375
- }
376
- get isFreed() { return this.ptr == 0; }
377
- assertNotFreed() {
378
- if (this.isFreed) {
379
- throw new Error('Attempt to read a freed WASM typed array reference.');
380
- }
381
- }
382
- }
383
- export class Int8ArrayRef extends TypedArrayRef {
384
- getView() {
385
- const startIndex = this.ptr >>> 0;
386
- return this.module.HEAP8.subarray(startIndex, startIndex + this.length);
387
- }
388
- }
389
- export class Uint8ArrayRef extends TypedArrayRef {
390
- getView() {
391
- const startIndex = this.ptr >>> 0;
392
- return this.module.HEAPU8.subarray(startIndex, startIndex + this.length);
393
- }
394
- readAsNullTerminatedUtf8String() {
395
- let strBytes = this.view;
396
- const indexOfFirstZero = strBytes.indexOf(0);
397
- if (indexOfFirstZero >= 0) {
398
- strBytes = strBytes.subarray(0, indexOfFirstZero);
399
- }
400
- const str = decodeUtf8(strBytes);
401
- return str;
402
- }
403
- }
404
- export class Int16ArrayRef extends TypedArrayRef {
405
- getView() {
406
- const startIndex = this.ptr >>> 1;
407
- return this.module.HEAP16.subarray(startIndex, startIndex + this.length);
408
- }
409
- }
410
- export class Uint16ArrayRef extends TypedArrayRef {
411
- getView() {
412
- const startIndex = this.ptr >>> 1;
413
- return this.module.HEAPU16.subarray(startIndex, startIndex + this.length);
414
- }
415
- }
416
- export class Int32ArrayRef extends TypedArrayRef {
417
- getView() {
418
- const startIndex = this.ptr >>> 2;
419
- return this.module.HEAP32.subarray(startIndex, startIndex + this.length);
420
- }
421
- }
422
- export class Uint32ArrayRef extends TypedArrayRef {
423
- getView() {
424
- const startIndex = this.ptr >>> 2;
425
- return this.module.HEAPU32.subarray(startIndex, startIndex + this.length);
426
- }
427
- }
428
- export class Float32ArrayRef extends TypedArrayRef {
429
- getView() {
430
- const startIndex = this.ptr >>> 2;
431
- return this.module.HEAPF32.subarray(startIndex, startIndex + this.length);
432
- }
433
- }
434
- export class Float64ArrayRef extends TypedArrayRef {
435
- getView() {
436
- const startIndex = this.ptr >>> 3;
437
- return this.module.HEAPF64.subarray(startIndex, startIndex + this.length);
438
- }
439
- }
440
- //# sourceMappingURL=WasmMemoryManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WasmMemoryManager.js","sourceRoot":"","sources":["../../src/utilities/WasmMemoryManager.ts"],"names":[],"mappings":"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"}