zstdify 1.3.0 → 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 (53) hide show
  1. package/README.md +24 -4
  2. package/dist/bitstream/bitReaderReverse.d.ts +15 -0
  3. package/dist/bitstream/bitReaderReverse.js +41 -1
  4. package/dist/bitstream/bitReaderReverse.js.map +1 -1
  5. package/dist/bitstream/index.d.ts +1 -1
  6. package/dist/bitstream/index.js +1 -1
  7. package/dist/bitstream/index.js.map +1 -1
  8. package/dist/bitstream/reverseBitWriter.d.ts +15 -1
  9. package/dist/bitstream/reverseBitWriter.js +6 -7
  10. package/dist/bitstream/reverseBitWriter.js.map +1 -1
  11. package/dist/bitstream/varint.d.ts +2 -1
  12. package/dist/bitstream/varint.js +16 -8
  13. package/dist/bitstream/varint.js.map +1 -1
  14. package/dist/compress.js +8 -7
  15. package/dist/compress.js.map +1 -1
  16. package/dist/decode/block.d.ts +1 -0
  17. package/dist/decode/block.js +4 -0
  18. package/dist/decode/block.js.map +1 -1
  19. package/dist/decode/decompressFrame.js +25 -71
  20. package/dist/decode/decompressFrame.js.map +1 -1
  21. package/dist/decode/fusedSequences.d.ts +4 -5
  22. package/dist/decode/fusedSequences.js +403 -20
  23. package/dist/decode/fusedSequences.js.map +1 -1
  24. package/dist/decode/reconstruct.d.ts +0 -2
  25. package/dist/decode/reconstruct.js +87 -78
  26. package/dist/decode/reconstruct.js.map +1 -1
  27. package/dist/decode/sequences.js +19 -20
  28. package/dist/decode/sequences.js.map +1 -1
  29. package/dist/dictionary/compressorDictionary.d.ts +8 -0
  30. package/dist/dictionary/compressorDictionary.js +22 -14
  31. package/dist/dictionary/compressorDictionary.js.map +1 -1
  32. package/dist/encode/compressedBlock.d.ts +2 -2
  33. package/dist/encode/compressedBlock.js +107 -198
  34. package/dist/encode/compressedBlock.js.map +1 -1
  35. package/dist/encode/fastMatcher.js.map +1 -1
  36. package/dist/encode/frameWriter.js +5 -1
  37. package/dist/encode/frameWriter.js.map +1 -1
  38. package/dist/encode/lazyMatcher.js.map +1 -1
  39. package/dist/encode/literalsEncoder.d.ts +2 -1
  40. package/dist/encode/literalsEncoder.js +289 -47
  41. package/dist/encode/literalsEncoder.js.map +1 -1
  42. package/dist/encode/optimalParser.js.map +1 -1
  43. package/dist/encode/sequencePlanner.js.map +1 -1
  44. package/dist/entropy/fse.d.ts +1 -1
  45. package/dist/entropy/fse.js +21 -1
  46. package/dist/entropy/fse.js.map +1 -1
  47. package/dist/entropy/huffman.d.ts +1 -1
  48. package/dist/entropy/huffman.js +2 -1
  49. package/dist/entropy/huffman.js.map +1 -1
  50. package/dist/frame/frameHeader.js +1 -1
  51. package/dist/frame/skippable.js +7 -2
  52. package/dist/frame/skippable.js.map +1 -1
  53. package/package.json +1 -1
@@ -1,8 +1,12 @@
1
1
  import { BitWriter } from '../bitstream/bitWriter.js';
2
- import { encodeReverseBitstream } from '../bitstream/reverseBitWriter.js';
2
+ import { encodeReverseBitstream, ReverseBitWriter } from '../bitstream/reverseBitWriter.js';
3
+ import { buildFSEDecodeTable, normalizeCountsForTable, readNCount, writeNCount } from '../entropy/fse.js';
3
4
  import { buildHuffmanDecodeTable, weightsToNumBits } from '../entropy/huffman.js';
5
+ import { readWeightsFSE } from '../entropy/weights.js';
4
6
  let literalBitCountsScratch = null;
5
7
  let literalBitValuesScratch = null;
