zstdify 1.1.2 → 1.3.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.
- package/README.md +51 -2
- package/dist/bitstream/bitReaderReverse.d.ts +6 -0
- package/dist/bitstream/bitReaderReverse.js +51 -1
- package/dist/bitstream/bitReaderReverse.js.map +1 -1
- package/dist/bitstream/index.d.ts +1 -0
- package/dist/bitstream/index.js +1 -0
- package/dist/bitstream/index.js.map +1 -1
- package/dist/bitstream/reverseBitWriter.d.ts +1 -0
- package/dist/bitstream/reverseBitWriter.js +66 -0
- package/dist/bitstream/reverseBitWriter.js.map +1 -0
- package/dist/compress.js +47 -7
- package/dist/compress.js.map +1 -1
- package/dist/decode/debugTrace.d.ts +31 -0
- package/dist/decode/debugTrace.js +2 -0
- package/dist/decode/debugTrace.js.map +1 -0
- package/dist/decode/decompressFrame.d.ts +3 -1
- package/dist/decode/decompressFrame.js +153 -59
- package/dist/decode/decompressFrame.js.map +1 -1
- package/dist/decode/fusedSequences.d.ts +9 -0
- package/dist/decode/fusedSequences.js +26 -0
- package/dist/decode/fusedSequences.js.map +1 -0
- package/dist/decode/literals.js +164 -111
- package/dist/decode/literals.js.map +1 -1
- package/dist/decode/reconstruct.d.ts +33 -1
- package/dist/decode/reconstruct.js +591 -24
- package/dist/decode/reconstruct.js.map +1 -1
- package/dist/decode/sequences.d.ts +19 -7
- package/dist/decode/sequences.js +225 -133
- package/dist/decode/sequences.js.map +1 -1
- package/dist/decompress.d.ts +10 -0
- package/dist/decompress.js +5 -3
- package/dist/decompress.js.map +1 -1
- package/dist/encode/blockWriter.js +8 -2
- package/dist/encode/blockWriter.js.map +1 -1
- package/dist/encode/compressedBlock.d.ts +27 -1
- package/dist/encode/compressedBlock.js +594 -339
- package/dist/encode/compressedBlock.js.map +1 -1
- package/dist/encode/fastMatcher.d.ts +7 -0
- package/dist/encode/fastMatcher.js +13 -0
- package/dist/encode/fastMatcher.js.map +1 -0
- package/dist/encode/greedySequences.d.ts +9 -6
- package/dist/encode/greedySequences.js +21 -77
- package/dist/encode/greedySequences.js.map +1 -1
- package/dist/encode/lazyMatcher.d.ts +7 -0
- package/dist/encode/lazyMatcher.js +13 -0
- package/dist/encode/lazyMatcher.js.map +1 -0
- package/dist/encode/literalsEncoder.d.ts +14 -0
- package/dist/encode/literalsEncoder.js +343 -0
- package/dist/encode/literalsEncoder.js.map +1 -0
- package/dist/encode/optimalParser.d.ts +7 -0
- package/dist/encode/optimalParser.js +13 -0
- package/dist/encode/optimalParser.js.map +1 -0
- package/dist/encode/sequencePlanner.d.ts +23 -0
- package/dist/encode/sequencePlanner.js +280 -0
- package/dist/encode/sequencePlanner.js.map +1 -0
- package/dist/entropy/fse.d.ts +13 -6
- package/dist/entropy/fse.js +176 -13
- package/dist/entropy/fse.js.map +1 -1
- package/dist/entropy/huffman.d.ts +7 -5
- package/dist/entropy/huffman.js +18 -7
- package/dist/entropy/huffman.js.map +1 -1
- package/dist/entropy/index.d.ts +2 -2
- package/dist/entropy/weights.js +20 -14
- package/dist/entropy/weights.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/decode/literals.js
CHANGED
|
@@ -14,7 +14,7 @@ export function parseLiteralsSectionHeader(data, offset) {
|
|
|
14
14
|
if (offset >= data.length) {
|
|
15
15
|
throw new ZstdError('Literals section header truncated', 'corruption_detected');
|
|
16
16
|
}
|
|
17
|
-
const b0 = data[offset]
|
|
17
|
+
const b0 = data[offset];
|
|
18
18
|
const blockType = (b0 & 3);
|
|
19
19
|
const sizeFormat = (b0 >> 2) & 3;
|
|
20
20
|
if (blockType === 0 || blockType === 1) {
|
|
@@ -29,7 +29,7 @@ export function parseLiteralsSectionHeader(data, offset) {
|
|
|
29
29
|
if (offset + 2 > data.length) {
|
|
30
30
|
throw new ZstdError('Literals section header truncated', 'corruption_detected');
|
|
31
31
|
}
|
|
32
|
-
const b1 = data[offset + 1]
|
|
32
|
+
const b1 = data[offset + 1];
|
|
33
33
|
const regeneratedSize = (b0 >> 4) + (b1 << 4);
|
|
34
34
|
return {
|
|
35
35
|
header: { blockType, regeneratedSize, headerSize: 2, numStreams: 1 },
|
|
@@ -40,8 +40,8 @@ export function parseLiteralsSectionHeader(data, offset) {
|
|
|
40
40
|
if (offset + 3 > data.length) {
|
|
41
41
|
throw new ZstdError('Literals section header truncated', 'corruption_detected');
|
|
42
42
|
}
|
|
43
|
-
const b1 = data[offset + 1]
|
|
44
|
-
const b2 = data[offset + 2]
|
|
43
|
+
const b1 = data[offset + 1];
|
|
44
|
+
const b2 = data[offset + 2];
|
|
45
45
|
const regeneratedSize = (b0 >> 4) + (b1 << 4) + (b2 << 12);
|
|
46
46
|
return {
|
|
47
47
|
header: { blockType, regeneratedSize, headerSize: 3, numStreams: 1 },
|
|
@@ -79,7 +79,8 @@ export function decodeRawLiterals(data, offset, size) {
|
|
|
79
79
|
if (offset + size > data.length) {
|
|
80
80
|
throw new ZstdError('Raw literals truncated', 'corruption_detected');
|
|
81
81
|
}
|
|
82
|
-
|
|
82
|
+
// Return a view to avoid extra copy; callers copy into destination as needed.
|
|
83
|
+
return data.subarray(offset, offset + size);
|
|
83
84
|
}
|
|
84
85
|
/**
|
|
85
86
|
* Decode RLE literals block - single byte repeated.
|
|
@@ -88,7 +89,7 @@ export function decodeRLELiterals(data, offset, size) {
|
|
|
88
89
|
if (offset >= data.length) {
|
|
89
90
|
throw new ZstdError('RLE literals truncated', 'corruption_detected');
|
|
90
91
|
}
|
|
91
|
-
const byte = data[offset]
|
|
92
|
+
const byte = data[offset];
|
|
92
93
|
const result = new Uint8Array(size);
|
|
93
94
|
result.fill(byte);
|
|
94
95
|
return result;
|
|
@@ -110,78 +111,184 @@ function weightsToHuffmanTable(weights) {
|
|
|
110
111
|
throw new ZstdError('Invalid Huffman weights: cannot complete to power of 2', 'corruption_detected');
|
|
111
112
|
}
|
|
112
113
|
const lastWeight = 32 - Math.clz32(remainder);
|
|
113
|
-
const fullWeights =
|
|
114
|
-
|
|
115
|
-
fullWeights
|
|
114
|
+
const fullWeights = new Array(256).fill(0);
|
|
115
|
+
for (let i = 0; i < weights.length; i++) {
|
|
116
|
+
fullWeights[i] = weights[i] ?? 0;
|
|
116
117
|
}
|
|
118
|
+
fullWeights[weights.length] = lastWeight;
|
|
117
119
|
const numBits = weightsToNumBits(fullWeights, maxNumBits);
|
|
118
120
|
const table = buildHuffmanDecodeTable(numBits, maxNumBits);
|
|
119
121
|
return { table, maxNumBits };
|
|
120
122
|
}
|
|
121
|
-
function
|
|
123
|
+
function decodeHuffmanStreamByCountInto(data, streamOffset, streamLength, table, maxNumBits, out, outOffset, numSymbols) {
|
|
124
|
+
if (numSymbols === 0)
|
|
125
|
+
return 0;
|
|
126
|
+
if (streamLength <= 0) {
|
|
127
|
+
throw new ZstdError('Huffman stream truncated', 'corruption_detected');
|
|
128
|
+
}
|
|
129
|
+
const reader = new BitReaderReverse(data, streamOffset, streamLength);
|
|
130
|
+
reader.skipPadding();
|
|
131
|
+
let written = 0;
|
|
132
|
+
for (let i = 0; i < numSymbols; i++) {
|
|
133
|
+
// Peek max bits to index the table, then consume only the symbol bit length.
|
|
134
|
+
const peek = reader.readBitsFast(maxNumBits);
|
|
135
|
+
if (peek < 0 || peek >= table.length) {
|
|
136
|
+
throw new ZstdError('Huffman invalid code', 'corruption_detected');
|
|
137
|
+
}
|
|
138
|
+
const numBits = table.numBits[peek];
|
|
139
|
+
if (numBits === 0) {
|
|
140
|
+
throw new ZstdError('Huffman invalid code', 'corruption_detected');
|
|
141
|
+
}
|
|
142
|
+
const overshoot = maxNumBits - numBits;
|
|
143
|
+
if (overshoot > 0) {
|
|
144
|
+
reader.unreadBits(overshoot);
|
|
145
|
+
}
|
|
146
|
+
out[outOffset + written] = table.symbol[peek];
|
|
147
|
+
written++;
|
|
148
|
+
}
|
|
149
|
+
return written;
|
|
150
|
+
}
|
|
151
|
+
function decodeHuffmanStreamToEndInto(data, streamOffset, streamLength, table, maxNumBits, out, outOffset) {
|
|
122
152
|
if (streamLength <= 0) {
|
|
123
153
|
throw new ZstdError('Huffman stream truncated', 'corruption_detected');
|
|
124
154
|
}
|
|
125
155
|
const stream = data.subarray(streamOffset, streamOffset + streamLength);
|
|
126
|
-
const lastByte = stream[stream.length - 1]
|
|
156
|
+
const lastByte = stream[stream.length - 1];
|
|
127
157
|
if (lastByte === 0) {
|
|
128
158
|
throw new ZstdError('Huffman invalid end marker', 'corruption_detected');
|
|
129
159
|
}
|
|
130
160
|
const highestSetBit = 31 - Math.clz32(lastByte);
|
|
131
161
|
const paddingBits = 8 - highestSetBit;
|
|
132
162
|
let bitOffset = streamLength * 8 - paddingBits;
|
|
133
|
-
const
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
163
|
+
const streamBits = streamLength * 8;
|
|
164
|
+
const mask = (1 << maxNumBits) - 1;
|
|
165
|
+
let nextBitOffset = bitOffset - maxNumBits;
|
|
166
|
+
let state = 0;
|
|
167
|
+
if (nextBitOffset >= 0) {
|
|
168
|
+
const byteIndex = nextBitOffset >>> 3;
|
|
169
|
+
const bitInByte = nextBitOffset & 7;
|
|
170
|
+
const word0 = (stream[byteIndex] ?? 0) |
|
|
171
|
+
((stream[byteIndex + 1] ?? 0) << 8) |
|
|
172
|
+
((stream[byteIndex + 2] ?? 0) << 16) |
|
|
173
|
+
((stream[byteIndex + 3] ?? 0) << 24);
|
|
174
|
+
if (bitInByte + maxNumBits <= 32) {
|
|
175
|
+
state = (word0 >>> bitInByte) & ((1 << maxNumBits) - 1);
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
const low = word0 >>> bitInByte;
|
|
179
|
+
const highBits = maxNumBits - (32 - bitInByte);
|
|
180
|
+
const word1 = (stream[byteIndex + 4] ?? 0) |
|
|
181
|
+
((stream[byteIndex + 5] ?? 0) << 8) |
|
|
182
|
+
((stream[byteIndex + 6] ?? 0) << 16) |
|
|
183
|
+
((stream[byteIndex + 7] ?? 0) << 24);
|
|
184
|
+
const high = (word1 & ((1 << highBits) - 1)) << (32 - bitInByte);
|
|
185
|
+
state = (low | high) >>> 0;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
for (let i = 0; i < maxNumBits; i++) {
|
|
190
|
+
const abs = nextBitOffset + i;
|
|
191
|
+
if (abs < 0 || abs >= streamBits)
|
|
141
192
|
continue;
|
|
142
193
|
const byteIndex = abs >>> 3;
|
|
143
194
|
const bitInByte = abs & 7;
|
|
144
|
-
|
|
145
|
-
value |= bit << i;
|
|
195
|
+
state |= ((stream[byteIndex] >>> bitInByte) & 1) << i;
|
|
146
196
|
}
|
|
147
|
-
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
let state = readBitsZeroExtended(maxNumBits);
|
|
197
|
+
state >>>= 0;
|
|
198
|
+
}
|
|
199
|
+
bitOffset = nextBitOffset;
|
|
200
|
+
let written = 0;
|
|
152
201
|
while (bitOffset > -maxNumBits) {
|
|
153
|
-
|
|
154
|
-
|
|
202
|
+
if (state < 0 || state >= table.length) {
|
|
203
|
+
throw new ZstdError('Huffman invalid code', 'corruption_detected');
|
|
204
|
+
}
|
|
205
|
+
const numBits = table.numBits[state];
|
|
206
|
+
if (numBits === 0) {
|
|
155
207
|
throw new ZstdError('Huffman invalid code', 'corruption_detected');
|
|
156
208
|
}
|
|
157
|
-
out.
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
209
|
+
if (outOffset + written >= out.length) {
|
|
210
|
+
throw new ZstdError('Huffman literals size mismatch', 'corruption_detected');
|
|
211
|
+
}
|
|
212
|
+
out[outOffset + written] = table.symbol[state];
|
|
213
|
+
written++;
|
|
214
|
+
let rest = 0;
|
|
215
|
+
nextBitOffset = bitOffset - numBits;
|
|
216
|
+
if (numBits > 0) {
|
|
217
|
+
if (nextBitOffset >= 0) {
|
|
218
|
+
const byteIndex = nextBitOffset >>> 3;
|
|
219
|
+
const bitInByte = nextBitOffset & 7;
|
|
220
|
+
const word0 = (stream[byteIndex] ?? 0) |
|
|
221
|
+
((stream[byteIndex + 1] ?? 0) << 8) |
|
|
222
|
+
((stream[byteIndex + 2] ?? 0) << 16) |
|
|
223
|
+
((stream[byteIndex + 3] ?? 0) << 24);
|
|
224
|
+
if (bitInByte + numBits <= 32) {
|
|
225
|
+
rest = (word0 >>> bitInByte) & ((1 << numBits) - 1);
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
const low = word0 >>> bitInByte;
|
|
229
|
+
const highBits = numBits - (32 - bitInByte);
|
|
230
|
+
const word1 = (stream[byteIndex + 4] ?? 0) |
|
|
231
|
+
((stream[byteIndex + 5] ?? 0) << 8) |
|
|
232
|
+
((stream[byteIndex + 6] ?? 0) << 16) |
|
|
233
|
+
((stream[byteIndex + 7] ?? 0) << 24);
|
|
234
|
+
const high = (word1 & ((1 << highBits) - 1)) << (32 - bitInByte);
|
|
235
|
+
rest = (low | high) >>> 0;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
for (let i = 0; i < numBits; i++) {
|
|
240
|
+
const abs = nextBitOffset + i;
|
|
241
|
+
if (abs < 0 || abs >= streamBits)
|
|
242
|
+
continue;
|
|
243
|
+
const byteIndex = abs >>> 3;
|
|
244
|
+
const bitInByte = abs & 7;
|
|
245
|
+
rest |= ((stream[byteIndex] >>> bitInByte) & 1) << i;
|
|
246
|
+
}
|
|
247
|
+
rest >>>= 0;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
bitOffset = nextBitOffset;
|
|
251
|
+
state = ((state << numBits) & mask) + rest;
|
|
161
252
|
}
|
|
162
253
|
if (bitOffset !== -maxNumBits) {
|
|
163
254
|
throw new ZstdError('Huffman stream did not end cleanly', 'corruption_detected');
|
|
164
255
|
}
|
|
165
|
-
return
|
|
256
|
+
return written;
|
|
166
257
|
}
|
|
167
|
-
function
|
|
168
|
-
if (
|
|
169
|
-
|
|
170
|
-
if (streamLength <= 0) {
|
|
171
|
-
throw new ZstdError('Huffman stream truncated', 'corruption_detected');
|
|
258
|
+
function parseFourStreamJumpTable(data, pos, totalStreamsSize) {
|
|
259
|
+
if (totalStreamsSize < 10) {
|
|
260
|
+
throw new ZstdError('4-stream mode requires at least 10 bytes', 'corruption_detected');
|
|
172
261
|
}
|
|
173
|
-
const
|
|
174
|
-
|
|
175
|
-
const
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
262
|
+
const stream1Size = data[pos] | (data[pos + 1] << 8);
|
|
263
|
+
const stream2Size = data[pos + 2] | (data[pos + 3] << 8);
|
|
264
|
+
const stream3Size = data[pos + 4] | (data[pos + 5] << 8);
|
|
265
|
+
const stream4Size = totalStreamsSize - 6 - stream1Size - stream2Size - stream3Size;
|
|
266
|
+
if (stream4Size < 0) {
|
|
267
|
+
throw new ZstdError(`Invalid jump table in 4-stream literals: total=${totalStreamsSize} s1=${stream1Size} s2=${stream2Size} s3=${stream3Size}`, 'corruption_detected');
|
|
268
|
+
}
|
|
269
|
+
return {
|
|
270
|
+
stream1Size,
|
|
271
|
+
stream2Size,
|
|
272
|
+
stream3Size,
|
|
273
|
+
stream4Size,
|
|
274
|
+
streamOffset: pos + 6,
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
function decodeFourHuffmanStreamsInto(data, streamOffset, stream1Size, stream2Size, stream3Size, stream4Size, table, maxNumBits, out) {
|
|
278
|
+
let outPos = 0;
|
|
279
|
+
let pos = streamOffset;
|
|
280
|
+
const decodeOne = (size) => {
|
|
281
|
+
const written = decodeHuffmanStreamToEndInto(data, pos, size, table, maxNumBits, out, outPos);
|
|
282
|
+
outPos += written;
|
|
283
|
+
pos += size;
|
|
284
|
+
};
|
|
285
|
+
decodeOne(stream1Size);
|
|
286
|
+
decodeOne(stream2Size);
|
|
287
|
+
decodeOne(stream3Size);
|
|
288
|
+
decodeOne(stream4Size);
|
|
289
|
+
if (outPos !== out.length) {
|
|
290
|
+
throw new ZstdError('Huffman literals size mismatch', 'corruption_detected');
|
|
183
291
|
}
|
|
184
|
-
return out;
|
|
185
292
|
}
|
|
186
293
|
/**
|
|
187
294
|
* Decode compressed literals (Huffman). Requires Huffman table from tree description.
|
|
@@ -192,7 +299,7 @@ export function decodeCompressedLiterals(data, offset, compressedSize, regenerat
|
|
|
192
299
|
if (pos >= data.length) {
|
|
193
300
|
throw new ZstdError('Huffman tree description truncated', 'corruption_detected');
|
|
194
301
|
}
|
|
195
|
-
const headerByte = data[pos]
|
|
302
|
+
const headerByte = data[pos];
|
|
196
303
|
pos++;
|
|
197
304
|
let weights;
|
|
198
305
|
let treeBytes;
|
|
@@ -215,39 +322,12 @@ export function decodeCompressedLiterals(data, offset, compressedSize, regenerat
|
|
|
215
322
|
throw new ZstdError('Invalid literals compressed size', 'corruption_detected');
|
|
216
323
|
}
|
|
217
324
|
const result = new Uint8Array(regeneratedSize);
|
|
218
|
-
let outPos = 0;
|
|
219
325
|
if (numStreams === 1) {
|
|
220
|
-
|
|
221
|
-
result.set(lit);
|
|
326
|
+
decodeHuffmanStreamByCountInto(data, pos, totalStreamsSize, huffmanTable.table, huffmanTable.maxNumBits, result, 0, regeneratedSize);
|
|
222
327
|
}
|
|
223
328
|
else {
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
}
|
|
227
|
-
const s1 = (data[pos] ?? 0) | ((data[pos + 1] ?? 0) << 8);
|
|
228
|
-
const s2 = (data[pos + 2] ?? 0) | ((data[pos + 3] ?? 0) << 8);
|
|
229
|
-
const s3 = (data[pos + 4] ?? 0) | ((data[pos + 5] ?? 0) << 8);
|
|
230
|
-
const stream1Size = s1;
|
|
231
|
-
const stream2Size = s2;
|
|
232
|
-
const stream3Size = s3;
|
|
233
|
-
const stream4Size = totalStreamsSize - 6 - stream1Size - stream2Size - stream3Size;
|
|
234
|
-
if (stream4Size < 0) {
|
|
235
|
-
throw new ZstdError(`Invalid jump table in 4-stream literals: total=${totalStreamsSize} s1=${stream1Size} s2=${stream2Size} s3=${stream3Size}`, 'corruption_detected');
|
|
236
|
-
}
|
|
237
|
-
let streamOffset = pos + 6;
|
|
238
|
-
const decodeStream = (size) => {
|
|
239
|
-
const lit = decodeHuffmanStreamToEnd(data, streamOffset, size, huffmanTable.table, huffmanTable.maxNumBits);
|
|
240
|
-
result.set(lit, outPos);
|
|
241
|
-
outPos += lit.length;
|
|
242
|
-
streamOffset += size;
|
|
243
|
-
};
|
|
244
|
-
decodeStream(stream1Size);
|
|
245
|
-
decodeStream(stream2Size);
|
|
246
|
-
decodeStream(stream3Size);
|
|
247
|
-
decodeStream(stream4Size);
|
|
248
|
-
if (outPos !== regeneratedSize) {
|
|
249
|
-
throw new ZstdError('Huffman literals size mismatch', 'corruption_detected');
|
|
250
|
-
}
|
|
329
|
+
const jump = parseFourStreamJumpTable(data, pos, totalStreamsSize);
|
|
330
|
+
decodeFourHuffmanStreamsInto(data, jump.streamOffset, jump.stream1Size, jump.stream2Size, jump.stream3Size, jump.stream4Size, huffmanTable.table, huffmanTable.maxNumBits, result);
|
|
251
331
|
}
|
|
252
332
|
return {
|
|
253
333
|
literals: result,
|
|
@@ -260,40 +340,13 @@ export function decodeCompressedLiterals(data, offset, compressedSize, regenerat
|
|
|
260
340
|
*/
|
|
261
341
|
export function decodeTreelessLiterals(data, offset, compressedSize, regeneratedSize, numStreams, huffmanTable) {
|
|
262
342
|
const result = new Uint8Array(regeneratedSize);
|
|
263
|
-
|
|
264
|
-
let pos = offset;
|
|
343
|
+
const pos = offset;
|
|
265
344
|
if (numStreams === 1) {
|
|
266
|
-
|
|
267
|
-
result.set(lit);
|
|
345
|
+
decodeHuffmanStreamByCountInto(data, pos, compressedSize, huffmanTable.table, huffmanTable.maxNumBits, result, 0, regeneratedSize);
|
|
268
346
|
}
|
|
269
347
|
else {
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
}
|
|
273
|
-
const s1 = (data[pos] ?? 0) | ((data[pos + 1] ?? 0) << 8);
|
|
274
|
-
const s2 = (data[pos + 2] ?? 0) | ((data[pos + 3] ?? 0) << 8);
|
|
275
|
-
const s3 = (data[pos + 4] ?? 0) | ((data[pos + 5] ?? 0) << 8);
|
|
276
|
-
const stream1Size = s1;
|
|
277
|
-
const stream2Size = s2;
|
|
278
|
-
const stream3Size = s3;
|
|
279
|
-
const stream4Size = compressedSize - 6 - stream1Size - stream2Size - stream3Size;
|
|
280
|
-
if (stream4Size < 0) {
|
|
281
|
-
throw new ZstdError(`Invalid jump table in 4-stream literals: total=${compressedSize} s1=${stream1Size} s2=${stream2Size} s3=${stream3Size}`, 'corruption_detected');
|
|
282
|
-
}
|
|
283
|
-
pos += 6;
|
|
284
|
-
const decodeStream = (size) => {
|
|
285
|
-
const lit = decodeHuffmanStreamToEnd(data, pos, size, huffmanTable.table, huffmanTable.maxNumBits);
|
|
286
|
-
result.set(lit, outPos);
|
|
287
|
-
outPos += lit.length;
|
|
288
|
-
pos += size;
|
|
289
|
-
};
|
|
290
|
-
decodeStream(stream1Size);
|
|
291
|
-
decodeStream(stream2Size);
|
|
292
|
-
decodeStream(stream3Size);
|
|
293
|
-
decodeStream(stream4Size);
|
|
294
|
-
if (outPos !== regeneratedSize) {
|
|
295
|
-
throw new ZstdError('Huffman literals size mismatch', 'corruption_detected');
|
|
296
|
-
}
|
|
348
|
+
const jump = parseFourStreamJumpTable(data, pos, compressedSize);
|
|
349
|
+
decodeFourHuffmanStreamsInto(data, jump.streamOffset, jump.stream1Size, jump.stream2Size, jump.stream3Size, jump.stream4Size, huffmanTable.table, huffmanTable.maxNumBits, result);
|
|
297
350
|
}
|
|
298
351
|
return { literals: result, bytesRead: compressedSize };
|
|
299
352
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"literals.js","sourceRoot":"","sources":["../../src/decode/literals.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"literals.js","sourceRoot":"","sources":["../../src/decode/literals.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,40 @@ export interface Sequence {
|
|
|
6
6
|
offset: number;
|
|
7
7
|
matchLength: number;
|
|
8
8
|
}
|
|
9
|
+
export interface PackedSequences {
|
|
10
|
+
literalsLength: Uint32Array;
|
|
11
|
+
offset: Uint32Array;
|
|
12
|
+
matchLength: Uint32Array;
|
|
13
|
+
length: number;
|
|
14
|
+
}
|
|
15
|
+
export interface HistoryWindow {
|
|
16
|
+
buffer: Uint8Array;
|
|
17
|
+
length: number;
|
|
18
|
+
writePos: number;
|
|
19
|
+
}
|
|
20
|
+
export declare function createHistoryWindow(windowSize: number, initial?: Uint8Array): HistoryWindow;
|
|
21
|
+
/** Internal: reuse bag for decoder context. */
|
|
22
|
+
export interface DecoderReuseBag {
|
|
23
|
+
_history?: HistoryWindow;
|
|
24
|
+
_sequences?: PackedSequences;
|
|
25
|
+
_decodeMode?: 'fast' | 'reference';
|
|
26
|
+
_useFusedSequences?: boolean;
|
|
27
|
+
}
|
|
28
|
+
export declare function ensurePackedSequencesCapacity(existing: PackedSequences | undefined, minLength: number): PackedSequences;
|
|
29
|
+
export declare function packSequences(sequences: readonly Sequence[], reuse?: PackedSequences): PackedSequences;
|
|
30
|
+
export declare function packedSequencesToArray(sequences: PackedSequences): Sequence[];
|
|
31
|
+
/**
|
|
32
|
+
* Get or create a history window, reusing from bag when buffer is large enough.
|
|
33
|
+
* Caller may pass a mutable bag; it will be updated with the history used.
|
|
34
|
+
*/
|
|
35
|
+
export declare function getOrCreateHistoryWindow(windowSize: number, initial: Uint8Array | undefined, reuse: DecoderReuseBag | undefined): HistoryWindow;
|
|
36
|
+
export declare function appendToHistoryWindow(history: HistoryWindow, chunk: Uint8Array): void;
|
|
37
|
+
export declare function appendRangeToHistoryWindow(history: HistoryWindow, source: Uint8Array, start: number, length: number): void;
|
|
38
|
+
export declare function appendRLEToHistoryWindow(history: HistoryWindow, byte: number, length: number): void;
|
|
39
|
+
export declare function executeSequencesInto(literals: Uint8Array, sequences: PackedSequences, windowSize: number, target: Uint8Array, targetOffset: number, repOffsets?: [number, number, number], historyInput?: HistoryWindow | Uint8Array, updateHistory?: boolean): number;
|
|
40
|
+
export declare function executeSequencesIntoFast(literals: Uint8Array, sequences: PackedSequences, windowSize: number, target: Uint8Array, targetOffset: number, repOffsets?: [number, number, number], historyInput?: HistoryWindow | Uint8Array, updateHistory?: boolean): number;
|
|
9
41
|
/**
|
|
10
42
|
* Execute sequences to produce decompressed output.
|
|
11
43
|
* repOffsets: [Repeated_Offset1, Repeated_Offset2, Repeated_Offset3], updated in place.
|
|
12
44
|
*/
|
|
13
|
-
export declare function executeSequences(literals: Uint8Array, sequences: Sequence[], windowSize: number, repOffsets?: [number, number, number],
|
|
45
|
+
export declare function executeSequences(literals: Uint8Array, sequences: Sequence[], windowSize: number, repOffsets?: [number, number, number], historyInput?: HistoryWindow | Uint8Array): Uint8Array;
|