zstdify 1.2.0 → 1.3.1

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 (63) hide show
  1. package/README.md +47 -9
  2. package/dist/bitstream/bitReaderReverse.d.ts +6 -0
  3. package/dist/bitstream/bitReaderReverse.js +38 -12
  4. package/dist/bitstream/bitReaderReverse.js.map +1 -1
  5. package/dist/bitstream/index.d.ts +1 -0
  6. package/dist/bitstream/index.js +1 -0
  7. package/dist/bitstream/index.js.map +1 -1
  8. package/dist/bitstream/reverseBitWriter.d.ts +1 -0
  9. package/dist/bitstream/reverseBitWriter.js +66 -0
  10. package/dist/bitstream/reverseBitWriter.js.map +1 -0
  11. package/dist/compress.js +46 -5
  12. package/dist/compress.js.map +1 -1
  13. package/dist/decode/debugTrace.d.ts +31 -0
  14. package/dist/decode/debugTrace.js +2 -0
  15. package/dist/decode/debugTrace.js.map +1 -0
  16. package/dist/decode/decompressFrame.d.ts +2 -1
  17. package/dist/decode/decompressFrame.js +96 -18
  18. package/dist/decode/decompressFrame.js.map +1 -1
  19. package/dist/decode/fusedSequences.d.ts +9 -0
  20. package/dist/decode/fusedSequences.js +26 -0
  21. package/dist/decode/fusedSequences.js.map +1 -0
  22. package/dist/decode/literals.js +129 -79
  23. package/dist/decode/literals.js.map +1 -1
  24. package/dist/decode/reconstruct.d.ts +14 -2
  25. package/dist/decode/reconstruct.js +378 -21
  26. package/dist/decode/reconstruct.js.map +1 -1
  27. package/dist/decode/sequences.d.ts +19 -7
  28. package/dist/decode/sequences.js +127 -48
  29. package/dist/decode/sequences.js.map +1 -1
  30. package/dist/decompress.d.ts +3 -0
  31. package/dist/decompress.js +1 -1
  32. package/dist/decompress.js.map +1 -1
  33. package/dist/encode/compressedBlock.d.ts +27 -1
  34. package/dist/encode/compressedBlock.js +573 -367
  35. package/dist/encode/compressedBlock.js.map +1 -1
  36. package/dist/encode/fastMatcher.d.ts +7 -0
  37. package/dist/encode/fastMatcher.js +13 -0
  38. package/dist/encode/fastMatcher.js.map +1 -0
  39. package/dist/encode/greedySequences.d.ts +9 -6
  40. package/dist/encode/greedySequences.js +22 -101
  41. package/dist/encode/greedySequences.js.map +1 -1
  42. package/dist/encode/lazyMatcher.d.ts +7 -0
  43. package/dist/encode/lazyMatcher.js +13 -0
  44. package/dist/encode/lazyMatcher.js.map +1 -0
  45. package/dist/encode/literalsEncoder.d.ts +14 -0
  46. package/dist/encode/literalsEncoder.js +343 -0
  47. package/dist/encode/literalsEncoder.js.map +1 -0
  48. package/dist/encode/optimalParser.d.ts +7 -0
  49. package/dist/encode/optimalParser.js +13 -0
  50. package/dist/encode/optimalParser.js.map +1 -0
  51. package/dist/encode/sequencePlanner.d.ts +23 -0
  52. package/dist/encode/sequencePlanner.js +280 -0
  53. package/dist/encode/sequencePlanner.js.map +1 -0
  54. package/dist/entropy/fse.d.ts +13 -6
  55. package/dist/entropy/fse.js +175 -8
  56. package/dist/entropy/fse.js.map +1 -1
  57. package/dist/entropy/huffman.d.ts +7 -5
  58. package/dist/entropy/huffman.js +18 -7
  59. package/dist/entropy/huffman.js.map +1 -1
  60. package/dist/entropy/index.d.ts +2 -2
  61. package/dist/entropy/weights.js +20 -14
  62. package/dist/entropy/weights.js.map +1 -1
  63. package/package.json +1 -1
