echogarden 1.4.4 → 1.6.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 (240) hide show
  1. package/data/schemas/options.json +310 -25
  2. package/dist/alignment/DTWMfccSequenceAlignment.d.ts +1 -1
  3. package/dist/alignment/DTWMfccSequenceAlignment.js +5 -5
  4. package/dist/alignment/DTWSequenceAlignmentWindowed.js +1 -3
  5. package/dist/alignment/DTWSequenceAlignmentWindowed.js.map +1 -1
  6. package/dist/alignment/{TextAlignment.d.ts → SemanticTextAlignment.d.ts} +4 -2
  7. package/dist/alignment/SemanticTextAlignment.js +336 -0
  8. package/dist/alignment/SemanticTextAlignment.js.map +1 -0
  9. package/dist/alignment/SpeechAlignment.d.ts +4 -3
  10. package/dist/alignment/SpeechAlignment.js +130 -39
  11. package/dist/alignment/SpeechAlignment.js.map +1 -1
  12. package/dist/api/API.d.ts +7 -3
  13. package/dist/api/API.js +7 -2
  14. package/dist/api/API.js.map +1 -1
  15. package/dist/api/APIOptions.d.ts +4 -1
  16. package/dist/api/Alignment.d.ts +1 -1
  17. package/dist/api/Alignment.js +13 -5
  18. package/dist/api/Alignment.js.map +1 -1
  19. package/dist/api/LanguageDetectionCommon.d.ts +6 -0
  20. package/dist/api/LanguageDetectionCommon.js +2 -0
  21. package/dist/api/LanguageDetectionCommon.js.map +1 -0
  22. package/dist/api/Recognition.js.map +1 -1
  23. package/dist/api/{LanguageDetection.d.ts → SpeechLanguageDetection.d.ts} +1 -25
  24. package/dist/api/{LanguageDetection.js → SpeechLanguageDetection.js} +1 -68
  25. package/dist/api/SpeechLanguageDetection.js.map +1 -0
  26. package/dist/api/{Translation.js → SpeechTranslation.js} +3 -3
  27. package/dist/api/SpeechTranslation.js.map +1 -0
  28. package/dist/api/Synthesis.d.ts +0 -1
  29. package/dist/api/Synthesis.js +4 -4
  30. package/dist/api/TextLanguageDetection.d.ts +21 -0
  31. package/dist/api/TextLanguageDetection.js +67 -0
  32. package/dist/api/TextLanguageDetection.js.map +1 -0
  33. package/dist/api/TextTranslation.d.ts +25 -0
  34. package/dist/api/TextTranslation.js +101 -0
  35. package/dist/api/TextTranslation.js.map +1 -0
  36. package/dist/api/TimelineTranslationAlignment.d.ts +23 -0
  37. package/dist/api/TimelineTranslationAlignment.js +92 -0
  38. package/dist/api/TimelineTranslationAlignment.js.map +1 -0
  39. package/dist/api/TranscriptAndTranslationAlignment.d.ts +35 -0
  40. package/dist/api/TranscriptAndTranslationAlignment.js +78 -0
  41. package/dist/api/TranscriptAndTranslationAlignment.js.map +1 -0
  42. package/dist/api/TranslationAlignment.d.ts +4 -3
  43. package/dist/api/TranslationAlignment.js +9 -8
  44. package/dist/api/TranslationAlignment.js.map +1 -1
  45. package/dist/api/VoiceActivityDetection.js +16 -1
  46. package/dist/api/VoiceActivityDetection.js.map +1 -1
  47. package/dist/audio/AudioBufferConversion.d.ts +0 -1
  48. package/dist/audio/AudioPlayer.d.ts +0 -1
  49. package/dist/audio/AudioPlayer.js +62 -41
  50. package/dist/audio/AudioPlayer.js.map +1 -1
  51. package/dist/audio/AudioUtilities.d.ts +0 -1
  52. package/dist/cli/CLI.d.ts +28 -7
  53. package/dist/cli/CLI.js +265 -37
  54. package/dist/cli/CLI.js.map +1 -1
  55. package/dist/codecs/FFMpegTranscoder.d.ts +0 -1
  56. package/dist/codecs/FFMpegTranscoder.js +7 -0
  57. package/dist/codecs/FFMpegTranscoder.js.map +1 -1
  58. package/dist/codecs/TIMITCodec.d.ts +0 -1
  59. package/dist/codecs/WaveCodec.d.ts +0 -1
  60. package/dist/dsp/FFT.d.ts +1 -1
  61. package/dist/dsp/FFT.js +6 -0
  62. package/dist/dsp/FFT.js.map +1 -1
  63. package/dist/dsp/KWeightingFilter.js +1 -1
  64. package/dist/dsp/KWeightingFilter.js.map +1 -1
  65. package/dist/dsp/MelSpectogram.d.ts +3 -2
  66. package/dist/dsp/MelSpectogram.js +14 -8
  67. package/dist/dsp/MelSpectogram.js.map +1 -1
  68. package/dist/math/VectorMath.d.ts +9 -9
  69. package/dist/math/VectorMath.js +10 -10
  70. package/dist/math/VectorMath.js.map +1 -1
  71. package/dist/nlp/ChineseSegmentation.js +4 -4
  72. package/dist/nlp/ChineseSegmentation.js.map +1 -1
  73. package/dist/nlp/Segmentation.d.ts +2 -2
  74. package/dist/nlp/Segmentation.js +20 -13
  75. package/dist/nlp/Segmentation.js.map +1 -1
  76. package/dist/recognition/OpenAICloudSTT.d.ts +2 -1
  77. package/dist/recognition/OpenAICloudSTT.js +30 -19
  78. package/dist/recognition/OpenAICloudSTT.js.map +1 -1
  79. package/dist/recognition/SileroSTT.d.ts +0 -1
  80. package/dist/recognition/WhisperCppSTT.d.ts +3 -3
  81. package/dist/recognition/WhisperCppSTT.js +21 -9
  82. package/dist/recognition/WhisperCppSTT.js.map +1 -1
  83. package/dist/recognition/WhisperSTT.d.ts +9 -6
  84. package/dist/recognition/WhisperSTT.js +227 -46
  85. package/dist/recognition/WhisperSTT.js.map +1 -1
  86. package/dist/server/Client.d.ts +3 -4
  87. package/dist/server/Client.js.map +1 -1
  88. package/dist/server/Worker.d.ts +3 -3
  89. package/dist/server/Worker.js +3 -2
  90. package/dist/server/Worker.js.map +1 -1
  91. package/dist/source-separation/MDXNetSourceSeparation.d.ts +0 -1
  92. package/dist/source-separation/MDXNetSourceSeparation.js +1 -1
  93. package/dist/source-separation/MDXNetSourceSeparation.js.map +1 -1
  94. package/dist/speech-embeddings/WavToVec2BertFeatureEmbeddings.d.ts +12 -0
  95. package/dist/speech-embeddings/WavToVec2BertFeatureEmbeddings.js +68 -0
  96. package/dist/speech-embeddings/WavToVec2BertFeatureEmbeddings.js.map +1 -0
  97. package/dist/speech-language-detection/SileroLanguageDetection.d.ts +1 -2
  98. package/dist/speech-language-detection/SileroLanguageDetection.js +1 -1
  99. package/dist/speech-language-detection/SileroLanguageDetection.js.map +1 -1
  100. package/dist/subtitles/Subtitles.js +2 -2
  101. package/dist/subtitles/Subtitles.js.map +1 -1
  102. package/dist/synthesis/GoogleCloudTTS.d.ts +0 -1
  103. package/dist/synthesis/GoogleTranslateTTS.d.ts +0 -1
  104. package/dist/synthesis/GoogleTranslateTTS.js +6 -21
  105. package/dist/synthesis/GoogleTranslateTTS.js.map +1 -1
  106. package/dist/synthesis/StreamlabsPollyTTS.d.ts +0 -1
  107. package/dist/synthesis/VitsTTS.d.ts +0 -1
  108. package/dist/synthesis/VitsTTS.js +30 -0
  109. package/dist/synthesis/VitsTTS.js.map +1 -1
  110. package/dist/tests/Test.js +0 -31
  111. package/dist/tests/Test.js.map +1 -1
  112. package/dist/text-language-detection/FastTextLanguageDetection.d.ts +1 -1
  113. package/dist/text-language-detection/FastTextLanguageDetection.js.map +1 -1
  114. package/dist/text-language-detection/TinyLDLanguageDetection.d.ts +1 -1
  115. package/dist/text-language-detection/TinyLDLanguageDetection.js.map +1 -1
  116. package/dist/text-translation/DeepLTextTranslation.d.ts +2 -0
  117. package/dist/text-translation/DeepLTextTranslation.js +67 -0
  118. package/dist/text-translation/DeepLTextTranslation.js.map +1 -0
  119. package/dist/text-translation/GoogleTranslateTextTranslation.d.ts +10 -0
  120. package/dist/text-translation/GoogleTranslateTextTranslation.js +554 -0
  121. package/dist/text-translation/GoogleTranslateTextTranslation.js.map +1 -0
  122. package/dist/text-translation/NLLBTextTranslation.d.ts +2 -1
  123. package/dist/text-translation/NLLBTextTranslation.js +249 -19
  124. package/dist/text-translation/NLLBTextTranslation.js.map +1 -1
  125. package/dist/utilities/BinaryArrayConversion.d.ts +0 -1
  126. package/dist/utilities/BrowserRequestHeaders.d.ts +6 -0
  127. package/dist/utilities/BrowserRequestHeaders.js +52 -0
  128. package/dist/utilities/BrowserRequestHeaders.js.map +1 -0
  129. package/dist/utilities/BufferFileReadStream.d.ts +20 -0
  130. package/dist/utilities/BufferFileReadStream.js +81 -0
  131. package/dist/utilities/BufferFileReadStream.js.map +1 -0
  132. package/dist/utilities/DynamicUint8Array.d.ts +9 -0
  133. package/dist/utilities/DynamicUint8Array.js +31 -0
  134. package/dist/utilities/DynamicUint8Array.js.map +1 -0
  135. package/dist/utilities/FileSystem.d.ts +0 -2
  136. package/dist/utilities/Hashing.d.ts +3 -10
  137. package/dist/utilities/Hashing.js +10 -127
  138. package/dist/utilities/Hashing.js.map +1 -1
  139. package/dist/utilities/LEB128.d.ts +15 -5
  140. package/dist/utilities/LEB128.js +199 -119
  141. package/dist/utilities/LEB128.js.map +1 -1
  142. package/dist/utilities/LPVarInt.d.ts +11 -0
  143. package/dist/utilities/LPVarInt.js +187 -0
  144. package/dist/utilities/LPVarInt.js.map +1 -0
  145. package/dist/utilities/Locale.d.ts +1 -1
  146. package/dist/utilities/Locale.js +1 -1
  147. package/dist/utilities/OnnxUtilities.d.ts +1 -2
  148. package/dist/utilities/PVarInt.d.ts +4 -0
  149. package/dist/utilities/PVarInt.js +166 -0
  150. package/dist/utilities/PVarInt.js.map +1 -0
  151. package/dist/utilities/PackageManager.js +48 -25
  152. package/dist/utilities/PackageManager.js.map +1 -1
  153. package/dist/utilities/RandomGenerator.d.ts +3 -17
  154. package/dist/utilities/RandomGenerator.js +12 -81
  155. package/dist/utilities/RandomGenerator.js.map +1 -1
  156. package/dist/utilities/Timeline.d.ts +2 -0
  157. package/dist/utilities/Timeline.js +129 -20
  158. package/dist/utilities/Timeline.js.map +1 -1
  159. package/dist/utilities/Utilities.d.ts +1 -3
  160. package/dist/utilities/Utilities.js +30 -3
  161. package/dist/utilities/Utilities.js.map +1 -1
  162. package/dist/utilities/VarInt.d.ts +4 -0
  163. package/dist/utilities/VarInt.js +166 -0
  164. package/dist/utilities/VarInt.js.map +1 -0
  165. package/dist/utilities/VirtualFileReadStream.d.ts +20 -0
  166. package/dist/utilities/VirtualFileReadStream.js +79 -0
  167. package/dist/utilities/VirtualFileReadStream.js.map +1 -0
  168. package/dist/utilities/WebReader.js +7 -23
  169. package/dist/utilities/WebReader.js.map +1 -1
  170. package/dist/voice-activity-detection/SileroVAD.d.ts +0 -1
  171. package/docs/API.md +105 -3
  172. package/docs/CLI.md +51 -1
  173. package/docs/Engines.md +32 -3
  174. package/docs/Options.md +53 -12
  175. package/docs/Tasklist.md +1 -13
  176. package/package.json +20 -24
  177. package/src/alignment/DTWMfccSequenceAlignment.ts +5 -5
  178. package/src/alignment/DTWSequenceAlignmentWindowed.ts +1 -3
  179. package/src/alignment/SemanticTextAlignment.ts +467 -0
  180. package/src/alignment/SpeechAlignment.ts +214 -56
  181. package/src/api/API.ts +18 -2
  182. package/src/api/APIOptions.ts +14 -1
  183. package/src/api/Alignment.ts +31 -9
  184. package/src/api/LanguageDetectionCommon.ts +7 -0
  185. package/src/api/Recognition.ts +2 -0
  186. package/src/api/{LanguageDetection.ts → SpeechLanguageDetection.ts} +1 -119
  187. package/src/api/{Translation.ts → SpeechTranslation.ts} +2 -2
  188. package/src/api/Synthesis.ts +4 -4
  189. package/src/api/TextLanguageDetection.ts +116 -0
  190. package/src/api/TextTranslation.ts +177 -0
  191. package/src/api/TimelineTranslationAlignment.ts +162 -0
  192. package/src/api/TranscriptAndTranslationAlignment.ts +164 -0
  193. package/src/api/TranslationAlignment.ts +12 -10
  194. package/src/api/VoiceActivityDetection.ts +24 -3
  195. package/src/audio/AudioPlayer.ts +2 -0
  196. package/src/cli/CLI.ts +376 -40
  197. package/src/codecs/FFMpegTranscoder.ts +6 -0
  198. package/src/dsp/FFT.ts +8 -2
  199. package/src/dsp/KWeightingFilter.ts +1 -1
  200. package/src/dsp/MelSpectogram.ts +17 -8
  201. package/src/math/VectorMath.ts +15 -15
  202. package/src/nlp/ChineseSegmentation.ts +6 -4
  203. package/src/nlp/Segmentation.ts +18 -13
  204. package/src/recognition/OpenAICloudSTT.ts +47 -29
  205. package/src/recognition/WhisperCppSTT.ts +26 -11
  206. package/src/recognition/WhisperSTT.ts +364 -49
  207. package/src/server/Client.ts +3 -2
  208. package/src/server/Worker.ts +3 -2
  209. package/src/source-separation/MDXNetSourceSeparation.ts +1 -1
  210. package/src/speech-embeddings/WavToVec2BertFeatureEmbeddings.ts +107 -0
  211. package/src/speech-language-detection/SileroLanguageDetection.ts +2 -1
  212. package/src/subtitles/Subtitles.ts +2 -2
  213. package/src/synthesis/GoogleTranslateTTS.ts +7 -21
  214. package/src/synthesis/VitsTTS.ts +31 -3
  215. package/src/tests/Test.ts +1 -38
  216. package/src/text-language-detection/FastTextLanguageDetection.ts +1 -1
  217. package/src/text-language-detection/TinyLDLanguageDetection.ts +1 -1
  218. package/src/text-translation/DeepLTextTranslation.ts +88 -0
  219. package/src/text-translation/GoogleTranslateTextTranslation.ts +667 -0
  220. package/src/text-translation/NLLBTextTranslation.ts +261 -21
  221. package/src/typings/Fillers.d.ts +25 -2
  222. package/src/utilities/BrowserRequestHeaders.ts +59 -0
  223. package/src/utilities/DynamicUint8Array.ts +39 -0
  224. package/src/utilities/Hashing.ts +14 -167
  225. package/src/utilities/LEB128.ts +273 -148
  226. package/src/utilities/LPVarInt.ts +292 -0
  227. package/src/utilities/Locale.ts +1 -1
  228. package/src/utilities/OnnxUtilities.ts +1 -1
  229. package/src/utilities/PackageManager.ts +51 -30
  230. package/src/utilities/RandomGenerator.ts +12 -113
  231. package/src/utilities/Timeline.ts +162 -23
  232. package/src/utilities/Utilities.ts +40 -3
  233. package/src/utilities/VirtualFileReadStream.ts +109 -0
  234. package/src/utilities/WebReader.ts +9 -23
  235. package/dist/alignment/TextAlignment.js +0 -156
  236. package/dist/alignment/TextAlignment.js.map +0 -1
  237. package/dist/api/LanguageDetection.js.map +0 -1
  238. package/dist/api/Translation.js.map +0 -1
  239. package/src/alignment/TextAlignment.ts +0 -234
  240. /package/dist/api/{Translation.d.ts → SpeechTranslation.d.ts} +0 -0