8
+ const WEIGHT_MAX_SYMBOL = 11;
9
+ const WEIGHT_MAX_TABLE_LOG = 7;
6
10
  function ensureLiteralBitScratch(minLength) {
7
11
  const counts = literalBitCountsScratch;
8
12
  const values = literalBitValuesScratch;
@@ -123,43 +127,77 @@ function buildFrequencyHuffmanTable(literals) {
123
127
  if (literals.length < 8)
124
128
  return null;
125
129
  let maxSymbol = 0;
126
- const freq = new Uint32Array(257);
130
+ const freq = new Uint32Array(256);
127
131
  for (let i = 0; i < literals.length; i++) {
128
132
  const b = literals[i] ?? 0;
129
133
  freq[b] = (freq[b] ?? 0) + 1;
130
134
  if (b > maxSymbol)
131
135
  maxSymbol = b;
132
136
  }
133
- if (maxSymbol > 127)
134
- return null; // Direct-weight path is limited to <= 128 serialized weights.
135
- const pseudoSymbol = maxSymbol + 1;
136
- freq[pseudoSymbol] = 1;
137
- const depths = buildHuffmanDepths(freq);
138
- if (!depths)
139
- return null;
140
- let maxDepth = 0;
141
- for (let s = 0; s <= pseudoSymbol; s++) {
142
- const d = depths[s] ?? 0;
143
- if (d > maxDepth)
144
- maxDepth = d;
137
+ let weights;
138
+ let maxNumBits = 0;
139
+ const fullWeights = new Array(256).fill(0);
140
+ if (maxSymbol < 255) {
141
+ const freqWithPseudo = new Uint32Array(257);
142
+ freqWithPseudo.set(freq, 0);
143
+ const pseudoSymbol = maxSymbol + 1;
144
+ freqWithPseudo[pseudoSymbol] = 1;
145
+ const depths = buildHuffmanDepths(freqWithPseudo);
146
+ if (!depths)
147
+ return null;
148
+ let maxDepth = 0;
149
+ for (let s = 0; s <= pseudoSymbol; s++) {
150
+ const d = depths[s] ?? 0;
151
+ if (d > maxDepth)
152
+ maxDepth = d;
153
+ }
154
+ if (maxDepth <= 0 || maxDepth > 11)
155
+ return null;
156
+ maxNumBits = maxDepth;
157
+ weights = new Array(maxSymbol + 1).fill(0);
158
+ for (let s = 0; s <= maxSymbol; s++) {
159
+ const d = depths[s] ?? 0;
160
+ if (d > 0)
161
+ weights[s] = maxDepth + 1 - d;
162
+ }
163
+ for (let i = 0; i < weights.length; i++)
164
+ fullWeights[i] = weights[i] ?? 0;
165
+ const pseudoDepth = depths[pseudoSymbol] ?? 0;
166
+ if (pseudoDepth <= 0)
167
+ return null;
168
+ fullWeights[pseudoSymbol] = maxDepth + 1 - pseudoDepth;
145
169
  }
146
- if (maxDepth <= 0 || maxDepth > 11)
147
- return null;
148
- const weights = new Array(maxSymbol + 1).fill(0);
149
- for (let s = 0; s <= maxSymbol; s++) {
150
- const d = depths[s] ?? 0;
151
- if (d > 0)
152
- weights[s] = maxDepth + 1 - d;
170
+ else {
171
+ // For full 0..255 byte alphabets we omit symbol 255 from transmitted weights;
172
+ // the decoder infers the final symbol weight from the Kraft remainder.
173
+ const depths = buildHuffmanDepths(freq);
174
+ if (!depths)
175
+ return null;
176
+ let maxDepth = 0;
177
+ for (let s = 0; s < 256; s++) {
178
+ const d = depths[s] ?? 0;
179
+ if (d > maxDepth)
180
+ maxDepth = d;
181
+ }
182
+ if (maxDepth <= 0 || maxDepth > 11)
183
+ return null;
184
+ maxNumBits = maxDepth;
185
+ weights = new Array(255).fill(0);
186
+ for (let s = 0; s < 256; s++) {
187
+ const d = depths[s] ?? 0;
188
+ if (d > 0)
189
+ fullWeights[s] = maxDepth + 1 - d;
190
+ }
191
+ if ((fullWeights[255] ?? 0) <= 0)
192
+ return null;
193
+ for (let s = 0; s < 255; s++) {
194
+ weights[s] = fullWeights[s] ?? 0;
195
+ }
153
196
  }
154
- const fullWeights = new Array(256).fill(0);
155
- for (let i = 0; i < weights.length; i++)
156
- fullWeights[i] = weights[i] ?? 0;
157
- const pseudoDepth = depths[pseudoSymbol] ?? 0;
158
- if (pseudoDepth <= 0)
197
+ if (maxNumBits <= 0)
159
198
  return null;
160
- fullWeights[pseudoSymbol] = maxDepth + 1 - pseudoDepth;
161
- const numBits = weightsToNumBits(fullWeights, maxDepth);
162
- const decodeTable = buildHuffmanDecodeTable(numBits, maxDepth);
199
+ const numBits = weightsToNumBits(fullWeights, maxNumBits);
200
+ const decodeTable = buildHuffmanDecodeTable(numBits, maxNumBits);
163
201
  const codeBySymbol = new Int32Array(256).fill(-1);
164
202
  const numBitsBySymbol = new Uint8Array(256);
165
203
  for (let i = 0; i < decodeTable.length; i++) {
@@ -169,18 +207,19 @@ function buildFrequencyHuffmanTable(literals) {
169
207
  const symbol = decodeTable.symbol[i] >>> 0;
170
208
  if (symbol >= codeBySymbol.length)
171
209
  return null;
172
- if ((codeBySymbol[symbol] ?? -1) < 0)
173
- codeBySymbol[symbol] = i;
174
- numBitsBySymbol[symbol] = bits;
210
+ if ((codeBySymbol[symbol] ?? -1) < 0) {
211
+ codeBySymbol[symbol] = i >>> (maxNumBits - bits);
212
+ numBitsBySymbol[symbol] = bits;
213
+ }
175
214
  }
176
215
  for (let i = 0; i < literals.length; i++) {
177
216
  const sym = literals[i] ?? 0;
178
217
  if ((codeBySymbol[sym] ?? -1) < 0 || (numBitsBySymbol[sym] ?? 0) === 0)
179
218
  return null;
180
219
  }
181
- return { weights, table: { maxNumBits: maxDepth, codeBySymbol, numBitsBySymbol } };
220
+ return { weights, table: { maxNumBits, codeBySymbol, numBitsBySymbol } };
182
221
  }
183
- function encodeLiteralsWithTable(table, literals) {
222
+ function encodeLiteralsWithTable(table, literals, reverseBitWriter) {
184
223
  const scratch = ensureLiteralBitScratch(literals.length);
185
224
  const bitCounts = scratch.counts.subarray(0, literals.length);
186
225
  const bitValues = scratch.values.subarray(0, literals.length);
@@ -193,7 +232,7 @@ function encodeLiteralsWithTable(table, literals) {
193
232
  bitCounts[i] = bits;
194
233
  bitValues[i] = code;
195
234
  }
196
- return encodeReverseBitstream(bitCounts, bitValues);
235
+ return encodeReverseBitstream(bitCounts, bitValues, reverseBitWriter);
197
236
  }
198
237
  function splitLiteralsInto4(literals) {
199
238
  const total = literals.length;
@@ -207,6 +246,85 @@ function splitLiteralsInto4(literals) {
207
246
  const s4 = literals.subarray(s1Len + s2Len + s3Len, s1Len + s2Len + s3Len + s4Len);
208
247
  return [s1, s2, s3, s4];
209
248
  }
249
+ function buildFSEUpdatePath(table, updateSymbols, requiredFinalSymbol) {
250
+ const tableSize = table.length;
251
+ if (tableSize <= 0)
252
+ return null;
253
+ if (updateSymbols.length === 0) {
254
+ if (requiredFinalSymbol === null)
255
+ return null;
256
+ for (let state = 0; state < tableSize; state++) {
257
+ if ((table.symbol[state] ?? -1) === requiredFinalSymbol) {
258
+ return { states: [], updateBits: [], startState: state };
259
+ }
260
+ }
261
+ return null;
262
+ }
263
+ const rowCount = updateSymbols.length;
264
+ const reachable = new Uint8Array((rowCount + 1) * tableSize);
265
+ const nextChoice = new Int32Array(rowCount * tableSize);
266
+ nextChoice.fill(-1);
267
+ const rowOffset = (rowIndex) => rowIndex * tableSize;
268
+ const finalRowOffset = rowOffset(rowCount);
269
+ for (let state = 0; state < tableSize; state++) {
270
+ if (requiredFinalSymbol === null || (table.symbol[state] ?? -1) === requiredFinalSymbol) {
271
+ reachable[finalRowOffset + state] = 1;
272
+ }
273
+ }
274
+ for (let row = rowCount - 1; row >= 0; row--) {
275
+ const symbol = updateSymbols[row] ?? -1;
276
+ if (symbol < 0 || symbol > WEIGHT_MAX_SYMBOL)
277
+ return null;
278
+ const curOffset = rowOffset(row);
279
+ const nextOffset = rowOffset(row + 1);
280
+ let anyReachable = false;
281
+ for (let state = 0; state < tableSize; state++) {
282
+ if ((table.symbol[state] ?? -1) !== symbol)
283
+ continue;
284
+ const baseline = table.baseline[state] ?? 0;
285
+ const bits = table.numBits[state] ?? 0;
286
+ const width = bits > 0 ? 1 << bits : 1;
287
+ let minNext = baseline;
288
+ let maxNext = baseline + width - 1;
289
+ if (minNext < 0)
290
+ minNext = 0;
291
+ if (maxNext >= tableSize)
292
+ maxNext = tableSize - 1;
293
+ for (let next = minNext; next <= maxNext; next++) {
294
+ if (reachable[nextOffset + next] === 0)
295
+ continue;
296
+ reachable[curOffset + state] = 1;
297
+ nextChoice[curOffset + state] = next;
298
+ anyReachable = true;
299
+ break;
300
+ }
301
+ }
302
+ if (!anyReachable)
303
+ return null;
304
+ }
305
+ const startOffset = rowOffset(0);
306
+ let startState = -1;
307
+ for (let state = 0; state < tableSize; state++) {
308
+ if (reachable[startOffset + state] !== 0) {
309
+ startState = state;
310
+ break;
311
+ }
312
+ }
313
+ if (startState < 0)
314
+ return null;
315
+ const states = new Array(rowCount);
316
+ const updateBits = new Array(rowCount);
317
+ let state = startState;
318
+ for (let row = 0; row < rowCount; row++) {
319
+ states[row] = state;
320
+ const next = nextChoice[rowOffset(row) + state] ?? -1;
321
+ if (next < 0)
322
+ return null;
323
+ updateBits[row] = next - (table.baseline[state] ?? 0);
324
+ state = next;
325
+ }
326
+ return { states, updateBits, startState };
327
+ }
210
328
  function buildCompressedLiteralsHeader(blockType, sizeFormat, regeneratedSize, compressedSize) {
211
329
  const bits = sizeFormat <= 1 ? 10 : sizeFormat === 2 ? 14 : 18;
212
330
  const writer = new BitWriter();
@@ -216,8 +334,8 @@ function buildCompressedLiteralsHeader(blockType, sizeFormat, regeneratedSize, c
216
334
  writer.writeBits(bits, compressedSize);
217
335
  return writer.flush();
218
336
  }
219
- function makeCompressedSection(literals, table, blockType, treeBytes) {
220
- const oneStream = encodeLiteralsWithTable(table, literals);
337
+ function makeCompressedSection(literals, table, blockType, treeBytes, reverseBitWriter) {
338
+ const oneStream = encodeLiteralsWithTable(table, literals, reverseBitWriter);
221
339
  let bestPayload = null;
222
340
  let bestSizeFormat = null;
223
341
  if (oneStream) {
@@ -231,10 +349,10 @@ function makeCompressedSection(literals, table, blockType, treeBytes) {
231
349
  }
232
350
  if (literals.length >= 16) {
233
351
  const [s1, s2, s3, s4] = splitLiteralsInto4(literals);
234
- const e1 = encodeLiteralsWithTable(table, s1);
235
- const e2 = encodeLiteralsWithTable(table, s2);
236
- const e3 = encodeLiteralsWithTable(table, s3);
237
- const e4 = encodeLiteralsWithTable(table, s4);
352
+ const e1 = encodeLiteralsWithTable(table, s1, reverseBitWriter);
353
+ const e2 = encodeLiteralsWithTable(table, s2, reverseBitWriter);
354
+ const e3 = encodeLiteralsWithTable(table, s3, reverseBitWriter);
355
+ const e4 = encodeLiteralsWithTable(table, s4, reverseBitWriter);
238
356
  if (e1 && e2 && e3 && e4 && e1.length <= 0xffff && e2.length <= 0xffff && e3.length <= 0xffff) {
239
357
  const streamsSize = 6 + e1.length + e2.length + e3.length + e4.length;
240
358
  const compressedSize = treeBytes.length + streamsSize;
@@ -292,6 +410,130 @@ function createDirectWeightsTreeBytes(weights) {
292
410
  }
293
411
  return tree;
294
412
  }
413
+ function createFSEWeightsTreeBytes(weights) {
414
+ if (weights.length < 2 || weights.length > 255)
415
+ return null;
416
+ let maxWeight = 0;
417
+ for (let i = 0; i < weights.length; i++) {
418
+ const value = weights[i] ?? 0;
419
+ if (value < 0 || value > WEIGHT_MAX_SYMBOL)
420
+ return null;
421
+ if (value > maxWeight)
422
+ maxWeight = value;
423
+ }
424
+ const histogram = new Array(maxWeight + 1).fill(0);
425
+ for (let i = 0; i < weights.length; i++) {
426
+ const value = weights[i] ?? 0;
427
+ histogram[value] = (histogram[value] ?? 0) + 1;
428
+ }
429
+ const stream1 = [];
430
+ const stream2 = [];
431
+ for (let i = 0; i < weights.length; i++) {
432
+ if ((i & 1) === 0)
433
+ stream1.push(weights[i] ?? 0);
434
+ else
435
+ stream2.push(weights[i] ?? 0);
436
+ }
437
+ const tailOnStream1 = (weights.length & 1) === 1;
438
+ const stream1Updates = tailOnStream1 ? stream1.slice(0, -1) : stream1.slice();
439
+ const stream2Updates = tailOnStream1 ? stream2.slice() : stream2.slice(0, -1);
440
+ const stream1Tail = tailOnStream1 ? (stream1[stream1.length - 1] ?? null) : null;
441
+ const stream2Tail = tailOnStream1 ? null : (stream2[stream2.length - 1] ?? null);
442
+ const updateCount = weights.length - 1;
443
+ const usedSymbols = [];
444
+ for (let symbol = 0; symbol < histogram.length; symbol++) {
445
+ if ((histogram[symbol] ?? 0) > 0)
446
+ usedSymbols.push(symbol);
447
+ }
448
+ if (usedSymbols.length === 0)
449
+ return null;
450
+ for (let tableLog = WEIGHT_MAX_TABLE_LOG; tableLog >= 5; tableLog--) {
451
+ const normalizedCandidates = [];
452
+ normalizedCandidates.push(normalizeCountsForTable(histogram, tableLog));
453
+ const tableSize = 1 << tableLog;
454
+ if (usedSymbols.length <= tableSize) {
455
+ const uniform = new Array(maxWeight + 1).fill(0);
456
+ for (let i = 0; i < usedSymbols.length; i++) {
457
+ const symbol = usedSymbols[i] ?? -1;
458
+ if (symbol >= 0)
459
+ uniform[symbol] = 1;
460
+ }
461
+ let remaining = tableSize - usedSymbols.length;
462
+ let cursor = 0;
463
+ while (remaining > 0) {
464
+ const symbol = usedSymbols[cursor % usedSymbols.length] ?? -1;
465
+ if (symbol >= 0)
466
+ uniform[symbol] = (uniform[symbol] ?? 0) + 1;
467
+ remaining--;
468
+ cursor++;
469
+ }
470
+ normalizedCandidates.push({ normalizedCounter: uniform, maxSymbolValue: maxWeight });
471
+ }
472
+ for (const normalized of normalizedCandidates) {
473
+ const header = writeNCount(normalized.normalizedCounter, normalized.maxSymbolValue, tableLog);
474
+ const parsed = readNCount(header, 0, WEIGHT_MAX_SYMBOL, WEIGHT_MAX_TABLE_LOG);
475
+ const table = buildFSEDecodeTable(parsed.normalizedCounter, parsed.tableLog);
476
+ const path1 = buildFSEUpdatePath(table, stream1Updates, stream1Tail);
477
+ if (!path1)
478
+ continue;
479
+ const path2 = buildFSEUpdatePath(table, stream2Updates, stream2Tail);
480
+ if (!path2)
481
+ continue;
482
+ const readCounts = new Uint8Array(2 + updateCount);
483
+ const readValues = new Uint32Array(2 + updateCount);
484
+ let readPos = 0;
485
+ readCounts[readPos] = parsed.tableLog;
486
+ readValues[readPos++] = path1.startState;
487
+ readCounts[readPos] = parsed.tableLog;
488
+ readValues[readPos++] = path2.startState;
489
+ let stream1Pos = 0;
490
+ let stream2Pos = 0;
491
+ for (let i = 0; i < updateCount; i++) {
492
+ if ((i & 1) === 0) {
493
+ const state = path1.states[stream1Pos] ?? -1;
494
+ if (state < 0)
495
+ return null;
496
+ readCounts[readPos] = table.numBits[state] ?? 0;
497
+ readValues[readPos++] = path1.updateBits[stream1Pos] ?? 0;
498
+ stream1Pos++;
499
+ }
500
+ else {
501
+ const state = path2.states[stream2Pos] ?? -1;
502
+ if (state < 0)
503
+ return null;
504
+ readCounts[readPos] = table.numBits[state] ?? 0;
505
+ readValues[readPos++] = path2.updateBits[stream2Pos] ?? 0;
506
+ stream2Pos++;
507
+ }
508
+ }
509
+ const bitstream = encodeReverseBitstream(readCounts, readValues, new ReverseBitWriter());
510
+ const bodySize = header.length + bitstream.length;
511
+ if (bodySize <= 0 || bodySize >= 128)
512
+ continue;
513
+ const tree = new Uint8Array(1 + bodySize);
514
+ tree[0] = bodySize;
515
+ tree.set(header, 1);
516
+ tree.set(bitstream, 1 + header.length);
517
+ const roundTrip = readWeightsFSE(tree, 1, bodySize).weights;
518
+ if (roundTrip.length !== weights.length)
519
+ continue;
520
+ let mismatch = false;
521
+ for (let i = 0; i < weights.length; i++) {
522
+ if ((roundTrip[i] ?? -1) !== (weights[i] ?? -1)) {
523
+ mismatch = true;
524
+ break;
525
+ }
526
+ }
527
+ if (mismatch)
528
+ continue;
529
+ return tree;
530
+ }
531
+ }
532
+ return null;
533
+ }
534
+ function createWeightsTreeBytes(weights) {
535
+ return createDirectWeightsTreeBytes(weights) ?? createFSEWeightsTreeBytes(weights);
536
+ }
295
537
  function canEncodeTreeless(table, literals) {
296
538
  for (let i = 0; i < literals.length; i++) {
297
539
  const sym = literals[i] ?? 0;
@@ -300,7 +542,7 @@ function canEncodeTreeless(table, literals) {
300
542
  }
301
543
  return true;
302
544
  }
303
- export function encodeLiteralsSection(literals, context) {
545
+ export function encodeLiteralsSection(literals, context, reverseBitWriter = new ReverseBitWriter()) {
304
546
  const raw = buildRawLiteralsSection(literals);
305
547
  if (!raw)
306
548
  return null;
@@ -312,9 +554,9 @@ export function encodeLiteralsSection(literals, context) {
312
554
  }
313
555
  const huffman = buildFrequencyHuffmanTable(literals);
314
556
  if (huffman) {
315
- const treeBytes = createDirectWeightsTreeBytes(huffman.weights);
557
+ const treeBytes = createWeightsTreeBytes(huffman.weights);
316
558
  if (treeBytes) {
317
- const compressed = makeCompressedSection(literals, huffman.table, 2, treeBytes);
559
+ const compressed = makeCompressedSection(literals, huffman.table, 2, treeBytes, reverseBitWriter);
318
560
  if (compressed && compressed.length < bestSection.length) {
319
561
  bestSection = compressed;
320
562
  bestTable = huffman.table;
@@ -323,7 +565,7 @@ export function encodeLiteralsSection(literals, context) {
323
565
  }
324
566
  const prev = context?.prevTable ?? null;
325
567
  if (prev && canEncodeTreeless(prev, literals)) {
326
- const treeless = makeCompressedSection(literals, prev, 3, new Uint8Array(0));
568
+ const treeless = makeCompressedSection(literals, prev, 3, new Uint8Array(0), reverseBitWriter);
327
569
  if (treeless && treeless.length < bestSection.length) {
328
570
  bestSection = treeless;
329
571
  bestTable = prev;
@@ -335,9 +577,9 @@ export function buildGeneralCompressedLiteralsForBench(literals) {
335
577
  const huffman = buildFrequencyHuffmanTable(literals);
336
578
  if (!huffman)
337
579
  return null;
338
- const treeBytes = createDirectWeightsTreeBytes(huffman.weights);
580
+ const treeBytes = createWeightsTreeBytes(huffman.weights);
339
581
  if (!treeBytes)
340
582
  return null;
341
- return makeCompressedSection(literals, huffman.table, 2, treeBytes);
583
+ return makeCompressedSection(literals, huffman.table, 2, treeBytes, new ReverseBitWriter());
342
584
  }
343
585
  //# sourceMappingURL=literalsEncoder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"literalsEncoder.js","sourceRoot":"","sources":["../../src/encode/literalsEncoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"literalsEncoder.js","sourceRoot":"","sources":["../../src/encode/literalsEncoder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"optimalParser.js","sourceRoot":"","sources":["../../src/encode/optimalParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsD,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAQzG,MAAM,UAAU,2BAA2B,CAAC,KAAiB,EAAE,OAA8B,EAAsB;IACjH,OAAO,aAAa,CAAC,KAAK,EAAE;QAC1B,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,UAAU,EAAE,OAAO,EAAE,UAAU;QAC/B,YAAY,EAAE,OAAO,EAAE,YAAY;QACnC,UAAU,EAAE,EAAE;QACd,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QAC3B,SAAS,EAAE,CAAC;QACZ,YAAY,EAAE,EAAE;KACjB,CAAC,CAAC;AAAA,CACJ"}
1
+ {"version":3,"file":"optimalParser.js","sourceRoot":"","sources":["../../src/encode/optimalParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,aAAa,EAA6B,MAAM,sBAAsB,CAAC;AAQzG,MAAM,UAAU,2BAA2B,CAAC,KAAiB,EAAE,OAA8B,EAAsB;IACjH,OAAO,aAAa,CAAC,KAAK,EAAE;QAC1B,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,UAAU,EAAE,OAAO,EAAE,UAAU;QAC/B,YAAY,EAAE,OAAO,EAAE,YAAY;QACnC,UAAU,EAAE,EAAE;QACd,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QAC3B,SAAS,EAAE,CAAC;QACZ,YAAY,EAAE,EAAE;KACjB,CAAC,CAAC;AAAA,CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"sequencePlanner.js","sourceRoot":"","sources":["../../src/encode/sequencePlanner.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC;AAC/B,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,SAAS,GAAG,CAAC,IAAI,SAAS,CAAC;AAyBjC,MAAM,UAAU,0BAA0B,GAAyB;IACjE,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;IAC/C,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACtB,OAAO;QACL,YAAY,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC;QAC/B,gBAAgB,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC;QACnC,YAAY;KACb,CAAC;AAAA,CACH;AAgBD,SAAS,KAAK,CAAC,IAAgB,EAAE,GAAW,EAAU;IACpD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAE,CAAC;IACrB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAE,CAAC;IACzB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAE,CAAC;IACzB,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;AAAA,CACxF;AAED,SAAS,UAAU,CAAC,CAAa,EAAE,CAAa,EAAW;IACzD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IAChD,CAAC;IACD,OAAO,IAAI,CAAC;AAAA,CACb;AAED,SAAS,cAAc,CAAC,IAAgB,EAAE,aAAqB,EAAE,YAAmC,EAAc;IAChH,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACf,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9C,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACnB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IACE,YAAY;QACZ,aAAa,GAAG,CAAC;QACjB,YAAY,CAAC,YAAY,CAAC,MAAM,KAAK,aAAa;QAClD,YAAY,CAAC,gBAAgB,CAAC,MAAM,KAAK,aAAa;QACtD,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC,EACtE,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;QAChD,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QACrC,QAAQ,GAAG,aAAa,CAAC;IAC3B,CAAC;IACD,KAAK,IAAI,GAAG,GAAG,QAAQ,EAAE,GAAG,GAAG,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;QAC/D,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACvB,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IACjB,CAAC;IACD,OAAO,SAAS,CAAC;AAAA,CAClB;AAED,SAAS,kBAAkB,CAAC,YAA8C,EAAE,QAAoB,EAAE,SAAqB,EAAQ;IAC7H,IAAI,CAAC,YAAY;QAAE,OAAO;IAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC;IAChE,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,GAAG,YAAY,CAAC;IACrD,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC;IACnD,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;IACrD,MAAM,gBAAgB,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC;IACvD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,YAAY,GAAG,GAAG,CAAC;QACrC,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACxC,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;IAC/C,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACtB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,IAAI,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC;QAC1D,MAAM,CAAC,GAAG,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QACnC,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IACxB,CAAC;IACD,YAAY,CAAC,YAAY,GAAG,YAAY,CAAC;IACzC,YAAY,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IACjD,YAAY,CAAC,YAAY,GAAG,YAAY,CAAC;AAAA,CAC1C;AAED,SAAS,YAAY,CAAC,IAAgB,EAAE,GAAW,EAAE,SAAiB,EAAE,SAAiB,EAAU;IACjG,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,OAAO,GAAG,GAAG,CAAC,IAAI,SAAS,EAAE,CAAC;QAC5B,IACE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;YACzC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,CAAC,CAAC,EACjD,CAAC;YACD,MAAM;QACR,CAAC;QACD,GAAG,IAAI,CAAC,CAAC;IACX,CAAC;IACD,OAAO,GAAG,GAAG,SAAS,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,EAAE,CAAC;QACpE,GAAG,EAAE,CAAC;IACR,CAAC;IACD,OAAO,GAAG,CAAC;AAAA,CACZ;AAED,SAAS,UAAU,CACjB,MAAc,EACd,MAAc,EACd,UAAoC,EACpC,aAAuC,EAC/B;IACR,IAAI,KAAK,GAAG,MAAM,GAAG,EAAE,CAAC;IACxB,IAAI,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC;QAAE,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;SACnD,IAAI,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC;QAAE,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;SACxD,IAAI,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC;QAAE,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;IAC7D,OAAO,KAAK,CAAC;AAAA,CACd;AAED,SAAS,eAAe,CAAC,KAAiB,EAAE,GAAW,EAAE,UAAoC,EAAyB;IACpH,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;IACzB,IAAI,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAC/C,IAAI,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,WAAW,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;IACpC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,IAAI,GAA0B,IAAI,CAAC;IACvC,OAAO,SAAS,IAAI,YAAY,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACrE,MAAM,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC;QAC/B,IACE,MAAM,GAAG,CAAC;YACV,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC;YAC7B,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YACrC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,EACrC,CAAC;YACD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YAC7D,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAClF,IAAI,CAAC,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;oBAClF,IAAI,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;oBACtC,IAAI,MAAM,IAAI,SAAS;wBAAE,MAAM;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;QACD,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7C,KAAK,EAAE,CAAC;IACV,CAAC;IACD,OAAO,IAAI,CAAC;AAAA,CACb;AAED,SAAS,oBAAoB,CAC3B,UAAoC,EACpC,WAAmB,EACnB,cAAsB,EACI;IAC1B,MAAM,IAAI,GAA6B,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACrF,MAAM,GAAG,GAAG,cAAc,KAAK,CAAC,CAAC;IACjC,MAAM,WAAW,GAAG,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;IAClE,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,YAAY,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;QACvE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,WAAsB,CAAC;IAC3B,IAAI,GAAG;QAAE,WAAW,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;QAC5C,WAAW,GAAG,CAAC,WAAW,GAAG,CAAC,CAAc,CAAC;IAClD,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;SAAM,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,IAAI,CAAC;AAAA,CACb;AAED,SAAS,aAAa,CACpB,MAAc,EACd,cAAsB,EACtB,UAAoC,EAC+B;IACnE,qEAAqE;IACrE,qEAAqE;IACrE,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,CAAC;IAC/B,OAAO;QACL,WAAW;QACX,cAAc,EAAE,oBAAoB,CAAC,UAAU,EAAE,WAAW,EAAE,cAAc,CAAC;KAC9E,CAAC;AAAA,CACH;AAED,SAAS,YAAY,CAAC,GAAe,EAAE,SAAiB,EAAE,IAAgB,EAAE,QAAgB,EAAE,MAAc,EAAU;IACpH,IAAI,MAAM,IAAI,QAAQ;QAAE,OAAO,SAAS,CAAC;IACzC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;IACpD,OAAO,SAAS,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC;AAAA,CACxC;AAED,SAAS,SAAS,CAAC,KAAiB,EAAE,GAAW,EAAyB;IACxE,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC7D,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IACnD,IAAI,IAAI,GAAG,MAAM,CAAC;IAClB,IAAI,SAAS,GAAG,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IAC3F,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC7D,KAAK,IAAI,QAAQ,GAAG,GAAG,GAAG,CAAC,EAAE,QAAQ,IAAI,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC;QACzD,MAAM,OAAO,GAAG,QAAQ,GAAG,GAAG,CAAC;QAC/B,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;QACrD,MAAM,2BAA2B,GAAG,cAAc,GAAG,EAAE,GAAG,WAAW,GAAG,OAAO,GAAG,CAAC,CAAC;QACpF,IAAI,2BAA2B,IAAI,SAAS,EAAE,CAAC;YAC7C,MAAM;QACR,CAAC;QACD,MAAM,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,IAAI,cAAc,GAAG,CAAC,IAAI,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;YAAE,SAAS;QACzF,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACjE,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,GAAG,OAAO,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,IAAI,YAAY,GAAG,SAAS,EAAE,CAAC;YACtC,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;YACzC,SAAS,GAAG,YAAY,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AAAA,CACb;AAED,MAAM,UAAU,aAAa,CAAC,KAAiB,EAAE,OAA+B,EAAsB;IACpG,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;QAC7B,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE;YACvB,SAAS,EAAE,EAAE;YACb,gBAAgB,EAAE,KAAK,CAAC,MAAM;YAC9B,eAAe,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SACjD,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GACX,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QAC3C,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC;QAC7E,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IACrC,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9D,IAAI,aAAa,GAAG,CAAC;QAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAChD,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAEnC,MAAM,KAAK,GAAe;QACxB,KAAK,EAAE,QAAQ;QACf,SAAS,EAAE,cAAc,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC;QACxE,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAClH,OAAO,EAAE;YACP,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC;YAC3C,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YACpD,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC;YAC9C,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC;SACrD;KACF,CAAC;IAEF,MAAM,SAAS,GAAe,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,MAAM,GAAG,aAAa,CAAC;IAC3B,IAAI,GAAG,GAAG,aAAa,CAAC;IAExB,OAAO,GAAG,GAAG,SAAS,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC1C,IAAI,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACjC,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC;YACtF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC/C,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;gBACxE,IAAI,CAAC,SAAS;oBAAE,SAAS;gBACzB,IAAI,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC;oBAAE,IAAI,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;YACxE,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;YACrC,GAAG,EAAE,CAAC;YACN,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;QAC1B,MAAM,cAAc,GAAG,QAAQ,GAAG,MAAM,CAAC;QACzC,UAAU,GAAG,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC5E,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACrG,SAAS,CAAC,IAAI,CAAC;YACb,cAAc;YACd,MAAM,EAAE,WAAW;YACnB,WAAW,EAAE,IAAI,CAAC,MAAM;SACzB,CAAC,CAAC;QACH,KAAK,CAAC,UAAU,GAAG,cAAc,CAAC;QAElC,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;QAChC,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IAED,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;IAClD,UAAU,GAAG,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnF,kBAAkB,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACpE,OAAO;QACL,QAAQ,EAAE,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ;QACpF,SAAS;QACT,gBAAgB;QAChB,eAAe,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KACjF,CAAC;AAAA,CACH"}
1
+ {"version":3,"file":"sequencePlanner.js","sourceRoot":"","sources":["../../src/encode/sequencePlanner.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ export declare function buildFSEDecodeTable(normalizedCounter: readonly number[]
19
19
  /**
20
20
  * Decode one FSE symbol. Updates state in place.
21
21
  */
22
- export declare function decodeFSESymbol(table: FSEDecodeTable, _tableLog: number, reader: BitReaderReverse, state: {
22
+ export declare function decodeFSESymbol(table: FSEDecodeTable, reader: BitReaderReverse, state: {
23
23
  value: number;
24
24
  }): number;
25
25
  /**
@@ -14,7 +14,27 @@ export function buildFSEDecodeTable(normalizedCounter, tableLog) {
14
14
  if (!normalizedCounter || normalizedCounter.length === 0) {
15
15
  throw new ZstdError('FSE: invalid normalized counter', 'corruption_detected');
16
16
  }
17
+ if (!Number.isInteger(tableLog) || tableLog < 1 || tableLog > 15) {
18
+ throw new ZstdError('FSE: invalid tableLog', 'corruption_detected');
19
+ }
20
+ if (normalizedCounter.length > 0xffff + 1) {
21
+ throw new ZstdError('FSE: symbol value out of range', 'corruption_detected');
22
+ }
17
23
  const tableSize = 1 << tableLog;
24
+ let totalProbability = 0;
25
+ for (let s = 0; s < normalizedCounter.length; s++) {
26
+ const n = normalizedCounter[s];
27
+ if (!Number.isInteger(n) || n === undefined || n < -1) {
28
+ throw new ZstdError('FSE: invalid normalized count', 'corruption_detected');
29
+ }
30
+ totalProbability += n < 0 ? 1 : n;
31
+ if (totalProbability > tableSize) {
32
+ throw new ZstdError('FSE: invalid normalized sum', 'corruption_detected');
33
+ }
34
+ }
35
+ if (totalProbability !== tableSize) {
36
+ throw new ZstdError('FSE: invalid normalized sum', 'corruption_detected');
37
+ }
18
38
  const tableSymbol = new Array(tableSize);
19
39
  const maxSymbolValue = normalizedCounter.length - 1;
20
40
  const symbolNext = new Array(maxSymbolValue + 1);
@@ -73,7 +93,7 @@ export function buildFSEDecodeTable(normalizedCounter, tableLog) {
73
93
  /**
74
94
  * Decode one FSE symbol. Updates state in place.
75
95
  */
76
- export function decodeFSESymbol(table, _tableLog, reader, state) {
96
+ export function decodeFSESymbol(table, reader, state) {
77
97
  const stateValue = state.value;
78
98
  if (stateValue < 0 || stateValue >= table.length) {
79
99
  throw new ZstdError('FSE invalid state', 'corruption_detected');