zstdify 1.3.1 → 1.4.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 (46) hide show
  1. package/README.md +10 -8
  2. package/dist/bitstream/bitReaderReverse.d.ts +15 -0
  3. package/dist/bitstream/bitReaderReverse.js +38 -0
  4. package/dist/bitstream/bitReaderReverse.js.map +1 -1
  5. package/dist/bitstream/reverseBitWriter.d.ts +15 -1
  6. package/dist/bitstream/reverseBitWriter.js +6 -7
  7. package/dist/bitstream/reverseBitWriter.js.map +1 -1
  8. package/dist/bitstream/varint.d.ts +2 -1
  9. package/dist/bitstream/varint.js +16 -8
  10. package/dist/bitstream/varint.js.map +1 -1
  11. package/dist/compress.js +8 -7
  12. package/dist/compress.js.map +1 -1
  13. package/dist/decode/block.d.ts +1 -0
  14. package/dist/decode/block.js +4 -0
  15. package/dist/decode/block.js.map +1 -1
  16. package/dist/decode/decompressFrame.js +25 -71
  17. package/dist/decode/decompressFrame.js.map +1 -1
  18. package/dist/decode/fusedSequences.d.ts +4 -5
  19. package/dist/decode/fusedSequences.js +403 -20
  20. package/dist/decode/fusedSequences.js.map +1 -1
  21. package/dist/decode/reconstruct.d.ts +0 -2
  22. package/dist/decode/reconstruct.js +87 -78
  23. package/dist/decode/reconstruct.js.map +1 -1
  24. package/dist/decode/sequences.js +19 -20
  25. package/dist/decode/sequences.js.map +1 -1
  26. package/dist/dictionary/compressorDictionary.d.ts +8 -0
  27. package/dist/dictionary/compressorDictionary.js +22 -14
  28. package/dist/dictionary/compressorDictionary.js.map +1 -1
  29. package/dist/encode/compressedBlock.d.ts +2 -2
  30. package/dist/encode/compressedBlock.js +100 -197
  31. package/dist/encode/compressedBlock.js.map +1 -1
  32. package/dist/encode/frameWriter.js +5 -1
  33. package/dist/encode/frameWriter.js.map +1 -1
  34. package/dist/encode/literalsEncoder.d.ts +2 -1
  35. package/dist/encode/literalsEncoder.js +289 -47
  36. package/dist/encode/literalsEncoder.js.map +1 -1
  37. package/dist/entropy/fse.d.ts +1 -1
  38. package/dist/entropy/fse.js +21 -1
  39. package/dist/entropy/fse.js.map +1 -1
  40. package/dist/entropy/huffman.d.ts +1 -1
  41. package/dist/entropy/huffman.js +2 -1
  42. package/dist/entropy/huffman.js.map +1 -1
  43. package/dist/frame/frameHeader.js +1 -1
  44. package/dist/frame/skippable.js +7 -2
  45. package/dist/frame/skippable.js.map +1 -1
  46. package/package.json +1 -1