@@ -1,130 +1,4 @@
1
- export function knuthMultiplicative(bytes) {
2
- let hash = 0;
3
- for (const byte of bytes) {
4
- hash += Math.imul(byte, 2654435761);
5
- }
6
- return hash;
7
- }
8
- export function xorShift32Hash(bytes) {
9
- let s = 0;
10
- for (const byte of bytes) {
11
- s += byte;
12
- s ^= s << 13;
13
- s ^= s >> 17;
14
- s ^= s << 5;
15
- }
16
- return s;
17
- }
18
- export function jenkinsOneAtATime(bytes) {
19
- let hash = 0;
20
- for (const byte of bytes) {
21
- hash += byte;
22
- hash += hash << 10;
23
- hash ^= hash >> 6;
24
- }
25
- hash += hash << 3;
26
- hash ^= hash >> 11;
27
- hash += hash << 15;
28
- return hash >>> 0;
29
- }
30
- export function FNV1a(bytes) {
31
- let hval = 2166136261 | 0;
32
- for (const byte of bytes) {
33
- hval = Math.imul(hval ^ byte, 16777619);
34
- }
35
- return hval >>> 0;
36
- }
37
- export function superFastHash(bytes) {
38
- let hash = bytes.length, tmp, p = 0;
39
- const len = bytes.length >>> 2;
40
- for (let i = 0; i < len; i++) {
41
- hash += bytes[p] | bytes[p + 1] << 8;
42
- tmp = ((bytes[p + 2] | bytes[p + 3] << 8) << 11) ^ hash;
43
- hash = (hash << 16) ^ tmp;
44
- hash += hash >>> 11;
45
- p += 4;
46
- }
47
- switch (bytes.length & 3) {
48
- case 3:
49
- hash += bytes[p] | bytes[p + 1] << 8;
50
- hash ^= hash << 16;
51
- hash ^= bytes[p + 2] << 18;
52
- hash += hash >>> 11;
53
- break;
54
- case 2:
55
- hash += bytes[p] | bytes[p + 1] << 8;
56
- hash ^= hash << 11;
57
- hash += hash >>> 17;
58
- break;
59
- case 1:
60
- hash += bytes[p];
61
- hash ^= hash << 10;
62
- hash += hash >>> 1;
63
- break;
64
- }
65
- hash ^= hash << 3;
66
- hash += hash >>> 5;
67
- hash ^= hash << 4;
68
- hash += hash >>> 17;
69
- hash ^= hash << 25;
70
- hash += hash >>> 6;
71
- return hash >>> 0;
72
- }
73
- export function cyrb53Hash(bytes, seed = 0) {
74
- // https://github.com/bryc/code/blob/master/jshash/experimental/cyrb53.js
75
- let h1 = 0xdeadbeef ^ seed;
76
- let h2 = 0x41c6ce57 ^ seed;
77
- for (const byte of bytes) {
78
- h1 = Math.imul(h1 ^ byte, 2654435761);
79
- h2 = Math.imul(h2 ^ byte, 1597334677);
80
- }
81
- h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^ Math.imul(h2 ^ (h2 >>> 13), 3266489909);
82
- h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^ Math.imul(h1 ^ (h1 >>> 13), 3266489909);
83
- return (4294967296 * (2097151 & h2)) + (h1 >>> 0);
84
- }
85
- export function djb2(bytes) {
86
- let hash = 5381;
87
- for (const byte of bytes) {
88
- //hash += (hash << 5) + byte
89
- hash += (hash * 33) + byte;
90
- }
91
- return hash >>> 0;
92
- }
93
- export function murmurHash1(bytes, seed = 0) {
94
- // https://github.com/bryc/code/blob/master/jshash/hashes/murmurhash1.js
95
- const length = bytes.length;
96
- const multiplier = 3332679571;
97
- const intIterationMaxIndex = length & -4;
98
- let hash = seed ^ Math.imul(length, multiplier);
99
- let index = 0;
100
- for (; index < intIterationMaxIndex; index += 4) {
101
- hash += bytes[index + 3] << 24 |
102
- bytes[index + 2] << 16 |
103
- bytes[index + 1] << 8 |
104
- bytes[index];
105
- hash = Math.imul(hash, multiplier);
106
- hash ^= hash >>> 16;
107
- }
108
- switch (length & 3) {
109
- case 3: {
110
- hash += bytes[index + 2] << 16;
111
- }
112
- case 2: {
113
- hash += bytes[index + 1] << 8;
114
- }
115
- case 1: {
116
- hash += bytes[index];
117
- hash = Math.imul(hash, multiplier);
118
- hash ^= hash >>> 16;
119
- }
120
- }
121
- hash = Math.imul(hash, multiplier);
122
- hash ^= hash >>> 10;
123
- hash = Math.imul(hash, multiplier);
124
- hash ^= hash >>> 17;
125
- return hash >>> 0;
126
- }
127
- export function MurmurHash3(bytes, seed = 0) {
1
+ export function murmurHash3(bytes, seed = 0) {
128
2
  // https://github.com/bryc/code/blob/master/jshash/hashes/murmurhash3.js
129
3
  const p1 = 3432918353;
130
4
  const p2 = 461845907;
@@ -166,4 +40,13 @@ export function MurmurHash3(bytes, seed = 0) {
166
40
  hash ^= hash >>> 16;
167
41
  return hash >>> 0;
168
42
  }
43
+ export function convertToSingleInt32Hash(hash) {
44
+ const bytes = new Uint8Array(4);
45
+ const ints = new Int32Array(bytes.buffer);
46
+ return (int32Val) => {
47
+ ints[0] = int32Val;
48
+ return hash(bytes);
49
+ };
50
+ }
51
+ export const murmurHash3_int32Input = convertToSingleInt32Hash(murmurHash3);
169
52
  //# sourceMappingURL=Hashing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Hashing.js","sourceRoot":"","sources":["../../src/utilities/Hashing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Hashing.js","sourceRoot":"","sources":["../../src/utilities/Hashing.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,15 @@
1
- export declare function encodeSignedInt32(value: number, outEncodedData: number[]): number[];
2
- export declare function encodeSignedInt32sFast(value: number, outEncodedData: number[]): void;
3
- export declare function decodeSignedInt32s(encodedData: ArrayLike<number>, outDecodedValues: number[]): number[];
4
- export declare function decodeSignedInt32sFast(encodedData: ArrayLike<number>, outDecodedValues: number[]): number[];
5
- export declare function testLeb128(): void;
1
+ import { DynamicUint8Array } from "./DynamicUint8Array.js";
2
+ export declare function encodeUnsignedInt(value: number | bigint, outEncodedData: DynamicUint8Array): DynamicUint8Array;
3
+ export declare function decodeUnsignedInt31Fast(encodedData: ArrayLike<number>, readOffset: number): DecodedValueAndReadOffset;
4
+ export declare function encodeSignedInt32(value: number, outEncodedData: DynamicUint8Array): DynamicUint8Array;
5
+ export declare function encodeSignedInt32Fast(value: number, outEncodedData: DynamicUint8Array): DynamicUint8Array;
6
+ export declare function decodeSignedInt32(encodedData: ArrayLike<number>, readOffset: number): DecodedValueAndReadOffset;
7
+ export declare function decodeSignedInt32Fast(encodedData: ArrayLike<number>, readOffset: number): {
8
+ decodedValue: number;
9
+ readOffset: number;
10
+ };
11
+ export interface DecodedValueAndReadOffset {
12
+ decodedValue: number;
13
+ readOffset: number;
14
+ }
15
+ export declare function testLeb128Signed(): void;
@@ -1,163 +1,243 @@
1
+ import { DynamicUint8Array } from "./DynamicUint8Array.js";
1
2
  import { logToStderr } from "./Utilities.js";
3
+ ////////////////////////////////////////////////////////////////////////////////////////////////////
4
+ // Encode unsigned integer
5
+ ////////////////////////////////////////////////////////////////////////////////////////////////////
6
+ export function encodeUnsignedInt(value, outEncodedData) {
7
+ if (value < 0) {
8
+ throw new Error(`The negative value ${value} can't be encoded as an unsigned LEB128 integer.`);
9
+ }
10
+ if (typeof value === 'number') {
11
+ if (value < (2 ** 31)) {
12
+ return encodeUnsignedInt31(value, outEncodedData);
13
+ }
14
+ else {
15
+ return encodeUnsignedBigInt(BigInt(value), outEncodedData);
16
+ }
17
+ }
18
+ else {
19
+ return encodeUnsignedBigInt(value, outEncodedData);
20
+ }
21
+ }
22
+ function encodeUnsignedInt31(value, outEncodedData) {
23
+ value = value >>> 0;
24
+ if (value < (2 ** 7)) {
25
+ outEncodedData.add(value);
26
+ }
27
+ else if (value < (2 ** 14)) {
28
+ outEncodedData.addMany((value & 0b01111111) | 0b10000000, value >>> 7);
29
+ }
30
+ else if (value < (2 ** 21)) {
31
+ outEncodedData.addMany((value & 0b01111111) | 0b10000000, ((value >>> 7) & 0b01111111) | 0b10000000, value >>> 14);
32
+ }
33
+ else if (value < (2 ** 28)) {
34
+ outEncodedData.addMany((value & 0b01111111) | 0b10000000, ((value >>> 7) & 0b01111111) | 0b10000000, ((value >>> 14) & 0b01111111) | 0b10000000, value >>> 21);
35
+ }
36
+ else {
37
+ outEncodedData.addMany((value & 0b01111111) | 0b10000000, ((value >>> 7) & 0b01111111) | 0b10000000, ((value >>> 14) & 0b01111111) | 0b10000000, ((value >>> 21) & 0b01111111) | 0b10000000, value >>> 28);
38
+ }
39
+ return outEncodedData;
40
+ }
41
+ function encodeUnsignedBigInt(value, outEncodedData) {
42
+ while (true) {
43
+ const lowest7Bits = Number(value & 127n);
44
+ value = value >> 7n;
45
+ if (value === 0n) {
46
+ outEncodedData.add(lowest7Bits);
47
+ return outEncodedData;
48
+ }
49
+ else {
50
+ outEncodedData.add(lowest7Bits | 0b10000000);
51
+ }
52
+ }
53
+ }
54
+ ////////////////////////////////////////////////////////////////////////////////////
55
+ // Decode unsigned integer
56
+ ////////////////////////////////////////////////////////////////////////////////////
57
+ export function decodeUnsignedInt31Fast(encodedData, readOffset) {
58
+ const byte0 = encodedData[readOffset++];
59
+ if ((byte0 & 0b10000000) === 0) {
60
+ const decodedValue = byte0;
61
+ return { decodedValue, readOffset };
62
+ }
63
+ const byte1 = encodedData[readOffset++];
64
+ if ((byte1 & 0b10000000) === 0) {
65
+ const decodedValue = (byte0 & 0b01111111) |
66
+ (byte1 & 0b01111111) << 7;
67
+ return { decodedValue, readOffset };
68
+ }
69
+ const byte2 = encodedData[readOffset++];
70
+ if ((byte2 & 0b10000000) === 0) {
71
+ const decodedValue = (byte0 & 0b01111111) |
72
+ (byte1 & 0b01111111) << 7 |
73
+ (byte2 & 0b01111111) << 14;
74
+ return { decodedValue, readOffset };
75
+ }
76
+ const byte3 = encodedData[readOffset++];
77
+ if ((byte3 & 0b10000000) === 0) {
78
+ const decodedValue = (byte0 & 0b01111111) |
79
+ (byte1 & 0b01111111) << 7 |
80
+ (byte2 & 0b01111111) << 14 |
81
+ (byte3 & 0b01111111) << 21;
82
+ return { decodedValue, readOffset };
83
+ }
84
+ const byte4 = encodedData[readOffset++];
85
+ if ((byte4 & 0b10000000) === 0) {
86
+ const decodedValue = (byte0 & 0b01111111) |
87
+ (byte1 & 0b01111111) << 7 |
88
+ (byte2 & 0b01111111) << 14 |
89
+ (byte3 & 0b01111111) << 21 |
90
+ (byte4 & 0b01111111) << 28;
91
+ return { decodedValue, readOffset };
92
+ }
93
+ if (readOffset >= encodedData.length) {
94
+ throw new Error(`Invalid LEB128 data. Last encoded byte sequence is truncated.`);
95
+ }
96
+ else {
97
+ throw new Error(`LEB128 sequence can't be decoded. Encoded byte sequence represents a value that extends beyond the range of a unsigned 32 bit integer.`);
98
+ }
99
+ }
2
100
  ////////////////////////////////////////////////////////////////////////////////////
3
- // Encode
101
+ // Encode signed integer
4
102
  ////////////////////////////////////////////////////////////////////////////////////
5
103
  export function encodeSignedInt32(value, outEncodedData) {
6
- if (value < -2147483648 || value > 2147483647) {
7
- throw new Error('Value must be between -2147483648 and 2147483647');
104
+ if (value < -(2 ** 31) || value > (2 ** 31)) {
105
+ throw new Error('Value must be between -(2^31) and 2^31 - 1');
8
106
  }
9
107
  while (true) {
10
- const lowest7Bits = value & 127;
108
+ const lowest7Bits = value & 0b01111111;
11
109
  value >>= 7;
12
- if ((value === 0 && (lowest7Bits & 64) === 0) ||
13
- (value === -1 && (lowest7Bits & 64) !== 0)) {
14
- outEncodedData.push(lowest7Bits);
110
+ if ((value === 0 && (lowest7Bits & 0b01000000) === 0) ||
111
+ (value === -1 && (lowest7Bits & 0b01000000) !== 0)) {
112
+ outEncodedData.add(lowest7Bits);
15
113
  return outEncodedData;
16
114
  }
17
115
  else {
18
- outEncodedData.push(lowest7Bits | 128);
116
+ outEncodedData.add(lowest7Bits | 0b10000000);
19
117
  }
20
118
  }
21
119
  }
22
- export function encodeSignedInt32sFast(value, outEncodedData) {
23
- const absValue = Math.abs(value);
24
- //const absMask = value >> 31
25
- //const absValue = (value ^ absMask) - absMask
120
+ export function encodeSignedInt32Fast(value, outEncodedData) {
121
+ const absValue = Math.abs(value | 0);
26
122
  if (absValue < (2 ** 6)) {
27
- outEncodedData.push((value & 127));
123
+ outEncodedData.add((value & 0b01111111));
28
124
  }
29
125
  else if (absValue < (2 ** 13)) {
30
- outEncodedData.push((value & 127) | 128, (value >> 7) & 127);
126
+ outEncodedData.addMany((value & 0b01111111) | 0b10000000, (value >> 7) & 0b01111111);
31
127
  }
32
128
  else if (absValue < (2 ** 20)) {
33
- outEncodedData.push((value & 127) | 128, ((value >> 7) & 127) | 128, (value >> 14) & 127);
129
+ outEncodedData.addMany((value & 0b01111111) | 0b10000000, ((value >> 7) & 0b01111111) | 0b10000000, (value >> 14) & 0b01111111);
34
130
  }
35
131
  else if (absValue < (2 ** 27)) {
36
- outEncodedData.push((value & 127) | 128, ((value >> 7) & 127) | 128, ((value >> 14) & 127) | 128, (value >> 21) & 127);
37
- }
38
- else if (value < (2 ** 31) && value >= -(2 ** 31)) {
39
- outEncodedData.push((value & 127) | 128, ((value >> 7) & 127) | 128, ((value >> 14) & 127) | 128, ((value >> 21) & 127) | 128, (value >> 28) & 127);
132
+ outEncodedData.addMany((value & 0b01111111) | 0b10000000, ((value >> 7) & 0b01111111) | 0b10000000, ((value >> 14) & 0b01111111) | 0b10000000, (value >> 21) & 0b01111111);
40
133
  }
41
134
  else {
42
- throw new Error(`Value must be between -2147483648 and 2147483647`);
135
+ outEncodedData.addMany((value & 0b01111111) | 0b10000000, ((value >> 7) & 0b01111111) | 0b10000000, ((value >> 14) & 0b01111111) | 0b10000000, ((value >> 21) & 0b01111111) | 0b10000000, (value >> 28) & 0b01111111);
43
136
  }
137
+ return outEncodedData;
44
138
  }
45
139
  ////////////////////////////////////////////////////////////////////////////////////
46
- // Decode
140
+ // Decode signed integer
47
141
  ////////////////////////////////////////////////////////////////////////////////////
48
- export function decodeSignedInt32s(encodedData, outDecodedValues) {
49
- for (let readIndex = 0; readIndex < encodedData.length;) {
50
- let currentDecodedValue = 0;
51
- let shiftAmount = 0;
52
- while (true) {
53
- const encodedByte = encodedData[readIndex++];
54
- const lowest7Bits = encodedByte & 127;
55
- currentDecodedValue |= lowest7Bits << shiftAmount;
56
- // If 8th bit is 0, then this is the last byte in the sequence
57
- if ((encodedByte & 128) === 0) {
58
- // If 7th bit is 1, then the value is negative
59
- if ((encodedByte & 64) !== 0) {
60
- // If the value should be negative
61
- // Ensure that the value is encoded as a negative number by
62
- // setting all higher bits to 1
63
- currentDecodedValue |= -1 << Math.min(shiftAmount + 7, 31);
64
- }
65
- break;
66
- }
67
- if (readIndex === encodedData.length) {
68
- throw new Error(`Invalid LEB128 data. Last encoded byte sequence is truncated.`);
69
- }
70
- shiftAmount += 7;
71
- if (shiftAmount > 31) {
72
- throw new Error(`LEB128 sequence can't be decoded. Byte sequence extends beyond the range of a signed 32 bit integer.`);
142
+ export function decodeSignedInt32(encodedData, readOffset) {
143
+ let decodedValue = 0;
144
+ let shiftAmount = 0;
145
+ while (true) {
146
+ const encodedByte = encodedData[readOffset++];
147
+ const lowest7Bits = encodedByte & 0b01111111;
148
+ decodedValue |= lowest7Bits << shiftAmount;
149
+ // If 8th bit is 0, then this is the last byte in the sequence
150
+ if ((encodedByte & 0b10000000) === 0) {
151
+ // If 7th bit is 1, then the value is negative
152
+ if ((encodedByte & 0b01000000) !== 0) {
153
+ // If the value should be negative
154
+ // Ensure that the value is encoded as a negative number by
155
+ // setting all higher bits to 1
156
+ decodedValue |= -1 << Math.min(shiftAmount + 7, 31);
73
157
  }
158
+ return { decodedValue, readOffset };
159
+ }
160
+ if (readOffset === encodedData.length) {
161
+ throw new Error(`Invalid LEB128 data. Last encoded byte sequence is truncated.`);
162
+ }
163
+ shiftAmount += 7;
164
+ if (shiftAmount > 31) {
165
+ throw new Error(`LEB128 sequence can't be decoded. Byte sequence extends beyond the range of a signed 32 bit integer.`);
74
166
  }
75
- outDecodedValues.push(currentDecodedValue);
76
167
  }
77
- return outDecodedValues;
78
168
  }
79
- export function decodeSignedInt32sFast(encodedData, outDecodedValues) {
80
- for (let readIndex = 0; readIndex < encodedData.length;) {
81
- const byte0 = encodedData[readIndex++];
82
- if ((byte0 & 128) === 0) {
83
- let decodedValue = (byte0 & 127);
84
- if ((byte0 & 64) !== 0) {
85
- decodedValue |= -1 << 7;
86
- }
87
- outDecodedValues.push(decodedValue);
88
- continue;
89
- }
90
- const byte1 = encodedData[readIndex++];
91
- if ((byte1 & 128) === 0) {
92
- let decodedValue = (byte0 & 127) |
93
- (byte1 & 127) << 7;
94
- if ((byte1 & 64) !== 0) {
95
- decodedValue |= -1 << 14;
96
- }
97
- outDecodedValues.push(decodedValue);
98
- continue;
99
- }
100
- const byte2 = encodedData[readIndex++];
101
- if ((byte2 & 128) === 0) {
102
- let decodedValue = (byte0 & 127) |
103
- (byte1 & 127) << 7 |
104
- (byte2 & 127) << 14;
105
- if ((byte2 & 64) !== 0) {
106
- decodedValue |= -1 << 21;
107
- }
108
- outDecodedValues.push(decodedValue);
109
- continue;
110
- }
111
- const byte3 = encodedData[readIndex++];
112
- if ((byte3 & 128) === 0) {
113
- let decodedValue = (byte0 & 127) |
114
- (byte1 & 127) << 7 |
115
- (byte2 & 127) << 14 |
116
- (byte3 & 127) << 21;
117
- if ((byte3 & 64) !== 0) {
118
- decodedValue |= -1 << 28;
119
- }
120
- outDecodedValues.push(decodedValue);
121
- continue;
122
- }
123
- const byte4 = encodedData[readIndex++];
124
- if ((byte4 & 128) === 0) {
125
- let decodedValue = (byte0 & 127) |
126
- (byte1 & 127) << 7 |
127
- (byte2 & 127) << 14 |
128
- (byte3 & 127) << 21 |
129
- (byte4 & 127) << 28;
130
- if ((byte4 & 64) !== 0) {
131
- decodedValue |= -1 << 31;
132
- }
133
- outDecodedValues.push(decodedValue);
134
- continue;
169
+ export function decodeSignedInt32Fast(encodedData, readOffset) {
170
+ const byte0 = encodedData[readOffset++];
171
+ if ((byte0 & 0b10000000) === 0) {
172
+ let decodedValue = byte0;
173
+ if ((byte0 & 0b01000000) !== 0) {
174
+ decodedValue |= -1 << 7;
135
175
  }
136
- if (readIndex >= encodedData.length) {
137
- throw new Error(`Invalid LEB128 data. Last encoded byte sequence is truncated.`);
176
+ return { decodedValue, readOffset };
177
+ }
178
+ const byte1 = encodedData[readOffset++];
179
+ if ((byte1 & 0b10000000) === 0) {
180
+ let decodedValue = (byte0 & 0b01111111) |
181
+ (byte1 & 0b01111111) << 7;
182
+ if ((byte1 & 0b01000000) !== 0) {
183
+ decodedValue |= -1 << 14;
138
184
  }
139
- else {
140
- throw new Error(`LEB128 sequence can't be decoded. Encoded byte sequence represents a value that extends beyond the range of a signed 32 bit integer.`);
185
+ return { decodedValue, readOffset };
186
+ }
187
+ const byte2 = encodedData[readOffset++];
188
+ if ((byte2 & 0b10000000) === 0) {
189
+ let decodedValue = (byte0 & 0b01111111) |
190
+ (byte1 & 0b01111111) << 7 |
191
+ (byte2 & 0b01111111) << 14;
192
+ if ((byte2 & 0b01000000) !== 0) {
193
+ decodedValue |= -1 << 21;
141
194
  }
195
+ return { decodedValue, readOffset };
196
+ }
197
+ const byte3 = encodedData[readOffset++];
198
+ if ((byte3 & 0b10000000) === 0) {
199
+ let decodedValue = (byte0 & 0b01111111) |
200
+ (byte1 & 0b01111111) << 7 |
201
+ (byte2 & 0b01111111) << 14 |
202
+ (byte3 & 0b01111111) << 21;
203
+ if ((byte3 & 0b01000000) !== 0) {
204
+ decodedValue |= -1 << 28;
205
+ }
206
+ return { decodedValue, readOffset };
207
+ }
208
+ const byte4 = encodedData[readOffset++];
209
+ if ((byte4 & 0b10000000) === 0) {
210
+ let decodedValue = (byte0 & 0b01111111) |
211
+ (byte1 & 0b01111111) << 7 |
212
+ (byte2 & 0b01111111) << 14 |
213
+ (byte3 & 0b01111111) << 21 |
214
+ (byte4 & 0b01111111) << 28;
215
+ if ((byte4 & 0b01000000) !== 0) {
216
+ decodedValue |= -1 << 31;
217
+ }
218
+ return { decodedValue, readOffset };
219
+ }
220
+ if (readOffset >= encodedData.length) {
221
+ throw new Error(`Invalid LEB128 data. Last encoded byte sequence is truncated.`);
222
+ }
223
+ else {
224
+ throw new Error(`LEB128 sequence can't be decoded. Encoded byte sequence represents a value that extends beyond the range of a signed 32 bit integer.`);
142
225
  }
143
- return outDecodedValues;
144
226
  }
145
227
  ////////////////////////////////////////////////////////////////////////////////////
146
228
  // Tests
147
229
  ////////////////////////////////////////////////////////////////////////////////////
148
- export function testLeb128() {
149
- const encodedBytes = [];
150
- const decodedValues = [];
230
+ export function testLeb128Signed() {
231
+ const encodedBytes = new DynamicUint8Array();
151
232
  function runTest(testValue) {
152
- encodedBytes.length = 0;
153
- decodedValues.length = 0;
154
- encodeSignedInt32sFast(testValue, encodedBytes);
155
- decodeSignedInt32sFast(encodedBytes, decodedValues);
156
- if (decodedValues[0] !== testValue) {
157
- throw new Error(`Expected ${testValue} but got ${decodedValues[0]}`);
233
+ encodedBytes.clear();
234
+ encodeSignedInt32Fast(testValue, encodedBytes);
235
+ const { decodedValue } = decodeSignedInt32Fast(encodedBytes.data, 0);
236
+ if (decodedValue !== testValue) {
237
+ throw new Error(`Expected ${testValue} but got ${decodedValue}`);
158
238
  }
159
239
  }
160
- for (let i = -(2 ** 22); i < 2 ** 22; i++) {
240
+ for (let i = -(2 ** 26); i < 2 ** 26; i++) {
161
241
  if (i % 1000000 === 0) {
162
242
  logToStderr(i);
163
243
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LEB128.js","sourceRoot":"","sources":["../../src/utilities/LEB128.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LEB128.js","sourceRoot":"","sources":["../../src/utilities/LEB128.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { DynamicUint8Array } from "./DynamicUint8Array.js";
2
+ export declare function encodeUnsignedInt31(value: number, outEncodedData: DynamicUint8Array): void;
3
+ export declare function decodeUnsignedInt31(encodedData: ArrayLike<number>, readOffset: number): DecodedValueAndReadOffset;
4
+ export declare function encodeSignedInt32(value: number, outEncodedData: DynamicUint8Array): void;
5
+ export declare function decodeSignedInt32(encodedData: ArrayLike<number>, readOffset: number): DecodedValueAndReadOffset;
6
+ export interface DecodedValueAndReadOffset {
7
+ decodedValue: number;
8
+ readOffset: number;
9
+ }
10
+ export declare function testLPVarintSigned(): void;
11
+ export declare function testLPVarintUnsigned(): void;