7z-iterator 1.3.1 → 2.0.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 (135) hide show
  1. package/dist/cjs/index.d.cts +3 -1
  2. package/dist/cjs/index.d.ts +3 -1
  3. package/dist/cjs/index.js +7 -28
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/nextEntry.js +1 -2
  6. package/dist/cjs/nextEntry.js.map +1 -1
  7. package/dist/cjs/sevenz/codecs/index.js +52 -30
  8. package/dist/cjs/sevenz/codecs/index.js.map +1 -1
  9. package/dist/esm/index.d.ts +3 -1
  10. package/dist/esm/index.js +4 -2
  11. package/dist/esm/index.js.map +1 -1
  12. package/dist/esm/nextEntry.js +1 -2
  13. package/dist/esm/nextEntry.js.map +1 -1
  14. package/dist/esm/sevenz/codecs/index.js +32 -10
  15. package/dist/esm/sevenz/codecs/index.js.map +1 -1
  16. package/package.json +10 -4
  17. package/dist/cjs/lzma/Lzma2ChunkParser.d.cts +0 -73
  18. package/dist/cjs/lzma/Lzma2ChunkParser.d.ts +0 -73
  19. package/dist/cjs/lzma/Lzma2ChunkParser.js +0 -148
  20. package/dist/cjs/lzma/Lzma2ChunkParser.js.map +0 -1
  21. package/dist/cjs/lzma/index.d.cts +0 -13
  22. package/dist/cjs/lzma/index.d.ts +0 -13
  23. package/dist/cjs/lzma/index.js +0 -63
  24. package/dist/cjs/lzma/index.js.map +0 -1
  25. package/dist/cjs/lzma/stream/transforms.d.cts +0 -38
  26. package/dist/cjs/lzma/stream/transforms.d.ts +0 -38
  27. package/dist/cjs/lzma/stream/transforms.js +0 -149
  28. package/dist/cjs/lzma/stream/transforms.js.map +0 -1
  29. package/dist/cjs/lzma/sync/Lzma2Decoder.d.cts +0 -30
  30. package/dist/cjs/lzma/sync/Lzma2Decoder.d.ts +0 -30
  31. package/dist/cjs/lzma/sync/Lzma2Decoder.js +0 -135
  32. package/dist/cjs/lzma/sync/Lzma2Decoder.js.map +0 -1
  33. package/dist/cjs/lzma/sync/LzmaDecoder.d.cts +0 -82
  34. package/dist/cjs/lzma/sync/LzmaDecoder.d.ts +0 -82
  35. package/dist/cjs/lzma/sync/LzmaDecoder.js +0 -440
  36. package/dist/cjs/lzma/sync/LzmaDecoder.js.map +0 -1
  37. package/dist/cjs/lzma/sync/RangeDecoder.d.cts +0 -69
  38. package/dist/cjs/lzma/sync/RangeDecoder.d.ts +0 -69
  39. package/dist/cjs/lzma/sync/RangeDecoder.js +0 -162
  40. package/dist/cjs/lzma/sync/RangeDecoder.js.map +0 -1
  41. package/dist/cjs/lzma/types.d.cts +0 -110
  42. package/dist/cjs/lzma/types.d.ts +0 -110
  43. package/dist/cjs/lzma/types.js +0 -264
  44. package/dist/cjs/lzma/types.js.map +0 -1
  45. package/dist/cjs/sevenz/codecs/Bcj.d.cts +0 -16
  46. package/dist/cjs/sevenz/codecs/Bcj.d.ts +0 -16
  47. package/dist/cjs/sevenz/codecs/Bcj.js +0 -183
  48. package/dist/cjs/sevenz/codecs/Bcj.js.map +0 -1
  49. package/dist/cjs/sevenz/codecs/BcjArm.d.cts +0 -21
  50. package/dist/cjs/sevenz/codecs/BcjArm.d.ts +0 -21
  51. package/dist/cjs/sevenz/codecs/BcjArm.js +0 -104
  52. package/dist/cjs/sevenz/codecs/BcjArm.js.map +0 -1
  53. package/dist/cjs/sevenz/codecs/BcjArm64.d.cts +0 -21
  54. package/dist/cjs/sevenz/codecs/BcjArm64.d.ts +0 -21
  55. package/dist/cjs/sevenz/codecs/BcjArm64.js +0 -65
  56. package/dist/cjs/sevenz/codecs/BcjArm64.js.map +0 -1
  57. package/dist/cjs/sevenz/codecs/BcjArmt.d.cts +0 -19
  58. package/dist/cjs/sevenz/codecs/BcjArmt.d.ts +0 -19
  59. package/dist/cjs/sevenz/codecs/BcjArmt.js +0 -76
  60. package/dist/cjs/sevenz/codecs/BcjArmt.js.map +0 -1
  61. package/dist/cjs/sevenz/codecs/BcjIa64.d.cts +0 -15
  62. package/dist/cjs/sevenz/codecs/BcjIa64.d.ts +0 -15
  63. package/dist/cjs/sevenz/codecs/BcjIa64.js +0 -141
  64. package/dist/cjs/sevenz/codecs/BcjIa64.js.map +0 -1
  65. package/dist/cjs/sevenz/codecs/BcjPpc.d.cts +0 -20
  66. package/dist/cjs/sevenz/codecs/BcjPpc.d.ts +0 -20
  67. package/dist/cjs/sevenz/codecs/BcjPpc.js +0 -64
  68. package/dist/cjs/sevenz/codecs/BcjPpc.js.map +0 -1
  69. package/dist/cjs/sevenz/codecs/BcjSparc.d.cts +0 -19
  70. package/dist/cjs/sevenz/codecs/BcjSparc.d.ts +0 -19
  71. package/dist/cjs/sevenz/codecs/BcjSparc.js +0 -69
  72. package/dist/cjs/sevenz/codecs/BcjSparc.js.map +0 -1
  73. package/dist/cjs/sevenz/codecs/Delta.d.cts +0 -16
  74. package/dist/cjs/sevenz/codecs/Delta.d.ts +0 -16
  75. package/dist/cjs/sevenz/codecs/Delta.js +0 -74
  76. package/dist/cjs/sevenz/codecs/Delta.js.map +0 -1
  77. package/dist/cjs/sevenz/codecs/Lzma.d.cts +0 -17
  78. package/dist/cjs/sevenz/codecs/Lzma.d.ts +0 -17
  79. package/dist/cjs/sevenz/codecs/Lzma.js +0 -40
  80. package/dist/cjs/sevenz/codecs/Lzma.js.map +0 -1
  81. package/dist/cjs/sevenz/codecs/Lzma2.d.cts +0 -20
  82. package/dist/cjs/sevenz/codecs/Lzma2.d.ts +0 -20
  83. package/dist/cjs/sevenz/codecs/Lzma2.js +0 -42
  84. package/dist/cjs/sevenz/codecs/Lzma2.js.map +0 -1
  85. package/dist/esm/lzma/Lzma2ChunkParser.d.ts +0 -73
  86. package/dist/esm/lzma/Lzma2ChunkParser.js +0 -137
  87. package/dist/esm/lzma/Lzma2ChunkParser.js.map +0 -1
  88. package/dist/esm/lzma/index.d.ts +0 -13
  89. package/dist/esm/lzma/index.js +0 -15
  90. package/dist/esm/lzma/index.js.map +0 -1
  91. package/dist/esm/lzma/stream/transforms.d.ts +0 -38
  92. package/dist/esm/lzma/stream/transforms.js +0 -150
  93. package/dist/esm/lzma/stream/transforms.js.map +0 -1
  94. package/dist/esm/lzma/sync/Lzma2Decoder.d.ts +0 -30
  95. package/dist/esm/lzma/sync/Lzma2Decoder.js +0 -115
  96. package/dist/esm/lzma/sync/Lzma2Decoder.js.map +0 -1
  97. package/dist/esm/lzma/sync/LzmaDecoder.d.ts +0 -82
  98. package/dist/esm/lzma/sync/LzmaDecoder.js +0 -403
  99. package/dist/esm/lzma/sync/LzmaDecoder.js.map +0 -1
  100. package/dist/esm/lzma/sync/RangeDecoder.d.ts +0 -69
  101. package/dist/esm/lzma/sync/RangeDecoder.js +0 -132
  102. package/dist/esm/lzma/sync/RangeDecoder.js.map +0 -1
  103. package/dist/esm/lzma/types.d.ts +0 -110
  104. package/dist/esm/lzma/types.js +0 -154
  105. package/dist/esm/lzma/types.js.map +0 -1
  106. package/dist/esm/sevenz/codecs/Bcj.d.ts +0 -16
  107. package/dist/esm/sevenz/codecs/Bcj.js +0 -175
  108. package/dist/esm/sevenz/codecs/Bcj.js.map +0 -1
  109. package/dist/esm/sevenz/codecs/BcjArm.d.ts +0 -21
  110. package/dist/esm/sevenz/codecs/BcjArm.js +0 -101
  111. package/dist/esm/sevenz/codecs/BcjArm.js.map +0 -1
  112. package/dist/esm/sevenz/codecs/BcjArm64.d.ts +0 -21
  113. package/dist/esm/sevenz/codecs/BcjArm64.js +0 -57
  114. package/dist/esm/sevenz/codecs/BcjArm64.js.map +0 -1
  115. package/dist/esm/sevenz/codecs/BcjArmt.d.ts +0 -19
  116. package/dist/esm/sevenz/codecs/BcjArmt.js +0 -66
  117. package/dist/esm/sevenz/codecs/BcjArmt.js.map +0 -1
  118. package/dist/esm/sevenz/codecs/BcjIa64.d.ts +0 -15
  119. package/dist/esm/sevenz/codecs/BcjIa64.js +0 -127
  120. package/dist/esm/sevenz/codecs/BcjIa64.js.map +0 -1
  121. package/dist/esm/sevenz/codecs/BcjPpc.d.ts +0 -20
  122. package/dist/esm/sevenz/codecs/BcjPpc.js +0 -55
  123. package/dist/esm/sevenz/codecs/BcjPpc.js.map +0 -1
  124. package/dist/esm/sevenz/codecs/BcjSparc.d.ts +0 -19
  125. package/dist/esm/sevenz/codecs/BcjSparc.js +0 -59
  126. package/dist/esm/sevenz/codecs/BcjSparc.js.map +0 -1
  127. package/dist/esm/sevenz/codecs/Delta.d.ts +0 -16
  128. package/dist/esm/sevenz/codecs/Delta.js +0 -66
  129. package/dist/esm/sevenz/codecs/Delta.js.map +0 -1
  130. package/dist/esm/sevenz/codecs/Lzma.d.ts +0 -17
  131. package/dist/esm/sevenz/codecs/Lzma.js +0 -33
  132. package/dist/esm/sevenz/codecs/Lzma.js.map +0 -1
  133. package/dist/esm/sevenz/codecs/Lzma2.d.ts +0 -20
  134. package/dist/esm/sevenz/codecs/Lzma2.js +0 -38
  135. package/dist/esm/sevenz/codecs/Lzma2.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/7z-iterator/src/lzma/sync/LzmaDecoder.ts"],"sourcesContent":["/**\n * Synchronous LZMA1 Decoder\n *\n * Decodes LZMA1 compressed data from a buffer.\n * All operations are synchronous.\n */\n\nimport { allocBufferUnsafe } from 'extract-base-iterator';\nimport {\n getLenToPosState,\n initBitModels,\n kEndPosModelIndex,\n kMatchMinLen,\n kNumAlignBits,\n kNumFullDistances,\n kNumLenToPosStates,\n kNumLitContextBitsMax,\n kNumPosSlotBits,\n kNumPosStatesBitsMax,\n kNumStates,\n kStartPosModelIndex,\n parseProperties,\n stateIsCharState,\n stateUpdateChar,\n stateUpdateMatch,\n stateUpdateRep,\n stateUpdateShortRep,\n} from '../types.ts';\nimport { BitTreeDecoder, RangeDecoder, reverseDecodeFromArray } from './RangeDecoder.ts';\n\n/**\n * Length decoder for match/rep lengths\n */\nclass LenDecoder {\n private choice: Uint16Array;\n private lowCoder: BitTreeDecoder[];\n private midCoder: BitTreeDecoder[];\n private highCoder: BitTreeDecoder;\n private numPosStates: number;\n\n constructor() {\n this.choice = initBitModels(null, 2);\n this.lowCoder = [];\n this.midCoder = [];\n this.highCoder = new BitTreeDecoder(8);\n this.numPosStates = 0;\n }\n\n create(numPosStates: number): void {\n for (; this.numPosStates < numPosStates; this.numPosStates++) {\n this.lowCoder[this.numPosStates] = new BitTreeDecoder(3);\n this.midCoder[this.numPosStates] = new BitTreeDecoder(3);\n }\n }\n\n init(): void {\n initBitModels(this.choice);\n for (let i = this.numPosStates - 1; i >= 0; i--) {\n this.lowCoder[i].init();\n this.midCoder[i].init();\n }\n this.highCoder.init();\n }\n\n decode(rangeDecoder: RangeDecoder, posState: number): number {\n if (rangeDecoder.decodeBit(this.choice, 0) === 0) {\n return this.lowCoder[posState].decode(rangeDecoder);\n }\n if (rangeDecoder.decodeBit(this.choice, 1) === 0) {\n return 8 + this.midCoder[posState].decode(rangeDecoder);\n }\n return 16 + this.highCoder.decode(rangeDecoder);\n }\n}\n\n/**\n * Single literal decoder (decodes one byte)\n */\nclass LiteralDecoder2 {\n private decoders: Uint16Array;\n\n constructor() {\n this.decoders = initBitModels(null, 0x300);\n }\n\n init(): void {\n initBitModels(this.decoders);\n }\n\n decodeNormal(rangeDecoder: RangeDecoder): number {\n let symbol = 1;\n do {\n symbol = (symbol << 1) | rangeDecoder.decodeBit(this.decoders, symbol);\n } while (symbol < 0x100);\n return symbol & 0xff;\n }\n\n decodeWithMatchByte(rangeDecoder: RangeDecoder, matchByte: number): number {\n let symbol = 1;\n do {\n const matchBit = (matchByte >> 7) & 1;\n matchByte <<= 1;\n const bit = rangeDecoder.decodeBit(this.decoders, ((1 + matchBit) << 8) + symbol);\n symbol = (symbol << 1) | bit;\n if (matchBit !== bit) {\n while (symbol < 0x100) {\n symbol = (symbol << 1) | rangeDecoder.decodeBit(this.decoders, symbol);\n }\n break;\n }\n } while (symbol < 0x100);\n return symbol & 0xff;\n }\n}\n\n/**\n * Literal decoder (array of single decoders)\n */\nclass LiteralDecoder {\n private numPosBits: number;\n private numPrevBits: number;\n private posMask: number;\n private coders: (LiteralDecoder2 | undefined)[];\n\n constructor() {\n this.numPosBits = 0;\n this.numPrevBits = 0;\n this.posMask = 0;\n this.coders = [];\n }\n\n create(numPosBits: number, numPrevBits: number): void {\n if (this.coders.length > 0 && this.numPrevBits === numPrevBits && this.numPosBits === numPosBits) {\n return;\n }\n this.numPosBits = numPosBits;\n this.posMask = (1 << numPosBits) - 1;\n this.numPrevBits = numPrevBits;\n this.coders = [];\n }\n\n init(): void {\n for (let i = 0; i < this.coders.length; i++) {\n if (this.coders[i]) {\n this.coders[i]?.init();\n }\n }\n }\n\n getDecoder(pos: number, prevByte: number): LiteralDecoder2 {\n const index = ((pos & this.posMask) << this.numPrevBits) + ((prevByte & 0xff) >>> (8 - this.numPrevBits));\n let decoder = this.coders[index];\n if (!decoder) {\n decoder = new LiteralDecoder2();\n this.coders[index] = decoder;\n }\n return decoder;\n }\n}\n\n/**\n * Output window (sliding dictionary)\n */\nclass OutWindow {\n private buffer: Buffer;\n private windowSize: number;\n private pos: number;\n\n constructor() {\n this.buffer = allocBufferUnsafe(0); // Replaced by create() before use\n this.windowSize = 0;\n this.pos = 0;\n }\n\n create(windowSize: number): void {\n if (!this.buffer || this.windowSize !== windowSize) {\n this.buffer = allocBufferUnsafe(windowSize);\n }\n this.windowSize = windowSize;\n this.pos = 0;\n }\n\n init(solid: boolean): void {\n if (!solid) {\n this.pos = 0;\n }\n }\n\n putByte(b: number): void {\n this.buffer[this.pos++] = b;\n if (this.pos >= this.windowSize) {\n this.pos = 0;\n }\n }\n\n getByte(distance: number): number {\n let pos = this.pos - distance - 1;\n if (pos < 0) {\n pos += this.windowSize;\n }\n return this.buffer[pos];\n }\n\n copyBlock(distance: number, len: number): void {\n let pos = this.pos - distance - 1;\n if (pos < 0) {\n pos += this.windowSize;\n }\n for (let i = 0; i < len; i++) {\n if (pos >= this.windowSize) {\n pos = 0;\n }\n this.putByte(this.buffer[pos++]);\n }\n }\n\n /**\n * Copy decoded data to output buffer\n */\n copyTo(output: Buffer, outputOffset: number, count: number): void {\n const srcPos = this.pos - count;\n if (srcPos < 0) {\n // Wrap around case - data spans end and beginning of buffer\n const firstPart = -srcPos;\n this.buffer.copy(output, outputOffset, this.windowSize + srcPos, this.windowSize);\n this.buffer.copy(output, outputOffset + firstPart, 0, count - firstPart);\n } else {\n this.buffer.copy(output, outputOffset, srcPos, srcPos + count);\n }\n }\n}\n\n/**\n * Synchronous LZMA1 decoder\n */\nexport class LzmaDecoder {\n private outWindow: OutWindow;\n private rangeDecoder: RangeDecoder;\n\n // Probability models\n private isMatchDecoders: Uint16Array;\n private isRepDecoders: Uint16Array;\n private isRepG0Decoders: Uint16Array;\n private isRepG1Decoders: Uint16Array;\n private isRepG2Decoders: Uint16Array;\n private isRep0LongDecoders: Uint16Array;\n private posSlotDecoder: BitTreeDecoder[];\n private posDecoders: Uint16Array;\n private posAlignDecoder: BitTreeDecoder;\n private lenDecoder: LenDecoder;\n private repLenDecoder: LenDecoder;\n private literalDecoder: LiteralDecoder;\n\n // Properties\n private dictionarySize: number;\n private dictionarySizeCheck: number;\n private posStateMask: number;\n\n // State (preserved across solid calls)\n private state: number;\n private rep0: number;\n private rep1: number;\n private rep2: number;\n private rep3: number;\n private prevByte: number;\n private totalPos: number;\n\n constructor() {\n this.outWindow = new OutWindow();\n this.rangeDecoder = new RangeDecoder();\n\n this.isMatchDecoders = initBitModels(null, kNumStates << kNumPosStatesBitsMax);\n this.isRepDecoders = initBitModels(null, kNumStates);\n this.isRepG0Decoders = initBitModels(null, kNumStates);\n this.isRepG1Decoders = initBitModels(null, kNumStates);\n this.isRepG2Decoders = initBitModels(null, kNumStates);\n this.isRep0LongDecoders = initBitModels(null, kNumStates << kNumPosStatesBitsMax);\n this.posSlotDecoder = [];\n this.posDecoders = initBitModels(null, kNumFullDistances - kEndPosModelIndex);\n this.posAlignDecoder = new BitTreeDecoder(kNumAlignBits);\n this.lenDecoder = new LenDecoder();\n this.repLenDecoder = new LenDecoder();\n this.literalDecoder = new LiteralDecoder();\n\n for (let i = 0; i < kNumLenToPosStates; i++) {\n this.posSlotDecoder[i] = new BitTreeDecoder(kNumPosSlotBits);\n }\n\n this.dictionarySize = -1;\n this.dictionarySizeCheck = -1;\n this.posStateMask = 0;\n\n this.state = 0;\n this.rep0 = 0;\n this.rep1 = 0;\n this.rep2 = 0;\n this.rep3 = 0;\n this.prevByte = 0;\n this.totalPos = 0;\n }\n\n /**\n * Set dictionary size\n */\n setDictionarySize(dictionarySize: number): boolean {\n if (dictionarySize < 0) return false;\n if (this.dictionarySize !== dictionarySize) {\n this.dictionarySize = dictionarySize;\n this.dictionarySizeCheck = Math.max(dictionarySize, 1);\n this.outWindow.create(Math.max(this.dictionarySizeCheck, 1 << 12));\n }\n return true;\n }\n\n /**\n * Set lc, lp, pb properties\n */\n setLcLpPb(lc: number, lp: number, pb: number): boolean {\n if (lc > kNumLitContextBitsMax || lp > 4 || pb > kNumPosStatesBitsMax) {\n return false;\n }\n const numPosStates = 1 << pb;\n this.literalDecoder.create(lp, lc);\n this.lenDecoder.create(numPosStates);\n this.repLenDecoder.create(numPosStates);\n this.posStateMask = numPosStates - 1;\n return true;\n }\n\n /**\n * Set decoder properties from 5-byte buffer\n */\n setDecoderProperties(properties: Buffer | Uint8Array): boolean {\n const props = parseProperties(properties);\n if (!this.setLcLpPb(props.lc, props.lp, props.pb)) return false;\n return this.setDictionarySize(props.dictionarySize);\n }\n\n /**\n * Initialize probability tables\n */\n private initProbabilities(): void {\n initBitModels(this.isMatchDecoders);\n initBitModels(this.isRepDecoders);\n initBitModels(this.isRepG0Decoders);\n initBitModels(this.isRepG1Decoders);\n initBitModels(this.isRepG2Decoders);\n initBitModels(this.isRep0LongDecoders);\n initBitModels(this.posDecoders);\n this.literalDecoder.init();\n for (let i = kNumLenToPosStates - 1; i >= 0; i--) {\n this.posSlotDecoder[i].init();\n }\n this.lenDecoder.init();\n this.repLenDecoder.init();\n this.posAlignDecoder.init();\n }\n\n /**\n * Reset probabilities only (for LZMA2 state reset)\n */\n resetProbabilities(): void {\n this.initProbabilities();\n this.state = 0;\n this.rep0 = 0;\n this.rep1 = 0;\n this.rep2 = 0;\n this.rep3 = 0;\n }\n\n /**\n * Reset dictionary position (for LZMA2 dictionary reset)\n */\n resetDictionary(): void {\n this.outWindow.init(false);\n this.totalPos = 0;\n }\n\n /**\n * Feed uncompressed data into the dictionary (for LZMA2 uncompressed chunks)\n * This updates the sliding window so subsequent LZMA chunks can reference this data.\n */\n feedUncompressed(data: Buffer): void {\n for (let i = 0; i < data.length; i++) {\n this.outWindow.putByte(data[i]);\n }\n this.totalPos += data.length;\n if (data.length > 0) {\n this.prevByte = data[data.length - 1];\n }\n }\n\n /**\n * Decode LZMA data\n * @param input - Compressed input buffer\n * @param inputOffset - Offset into input buffer\n * @param outSize - Expected output size\n * @param solid - If true, preserve state from previous decode\n * @returns Decompressed data\n */\n decode(input: Buffer, inputOffset: number, outSize: number, solid = false): Buffer {\n this.rangeDecoder.setInput(input, inputOffset);\n\n if (!solid) {\n this.outWindow.init(false);\n this.initProbabilities();\n this.state = 0;\n this.rep0 = 0;\n this.rep1 = 0;\n this.rep2 = 0;\n this.rep3 = 0;\n this.prevByte = 0;\n this.totalPos = 0;\n } else {\n // Solid mode: preserve dictionary state but reinitialize range decoder\n this.outWindow.init(true);\n }\n\n const output = allocBufferUnsafe(outSize);\n let outPos = 0;\n let cumPos = this.totalPos;\n\n while (outPos < outSize) {\n const posState = cumPos & this.posStateMask;\n\n if (this.rangeDecoder.decodeBit(this.isMatchDecoders, (this.state << kNumPosStatesBitsMax) + posState) === 0) {\n // Literal\n const decoder2 = this.literalDecoder.getDecoder(cumPos, this.prevByte);\n if (!stateIsCharState(this.state)) {\n this.prevByte = decoder2.decodeWithMatchByte(this.rangeDecoder, this.outWindow.getByte(this.rep0));\n } else {\n this.prevByte = decoder2.decodeNormal(this.rangeDecoder);\n }\n this.outWindow.putByte(this.prevByte);\n output[outPos++] = this.prevByte;\n this.state = stateUpdateChar(this.state);\n cumPos++;\n } else {\n // Match or rep\n let len: number;\n\n if (this.rangeDecoder.decodeBit(this.isRepDecoders, this.state) === 1) {\n // Rep match\n len = 0;\n if (this.rangeDecoder.decodeBit(this.isRepG0Decoders, this.state) === 0) {\n if (this.rangeDecoder.decodeBit(this.isRep0LongDecoders, (this.state << kNumPosStatesBitsMax) + posState) === 0) {\n this.state = stateUpdateShortRep(this.state);\n len = 1;\n }\n } else {\n let distance: number;\n if (this.rangeDecoder.decodeBit(this.isRepG1Decoders, this.state) === 0) {\n distance = this.rep1;\n } else {\n if (this.rangeDecoder.decodeBit(this.isRepG2Decoders, this.state) === 0) {\n distance = this.rep2;\n } else {\n distance = this.rep3;\n this.rep3 = this.rep2;\n }\n this.rep2 = this.rep1;\n }\n this.rep1 = this.rep0;\n this.rep0 = distance;\n }\n if (len === 0) {\n len = kMatchMinLen + this.repLenDecoder.decode(this.rangeDecoder, posState);\n this.state = stateUpdateRep(this.state);\n }\n } else {\n // Normal match\n this.rep3 = this.rep2;\n this.rep2 = this.rep1;\n this.rep1 = this.rep0;\n len = kMatchMinLen + this.lenDecoder.decode(this.rangeDecoder, posState);\n this.state = stateUpdateMatch(this.state);\n\n const posSlot = this.posSlotDecoder[getLenToPosState(len)].decode(this.rangeDecoder);\n if (posSlot >= kStartPosModelIndex) {\n const numDirectBits = (posSlot >> 1) - 1;\n this.rep0 = (2 | (posSlot & 1)) << numDirectBits;\n if (posSlot < kEndPosModelIndex) {\n this.rep0 += reverseDecodeFromArray(this.posDecoders, this.rep0 - posSlot - 1, this.rangeDecoder, numDirectBits);\n } else {\n this.rep0 += this.rangeDecoder.decodeDirectBits(numDirectBits - kNumAlignBits) << kNumAlignBits;\n this.rep0 += this.posAlignDecoder.reverseDecode(this.rangeDecoder);\n if (this.rep0 < 0) {\n if (this.rep0 === -1) break; // End marker\n throw new Error('LZMA: Invalid distance');\n }\n }\n } else {\n this.rep0 = posSlot;\n }\n }\n\n if (this.rep0 >= cumPos || this.rep0 >= this.dictionarySizeCheck) {\n throw new Error('LZMA: Invalid distance');\n }\n\n // Copy match bytes\n for (let i = 0; i < len; i++) {\n const b = this.outWindow.getByte(this.rep0);\n this.outWindow.putByte(b);\n output[outPos++] = b;\n }\n cumPos += len;\n this.prevByte = this.outWindow.getByte(0);\n }\n }\n\n this.totalPos = cumPos;\n return output;\n }\n}\n\n/**\n * Decode LZMA1 data synchronously\n * @param input - Compressed data (without 5-byte properties header)\n * @param properties - 5-byte LZMA properties\n * @param outSize - Expected output size\n * @returns Decompressed data\n */\nexport function decodeLzma(input: Buffer, properties: Buffer | Uint8Array, outSize: number): Buffer {\n const decoder = new LzmaDecoder();\n decoder.setDecoderProperties(properties);\n return decoder.decode(input, 0, outSize, false);\n}\n"],"names":["allocBufferUnsafe","getLenToPosState","initBitModels","kEndPosModelIndex","kMatchMinLen","kNumAlignBits","kNumFullDistances","kNumLenToPosStates","kNumLitContextBitsMax","kNumPosSlotBits","kNumPosStatesBitsMax","kNumStates","kStartPosModelIndex","parseProperties","stateIsCharState","stateUpdateChar","stateUpdateMatch","stateUpdateRep","stateUpdateShortRep","BitTreeDecoder","RangeDecoder","reverseDecodeFromArray","LenDecoder","create","numPosStates","lowCoder","midCoder","init","choice","i","highCoder","decode","rangeDecoder","posState","decodeBit","LiteralDecoder2","decoders","decodeNormal","symbol","decodeWithMatchByte","matchByte","matchBit","bit","LiteralDecoder","numPosBits","numPrevBits","coders","length","posMask","getDecoder","pos","prevByte","index","decoder","OutWindow","windowSize","buffer","solid","putByte","b","getByte","distance","copyBlock","len","copyTo","output","outputOffset","count","srcPos","firstPart","copy","LzmaDecoder","setDictionarySize","dictionarySize","dictionarySizeCheck","Math","max","outWindow","setLcLpPb","lc","lp","pb","literalDecoder","lenDecoder","repLenDecoder","posStateMask","setDecoderProperties","properties","props","initProbabilities","isMatchDecoders","isRepDecoders","isRepG0Decoders","isRepG1Decoders","isRepG2Decoders","isRep0LongDecoders","posDecoders","posSlotDecoder","posAlignDecoder","resetProbabilities","state","rep0","rep1","rep2","rep3","resetDictionary","totalPos","feedUncompressed","data","input","inputOffset","outSize","setInput","outPos","cumPos","decoder2","posSlot","numDirectBits","decodeDirectBits","reverseDecode","Error","decodeLzma"],"mappings":"AAAA;;;;;CAKC,GAED,SAASA,iBAAiB,QAAQ,wBAAwB;AAC1D,SACEC,gBAAgB,EAChBC,aAAa,EACbC,iBAAiB,EACjBC,YAAY,EACZC,aAAa,EACbC,iBAAiB,EACjBC,kBAAkB,EAClBC,qBAAqB,EACrBC,eAAe,EACfC,oBAAoB,EACpBC,UAAU,EACVC,mBAAmB,EACnBC,eAAe,EACfC,gBAAgB,EAChBC,eAAe,EACfC,gBAAgB,EAChBC,cAAc,EACdC,mBAAmB,QACd,cAAc;AACrB,SAASC,cAAc,EAAEC,YAAY,EAAEC,sBAAsB,QAAQ,oBAAoB;AAEzF;;CAEC,GACD,IAAA,AAAMC,aAAN,MAAMA;IAeJC,OAAOC,YAAoB,EAAQ;QACjC,MAAO,IAAI,CAACA,YAAY,GAAGA,cAAc,IAAI,CAACA,YAAY,GAAI;YAC5D,IAAI,CAACC,QAAQ,CAAC,IAAI,CAACD,YAAY,CAAC,GAAG,IAAIL,eAAe;YACtD,IAAI,CAACO,QAAQ,CAAC,IAAI,CAACF,YAAY,CAAC,GAAG,IAAIL,eAAe;QACxD;IACF;IAEAQ,OAAa;QACXzB,cAAc,IAAI,CAAC0B,MAAM;QACzB,IAAK,IAAIC,IAAI,IAAI,CAACL,YAAY,GAAG,GAAGK,KAAK,GAAGA,IAAK;YAC/C,IAAI,CAACJ,QAAQ,CAACI,EAAE,CAACF,IAAI;YACrB,IAAI,CAACD,QAAQ,CAACG,EAAE,CAACF,IAAI;QACvB;QACA,IAAI,CAACG,SAAS,CAACH,IAAI;IACrB;IAEAI,OAAOC,YAA0B,EAAEC,QAAgB,EAAU;QAC3D,IAAID,aAAaE,SAAS,CAAC,IAAI,CAACN,MAAM,EAAE,OAAO,GAAG;YAChD,OAAO,IAAI,CAACH,QAAQ,CAACQ,SAAS,CAACF,MAAM,CAACC;QACxC;QACA,IAAIA,aAAaE,SAAS,CAAC,IAAI,CAACN,MAAM,EAAE,OAAO,GAAG;YAChD,OAAO,IAAI,IAAI,CAACF,QAAQ,CAACO,SAAS,CAACF,MAAM,CAACC;QAC5C;QACA,OAAO,KAAK,IAAI,CAACF,SAAS,CAACC,MAAM,CAACC;IACpC;IAhCA,aAAc;QACZ,IAAI,CAACJ,MAAM,GAAG1B,cAAc,MAAM;QAClC,IAAI,CAACuB,QAAQ,GAAG,EAAE;QAClB,IAAI,CAACC,QAAQ,GAAG,EAAE;QAClB,IAAI,CAACI,SAAS,GAAG,IAAIX,eAAe;QACpC,IAAI,CAACK,YAAY,GAAG;IACtB;AA2BF;AAEA;;CAEC,GACD,IAAA,AAAMW,kBAAN,MAAMA;IAOJR,OAAa;QACXzB,cAAc,IAAI,CAACkC,QAAQ;IAC7B;IAEAC,aAAaL,YAA0B,EAAU;QAC/C,IAAIM,SAAS;QACb,GAAG;YACDA,SAAS,AAACA,UAAU,IAAKN,aAAaE,SAAS,CAAC,IAAI,CAACE,QAAQ,EAAEE;QACjE,QAASA,SAAS,MAAO;QACzB,OAAOA,SAAS;IAClB;IAEAC,oBAAoBP,YAA0B,EAAEQ,SAAiB,EAAU;QACzE,IAAIF,SAAS;QACb,GAAG;YACD,MAAMG,WAAW,AAACD,aAAa,IAAK;YACpCA,cAAc;YACd,MAAME,MAAMV,aAAaE,SAAS,CAAC,IAAI,CAACE,QAAQ,EAAE,AAAC,CAAA,AAAC,IAAIK,YAAa,CAAA,IAAKH;YAC1EA,SAAS,AAACA,UAAU,IAAKI;YACzB,IAAID,aAAaC,KAAK;gBACpB,MAAOJ,SAAS,MAAO;oBACrBA,SAAS,AAACA,UAAU,IAAKN,aAAaE,SAAS,CAAC,IAAI,CAACE,QAAQ,EAAEE;gBACjE;gBACA;YACF;QACF,QAASA,SAAS,MAAO;QACzB,OAAOA,SAAS;IAClB;IA/BA,aAAc;QACZ,IAAI,CAACF,QAAQ,GAAGlC,cAAc,MAAM;IACtC;AA8BF;AAEA;;CAEC,GACD,IAAA,AAAMyC,iBAAN,MAAMA;IAaJpB,OAAOqB,UAAkB,EAAEC,WAAmB,EAAQ;QACpD,IAAI,IAAI,CAACC,MAAM,CAACC,MAAM,GAAG,KAAK,IAAI,CAACF,WAAW,KAAKA,eAAe,IAAI,CAACD,UAAU,KAAKA,YAAY;YAChG;QACF;QACA,IAAI,CAACA,UAAU,GAAGA;QAClB,IAAI,CAACI,OAAO,GAAG,AAAC,CAAA,KAAKJ,UAAS,IAAK;QACnC,IAAI,CAACC,WAAW,GAAGA;QACnB,IAAI,CAACC,MAAM,GAAG,EAAE;IAClB;IAEAnB,OAAa;QACX,IAAK,IAAIE,IAAI,GAAGA,IAAI,IAAI,CAACiB,MAAM,CAACC,MAAM,EAAElB,IAAK;YAC3C,IAAI,IAAI,CAACiB,MAAM,CAACjB,EAAE,EAAE;oBAClB;iBAAA,iBAAA,IAAI,CAACiB,MAAM,CAACjB,EAAE,cAAd,qCAAA,eAAgBF,IAAI;YACtB;QACF;IACF;IAEAsB,WAAWC,GAAW,EAAEC,QAAgB,EAAmB;QACzD,MAAMC,QAAQ,AAAC,CAAA,AAACF,CAAAA,MAAM,IAAI,CAACF,OAAO,AAAD,KAAM,IAAI,CAACH,WAAW,AAAD,IAAM,CAAA,AAACM,CAAAA,WAAW,IAAG,MAAQ,IAAI,IAAI,CAACN,WAAW;QACvG,IAAIQ,UAAU,IAAI,CAACP,MAAM,CAACM,MAAM;QAChC,IAAI,CAACC,SAAS;YACZA,UAAU,IAAIlB;YACd,IAAI,CAACW,MAAM,CAACM,MAAM,GAAGC;QACvB;QACA,OAAOA;IACT;IAjCA,aAAc;QACZ,IAAI,CAACT,UAAU,GAAG;QAClB,IAAI,CAACC,WAAW,GAAG;QACnB,IAAI,CAACG,OAAO,GAAG;QACf,IAAI,CAACF,MAAM,GAAG,EAAE;IAClB;AA6BF;AAEA;;CAEC,GACD,IAAA,AAAMQ,YAAN,MAAMA;IAWJ/B,OAAOgC,UAAkB,EAAQ;QAC/B,IAAI,CAAC,IAAI,CAACC,MAAM,IAAI,IAAI,CAACD,UAAU,KAAKA,YAAY;YAClD,IAAI,CAACC,MAAM,GAAGxD,kBAAkBuD;QAClC;QACA,IAAI,CAACA,UAAU,GAAGA;QAClB,IAAI,CAACL,GAAG,GAAG;IACb;IAEAvB,KAAK8B,KAAc,EAAQ;QACzB,IAAI,CAACA,OAAO;YACV,IAAI,CAACP,GAAG,GAAG;QACb;IACF;IAEAQ,QAAQC,CAAS,EAAQ;QACvB,IAAI,CAACH,MAAM,CAAC,IAAI,CAACN,GAAG,GAAG,GAAGS;QAC1B,IAAI,IAAI,CAACT,GAAG,IAAI,IAAI,CAACK,UAAU,EAAE;YAC/B,IAAI,CAACL,GAAG,GAAG;QACb;IACF;IAEAU,QAAQC,QAAgB,EAAU;QAChC,IAAIX,MAAM,IAAI,CAACA,GAAG,GAAGW,WAAW;QAChC,IAAIX,MAAM,GAAG;YACXA,OAAO,IAAI,CAACK,UAAU;QACxB;QACA,OAAO,IAAI,CAACC,MAAM,CAACN,IAAI;IACzB;IAEAY,UAAUD,QAAgB,EAAEE,GAAW,EAAQ;QAC7C,IAAIb,MAAM,IAAI,CAACA,GAAG,GAAGW,WAAW;QAChC,IAAIX,MAAM,GAAG;YACXA,OAAO,IAAI,CAACK,UAAU;QACxB;QACA,IAAK,IAAI1B,IAAI,GAAGA,IAAIkC,KAAKlC,IAAK;YAC5B,IAAIqB,OAAO,IAAI,CAACK,UAAU,EAAE;gBAC1BL,MAAM;YACR;YACA,IAAI,CAACQ,OAAO,CAAC,IAAI,CAACF,MAAM,CAACN,MAAM;QACjC;IACF;IAEA;;GAEC,GACDc,OAAOC,MAAc,EAAEC,YAAoB,EAAEC,KAAa,EAAQ;QAChE,MAAMC,SAAS,IAAI,CAAClB,GAAG,GAAGiB;QAC1B,IAAIC,SAAS,GAAG;YACd,4DAA4D;YAC5D,MAAMC,YAAY,CAACD;YACnB,IAAI,CAACZ,MAAM,CAACc,IAAI,CAACL,QAAQC,cAAc,IAAI,CAACX,UAAU,GAAGa,QAAQ,IAAI,CAACb,UAAU;YAChF,IAAI,CAACC,MAAM,CAACc,IAAI,CAACL,QAAQC,eAAeG,WAAW,GAAGF,QAAQE;QAChE,OAAO;YACL,IAAI,CAACb,MAAM,CAACc,IAAI,CAACL,QAAQC,cAAcE,QAAQA,SAASD;QAC1D;IACF;IA7DA,aAAc;QACZ,IAAI,CAACX,MAAM,GAAGxD,kBAAkB,IAAI,kCAAkC;QACtE,IAAI,CAACuD,UAAU,GAAG;QAClB,IAAI,CAACL,GAAG,GAAG;IACb;AA0DF;AAEA;;CAEC,GACD,OAAO,MAAMqB;IAkEX;;GAEC,GACDC,kBAAkBC,cAAsB,EAAW;QACjD,IAAIA,iBAAiB,GAAG,OAAO;QAC/B,IAAI,IAAI,CAACA,cAAc,KAAKA,gBAAgB;YAC1C,IAAI,CAACA,cAAc,GAAGA;YACtB,IAAI,CAACC,mBAAmB,GAAGC,KAAKC,GAAG,CAACH,gBAAgB;YACpD,IAAI,CAACI,SAAS,CAACtD,MAAM,CAACoD,KAAKC,GAAG,CAAC,IAAI,CAACF,mBAAmB,EAAE,KAAK;QAChE;QACA,OAAO;IACT;IAEA;;GAEC,GACDI,UAAUC,EAAU,EAAEC,EAAU,EAAEC,EAAU,EAAW;QACrD,IAAIF,KAAKvE,yBAAyBwE,KAAK,KAAKC,KAAKvE,sBAAsB;YACrE,OAAO;QACT;QACA,MAAMc,eAAe,KAAKyD;QAC1B,IAAI,CAACC,cAAc,CAAC3D,MAAM,CAACyD,IAAID;QAC/B,IAAI,CAACI,UAAU,CAAC5D,MAAM,CAACC;QACvB,IAAI,CAAC4D,aAAa,CAAC7D,MAAM,CAACC;QAC1B,IAAI,CAAC6D,YAAY,GAAG7D,eAAe;QACnC,OAAO;IACT;IAEA;;GAEC,GACD8D,qBAAqBC,UAA+B,EAAW;QAC7D,MAAMC,QAAQ3E,gBAAgB0E;QAC9B,IAAI,CAAC,IAAI,CAACT,SAAS,CAACU,MAAMT,EAAE,EAAES,MAAMR,EAAE,EAAEQ,MAAMP,EAAE,GAAG,OAAO;QAC1D,OAAO,IAAI,CAACT,iBAAiB,CAACgB,MAAMf,cAAc;IACpD;IAEA;;GAEC,GACD,AAAQgB,oBAA0B;QAChCvF,cAAc,IAAI,CAACwF,eAAe;QAClCxF,cAAc,IAAI,CAACyF,aAAa;QAChCzF,cAAc,IAAI,CAAC0F,eAAe;QAClC1F,cAAc,IAAI,CAAC2F,eAAe;QAClC3F,cAAc,IAAI,CAAC4F,eAAe;QAClC5F,cAAc,IAAI,CAAC6F,kBAAkB;QACrC7F,cAAc,IAAI,CAAC8F,WAAW;QAC9B,IAAI,CAACd,cAAc,CAACvD,IAAI;QACxB,IAAK,IAAIE,IAAItB,qBAAqB,GAAGsB,KAAK,GAAGA,IAAK;YAChD,IAAI,CAACoE,cAAc,CAACpE,EAAE,CAACF,IAAI;QAC7B;QACA,IAAI,CAACwD,UAAU,CAACxD,IAAI;QACpB,IAAI,CAACyD,aAAa,CAACzD,IAAI;QACvB,IAAI,CAACuE,eAAe,CAACvE,IAAI;IAC3B;IAEA;;GAEC,GACDwE,qBAA2B;QACzB,IAAI,CAACV,iBAAiB;QACtB,IAAI,CAACW,KAAK,GAAG;QACb,IAAI,CAACC,IAAI,GAAG;QACZ,IAAI,CAACC,IAAI,GAAG;QACZ,IAAI,CAACC,IAAI,GAAG;QACZ,IAAI,CAACC,IAAI,GAAG;IACd;IAEA;;GAEC,GACDC,kBAAwB;QACtB,IAAI,CAAC5B,SAAS,CAAClD,IAAI,CAAC;QACpB,IAAI,CAAC+E,QAAQ,GAAG;IAClB;IAEA;;;GAGC,GACDC,iBAAiBC,IAAY,EAAQ;QACnC,IAAK,IAAI/E,IAAI,GAAGA,IAAI+E,KAAK7D,MAAM,EAAElB,IAAK;YACpC,IAAI,CAACgD,SAAS,CAACnB,OAAO,CAACkD,IAAI,CAAC/E,EAAE;QAChC;QACA,IAAI,CAAC6E,QAAQ,IAAIE,KAAK7D,MAAM;QAC5B,IAAI6D,KAAK7D,MAAM,GAAG,GAAG;YACnB,IAAI,CAACI,QAAQ,GAAGyD,IAAI,CAACA,KAAK7D,MAAM,GAAG,EAAE;QACvC;IACF;IAEA;;;;;;;GAOC,GACDhB,OAAO8E,KAAa,EAAEC,WAAmB,EAAEC,OAAe,EAAEtD,QAAQ,KAAK,EAAU;QACjF,IAAI,CAACzB,YAAY,CAACgF,QAAQ,CAACH,OAAOC;QAElC,IAAI,CAACrD,OAAO;YACV,IAAI,CAACoB,SAAS,CAAClD,IAAI,CAAC;YACpB,IAAI,CAAC8D,iBAAiB;YACtB,IAAI,CAACW,KAAK,GAAG;YACb,IAAI,CAACC,IAAI,GAAG;YACZ,IAAI,CAACC,IAAI,GAAG;YACZ,IAAI,CAACC,IAAI,GAAG;YACZ,IAAI,CAACC,IAAI,GAAG;YACZ,IAAI,CAACrD,QAAQ,GAAG;YAChB,IAAI,CAACuD,QAAQ,GAAG;QAClB,OAAO;YACL,uEAAuE;YACvE,IAAI,CAAC7B,SAAS,CAAClD,IAAI,CAAC;QACtB;QAEA,MAAMsC,SAASjE,kBAAkB+G;QACjC,IAAIE,SAAS;QACb,IAAIC,SAAS,IAAI,CAACR,QAAQ;QAE1B,MAAOO,SAASF,QAAS;YACvB,MAAM9E,WAAWiF,SAAS,IAAI,CAAC7B,YAAY;YAE3C,IAAI,IAAI,CAACrD,YAAY,CAACE,SAAS,CAAC,IAAI,CAACwD,eAAe,EAAE,AAAC,CAAA,IAAI,CAACU,KAAK,IAAI1F,oBAAmB,IAAKuB,cAAc,GAAG;gBAC5G,UAAU;gBACV,MAAMkF,WAAW,IAAI,CAACjC,cAAc,CAACjC,UAAU,CAACiE,QAAQ,IAAI,CAAC/D,QAAQ;gBACrE,IAAI,CAACrC,iBAAiB,IAAI,CAACsF,KAAK,GAAG;oBACjC,IAAI,CAACjD,QAAQ,GAAGgE,SAAS5E,mBAAmB,CAAC,IAAI,CAACP,YAAY,EAAE,IAAI,CAAC6C,SAAS,CAACjB,OAAO,CAAC,IAAI,CAACyC,IAAI;gBAClG,OAAO;oBACL,IAAI,CAAClD,QAAQ,GAAGgE,SAAS9E,YAAY,CAAC,IAAI,CAACL,YAAY;gBACzD;gBACA,IAAI,CAAC6C,SAAS,CAACnB,OAAO,CAAC,IAAI,CAACP,QAAQ;gBACpCc,MAAM,CAACgD,SAAS,GAAG,IAAI,CAAC9D,QAAQ;gBAChC,IAAI,CAACiD,KAAK,GAAGrF,gBAAgB,IAAI,CAACqF,KAAK;gBACvCc;YACF,OAAO;gBACL,eAAe;gBACf,IAAInD;gBAEJ,IAAI,IAAI,CAAC/B,YAAY,CAACE,SAAS,CAAC,IAAI,CAACyD,aAAa,EAAE,IAAI,CAACS,KAAK,MAAM,GAAG;oBACrE,YAAY;oBACZrC,MAAM;oBACN,IAAI,IAAI,CAAC/B,YAAY,CAACE,SAAS,CAAC,IAAI,CAAC0D,eAAe,EAAE,IAAI,CAACQ,KAAK,MAAM,GAAG;wBACvE,IAAI,IAAI,CAACpE,YAAY,CAACE,SAAS,CAAC,IAAI,CAAC6D,kBAAkB,EAAE,AAAC,CAAA,IAAI,CAACK,KAAK,IAAI1F,oBAAmB,IAAKuB,cAAc,GAAG;4BAC/G,IAAI,CAACmE,KAAK,GAAGlF,oBAAoB,IAAI,CAACkF,KAAK;4BAC3CrC,MAAM;wBACR;oBACF,OAAO;wBACL,IAAIF;wBACJ,IAAI,IAAI,CAAC7B,YAAY,CAACE,SAAS,CAAC,IAAI,CAAC2D,eAAe,EAAE,IAAI,CAACO,KAAK,MAAM,GAAG;4BACvEvC,WAAW,IAAI,CAACyC,IAAI;wBACtB,OAAO;4BACL,IAAI,IAAI,CAACtE,YAAY,CAACE,SAAS,CAAC,IAAI,CAAC4D,eAAe,EAAE,IAAI,CAACM,KAAK,MAAM,GAAG;gCACvEvC,WAAW,IAAI,CAAC0C,IAAI;4BACtB,OAAO;gCACL1C,WAAW,IAAI,CAAC2C,IAAI;gCACpB,IAAI,CAACA,IAAI,GAAG,IAAI,CAACD,IAAI;4BACvB;4BACA,IAAI,CAACA,IAAI,GAAG,IAAI,CAACD,IAAI;wBACvB;wBACA,IAAI,CAACA,IAAI,GAAG,IAAI,CAACD,IAAI;wBACrB,IAAI,CAACA,IAAI,GAAGxC;oBACd;oBACA,IAAIE,QAAQ,GAAG;wBACbA,MAAM3D,eAAe,IAAI,CAACgF,aAAa,CAACrD,MAAM,CAAC,IAAI,CAACC,YAAY,EAAEC;wBAClE,IAAI,CAACmE,KAAK,GAAGnF,eAAe,IAAI,CAACmF,KAAK;oBACxC;gBACF,OAAO;oBACL,eAAe;oBACf,IAAI,CAACI,IAAI,GAAG,IAAI,CAACD,IAAI;oBACrB,IAAI,CAACA,IAAI,GAAG,IAAI,CAACD,IAAI;oBACrB,IAAI,CAACA,IAAI,GAAG,IAAI,CAACD,IAAI;oBACrBtC,MAAM3D,eAAe,IAAI,CAAC+E,UAAU,CAACpD,MAAM,CAAC,IAAI,CAACC,YAAY,EAAEC;oBAC/D,IAAI,CAACmE,KAAK,GAAGpF,iBAAiB,IAAI,CAACoF,KAAK;oBAExC,MAAMgB,UAAU,IAAI,CAACnB,cAAc,CAAChG,iBAAiB8D,KAAK,CAAChC,MAAM,CAAC,IAAI,CAACC,YAAY;oBACnF,IAAIoF,WAAWxG,qBAAqB;wBAClC,MAAMyG,gBAAgB,AAACD,CAAAA,WAAW,CAAA,IAAK;wBACvC,IAAI,CAACf,IAAI,GAAG,AAAC,CAAA,IAAKe,UAAU,CAAC,KAAMC;wBACnC,IAAID,UAAUjH,mBAAmB;4BAC/B,IAAI,CAACkG,IAAI,IAAIhF,uBAAuB,IAAI,CAAC2E,WAAW,EAAE,IAAI,CAACK,IAAI,GAAGe,UAAU,GAAG,IAAI,CAACpF,YAAY,EAAEqF;wBACpG,OAAO;4BACL,IAAI,CAAChB,IAAI,IAAI,IAAI,CAACrE,YAAY,CAACsF,gBAAgB,CAACD,gBAAgBhH,kBAAkBA;4BAClF,IAAI,CAACgG,IAAI,IAAI,IAAI,CAACH,eAAe,CAACqB,aAAa,CAAC,IAAI,CAACvF,YAAY;4BACjE,IAAI,IAAI,CAACqE,IAAI,GAAG,GAAG;gCACjB,IAAI,IAAI,CAACA,IAAI,KAAK,CAAC,GAAG,OAAO,aAAa;gCAC1C,MAAM,IAAImB,MAAM;4BAClB;wBACF;oBACF,OAAO;wBACL,IAAI,CAACnB,IAAI,GAAGe;oBACd;gBACF;gBAEA,IAAI,IAAI,CAACf,IAAI,IAAIa,UAAU,IAAI,CAACb,IAAI,IAAI,IAAI,CAAC3B,mBAAmB,EAAE;oBAChE,MAAM,IAAI8C,MAAM;gBAClB;gBAEA,mBAAmB;gBACnB,IAAK,IAAI3F,IAAI,GAAGA,IAAIkC,KAAKlC,IAAK;oBAC5B,MAAM8B,IAAI,IAAI,CAACkB,SAAS,CAACjB,OAAO,CAAC,IAAI,CAACyC,IAAI;oBAC1C,IAAI,CAACxB,SAAS,CAACnB,OAAO,CAACC;oBACvBM,MAAM,CAACgD,SAAS,GAAGtD;gBACrB;gBACAuD,UAAUnD;gBACV,IAAI,CAACZ,QAAQ,GAAG,IAAI,CAAC0B,SAAS,CAACjB,OAAO,CAAC;YACzC;QACF;QAEA,IAAI,CAAC8C,QAAQ,GAAGQ;QAChB,OAAOjD;IACT;IAtPA,aAAc;QACZ,IAAI,CAACY,SAAS,GAAG,IAAIvB;QACrB,IAAI,CAACtB,YAAY,GAAG,IAAIZ;QAExB,IAAI,CAACsE,eAAe,GAAGxF,cAAc,MAAMS,cAAcD;QACzD,IAAI,CAACiF,aAAa,GAAGzF,cAAc,MAAMS;QACzC,IAAI,CAACiF,eAAe,GAAG1F,cAAc,MAAMS;QAC3C,IAAI,CAACkF,eAAe,GAAG3F,cAAc,MAAMS;QAC3C,IAAI,CAACmF,eAAe,GAAG5F,cAAc,MAAMS;QAC3C,IAAI,CAACoF,kBAAkB,GAAG7F,cAAc,MAAMS,cAAcD;QAC5D,IAAI,CAACuF,cAAc,GAAG,EAAE;QACxB,IAAI,CAACD,WAAW,GAAG9F,cAAc,MAAMI,oBAAoBH;QAC3D,IAAI,CAAC+F,eAAe,GAAG,IAAI/E,eAAed;QAC1C,IAAI,CAAC8E,UAAU,GAAG,IAAI7D;QACtB,IAAI,CAAC8D,aAAa,GAAG,IAAI9D;QACzB,IAAI,CAAC4D,cAAc,GAAG,IAAIvC;QAE1B,IAAK,IAAId,IAAI,GAAGA,IAAItB,oBAAoBsB,IAAK;YAC3C,IAAI,CAACoE,cAAc,CAACpE,EAAE,GAAG,IAAIV,eAAeV;QAC9C;QAEA,IAAI,CAACgE,cAAc,GAAG,CAAC;QACvB,IAAI,CAACC,mBAAmB,GAAG,CAAC;QAC5B,IAAI,CAACW,YAAY,GAAG;QAEpB,IAAI,CAACe,KAAK,GAAG;QACb,IAAI,CAACC,IAAI,GAAG;QACZ,IAAI,CAACC,IAAI,GAAG;QACZ,IAAI,CAACC,IAAI,GAAG;QACZ,IAAI,CAACC,IAAI,GAAG;QACZ,IAAI,CAACrD,QAAQ,GAAG;QAChB,IAAI,CAACuD,QAAQ,GAAG;IAClB;AAuNF;AAEA;;;;;;CAMC,GACD,OAAO,SAASe,WAAWZ,KAAa,EAAEtB,UAA+B,EAAEwB,OAAe;IACxF,MAAM1D,UAAU,IAAIkB;IACpBlB,QAAQiC,oBAAoB,CAACC;IAC7B,OAAOlC,QAAQtB,MAAM,CAAC8E,OAAO,GAAGE,SAAS;AAC3C"}
@@ -1,69 +0,0 @@
1
- /**
2
- * Synchronous Range Decoder for LZMA
3
- *
4
- * Decodes arithmetic-coded bits from a buffer.
5
- * All operations are synchronous - for streaming use the async version.
6
- */
7
- /**
8
- * Range decoder for synchronous buffer-based LZMA decoding
9
- */
10
- export declare class RangeDecoder {
11
- private input;
12
- private pos;
13
- private code;
14
- private range;
15
- constructor();
16
- /**
17
- * Set input buffer and initialize decoder state
18
- */
19
- setInput(input: Buffer, offset?: number): void;
20
- /**
21
- * Initialize range decoder (reads first 5 bytes)
22
- */
23
- private init;
24
- /**
25
- * Get current position in input buffer
26
- */
27
- getPosition(): number;
28
- /**
29
- * Normalize range if needed (read more bytes)
30
- */
31
- private normalize;
32
- /**
33
- * Decode a single bit using probability model
34
- * @param probs - Probability array
35
- * @param index - Index into probability array
36
- * @returns Decoded bit (0 or 1)
37
- */
38
- decodeBit(probs: Uint16Array, index: number): number;
39
- /**
40
- * Decode direct bits (not probability-based)
41
- * @param numTotalBits - Number of bits to decode
42
- * @returns Decoded value
43
- */
44
- decodeDirectBits(numTotalBits: number): number;
45
- }
46
- /**
47
- * Bit tree decoder for multi-bit symbols
48
- */
49
- export declare class BitTreeDecoder {
50
- private numBitLevels;
51
- private models;
52
- constructor(numBitLevels: number);
53
- /**
54
- * Initialize probability models
55
- */
56
- init(): void;
57
- /**
58
- * Decode a symbol (forward bit order)
59
- */
60
- decode(rangeDecoder: RangeDecoder): number;
61
- /**
62
- * Decode a symbol (reverse bit order)
63
- */
64
- reverseDecode(rangeDecoder: RangeDecoder): number;
65
- }
66
- /**
67
- * Static reverse decode from external probability array
68
- */
69
- export declare function reverseDecodeFromArray(models: Uint16Array, startIndex: number, rangeDecoder: RangeDecoder, numBitLevels: number): number;
@@ -1,132 +0,0 @@
1
- /**
2
- * Synchronous Range Decoder for LZMA
3
- *
4
- * Decodes arithmetic-coded bits from a buffer.
5
- * All operations are synchronous - for streaming use the async version.
6
- */ import { allocBuffer } from 'extract-base-iterator';
7
- /**
8
- * Range decoder for synchronous buffer-based LZMA decoding
9
- */ export class RangeDecoder {
10
- /**
11
- * Set input buffer and initialize decoder state
12
- */ setInput(input, offset = 0) {
13
- this.input = input;
14
- this.pos = offset;
15
- this.init();
16
- }
17
- /**
18
- * Initialize range decoder (reads first 5 bytes)
19
- */ init() {
20
- this.code = 0;
21
- this.range = -1; // 0xFFFFFFFF as signed int
22
- // First byte is ignored (should be 0)
23
- this.pos++;
24
- // Read 4 bytes into code
25
- for(let i = 0; i < 4; i++){
26
- this.code = this.code << 8 | this.input[this.pos++];
27
- }
28
- }
29
- /**
30
- * Get current position in input buffer
31
- */ getPosition() {
32
- return this.pos;
33
- }
34
- /**
35
- * Normalize range if needed (read more bytes)
36
- */ normalize() {
37
- if ((this.range & 0xff000000) === 0) {
38
- this.code = this.code << 8 | this.input[this.pos++];
39
- this.range <<= 8;
40
- }
41
- }
42
- /**
43
- * Decode a single bit using probability model
44
- * @param probs - Probability array
45
- * @param index - Index into probability array
46
- * @returns Decoded bit (0 or 1)
47
- */ decodeBit(probs, index) {
48
- const prob = probs[index];
49
- const newBound = (this.range >>> 11) * prob;
50
- if ((this.code ^ 0x80000000) < (newBound ^ 0x80000000)) {
51
- this.range = newBound;
52
- probs[index] += 2048 - prob >>> 5;
53
- this.normalize();
54
- return 0;
55
- }
56
- this.range -= newBound;
57
- this.code -= newBound;
58
- probs[index] -= prob >>> 5;
59
- this.normalize();
60
- return 1;
61
- }
62
- /**
63
- * Decode direct bits (not probability-based)
64
- * @param numTotalBits - Number of bits to decode
65
- * @returns Decoded value
66
- */ decodeDirectBits(numTotalBits) {
67
- let result = 0;
68
- for(let i = numTotalBits; i > 0; i--){
69
- this.range >>>= 1;
70
- const t = this.code - this.range >>> 31;
71
- this.code -= this.range & t - 1;
72
- result = result << 1 | 1 - t;
73
- this.normalize();
74
- }
75
- return result;
76
- }
77
- constructor(){
78
- this.input = allocBuffer(0); // Replaced by setInput() before use
79
- this.pos = 0;
80
- this.code = 0;
81
- this.range = 0;
82
- }
83
- }
84
- /**
85
- * Bit tree decoder for multi-bit symbols
86
- */ export class BitTreeDecoder {
87
- /**
88
- * Initialize probability models
89
- */ init() {
90
- for(let i = 0; i < this.models.length; i++){
91
- this.models[i] = 1024; // kProbInitValue
92
- }
93
- }
94
- /**
95
- * Decode a symbol (forward bit order)
96
- */ decode(rangeDecoder) {
97
- let m = 1;
98
- for(let i = this.numBitLevels; i > 0; i--){
99
- m = m << 1 | rangeDecoder.decodeBit(this.models, m);
100
- }
101
- return m - (1 << this.numBitLevels);
102
- }
103
- /**
104
- * Decode a symbol (reverse bit order)
105
- */ reverseDecode(rangeDecoder) {
106
- let m = 1;
107
- let symbol = 0;
108
- for(let i = 0; i < this.numBitLevels; i++){
109
- const bit = rangeDecoder.decodeBit(this.models, m);
110
- m = m << 1 | bit;
111
- symbol |= bit << i;
112
- }
113
- return symbol;
114
- }
115
- constructor(numBitLevels){
116
- this.numBitLevels = numBitLevels;
117
- this.models = new Uint16Array(1 << numBitLevels);
118
- this.init();
119
- }
120
- }
121
- /**
122
- * Static reverse decode from external probability array
123
- */ export function reverseDecodeFromArray(models, startIndex, rangeDecoder, numBitLevels) {
124
- let m = 1;
125
- let symbol = 0;
126
- for(let i = 0; i < numBitLevels; i++){
127
- const bit = rangeDecoder.decodeBit(models, startIndex + m);
128
- m = m << 1 | bit;
129
- symbol |= bit << i;
130
- }
131
- return symbol;
132
- }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/7z-iterator/src/lzma/sync/RangeDecoder.ts"],"sourcesContent":["/**\n * Synchronous Range Decoder for LZMA\n *\n * Decodes arithmetic-coded bits from a buffer.\n * All operations are synchronous - for streaming use the async version.\n */\n\nimport { allocBuffer } from 'extract-base-iterator';\n\n/**\n * Range decoder for synchronous buffer-based LZMA decoding\n */\nexport class RangeDecoder {\n private input: Buffer;\n private pos: number;\n private code: number;\n private range: number;\n\n constructor() {\n this.input = allocBuffer(0); // Replaced by setInput() before use\n this.pos = 0;\n this.code = 0;\n this.range = 0;\n }\n\n /**\n * Set input buffer and initialize decoder state\n */\n setInput(input: Buffer, offset = 0): void {\n this.input = input;\n this.pos = offset;\n this.init();\n }\n\n /**\n * Initialize range decoder (reads first 5 bytes)\n */\n private init(): void {\n this.code = 0;\n this.range = -1; // 0xFFFFFFFF as signed int\n\n // First byte is ignored (should be 0)\n this.pos++;\n\n // Read 4 bytes into code\n for (let i = 0; i < 4; i++) {\n this.code = (this.code << 8) | this.input[this.pos++];\n }\n }\n\n /**\n * Get current position in input buffer\n */\n getPosition(): number {\n return this.pos;\n }\n\n /**\n * Normalize range if needed (read more bytes)\n */\n private normalize(): void {\n if ((this.range & 0xff000000) === 0) {\n this.code = (this.code << 8) | this.input[this.pos++];\n this.range <<= 8;\n }\n }\n\n /**\n * Decode a single bit using probability model\n * @param probs - Probability array\n * @param index - Index into probability array\n * @returns Decoded bit (0 or 1)\n */\n decodeBit(probs: Uint16Array, index: number): number {\n const prob = probs[index];\n const newBound = (this.range >>> 11) * prob;\n\n if ((this.code ^ 0x80000000) < (newBound ^ 0x80000000)) {\n this.range = newBound;\n probs[index] += (2048 - prob) >>> 5;\n this.normalize();\n return 0;\n }\n this.range -= newBound;\n this.code -= newBound;\n probs[index] -= prob >>> 5;\n this.normalize();\n return 1;\n }\n\n /**\n * Decode direct bits (not probability-based)\n * @param numTotalBits - Number of bits to decode\n * @returns Decoded value\n */\n decodeDirectBits(numTotalBits: number): number {\n let result = 0;\n for (let i = numTotalBits; i > 0; i--) {\n this.range >>>= 1;\n const t = (this.code - this.range) >>> 31;\n this.code -= this.range & (t - 1);\n result = (result << 1) | (1 - t);\n this.normalize();\n }\n return result;\n }\n}\n\n/**\n * Bit tree decoder for multi-bit symbols\n */\nexport class BitTreeDecoder {\n private numBitLevels: number;\n private models: Uint16Array;\n\n constructor(numBitLevels: number) {\n this.numBitLevels = numBitLevels;\n this.models = new Uint16Array(1 << numBitLevels);\n this.init();\n }\n\n /**\n * Initialize probability models\n */\n init(): void {\n for (let i = 0; i < this.models.length; i++) {\n this.models[i] = 1024; // kProbInitValue\n }\n }\n\n /**\n * Decode a symbol (forward bit order)\n */\n decode(rangeDecoder: RangeDecoder): number {\n let m = 1;\n for (let i = this.numBitLevels; i > 0; i--) {\n m = (m << 1) | rangeDecoder.decodeBit(this.models, m);\n }\n return m - (1 << this.numBitLevels);\n }\n\n /**\n * Decode a symbol (reverse bit order)\n */\n reverseDecode(rangeDecoder: RangeDecoder): number {\n let m = 1;\n let symbol = 0;\n for (let i = 0; i < this.numBitLevels; i++) {\n const bit = rangeDecoder.decodeBit(this.models, m);\n m = (m << 1) | bit;\n symbol |= bit << i;\n }\n return symbol;\n }\n}\n\n/**\n * Static reverse decode from external probability array\n */\nexport function reverseDecodeFromArray(models: Uint16Array, startIndex: number, rangeDecoder: RangeDecoder, numBitLevels: number): number {\n let m = 1;\n let symbol = 0;\n for (let i = 0; i < numBitLevels; i++) {\n const bit = rangeDecoder.decodeBit(models, startIndex + m);\n m = (m << 1) | bit;\n symbol |= bit << i;\n }\n return symbol;\n}\n"],"names":["allocBuffer","RangeDecoder","setInput","input","offset","pos","init","code","range","i","getPosition","normalize","decodeBit","probs","index","prob","newBound","decodeDirectBits","numTotalBits","result","t","BitTreeDecoder","models","length","decode","rangeDecoder","m","numBitLevels","reverseDecode","symbol","bit","Uint16Array","reverseDecodeFromArray","startIndex"],"mappings":"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"}
@@ -1,110 +0,0 @@
1
- /**
2
- * LZMA Types and Constants
3
- *
4
- * Shared types, constants, and state transition functions for LZMA decoding.
5
- * Based on the LZMA SDK specification.
6
- */
7
- export declare const kNumRepDistances = 4;
8
- export declare const kNumStates = 12;
9
- export declare const kNumPosSlotBits = 6;
10
- export declare const kDicLogSizeMin = 0;
11
- export declare const kNumLenToPosStatesBits = 2;
12
- export declare const kNumLenToPosStates: number;
13
- export declare const kMatchMinLen = 2;
14
- export declare const kNumLowLenBits = 3;
15
- export declare const kNumMidLenBits = 3;
16
- export declare const kNumHighLenBits = 8;
17
- export declare const kNumLowLenSymbols: number;
18
- export declare const kNumMidLenSymbols: number;
19
- export declare const kNumLenSymbols: number;
20
- export declare const kMatchMaxLen: number;
21
- export declare const kNumAlignBits = 4;
22
- export declare const kAlignTableSize: number;
23
- export declare const kAlignMask: number;
24
- export declare const kStartPosModelIndex = 4;
25
- export declare const kEndPosModelIndex = 14;
26
- export declare const kNumPosModels: number;
27
- export declare const kNumFullDistances: number;
28
- export declare const kNumLitPosStatesBitsEncodingMax = 4;
29
- export declare const kNumLitContextBitsMax = 8;
30
- export declare const kNumPosStatesBitsMax = 4;
31
- export declare const kNumPosStatesMax: number;
32
- export declare const kNumPosStatesBitsEncodingMax = 4;
33
- export declare const kNumPosStatesEncodingMax: number;
34
- export declare const kNumBitModelTotalBits = 11;
35
- export declare const kBitModelTotal: number;
36
- export declare const kNumMoveBits = 5;
37
- export declare const kProbInitValue: number;
38
- /**
39
- * State transition: after literal byte
40
- */
41
- export declare function stateUpdateChar(state: number): number;
42
- /**
43
- * State transition: after match
44
- */
45
- export declare function stateUpdateMatch(state: number): number;
46
- /**
47
- * State transition: after rep (repeated match)
48
- */
49
- export declare function stateUpdateRep(state: number): number;
50
- /**
51
- * State transition: after short rep
52
- */
53
- export declare function stateUpdateShortRep(state: number): number;
54
- /**
55
- * Check if state indicates previous symbol was a character (literal)
56
- */
57
- export declare function stateIsCharState(state: number): boolean;
58
- /**
59
- * Get length-to-position state index
60
- */
61
- export declare function getLenToPosState(len: number): number;
62
- /**
63
- * Initialize probability array with default values
64
- * @param probs - Array to initialize (or null to create new)
65
- * @param count - Number of probabilities
66
- * @returns Initialized probability array
67
- */
68
- export declare function initBitModels(probs: Uint16Array | null, count?: number): Uint16Array;
69
- /**
70
- * LZMA properties parsed from the 5-byte header
71
- */
72
- export interface LzmaProperties {
73
- /** Literal context bits (0-8) */
74
- lc: number;
75
- /** Literal pos bits (0-4) */
76
- lp: number;
77
- /** Pos bits (0-4) */
78
- pb: number;
79
- /** Dictionary size in bytes */
80
- dictionarySize: number;
81
- }
82
- /**
83
- * Parse LZMA properties from a 5-byte buffer
84
- */
85
- export declare function parseProperties(properties: Buffer | Uint8Array): LzmaProperties;
86
- /**
87
- * LZMA2 control byte meanings
88
- */
89
- export declare const LZMA2_CONTROL: {
90
- readonly END: 0;
91
- readonly UNCOMPRESSED_RESET_DIC: 1;
92
- readonly UNCOMPRESSED: 2;
93
- readonly LZMA_RESET_STATE_NEW_PROP: 224;
94
- };
95
- /**
96
- * Check if LZMA2 control byte indicates reset state (new properties)
97
- */
98
- export declare function lzma2NeedsNewProps(control: number): boolean;
99
- /**
100
- * Check if LZMA2 control byte indicates reset probabilities
101
- */
102
- export declare function lzma2NeedsResetProbs(control: number): boolean;
103
- /**
104
- * Check if LZMA2 control byte indicates uncompressed chunk
105
- */
106
- export declare function lzma2IsUncompressed(control: number): boolean;
107
- /**
108
- * Parse LZMA2 dictionary size from property byte
109
- */
110
- export declare function parseLzma2DictionarySize(prop: number): number;
@@ -1,154 +0,0 @@
1
- /**
2
- * LZMA Types and Constants
3
- *
4
- * Shared types, constants, and state transition functions for LZMA decoding.
5
- * Based on the LZMA SDK specification.
6
- */ // LZMA State Machine Constants
7
- export const kNumRepDistances = 4;
8
- export const kNumStates = 12;
9
- // Position slot constants
10
- export const kNumPosSlotBits = 6;
11
- export const kDicLogSizeMin = 0;
12
- export const kNumLenToPosStatesBits = 2;
13
- export const kNumLenToPosStates = 1 << kNumLenToPosStatesBits; // 4
14
- // Match length constants
15
- export const kMatchMinLen = 2;
16
- export const kNumLowLenBits = 3;
17
- export const kNumMidLenBits = 3;
18
- export const kNumHighLenBits = 8;
19
- export const kNumLowLenSymbols = 1 << kNumLowLenBits; // 8
20
- export const kNumMidLenSymbols = 1 << kNumMidLenBits; // 8
21
- export const kNumLenSymbols = kNumLowLenSymbols + kNumMidLenSymbols + (1 << kNumHighLenBits); // 272
22
- export const kMatchMaxLen = kMatchMinLen + kNumLenSymbols - 1; // 273
23
- // Alignment constants
24
- export const kNumAlignBits = 4;
25
- export const kAlignTableSize = 1 << kNumAlignBits; // 16
26
- export const kAlignMask = kAlignTableSize - 1; // 15
27
- // Position model constants
28
- export const kStartPosModelIndex = 4;
29
- export const kEndPosModelIndex = 14;
30
- export const kNumPosModels = kEndPosModelIndex - kStartPosModelIndex; // 10
31
- export const kNumFullDistances = 1 << (kEndPosModelIndex >>> 1); // 128
32
- // Literal/pos state constants
33
- export const kNumLitPosStatesBitsEncodingMax = 4;
34
- export const kNumLitContextBitsMax = 8;
35
- export const kNumPosStatesBitsMax = 4;
36
- export const kNumPosStatesMax = 1 << kNumPosStatesBitsMax; // 16
37
- export const kNumPosStatesBitsEncodingMax = 4;
38
- export const kNumPosStatesEncodingMax = 1 << kNumPosStatesBitsEncodingMax; // 16
39
- // Range coder probability constants
40
- export const kNumBitModelTotalBits = 11;
41
- export const kBitModelTotal = 1 << kNumBitModelTotalBits; // 2048
42
- export const kNumMoveBits = 5;
43
- export const kProbInitValue = kBitModelTotal >>> 1; // 1024
44
- /**
45
- * State transition: after literal byte
46
- */ export function stateUpdateChar(state) {
47
- if (state < 4) return 0;
48
- if (state < 10) return state - 3;
49
- return state - 6;
50
- }
51
- /**
52
- * State transition: after match
53
- */ export function stateUpdateMatch(state) {
54
- return state < 7 ? 7 : 10;
55
- }
56
- /**
57
- * State transition: after rep (repeated match)
58
- */ export function stateUpdateRep(state) {
59
- return state < 7 ? 8 : 11;
60
- }
61
- /**
62
- * State transition: after short rep
63
- */ export function stateUpdateShortRep(state) {
64
- return state < 7 ? 9 : 11;
65
- }
66
- /**
67
- * Check if state indicates previous symbol was a character (literal)
68
- */ export function stateIsCharState(state) {
69
- return state < 7;
70
- }
71
- /**
72
- * Get length-to-position state index
73
- */ export function getLenToPosState(len) {
74
- len -= kMatchMinLen;
75
- return len < kNumLenToPosStates ? len : kNumLenToPosStates - 1;
76
- }
77
- /**
78
- * Initialize probability array with default values
79
- * @param probs - Array to initialize (or null to create new)
80
- * @param count - Number of probabilities
81
- * @returns Initialized probability array
82
- */ export function initBitModels(probs, count) {
83
- if (probs === null) {
84
- if (count === undefined) {
85
- throw new Error('count required when probs is null');
86
- }
87
- probs = new Uint16Array(count);
88
- }
89
- for(let i = 0; i < probs.length; i++){
90
- probs[i] = kProbInitValue;
91
- }
92
- return probs;
93
- }
94
- /**
95
- * Parse LZMA properties from a 5-byte buffer
96
- */ export function parseProperties(properties) {
97
- if (properties.length < 5) {
98
- throw new Error('LZMA properties must be at least 5 bytes');
99
- }
100
- const d = properties[0] & 0xff;
101
- const lc = d % 9;
102
- const remainder = ~~(d / 9);
103
- const lp = remainder % 5;
104
- const pb = ~~(remainder / 5);
105
- if (lc > kNumLitContextBitsMax || lp > 4 || pb > kNumPosStatesBitsMax) {
106
- throw new Error('Invalid LZMA properties');
107
- }
108
- let dictionarySize = 0;
109
- for(let i = 0; i < 4; i++){
110
- dictionarySize |= (properties[1 + i] & 0xff) << i * 8;
111
- }
112
- return {
113
- lc,
114
- lp,
115
- pb,
116
- dictionarySize
117
- };
118
- }
119
- /**
120
- * LZMA2 control byte meanings
121
- */ export const LZMA2_CONTROL = {
122
- END: 0x00,
123
- UNCOMPRESSED_RESET_DIC: 0x01,
124
- UNCOMPRESSED: 0x02,
125
- LZMA_RESET_STATE_NEW_PROP: 0xe0
126
- };
127
- /**
128
- * Check if LZMA2 control byte indicates reset state (new properties)
129
- */ export function lzma2NeedsNewProps(control) {
130
- return control >= 0xe0;
131
- }
132
- /**
133
- * Check if LZMA2 control byte indicates reset probabilities
134
- */ export function lzma2NeedsResetProbs(control) {
135
- return control >= 0xa0;
136
- }
137
- /**
138
- * Check if LZMA2 control byte indicates uncompressed chunk
139
- */ export function lzma2IsUncompressed(control) {
140
- return control < 0x80;
141
- }
142
- /**
143
- * Parse LZMA2 dictionary size from property byte
144
- */ export function parseLzma2DictionarySize(prop) {
145
- if (prop > 40) {
146
- throw new Error('Invalid LZMA2 dictionary size property');
147
- }
148
- if (prop === 40) {
149
- return 0xffffffff;
150
- }
151
- const base = 2 | prop & 1;
152
- const exp = (prop >>> 1) + 11;
153
- return base << exp;
154
- }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/7z-iterator/src/lzma/types.ts"],"sourcesContent":["/**\n * LZMA Types and Constants\n *\n * Shared types, constants, and state transition functions for LZMA decoding.\n * Based on the LZMA SDK specification.\n */\n\n// LZMA State Machine Constants\nexport const kNumRepDistances = 4;\nexport const kNumStates = 12;\n\n// Position slot constants\nexport const kNumPosSlotBits = 6;\nexport const kDicLogSizeMin = 0;\nexport const kNumLenToPosStatesBits = 2;\nexport const kNumLenToPosStates = 1 << kNumLenToPosStatesBits; // 4\n\n// Match length constants\nexport const kMatchMinLen = 2;\nexport const kNumLowLenBits = 3;\nexport const kNumMidLenBits = 3;\nexport const kNumHighLenBits = 8;\nexport const kNumLowLenSymbols = 1 << kNumLowLenBits; // 8\nexport const kNumMidLenSymbols = 1 << kNumMidLenBits; // 8\nexport const kNumLenSymbols = kNumLowLenSymbols + kNumMidLenSymbols + (1 << kNumHighLenBits); // 272\nexport const kMatchMaxLen = kMatchMinLen + kNumLenSymbols - 1; // 273\n\n// Alignment constants\nexport const kNumAlignBits = 4;\nexport const kAlignTableSize = 1 << kNumAlignBits; // 16\nexport const kAlignMask = kAlignTableSize - 1; // 15\n\n// Position model constants\nexport const kStartPosModelIndex = 4;\nexport const kEndPosModelIndex = 14;\nexport const kNumPosModels = kEndPosModelIndex - kStartPosModelIndex; // 10\nexport const kNumFullDistances = 1 << (kEndPosModelIndex >>> 1); // 128\n\n// Literal/pos state constants\nexport const kNumLitPosStatesBitsEncodingMax = 4;\nexport const kNumLitContextBitsMax = 8;\nexport const kNumPosStatesBitsMax = 4;\nexport const kNumPosStatesMax = 1 << kNumPosStatesBitsMax; // 16\nexport const kNumPosStatesBitsEncodingMax = 4;\nexport const kNumPosStatesEncodingMax = 1 << kNumPosStatesBitsEncodingMax; // 16\n\n// Range coder probability constants\nexport const kNumBitModelTotalBits = 11;\nexport const kBitModelTotal = 1 << kNumBitModelTotalBits; // 2048\nexport const kNumMoveBits = 5;\nexport const kProbInitValue = kBitModelTotal >>> 1; // 1024\n\n/**\n * State transition: after literal byte\n */\nexport function stateUpdateChar(state: number): number {\n if (state < 4) return 0;\n if (state < 10) return state - 3;\n return state - 6;\n}\n\n/**\n * State transition: after match\n */\nexport function stateUpdateMatch(state: number): number {\n return state < 7 ? 7 : 10;\n}\n\n/**\n * State transition: after rep (repeated match)\n */\nexport function stateUpdateRep(state: number): number {\n return state < 7 ? 8 : 11;\n}\n\n/**\n * State transition: after short rep\n */\nexport function stateUpdateShortRep(state: number): number {\n return state < 7 ? 9 : 11;\n}\n\n/**\n * Check if state indicates previous symbol was a character (literal)\n */\nexport function stateIsCharState(state: number): boolean {\n return state < 7;\n}\n\n/**\n * Get length-to-position state index\n */\nexport function getLenToPosState(len: number): number {\n len -= kMatchMinLen;\n return len < kNumLenToPosStates ? len : kNumLenToPosStates - 1;\n}\n\n/**\n * Initialize probability array with default values\n * @param probs - Array to initialize (or null to create new)\n * @param count - Number of probabilities\n * @returns Initialized probability array\n */\nexport function initBitModels(probs: Uint16Array | null, count?: number): Uint16Array {\n if (probs === null) {\n if (count === undefined) {\n throw new Error('count required when probs is null');\n }\n probs = new Uint16Array(count);\n }\n for (let i = 0; i < probs.length; i++) {\n probs[i] = kProbInitValue;\n }\n return probs;\n}\n\n/**\n * LZMA properties parsed from the 5-byte header\n */\nexport interface LzmaProperties {\n /** Literal context bits (0-8) */\n lc: number;\n /** Literal pos bits (0-4) */\n lp: number;\n /** Pos bits (0-4) */\n pb: number;\n /** Dictionary size in bytes */\n dictionarySize: number;\n}\n\n/**\n * Parse LZMA properties from a 5-byte buffer\n */\nexport function parseProperties(properties: Buffer | Uint8Array): LzmaProperties {\n if (properties.length < 5) {\n throw new Error('LZMA properties must be at least 5 bytes');\n }\n\n const d = properties[0] & 0xff;\n const lc = d % 9;\n const remainder = ~~(d / 9);\n const lp = remainder % 5;\n const pb = ~~(remainder / 5);\n\n if (lc > kNumLitContextBitsMax || lp > 4 || pb > kNumPosStatesBitsMax) {\n throw new Error('Invalid LZMA properties');\n }\n\n let dictionarySize = 0;\n for (let i = 0; i < 4; i++) {\n dictionarySize |= (properties[1 + i] & 0xff) << (i * 8);\n }\n\n return { lc, lp, pb, dictionarySize };\n}\n\n/**\n * LZMA2 control byte meanings\n */\nexport const LZMA2_CONTROL = {\n END: 0x00,\n UNCOMPRESSED_RESET_DIC: 0x01,\n UNCOMPRESSED: 0x02,\n LZMA_RESET_STATE_NEW_PROP: 0xe0,\n} as const;\n\n/**\n * Check if LZMA2 control byte indicates reset state (new properties)\n */\nexport function lzma2NeedsNewProps(control: number): boolean {\n return control >= 0xe0;\n}\n\n/**\n * Check if LZMA2 control byte indicates reset probabilities\n */\nexport function lzma2NeedsResetProbs(control: number): boolean {\n return control >= 0xa0;\n}\n\n/**\n * Check if LZMA2 control byte indicates uncompressed chunk\n */\nexport function lzma2IsUncompressed(control: number): boolean {\n return control < 0x80;\n}\n\n/**\n * Parse LZMA2 dictionary size from property byte\n */\nexport function parseLzma2DictionarySize(prop: number): number {\n if (prop > 40) {\n throw new Error('Invalid LZMA2 dictionary size property');\n }\n if (prop === 40) {\n return 0xffffffff;\n }\n const base = 2 | (prop & 1);\n const exp = (prop >>> 1) + 11;\n return base << exp;\n}\n"],"names":["kNumRepDistances","kNumStates","kNumPosSlotBits","kDicLogSizeMin","kNumLenToPosStatesBits","kNumLenToPosStates","kMatchMinLen","kNumLowLenBits","kNumMidLenBits","kNumHighLenBits","kNumLowLenSymbols","kNumMidLenSymbols","kNumLenSymbols","kMatchMaxLen","kNumAlignBits","kAlignTableSize","kAlignMask","kStartPosModelIndex","kEndPosModelIndex","kNumPosModels","kNumFullDistances","kNumLitPosStatesBitsEncodingMax","kNumLitContextBitsMax","kNumPosStatesBitsMax","kNumPosStatesMax","kNumPosStatesBitsEncodingMax","kNumPosStatesEncodingMax","kNumBitModelTotalBits","kBitModelTotal","kNumMoveBits","kProbInitValue","stateUpdateChar","state","stateUpdateMatch","stateUpdateRep","stateUpdateShortRep","stateIsCharState","getLenToPosState","len","initBitModels","probs","count","undefined","Error","Uint16Array","i","length","parseProperties","properties","d","lc","remainder","lp","pb","dictionarySize","LZMA2_CONTROL","END","UNCOMPRESSED_RESET_DIC","UNCOMPRESSED","LZMA_RESET_STATE_NEW_PROP","lzma2NeedsNewProps","control","lzma2NeedsResetProbs","lzma2IsUncompressed","parseLzma2DictionarySize","prop","base","exp"],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import { Transform } from 'extract-base-iterator';
2
- /**
3
- * Decode BCJ (x86) filtered data (synchronous, for buffered use)
4
- * Reverses the BCJ transformation by converting absolute addresses back to relative
5
- *
6
- * @param input - BCJ filtered data
7
- * @param _properties - Unused for BCJ
8
- * @param _unpackSize - Unused for BCJ
9
- * @returns Unfiltered data
10
- */
11
- export declare function decodeBcj(input: Buffer, _properties?: Buffer, _unpackSize?: number): Buffer;
12
- /**
13
- * Create a streaming BCJ decoder Transform.
14
- * Processes data chunk by chunk, buffering incomplete instructions.
15
- */
16
- export declare function createBcjDecoder(_properties?: Buffer, _unpackSize?: number): InstanceType<typeof Transform>;