@@ -1,26 +1,409 @@
1
- import { executeSequencesIntoFast } from './reconstruct.js';
2
- import { decodeSequences } from './sequences.js';
3
- export function shouldUseFusedSequencePath(seqSize, literalsLength, windowSize, updateHistory) {
4
- if (seqSize < 4) {
5
- return false;
1
+ import { BitReaderReverse } from '../bitstream/bitReaderReverse.js';
2
+ import { buildFSEDecodeTable, readNCount } from '../entropy/fse.js';
3
+ import { LITERALS_LENGTH_DEFAULT_DISTRIBUTION, LITERALS_LENGTH_TABLE_LOG, MATCH_LENGTH_DEFAULT_DISTRIBUTION, MATCH_LENGTH_TABLE_LOG, OFFSET_CODE_DEFAULT_DISTRIBUTION, OFFSET_CODE_TABLE_LOG, } from '../entropy/predefined.js';
4
+ import { ZstdError } from '../errors.js';
5
+ import { appendRangeToHistoryWindow } from './reconstruct.js';
6
+ const LL_BASELINE = new Int32Array([
7
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 18, 20, 22, 24, 28, 32, 40, 48, 64, 128, 256, 512, 1024, 2048,
8
+ 4096, 8192, 16384, 32768, 65536,
9
+ ]);
10
+ const LL_NUMBITS = new Uint8Array([
11
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 3, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
12
+ ]);
13
+ const ML_BASELINE = new Int32Array([
14
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
15
+ 34, 35, 37, 39, 41, 43, 47, 51, 59, 67, 83, 99, 131, 259, 515, 1027, 2051, 4099, 8195, 16387, 32771, 65539,
16
+ ]);
17
+ const ML_NUMBITS = new Uint8Array([
18
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 3,
19
+ 3, 4, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
20
+ ]);
21
+ const DEFAULT_LL_TABLE = buildFSEDecodeTable(LITERALS_LENGTH_DEFAULT_DISTRIBUTION, LITERALS_LENGTH_TABLE_LOG);
22
+ const DEFAULT_OF_TABLE = buildFSEDecodeTable(OFFSET_CODE_DEFAULT_DISTRIBUTION, OFFSET_CODE_TABLE_LOG);
23
+ const DEFAULT_ML_TABLE = buildFSEDecodeTable(MATCH_LENGTH_DEFAULT_DISTRIBUTION, MATCH_LENGTH_TABLE_LOG);
24
+ const RLE_TABLE_CACHE_5 = new Array(256);
25
+ const RLE_TABLE_CACHE_6 = new Array(256);
26
+ const FAST_LITERAL_COPY_LOOP_THRESHOLD = 8;
27
+ const FAST_SMALL_OFFSET_LOOP_THRESHOLD = 16;
28
+ const FAST_HISTORY_COPY_LOOP_THRESHOLD = 16;
29
+ function buildRLETable(symbol, tableLog) {
30
+ const cache = tableLog === 5 ? RLE_TABLE_CACHE_5 : tableLog === 6 ? RLE_TABLE_CACHE_6 : null;
31
+ if (cache) {
32
+ const cached = cache[symbol];
33
+ if (cached) {
34
+ return cached;
35
+ }
6
36
  }
7
- if (literalsLength === 0) {
8
- return false;
37
+ const tableSize = 1 << tableLog;
38
+ const symbolByState = new Uint16Array(tableSize);
39
+ const bitsByState = new Uint8Array(tableSize);
40
+ const baselineByState = new Int32Array(tableSize);
41
+ for (let i = 0; i < tableSize; i++) {
42
+ symbolByState[i] = symbol;
43
+ bitsByState[i] = tableLog;
9
44
  }
10
- // For very large windows with history tracking enabled, the non-fused route can be more stable.
11
- if (updateHistory && windowSize > 8 * 1024 * 1024) {
12
- return false;
45
+ const table = {
46
+ symbol: symbolByState,
47
+ numBits: bitsByState,
48
+ baseline: baselineByState,
49
+ tableLog,
50
+ length: tableSize,
51
+ };
52
+ if (cache) {
53
+ cache[symbol] = table;
13
54
  }
14
- return true;
55
+ return table;
15
56
  }
16
- export function decodeAndExecuteSequencesInto(blockContent, seqOffset, seqSize, prevSeqTables, sequenceReuse, literals, windowSize, ensureOutputCapacity, getOutputBuffer, outputStart, repOffsets, history, updateHistory) {
17
- const seqResult = decodeSequences(blockContent, seqOffset, seqSize, prevSeqTables, sequenceReuse);
18
- if (seqResult.sequences.length === 0) {
19
- return { written: 0, seqResult };
20
- }
21
- ensureOutputCapacity(literals.length + seqResult.metadata.totalMatchLength);
22
- const output = getOutputBuffer();
23
- const written = executeSequencesIntoFast(literals, seqResult.sequences, windowSize, output, outputStart, repOffsets, history, updateHistory);
24
- return { written, seqResult };
57
+ export function decodeAndExecuteSequencesInto(blockContent, seqOffset, seqSize, prevSeqTables, literals, windowSize, output, outputStart, repOffsets, history, updateHistory, collectMetadata = true) {
58
+ if (seqSize < 2) {
59
+ throw new ZstdError('Sequences section too short', 'corruption_detected');
60
+ }
61
+ const sectionStart = seqOffset;
62
+ let pos = sectionStart;
63
+ let numSequences = blockContent[pos];
64
+ pos++;
65
+ if (numSequences >= 128) {
66
+ if (numSequences === 255) {
67
+ if (pos + 2 > sectionStart + seqSize) {
68
+ throw new ZstdError('Sequences section truncated', 'corruption_detected');
69
+ }
70
+ numSequences = blockContent[pos] + (blockContent[pos + 1] << 8) + 0x7f00;
71
+ pos += 2;
72
+ }
73
+ else {
74
+ if (pos >= sectionStart + seqSize) {
75
+ throw new ZstdError('Sequences section truncated', 'corruption_detected');
76
+ }
77
+ numSequences = ((numSequences - 0x80) << 8) + blockContent[pos];
78
+ pos++;
79
+ }
80
+ }
81
+ let llMode = 0;
82
+ let ofMode = 0;
83
+ let mlMode = 0;
84
+ let llTable = DEFAULT_LL_TABLE;
85
+ let llTableLog = LITERALS_LENGTH_TABLE_LOG;
86
+ let ofTable = DEFAULT_OF_TABLE;
87
+ let ofTableLog = OFFSET_CODE_TABLE_LOG;
88
+ let mlTable = DEFAULT_ML_TABLE;
89
+ let mlTableLog = MATCH_LENGTH_TABLE_LOG;
90
+ if (numSequences > 0) {
91
+ if (pos >= sectionStart + seqSize) {
92
+ throw new ZstdError('Sequences section truncated', 'corruption_detected');
93
+ }
94
+ const modesByte = blockContent[pos];
95
+ pos++;
96
+ llMode = ((modesByte >> 6) & 3);
97
+ ofMode = ((modesByte >> 4) & 3);
98
+ mlMode = ((modesByte >> 2) & 3);
99
+ if ((modesByte & 3) !== 0) {
100
+ throw new ZstdError('Reserved bits set in sequences modes', 'corruption_detected');
101
+ }
102
+ if (llMode === 1) {
103
+ if (pos >= sectionStart + seqSize)
104
+ throw new ZstdError('Sequences section truncated', 'corruption_detected');
105
+ llTable = buildRLETable(blockContent[pos], 6);
106
+ llTableLog = 6;
107
+ pos++;
108
+ }
109
+ else if (llMode === 2) {
110
+ const result = readNCount(blockContent, pos, 35, 9);
111
+ pos += result.bytesRead;
112
+ llTable = buildFSEDecodeTable(result.normalizedCounter, result.tableLog);
113
+ llTableLog = result.tableLog;
114
+ }
115
+ else if (llMode === 3) {
116
+ if (!prevSeqTables)
117
+ throw new ZstdError('Repeat_Mode without previous table', 'corruption_detected');
118
+ llTable = prevSeqTables.llTable;
119
+ llTableLog = prevSeqTables.llTableLog;
120
+ }
121
+ if (ofMode === 1) {
122
+ if (pos >= sectionStart + seqSize)
123
+ throw new ZstdError('Sequences section truncated', 'corruption_detected');
124
+ ofTable = buildRLETable(blockContent[pos], 5);
125
+ ofTableLog = 5;
126
+ pos++;
127
+ }
128
+ else if (ofMode === 2) {
129
+ const result = readNCount(blockContent, pos, 31, 8);
130
+ pos += result.bytesRead;
131
+ ofTable = buildFSEDecodeTable(result.normalizedCounter, result.tableLog);
132
+ ofTableLog = result.tableLog;
133
+ }
134
+ else if (ofMode === 3) {
135
+ if (!prevSeqTables)
136
+ throw new ZstdError('Repeat_Mode without previous table', 'corruption_detected');
137
+ ofTable = prevSeqTables.ofTable;
138
+ ofTableLog = prevSeqTables.ofTableLog;
139
+ }
140
+ if (mlMode === 1) {
141
+ if (pos >= sectionStart + seqSize)
142
+ throw new ZstdError('Sequences section truncated', 'corruption_detected');
143
+ mlTable = buildRLETable(blockContent[pos], 6);
144
+ mlTableLog = 6;
145
+ pos++;
146
+ }
147
+ else if (mlMode === 2) {
148
+ const result = readNCount(blockContent, pos, 52, 9);
149
+ pos += result.bytesRead;
150
+ mlTable = buildFSEDecodeTable(result.normalizedCounter, result.tableLog);
151
+ mlTableLog = result.tableLog;
152
+ }
153
+ else if (mlMode === 3) {
154
+ if (!prevSeqTables)
155
+ throw new ZstdError('Repeat_Mode without previous table', 'corruption_detected');
156
+ mlTable = prevSeqTables.mlTable;
157
+ mlTableLog = prevSeqTables.mlTableLog;
158
+ }
159
+ }
160
+ let outPos = outputStart;
161
+ let litPos = 0;
162
+ let totalMatchLength = 0;
163
+ let repeatOffsetCandidateCount = 0;
164
+ let rep0 = repOffsets[0];
165
+ let rep1 = repOffsets[1];
166
+ let rep2 = repOffsets[2];
167
+ const historyLength = history.length;
168
+ const historyCap = history.buffer.length;
169
+ const historyOldestPos = historyCap > 0 ? (history.writePos - historyLength + historyCap) % historyCap : 0;
170
+ const historyBuffer = history.buffer;
171
+ if (numSequences > 0) {
172
+ const bitstreamSize = sectionStart + seqSize - pos;
173
+ if (bitstreamSize < 1) {
174
+ throw new ZstdError('Sequences bitstream empty', 'corruption_detected');
175
+ }
176
+ const reader = new BitReaderReverse(blockContent, pos, bitstreamSize);
177
+ reader.skipPadding();
178
+ let stateLL = llTableLog > 0 ? reader.readBits(llTableLog) : 0;
179
+ let stateOF = ofTableLog > 0 ? reader.readBits(ofTableLog) : 0;
180
+ let stateML = mlTableLog > 0 ? reader.readBits(mlTableLog) : 0;
181
+ const llTableLength = llTable.length;
182
+ const ofTableLength = ofTable.length;
183
+ const mlTableLength = mlTable.length;
184
+ if (stateOF >>> 0 >= ofTableLength || stateML >>> 0 >= mlTableLength || stateLL >>> 0 >= llTableLength) {
185
+ throw new ZstdError('FSE invalid state', 'corruption_detected');
186
+ }
187
+ const llSymbolByState = llTable.symbol;
188
+ const ofSymbolByState = ofTable.symbol;
189
+ const mlSymbolByState = mlTable.symbol;
190
+ const llNumBitsByState = llTable.numBits;
191
+ const ofNumBitsByState = ofTable.numBits;
192
+ const mlNumBitsByState = mlTable.numBits;
193
+ const llBaselineByState = llTable.baseline;
194
+ const ofBaselineByState = ofTable.baseline;
195
+ const mlBaselineByState = mlTable.baseline;
196
+ const lastSequenceIndex = numSequences - 1;
197
+ for (let i = 0; i <= lastSequenceIndex; i++) {
198
+ const offsetCode = ofSymbolByState[stateOF];
199
+ const mlCode = mlSymbolByState[stateML];
200
+ const llCode = llSymbolByState[stateLL];
201
+ const offsetValue = (1 << offsetCode) + reader.readBitsFastOrZero(offsetCode);
202
+ if (mlCode >= ML_BASELINE.length)
203
+ throw new ZstdError('Invalid match length code', 'corruption_detected');
204
+ if (llCode >= LL_BASELINE.length)
205
+ throw new ZstdError('Invalid literals length code', 'corruption_detected');
206
+ const mlNumBits = ML_NUMBITS[mlCode];
207
+ const mlBase = ML_BASELINE[mlCode];
208
+ const matchLength = mlBase + reader.readBitsFastOrZero(mlNumBits);
209
+ const llNumBits = LL_NUMBITS[llCode];
210
+ const llBase = LL_BASELINE[llCode];
211
+ const literalsLength = llCode <= 15 ? llCode : llBase + reader.readBitsFastOrZero(llNumBits);
212
+ if (collectMetadata) {
213
+ if (offsetValue <= 2 || (offsetValue === 3 && literalsLength > 0)) {
214
+ repeatOffsetCandidateCount++;
215
+ }
216
+ totalMatchLength += matchLength;
217
+ }
218
+ if (literalsLength > 0) {
219
+ const litEnd = litPos + literalsLength;
220
+ if (litEnd > literals.length) {
221
+ throw new ZstdError('Literals overrun while executing sequence', 'corruption_detected');
222
+ }
223
+ if (literalsLength <= FAST_LITERAL_COPY_LOOP_THRESHOLD) {
224
+ for (let j = 0; j < literalsLength; j++) {
225
+ output[outPos + j] = literals[litPos + j];
226
+ }
227
+ }
228
+ else {
229
+ output.set(literals.subarray(litPos, litEnd), outPos);
230
+ }
231
+ outPos += literalsLength;
232
+ litPos = litEnd;
233
+ }
234
+ const ll0 = literalsLength === 0;
235
+ let offset;
236
+ let repeatIndex = null;
237
+ const isNonRepeat = offsetValue > 3 || (offsetValue === 3 && ll0);
238
+ if (isNonRepeat) {
239
+ if (offsetValue === 3) {
240
+ offset = rep0 - 1;
241
+ if (offset === 0) {
242
+ throw new ZstdError('Invalid match offset: repeat1-1 is 0', 'corruption_detected');
243
+ }
244
+ }
245
+ else {
246
+ offset = offsetValue - 3;
247
+ }
248
+ }
249
+ else {
250
+ if (ll0) {
251
+ repeatIndex = offsetValue === 1 ? 1 : 2;
252
+ }
253
+ else {
254
+ repeatIndex = (offsetValue - 1);
255
+ }
256
+ offset = repeatIndex === 0 ? rep0 : repeatIndex === 1 ? rep1 : rep2;
257
+ }
258
+ const produced = outPos - outputStart;
259
+ const producedPlusHistory = produced + historyLength;
260
+ const maxReachBack = producedPlusHistory < windowSize ? producedPlusHistory : windowSize;
261
+ if (offset <= 0 || offset > maxReachBack) {
262
+ throw new ZstdError(`Invalid match offset: offset=${offset} maxReachBack=${maxReachBack} produced=${produced} history=${historyLength} window=${windowSize}`, 'corruption_detected');
263
+ }
264
+ const historyBytesNeeded = offset > produced ? offset - produced : 0;
265
+ if (matchLength > 0) {
266
+ if (historyBytesNeeded === 0) {
267
+ const copyStart = outPos - offset;
268
+ if (offset >= matchLength) {
269
+ output.copyWithin(outPos, copyStart, copyStart + matchLength);
270
+ outPos += matchLength;
271
+ }
272
+ else if (offset <= FAST_SMALL_OFFSET_LOOP_THRESHOLD) {
273
+ for (let j = 0; j < matchLength; j++) {
274
+ output[outPos + j] = output[outPos - offset + j];
275
+ }
276
+ outPos += matchLength;
277
+ }
278
+ else {
279
+ let copied = offset;
280
+ output.copyWithin(outPos, copyStart, copyStart + copied);
281
+ outPos += copied;
282
+ while (copied < matchLength) {
283
+ const toCopy = Math.min(copied, matchLength - copied);
284
+ output.copyWithin(outPos, outPos - copied, outPos - copied + toCopy);
285
+ outPos += toCopy;
286
+ copied += toCopy;
287
+ }
288
+ }
289
+ }
290
+ else {
291
+ if (historyCap === 0) {
292
+ throw new ZstdError('Invalid history read', 'corruption_detected');
293
+ }
294
+ const historyCopyLen = Math.min(historyBytesNeeded, matchLength);
295
+ const historyStart = historyLength - historyBytesNeeded;
296
+ if (historyStart < 0 || historyStart + historyCopyLen > historyLength) {
297
+ throw new ZstdError('Invalid history read', 'corruption_detected');
298
+ }
299
+ let physicalStart = historyOldestPos + historyStart;
300
+ if (physicalStart >= historyCap) {
301
+ physicalStart -= historyCap;
302
+ }
303
+ const firstHistoryChunk = Math.min(historyCopyLen, historyCap - physicalStart);
304
+ const remainingHistoryChunk = historyCopyLen - firstHistoryChunk;
305
+ if (historyCopyLen <= FAST_HISTORY_COPY_LOOP_THRESHOLD) {
306
+ let phys = physicalStart;
307
+ for (let j = 0; j < historyCopyLen; j++) {
308
+ output[outPos + j] = historyBuffer[phys];
309
+ phys = phys + 1 === historyCap ? 0 : phys + 1;
310
+ }
311
+ outPos += historyCopyLen;
312
+ }
313
+ else {
314
+ output.set(historyBuffer.subarray(physicalStart, physicalStart + firstHistoryChunk), outPos);
315
+ outPos += firstHistoryChunk;
316
+ if (remainingHistoryChunk > 0) {
317
+ output.set(historyBuffer.subarray(0, remainingHistoryChunk), outPos);
318
+ outPos += remainingHistoryChunk;
319
+ }
320
+ }
321
+ const matchRemaining = matchLength - historyCopyLen;
322
+ if (matchRemaining > 0) {
323
+ const copyStart = outPos - offset;
324
+ if (offset >= matchRemaining) {
325
+ output.copyWithin(outPos, copyStart, copyStart + matchRemaining);
326
+ outPos += matchRemaining;
327
+ }
328
+ else if (offset <= FAST_SMALL_OFFSET_LOOP_THRESHOLD) {
329
+ for (let j = 0; j < matchRemaining; j++) {
330
+ output[outPos + j] = output[outPos - offset + j];
331
+ }
332
+ outPos += matchRemaining;
333
+ }
334
+ else {
335
+ let copied = offset;
336
+ output.copyWithin(outPos, copyStart, copyStart + copied);
337
+ outPos += copied;
338
+ while (copied < matchRemaining) {
339
+ const toCopy = Math.min(copied, matchRemaining - copied);
340
+ output.copyWithin(outPos, outPos - copied, outPos - copied + toCopy);
341
+ outPos += toCopy;
342
+ copied += toCopy;
343
+ }
344
+ }
345
+ }
346
+ }
347
+ }
348
+ if (isNonRepeat) {
349
+ rep2 = rep1;
350
+ rep1 = rep0;
351
+ rep0 = offset;
352
+ }
353
+ else if (repeatIndex === 1) {
354
+ rep1 = rep0;
355
+ rep0 = offset;
356
+ }
357
+ else if (repeatIndex === 2) {
358
+ rep2 = rep1;
359
+ rep1 = rep0;
360
+ rep0 = offset;
361
+ }
362
+ if (i < lastSequenceIndex) {
363
+ const llBits = llNumBitsByState[stateLL];
364
+ const mlBits = mlNumBitsByState[stateML];
365
+ const ofBits = ofNumBitsByState[stateOF];
366
+ stateLL = llBaselineByState[stateLL] + reader.readBitsFastOrZero(llBits);
367
+ stateML = mlBaselineByState[stateML] + reader.readBitsFastOrZero(mlBits);
368
+ stateOF = ofBaselineByState[stateOF] + reader.readBitsFastOrZero(ofBits);
369
+ if (stateOF >>> 0 >= ofTableLength || stateML >>> 0 >= mlTableLength || stateLL >>> 0 >= llTableLength) {
370
+ throw new ZstdError('FSE invalid state', 'corruption_detected');
371
+ }
372
+ }
373
+ }
374
+ }
375
+ if (litPos < literals.length) {
376
+ const remaining = literals.length - litPos;
377
+ if (remaining <= FAST_LITERAL_COPY_LOOP_THRESHOLD) {
378
+ for (let i = 0; i < remaining; i++) {
379
+ output[outPos + i] = literals[litPos + i];
380
+ }
381
+ }
382
+ else {
383
+ output.set(literals.subarray(litPos), outPos);
384
+ }
385
+ outPos += remaining;
386
+ }
387
+ if (updateHistory && outPos > outputStart) {
388
+ appendRangeToHistoryWindow(history, output, outputStart, outPos - outputStart);
389
+ }
390
+ repOffsets[0] = rep0;
391
+ repOffsets[1] = rep1;
392
+ repOffsets[2] = rep2;
393
+ return {
394
+ written: outPos - outputStart,
395
+ tables: { llTable, llTableLog, ofTable, ofTableLog, mlTable, mlTableLog },
396
+ metadata: {
397
+ numSequences,
398
+ llMode,
399
+ ofMode,
400
+ mlMode,
401
+ llTableLog,
402
+ ofTableLog,
403
+ mlTableLog,
404
+ totalMatchLength,
405
+ repeatOffsetCandidateCount,
406
+ },
407
+ };
25
408
  }
26
409
  //# sourceMappingURL=fusedSequences.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fusedSequences.js","sourceRoot":"","sources":["../../src/decode/fusedSequences.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAsB,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAA8B,eAAe,EAAuB,MAAM,gBAAgB,CAAC;AAOlG,MAAM,UAAU,0BAA0B,CACxC,OAAe,EACf,cAAsB,EACtB,UAAkB,EAClB,aAAsB,EACb;IACT,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,gGAAgG;IAChG,IAAI,aAAa,IAAI,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AAAA,CACb;AAED,MAAM,UAAU,6BAA6B,CAC3C,YAAwB,EACxB,SAAiB,EACjB,OAAe,EACf,aAAoC,EACpC,aAA0C,EAC1C,QAAoB,EACpB,UAAkB,EAClB,oBAAkD,EAClD,eAAiC,EACjC,WAAmB,EACnB,UAAoC,EACpC,OAAsB,EACtB,aAAsB,EACI;IAC1B,MAAM,SAAS,GAAG,eAAe,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;IAClG,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;IACnC,CAAC;IACD,oBAAoB,CAAC,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,wBAAwB,CACtC,QAAQ,EACR,SAAS,CAAC,SAAS,EACnB,UAAU,EACV,MAAM,EACN,WAAW,EACX,UAAU,EACV,OAAO,EACP,aAAa,CACd,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAAA,CAC/B"}
1
+ {"version":3,"file":"fusedSequences.js","sourceRoot":"","sources":["../../src/decode/fusedSequences.ts"],"names":[],"mappings":"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"}
@@ -22,8 +22,6 @@ export declare function createHistoryWindow(windowSize: number, initial?: Uint8A
22
22
  export interface DecoderReuseBag {
23
23
  _history?: HistoryWindow;
24
24
  _sequences?: PackedSequences;
25
- _decodeMode?: 'fast' | 'reference';
26
- _useFusedSequences?: boolean;
27
25
  }
28
26
  export declare function ensurePackedSequencesCapacity(existing: PackedSequences | undefined, minLength: number): PackedSequences;
29
27
  export declare function packSequences(sequences: readonly Sequence[], reuse?: PackedSequences): PackedSequences;