@@ -5,10 +5,11 @@ import { readU32LE } from '../bitstream/littleEndian.js';
5
5
  import { ZstdError } from '../errors.js';
6
6
  import { validateContentChecksum } from '../frame/checksum.js';
7
7
  import { parseBlockHeader } from './block.js';
8
+ import { decodeAndExecuteSequencesInto, shouldUseFusedSequencePath } from './fusedSequences.js';
8
9
  import { decodeCompressedLiterals, decodeRawLiterals, decodeRLELiterals, decodeTreelessLiterals, parseLiteralsSectionHeader, } from './literals.js';
9
- import { appendRangeToHistoryWindow, appendRLEToHistoryWindow, appendToHistoryWindow, executeSequencesInto, getOrCreateHistoryWindow, } from './reconstruct.js';
10
+ import { appendRangeToHistoryWindow, appendRLEToHistoryWindow, appendToHistoryWindow, executeSequencesInto, executeSequencesIntoFast, getOrCreateHistoryWindow, } from './reconstruct.js';
10
11
  import { decodeSequences } from './sequences.js';
11
- export function decompressFrame(data, offset, header, dictionary, maxSize, validateChecksum = true, reuseContext) {
12
+ export function decompressFrame(data, offset, header, dictionary, maxSize, validateChecksum = true, reuseContext, debugTrace) {
12
13
  let pos = offset + 4 + header.headerSize;
13
14
  const knownOutputSize = header.contentSize ?? null;
14
15
  let outputBuffer = knownOutputSize !== null ? new Uint8Array(knownOutputSize) : new Uint8Array(0);
@@ -19,6 +20,9 @@ export function decompressFrame(data, offset, header, dictionary, maxSize, valid
19
20
  const history = getOrCreateHistoryWindow(header.windowSize, dictionary?.historyPrefix, reuseContext);
20
21
  let prevHuffmanTable = dictionary?.huffmanTable ?? null;
21
22
  let prevSeqTables = dictionary?.sequenceTables ?? null;
23
+ const decodeMode = reuseContext?._decodeMode ?? 'fast';
24
+ const useFastPath = decodeMode !== 'reference';
25
+ const useFusedSequences = reuseContext?._useFusedSequences !== false;
22
26
  const ensureOutputCapacity = (additional) => {
23
27
  const needed = totalSize + additional;
24
28
  if (needed <= outputBuffer.length) {
@@ -42,12 +46,18 @@ export function decompressFrame(data, offset, header, dictionary, maxSize, valid
42
46
  outputBuffer.set(chunk, totalSize);
43
47
  totalSize += chunk.length;
44
48
  };
49
+ let blockIndex = 0;
50
+ const onBlockDecoded = debugTrace?.onBlockDecoded;
45
51
  while (true) {
46
52
  if (pos + 3 > data.length) {
47
53
  throw new ZstdError('Block header truncated', 'corruption_detected');
48
54
  }
55
+ const blockHeaderPos = pos;
49
56
  const block = parseBlockHeader(data, pos);
50
57
  pos += 3;
58
+ const blockOutputStart = totalSize;
59
+ let blockLiteralsInfo;
60
+ let blockSequencesInfo;
51
61
  if (block.blockType === 0) {
52
62
  if (pos + block.blockSize > data.length) {
53
63
  throw new ZstdError('Raw literals truncated', 'corruption_detected');
@@ -76,6 +86,15 @@ export function decompressFrame(data, offset, header, dictionary, maxSize, valid
76
86
  else if (block.blockType === 2) {
77
87
  const blockContent = data.subarray(pos, pos + block.blockSize);
78
88
  const { header: litHeader, dataOffset: litDataOffset } = parseLiteralsSectionHeader(blockContent, 0);
89
+ if (onBlockDecoded) {
90
+ blockLiteralsInfo = {
91
+ blockType: litHeader.blockType,
92
+ regeneratedSize: litHeader.regeneratedSize,
93
+ compressedSize: litHeader.compressedSize,
94
+ numStreams: litHeader.numStreams,
95
+ headerSize: litHeader.headerSize,
96
+ };
97
+ }
79
98
  let literals;
80
99
  let litBytesConsumed;
81
100
  if (litHeader.blockType === 0) {
@@ -108,26 +127,71 @@ export function decompressFrame(data, offset, header, dictionary, maxSize, valid
108
127
  }
109
128
  }
110
129
  else {
111
- const seqResult = decodeSequences(blockContent, litBytesConsumed, seqSectionSize, prevSeqTables, reuseContext?._sequences);
112
- if (reuseContext) {
113
- reuseContext._sequences = seqResult.sequences;
114
- }
115
- prevSeqTables = seqResult.tables;
116
- if (seqResult.sequences.length === 0) {
117
- appendOutput(literals);
118
- if (!block.lastBlock) {
119
- appendToHistoryWindow(history, literals);
130
+ const canUseFusedPath = useFastPath &&
131
+ useFusedSequences &&
132
+ shouldUseFusedSequencePath(seqSectionSize, literals.length, header.windowSize, !block.lastBlock);
133
+ if (canUseFusedPath) {
134
+ const start = totalSize;
135
+ const { written, seqResult } = decodeAndExecuteSequencesInto(blockContent, litBytesConsumed, seqSectionSize, prevSeqTables, reuseContext?._sequences, literals, header.windowSize, ensureOutputCapacity, () => outputBuffer, start, repOffsets, history, !block.lastBlock);
136
+ if (reuseContext) {
137
+ reuseContext._sequences = seqResult.sequences;
138
+ }
139
+ prevSeqTables = seqResult.tables;
140
+ if (onBlockDecoded) {
141
+ blockSequencesInfo = {
142
+ numSequences: seqResult.metadata.numSequences,
143
+ llMode: seqResult.metadata.llMode,
144
+ ofMode: seqResult.metadata.ofMode,
145
+ mlMode: seqResult.metadata.mlMode,
146
+ llTableLog: seqResult.metadata.llTableLog,
147
+ ofTableLog: seqResult.metadata.ofTableLog,
148
+ mlTableLog: seqResult.metadata.mlTableLog,
149
+ repeatOffsetCandidateCount: seqResult.metadata.repeatOffsetCandidateCount,
150
+ };
151
+ }
152
+ if (seqResult.sequences.length === 0) {
153
+ appendOutput(literals);
154
+ if (!block.lastBlock) {
155
+ appendToHistoryWindow(history, literals);
156
+ }
157
+ }
158
+ else {
159
+ totalSize += written;
120
160
  }
121
161
  }
122
162
  else {
123
- let decodedSize = literals.length;
124
- for (const seq of seqResult.sequences) {
125
- decodedSize += seq.matchLength;
163
+ const seqResult = decodeSequences(blockContent, litBytesConsumed, seqSectionSize, prevSeqTables, reuseContext?._sequences);
164
+ if (reuseContext) {
165
+ reuseContext._sequences = seqResult.sequences;
166
+ }
167
+ prevSeqTables = seqResult.tables;
168
+ if (onBlockDecoded) {
169
+ blockSequencesInfo = {
170
+ numSequences: seqResult.metadata.numSequences,
171
+ llMode: seqResult.metadata.llMode,
172
+ ofMode: seqResult.metadata.ofMode,
173
+ mlMode: seqResult.metadata.mlMode,
174
+ llTableLog: seqResult.metadata.llTableLog,
175
+ ofTableLog: seqResult.metadata.ofTableLog,
176
+ mlTableLog: seqResult.metadata.mlTableLog,
177
+ repeatOffsetCandidateCount: seqResult.metadata.repeatOffsetCandidateCount,
178
+ };
179
+ }
180
+ if (seqResult.sequences.length === 0) {
181
+ appendOutput(literals);
182
+ if (!block.lastBlock) {
183
+ appendToHistoryWindow(history, literals);
184
+ }
185
+ }
186
+ else {
187
+ const decodedSize = literals.length + seqResult.metadata.totalMatchLength;
188
+ ensureOutputCapacity(decodedSize);
189
+ const start = totalSize;
190
+ const written = useFastPath
191
+ ? executeSequencesIntoFast(literals, seqResult.sequences, header.windowSize, outputBuffer, start, repOffsets, history, !block.lastBlock)
192
+ : executeSequencesInto(literals, seqResult.sequences, header.windowSize, outputBuffer, start, repOffsets, history, !block.lastBlock);
193
+ totalSize += written;
126
194
  }
127
- ensureOutputCapacity(decodedSize);
128
- const start = totalSize;
129
- const written = executeSequencesInto(literals, seqResult.sequences, header.windowSize, outputBuffer, start, repOffsets, history, !block.lastBlock);
130
- totalSize += written;
131
195
  }
132
196
  }
133
197
  pos += block.blockSize;
@@ -135,6 +199,20 @@ export function decompressFrame(data, offset, header, dictionary, maxSize, valid
135
199
  else {
136
200
  throw new ZstdError('Unsupported block type', 'corruption_detected');
137
201
  }
202
+ if (onBlockDecoded) {
203
+ onBlockDecoded({
204
+ blockIndex,
205
+ blockType: block.blockType,
206
+ blockSize: block.blockSize,
207
+ lastBlock: block.lastBlock,
208
+ inputOffset: blockHeaderPos,
209
+ outputStart: blockOutputStart,
210
+ outputEnd: totalSize,
211
+ literals: blockLiteralsInfo,
212
+ sequences: blockSequencesInfo,
213
+ });
214
+ }
215
+ blockIndex++;
138
216
  if (maxSize !== undefined && totalSize > maxSize) {
139
217
  throw new ZstdError('Decompressed size exceeds maxSize', 'parameter_unsupported');
140
218
  }
@@ -1 +1 @@
1
- {"version":3,"file":"decompressFrame.js","sourceRoot":"","sources":["../../src/decode/decompressFrame.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,GAEzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAuB,MAAM,gBAAgB,CAAC;AAEtE,MAAM,UAAU,eAAe,CAC7B,IAAgB,EAChB,MAAc,EACd,MAAmB,EACnB,UAA4C,EAC5C,OAAgB,EAChB,gBAAgB,GAAG,IAAI,EACvB,YAA8B,EACiB;IAC/C,IAAI,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC;IACzC,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC;IACnD,IAAI,YAAY,GAAG,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAClG,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,UAAU,GAA6B,UAAU,EAAE,UAAU;QACjE,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACd,MAAM,OAAO,GAAG,wBAAwB,CACtC,MAAM,CAAC,UAAU,EACjB,UAAU,EAAE,aAAa,EACzB,YAAY,CACb,CAAC;IACF,IAAI,gBAAgB,GAGT,UAAU,EAAE,YAAY,IAAI,IAAI,CAAC;IAC5C,IAAI,aAAa,GAA0B,UAAU,EAAE,cAAc,IAAI,IAAI,CAAC;IAE9E,MAAM,oBAAoB,GAAG,CAAC,UAAkB,EAAQ,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;QACtC,IAAI,MAAM,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QACD,IAAI,YAAY,GAAG,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC;QAC/E,OAAO,YAAY,GAAG,MAAM,EAAE,CAAC;YAC7B,YAAY,IAAI,CAAC,CAAC;QACpB,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;QAC3C,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,YAAY,GAAG,KAAK,CAAC;IAAA,CACtB,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,KAAiB,EAAQ,EAAE,CAAC;QAChD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QACD,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACnC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACnC,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC;IAAA,CAC3B,CAAC;IAEF,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1B,MAAM,IAAI,SAAS,CAAC,wBAAwB,EAAE,qBAAqB,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1C,GAAG,IAAI,CAAC,CAAC;QAET,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;YAC1B,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBACxC,MAAM,IAAI,SAAS,CAAC,wBAAwB,EAAE,qBAAqB,CAAC,CAAC;YACvE,CAAC;YACD,oBAAoB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACtC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;YACvE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBACrB,0BAA0B,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAClE,CAAC;YACD,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC;YAC7B,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC;QACzB,CAAC;aAAM,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;YACjC,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACvB,MAAM,IAAI,SAAS,CAAC,wBAAwB,EAAE,qBAAqB,CAAC,CAAC;YACvE,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAE,CAAC;YACxB,oBAAoB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACtC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;YAChE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBACrB,wBAAwB,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAC3D,CAAC;YACD,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC;YAC7B,GAAG,IAAI,CAAC,CAAC;QACX,CAAC;aAAM,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;YAC/D,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,0BAA0B,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YAErG,IAAI,QAAoB,CAAC;YACzB,IAAI,gBAAwB,CAAC;YAE7B,IAAI,SAAS,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;gBAC9B,QAAQ,GAAG,iBAAiB,CAAC,YAAY,EAAE,aAAa,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;gBACrF,gBAAgB,GAAG,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,eAAe,CAAC;YACtE,CAAC;iBAAM,IAAI,SAAS,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;gBACrC,QAAQ,GAAG,iBAAiB,CAAC,YAAY,EAAE,aAAa,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;gBACrF,gBAAgB,GAAG,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC;YAC9C,CAAC;iBAAM,IAAI,SAAS,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,GAAG,wBAAwB,CACnC,YAAY,EACZ,aAAa,EACb,SAAS,CAAC,cAAe,EACzB,SAAS,CAAC,eAAe,EACzB,SAAS,CAAC,UAAU,CACrB,CAAC;gBACF,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACzB,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC;gBACrC,gBAAgB,GAAG,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACtB,MAAM,IAAI,SAAS,CAAC,kDAAkD,EAAE,qBAAqB,CAAC,CAAC;gBACjG,CAAC;gBACD,MAAM,IAAI,GAAG,sBAAsB,CACjC,YAAY,EACZ,aAAa,EACb,SAAS,CAAC,cAAe,EACzB,SAAS,CAAC,eAAe,EACzB,SAAS,CAAC,UAAU,EACpB,gBAAgB,CACjB,CAAC;gBACF,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACzB,gBAAgB,GAAG,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3D,CAAC;YAED,MAAM,cAAc,GAAG,KAAK,CAAC,SAAS,GAAG,gBAAgB,CAAC;YAC1D,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;gBACxB,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACvB,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;oBACrB,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,SAAS,GAAG,eAAe,CAC/B,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,YAAY,EAAE,UAAU,CACzB,CAAC;gBACF,IAAI,YAAY,EAAE,CAAC;oBACjB,YAAY,CAAC,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC;gBAChD,CAAC;gBACD,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC;gBACjC,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACrC,YAAY,CAAC,QAAQ,CAAC,CAAC;oBACvB,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;wBACrB,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBAC3C,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC;oBAClC,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;wBACtC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC;oBACjC,CAAC;oBACD,oBAAoB,CAAC,WAAW,CAAC,CAAC;oBAClC,MAAM,KAAK,GAAG,SAAS,CAAC;oBACxB,MAAM,OAAO,GAAG,oBAAoB,CAClC,QAAQ,EACR,SAAS,CAAC,SAAS,EACnB,MAAM,CAAC,UAAU,EACjB,YAAY,EACZ,KAAK,EACL,UAAU,EACV,OAAO,EACP,CAAC,KAAK,CAAC,SAAS,CACjB,CAAC;oBACF,SAAS,IAAI,OAAO,CAAC;gBACvB,CAAC;YACH,CAAC;YACD,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,SAAS,CAAC,wBAAwB,EAAE,qBAAqB,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,OAAO,KAAK,SAAS,IAAI,SAAS,GAAG,OAAO,EAAE,CAAC;YACjD,MAAM,IAAI,SAAS,CAAC,mCAAmC,EAAE,uBAAuB,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,KAAK,CAAC,SAAS;YAAE,MAAM;IAC7B,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACnD,IAAI,MAAM,CAAC,WAAW,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC;QACxE,MAAM,IAAI,SAAS,CAAC,6BAA6B,EAAE,qBAAqB,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC9B,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1B,MAAM,IAAI,SAAS,CAAC,4BAA4B,EAAE,qBAAqB,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC5C,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,CAAC;gBACrD,MAAM,IAAI,SAAS,CAAC,2BAA2B,EAAE,qBAAqB,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QACD,GAAG,IAAI,CAAC,CAAC;QACT,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,GAAG,MAAM,EAAE,CAAC;IACjD,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,GAAG,MAAM,EAAE,CAAC;AAAA,CAChD"}
1
+ {"version":3,"file":"decompressFrame.js","sourceRoot":"","sources":["../../src/decode/decompressFrame.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { PackedSequences } from './reconstruct.js';
2
+ import { type HistoryWindow } from './reconstruct.js';
3
+ import { type DecodeSequencesResult, type SequenceTables } from './sequences.js';
4
+ export interface FusedDecodeExecuteResult {
5
+ written: number;
6
+ seqResult: DecodeSequencesResult;
7
+ }
8
+ export declare function shouldUseFusedSequencePath(seqSize: number, literalsLength: number, windowSize: number, updateHistory: boolean): boolean;
9
+ export declare function decodeAndExecuteSequencesInto(blockContent: Uint8Array, seqOffset: number, seqSize: number, prevSeqTables: SequenceTables | null, sequenceReuse: PackedSequences | undefined, literals: Uint8Array, windowSize: number, ensureOutputCapacity: (additional: number) => void, getOutputBuffer: () => Uint8Array, outputStart: number, repOffsets: [number, number, number], history: HistoryWindow, updateHistory: boolean): FusedDecodeExecuteResult;
@@ -0,0 +1,26 @@
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;
6
+ }
7
+ if (literalsLength === 0) {
8
+ return false;
9
+ }
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;
13
+ }
14
+ return true;
15
+ }
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 };
25
+ }
26
+ //# sourceMappingURL=fusedSequences.js.map
@@ -0,0 +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"}
@@ -130,12 +130,20 @@ function decodeHuffmanStreamByCountInto(data, streamOffset, streamLength, table,
130
130
  reader.skipPadding();
131
131
  let written = 0;
132
132
  for (let i = 0; i < numSymbols; i++) {
133
- const peek = reader.readBits(maxNumBits);
134
- const row = table[peek];
135
- if (!row) {
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
136
  throw new ZstdError('Huffman invalid code', 'corruption_detected');
137
137
  }
138
- out[outOffset + written] = row.symbol;
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];
139
147
  written++;
140
148
  }
141
149
  return written;
@@ -152,44 +160,136 @@ function decodeHuffmanStreamToEndInto(data, streamOffset, streamLength, table, m
152
160
  const highestSetBit = 31 - Math.clz32(lastByte);
153
161
  const paddingBits = 8 - highestSetBit;
154
162
  let bitOffset = streamLength * 8 - paddingBits;
155
- const readBitsZeroExtended = (numBits) => {
156
- if (numBits <= 0)
157
- return 0;
158
- bitOffset -= numBits;
159
- let value = 0;
160
- for (let i = 0; i < numBits; i++) {
161
- const abs = bitOffset + i;
162
- if (abs < 0 || abs >= streamLength * 8)
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)
163
192
  continue;
164
193
  const byteIndex = abs >>> 3;
165
194
  const bitInByte = abs & 7;
166
- const bit = (stream[byteIndex] >>> bitInByte) & 1;
167
- value |= bit << i;
195
+ state |= ((stream[byteIndex] >>> bitInByte) & 1) << i;
168
196
  }
169
- return value;
170
- };
171
- const mask = (1 << maxNumBits) - 1;
172
- let state = readBitsZeroExtended(maxNumBits);
197
+ state >>>= 0;
198
+ }
199
+ bitOffset = nextBitOffset;
173
200
  let written = 0;
174
201
  while (bitOffset > -maxNumBits) {
175
- const row = table[state];
176
- if (!row) {
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) {
177
207
  throw new ZstdError('Huffman invalid code', 'corruption_detected');
178
208
  }
179
209
  if (outOffset + written >= out.length) {
180
210
  throw new ZstdError('Huffman literals size mismatch', 'corruption_detected');
181
211
  }
182
- out[outOffset + written] = row.symbol;
212
+ out[outOffset + written] = table.symbol[state];
183
213
  written++;
184
- const nb = row.numBits;
185
- const rest = nb > 0 ? readBitsZeroExtended(nb) : 0;
186
- state = ((state << nb) & mask) + rest;
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;
187
252
  }
188
253
  if (bitOffset !== -maxNumBits) {
189
254
  throw new ZstdError('Huffman stream did not end cleanly', 'corruption_detected');
190
255
  }
191
256
  return written;
192
257
  }
258
+ function parseFourStreamJumpTable(data, pos, totalStreamsSize) {
259
+ if (totalStreamsSize < 10) {
260
+ throw new ZstdError('4-stream mode requires at least 10 bytes', 'corruption_detected');
261
+ }
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');
291
+ }
292
+ }
193
293
  /**
194
294
  * Decode compressed literals (Huffman). Requires Huffman table from tree description.
195
295
  */
@@ -222,37 +322,12 @@ export function decodeCompressedLiterals(data, offset, compressedSize, regenerat
222
322
  throw new ZstdError('Invalid literals compressed size', 'corruption_detected');
223
323
  }
224
324
  const result = new Uint8Array(regeneratedSize);
225
- let outPos = 0;
226
325
  if (numStreams === 1) {
227
326
  decodeHuffmanStreamByCountInto(data, pos, totalStreamsSize, huffmanTable.table, huffmanTable.maxNumBits, result, 0, regeneratedSize);
228
327
  }
229
328
  else {
230
- if (totalStreamsSize < 10) {
231
- throw new ZstdError('4-stream mode requires at least 10 bytes', 'corruption_detected');
232
- }
233
- const s1 = data[pos] | (data[pos + 1] << 8);
234
- const s2 = data[pos + 2] | (data[pos + 3] << 8);
235
- const s3 = data[pos + 4] | (data[pos + 5] << 8);
236
- const stream1Size = s1;
237
- const stream2Size = s2;
238
- const stream3Size = s3;
239
- const stream4Size = totalStreamsSize - 6 - stream1Size - stream2Size - stream3Size;
240
- if (stream4Size < 0) {
241
- throw new ZstdError(`Invalid jump table in 4-stream literals: total=${totalStreamsSize} s1=${stream1Size} s2=${stream2Size} s3=${stream3Size}`, 'corruption_detected');
242
- }
243
- let streamOffset = pos + 6;
244
- const decodeStream = (size) => {
245
- const written = decodeHuffmanStreamToEndInto(data, streamOffset, size, huffmanTable.table, huffmanTable.maxNumBits, result, outPos);
246
- outPos += written;
247
- streamOffset += size;
248
- };
249
- decodeStream(stream1Size);
250
- decodeStream(stream2Size);
251
- decodeStream(stream3Size);
252
- decodeStream(stream4Size);
253
- if (outPos !== regeneratedSize) {
254
- throw new ZstdError('Huffman literals size mismatch', 'corruption_detected');
255
- }
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);
256
331
  }
257
332
  return {
258
333
  literals: result,
@@ -265,38 +340,13 @@ export function decodeCompressedLiterals(data, offset, compressedSize, regenerat
265
340
  */
266
341
  export function decodeTreelessLiterals(data, offset, compressedSize, regeneratedSize, numStreams, huffmanTable) {
267
342
  const result = new Uint8Array(regeneratedSize);
268
- let outPos = 0;
269
- let pos = offset;
343
+ const pos = offset;
270
344
  if (numStreams === 1) {
271
345
  decodeHuffmanStreamByCountInto(data, pos, compressedSize, huffmanTable.table, huffmanTable.maxNumBits, result, 0, regeneratedSize);
272
346
  }
273
347
  else {
274
- if (compressedSize < 10) {
275
- throw new ZstdError('4-stream mode requires at least 10 bytes', 'corruption_detected');
276
- }
277
- const s1 = data[pos] | (data[pos + 1] << 8);
278
- const s2 = data[pos + 2] | (data[pos + 3] << 8);
279
- const s3 = data[pos + 4] | (data[pos + 5] << 8);
280
- const stream1Size = s1;
281
- const stream2Size = s2;
282
- const stream3Size = s3;
283
- const stream4Size = compressedSize - 6 - stream1Size - stream2Size - stream3Size;
284
- if (stream4Size < 0) {
285
- throw new ZstdError(`Invalid jump table in 4-stream literals: total=${compressedSize} s1=${stream1Size} s2=${stream2Size} s3=${stream3Size}`, 'corruption_detected');
286
- }
287
- pos += 6;
288
- const decodeStream = (size) => {
289
- const written = decodeHuffmanStreamToEndInto(data, pos, size, huffmanTable.table, huffmanTable.maxNumBits, result, outPos);
290
- outPos += written;
291
- pos += size;
292
- };
293
- decodeStream(stream1Size);
294
- decodeStream(stream2Size);
295
- decodeStream(stream3Size);
296
- decodeStream(stream4Size);
297
- if (outPos !== regeneratedSize) {
298
- throw new ZstdError('Huffman literals size mismatch', 'corruption_detected');
299
- }
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);
300
350
  }
301
351
  return { literals: result, bytesRead: compressedSize };
302
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,6 +6,12 @@ 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
+ }
9
15
  export interface HistoryWindow {
10
16
  buffer: Uint8Array;
11
17
  length: number;
@@ -15,8 +21,13 @@ export declare function createHistoryWindow(windowSize: number, initial?: Uint8A
15
21
  /** Internal: reuse bag for decoder context. */
16
22
  export interface DecoderReuseBag {
17
23
  _history?: HistoryWindow;
18
- _sequences?: Sequence[];
24
+ _sequences?: PackedSequences;
25
+ _decodeMode?: 'fast' | 'reference';
26
+ _useFusedSequences?: boolean;
19
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[];
20
31
  /**
21
32
  * Get or create a history window, reusing from bag when buffer is large enough.
22
33
  * Caller may pass a mutable bag; it will be updated with the history used.
@@ -25,7 +36,8 @@ export declare function getOrCreateHistoryWindow(windowSize: number, initial: Ui
25
36
  export declare function appendToHistoryWindow(history: HistoryWindow, chunk: Uint8Array): void;
26
37
  export declare function appendRangeToHistoryWindow(history: HistoryWindow, source: Uint8Array, start: number, length: number): void;
27
38
  export declare function appendRLEToHistoryWindow(history: HistoryWindow, byte: number, length: number): void;
28
- export declare function executeSequencesInto(literals: Uint8Array, sequences: Sequence[], windowSize: number, target: Uint8Array, targetOffset: number, repOffsets?: [number, number, number], historyInput?: HistoryWindow | Uint8Array, updateHistory?: boolean): number;
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;
29
41
  /**
30
42
  * Execute sequences to produce decompressed output.
31
43
  * repOffsets: [Repeated_Offset1, Repeated_Offset2, Repeated_Offset3], updated in place.