7z-iterator 1.1.2 → 1.2.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 (184) hide show
  1. package/dist/cjs/FileEntry.d.cts +12 -4
  2. package/dist/cjs/FileEntry.d.ts +12 -4
  3. package/dist/cjs/FileEntry.js +52 -24
  4. package/dist/cjs/FileEntry.js.map +1 -1
  5. package/dist/cjs/SevenZipIterator.d.cts +25 -2
  6. package/dist/cjs/SevenZipIterator.d.ts +25 -2
  7. package/dist/cjs/SevenZipIterator.js +68 -21
  8. package/dist/cjs/SevenZipIterator.js.map +1 -1
  9. package/dist/cjs/index.d.cts +0 -2
  10. package/dist/cjs/index.d.ts +0 -2
  11. package/dist/cjs/index.js +3 -12
  12. package/dist/cjs/index.js.map +1 -1
  13. package/dist/cjs/lib/streamToSource.d.cts +8 -11
  14. package/dist/cjs/lib/streamToSource.d.ts +8 -11
  15. package/dist/cjs/lib/streamToSource.js +21 -67
  16. package/dist/cjs/lib/streamToSource.js.map +1 -1
  17. package/dist/cjs/lzma/Lzma2ChunkParser.d.cts +73 -0
  18. package/dist/cjs/lzma/Lzma2ChunkParser.d.ts +73 -0
  19. package/dist/cjs/lzma/Lzma2ChunkParser.js +148 -0
  20. package/dist/cjs/lzma/Lzma2ChunkParser.js.map +1 -0
  21. package/dist/cjs/lzma/index.d.cts +13 -0
  22. package/dist/cjs/lzma/index.d.ts +13 -0
  23. package/dist/cjs/lzma/index.js +63 -0
  24. package/dist/cjs/lzma/index.js.map +1 -0
  25. package/dist/cjs/lzma/stream/transforms.d.cts +38 -0
  26. package/dist/cjs/lzma/stream/transforms.d.ts +38 -0
  27. package/dist/cjs/lzma/stream/transforms.js +149 -0
  28. package/dist/cjs/lzma/stream/transforms.js.map +1 -0
  29. package/dist/cjs/lzma/sync/Lzma2Decoder.d.cts +30 -0
  30. package/dist/cjs/lzma/sync/Lzma2Decoder.d.ts +30 -0
  31. package/dist/cjs/lzma/sync/Lzma2Decoder.js +135 -0
  32. package/dist/cjs/lzma/sync/Lzma2Decoder.js.map +1 -0
  33. package/dist/cjs/lzma/sync/LzmaDecoder.d.cts +82 -0
  34. package/dist/cjs/lzma/sync/LzmaDecoder.d.ts +82 -0
  35. package/dist/cjs/lzma/sync/LzmaDecoder.js +440 -0
  36. package/dist/cjs/lzma/sync/LzmaDecoder.js.map +1 -0
  37. package/dist/cjs/lzma/sync/RangeDecoder.d.cts +69 -0
  38. package/dist/cjs/lzma/sync/RangeDecoder.d.ts +69 -0
  39. package/dist/cjs/lzma/sync/RangeDecoder.js +162 -0
  40. package/dist/cjs/lzma/sync/RangeDecoder.js.map +1 -0
  41. package/dist/cjs/lzma/types.d.cts +110 -0
  42. package/dist/cjs/lzma/types.d.ts +110 -0
  43. package/dist/cjs/lzma/types.js +264 -0
  44. package/dist/cjs/lzma/types.js.map +1 -0
  45. package/dist/cjs/nextEntry.js +24 -26
  46. package/dist/cjs/nextEntry.js.map +1 -1
  47. package/dist/cjs/sevenz/ArchiveSource.d.cts +16 -0
  48. package/dist/cjs/sevenz/ArchiveSource.d.ts +16 -0
  49. package/dist/cjs/sevenz/ArchiveSource.js +69 -0
  50. package/dist/cjs/sevenz/ArchiveSource.js.map +1 -1
  51. package/dist/cjs/sevenz/FolderStreamSplitter.d.cts +101 -0
  52. package/dist/cjs/sevenz/FolderStreamSplitter.d.ts +101 -0
  53. package/dist/cjs/sevenz/FolderStreamSplitter.js +229 -0
  54. package/dist/cjs/sevenz/FolderStreamSplitter.js.map +1 -0
  55. package/dist/cjs/sevenz/SevenZipParser.d.cts +71 -10
  56. package/dist/cjs/sevenz/SevenZipParser.d.ts +71 -10
  57. package/dist/cjs/sevenz/SevenZipParser.js +574 -203
  58. package/dist/cjs/sevenz/SevenZipParser.js.map +1 -1
  59. package/dist/cjs/sevenz/codecs/BZip2.js +2 -1
  60. package/dist/cjs/sevenz/codecs/BZip2.js.map +1 -1
  61. package/dist/cjs/sevenz/codecs/Bcj.d.cts +5 -4
  62. package/dist/cjs/sevenz/codecs/Bcj.d.ts +5 -4
  63. package/dist/cjs/sevenz/codecs/Bcj.js +102 -8
  64. package/dist/cjs/sevenz/codecs/Bcj.js.map +1 -1
  65. package/dist/cjs/sevenz/codecs/BcjArm.d.cts +5 -4
  66. package/dist/cjs/sevenz/codecs/BcjArm.d.ts +5 -4
  67. package/dist/cjs/sevenz/codecs/BcjArm.js +51 -9
  68. package/dist/cjs/sevenz/codecs/BcjArm.js.map +1 -1
  69. package/dist/cjs/sevenz/codecs/Copy.d.cts +2 -4
  70. package/dist/cjs/sevenz/codecs/Copy.d.ts +2 -4
  71. package/dist/cjs/sevenz/codecs/Copy.js +2 -15
  72. package/dist/cjs/sevenz/codecs/Copy.js.map +1 -1
  73. package/dist/cjs/sevenz/codecs/Deflate.d.cts +6 -4
  74. package/dist/cjs/sevenz/codecs/Deflate.d.ts +6 -4
  75. package/dist/cjs/sevenz/codecs/Deflate.js +4 -9
  76. package/dist/cjs/sevenz/codecs/Deflate.js.map +1 -1
  77. package/dist/cjs/sevenz/codecs/Delta.d.cts +5 -4
  78. package/dist/cjs/sevenz/codecs/Delta.d.ts +5 -4
  79. package/dist/cjs/sevenz/codecs/Delta.js +29 -10
  80. package/dist/cjs/sevenz/codecs/Delta.js.map +1 -1
  81. package/dist/cjs/sevenz/codecs/Lzma.d.cts +5 -2
  82. package/dist/cjs/sevenz/codecs/Lzma.d.ts +5 -2
  83. package/dist/cjs/sevenz/codecs/Lzma.js +13 -28
  84. package/dist/cjs/sevenz/codecs/Lzma.js.map +1 -1
  85. package/dist/cjs/sevenz/codecs/Lzma2.d.cts +9 -3
  86. package/dist/cjs/sevenz/codecs/Lzma2.d.ts +9 -3
  87. package/dist/cjs/sevenz/codecs/Lzma2.js +17 -198
  88. package/dist/cjs/sevenz/codecs/Lzma2.js.map +1 -1
  89. package/dist/cjs/sevenz/codecs/createBufferingDecoder.d.cts +2 -2
  90. package/dist/cjs/sevenz/codecs/createBufferingDecoder.d.ts +2 -2
  91. package/dist/cjs/sevenz/codecs/createBufferingDecoder.js +2 -15
  92. package/dist/cjs/sevenz/codecs/createBufferingDecoder.js.map +1 -1
  93. package/dist/cjs/types.d.cts +2 -16
  94. package/dist/cjs/types.d.ts +2 -16
  95. package/dist/cjs/types.js.map +1 -1
  96. package/dist/esm/FileEntry.d.ts +12 -4
  97. package/dist/esm/FileEntry.js +52 -26
  98. package/dist/esm/FileEntry.js.map +1 -1
  99. package/dist/esm/SevenZipIterator.d.ts +25 -2
  100. package/dist/esm/SevenZipIterator.js +69 -22
  101. package/dist/esm/SevenZipIterator.js.map +1 -1
  102. package/dist/esm/index.d.ts +0 -2
  103. package/dist/esm/index.js +0 -1
  104. package/dist/esm/index.js.map +1 -1
  105. package/dist/esm/lib/streamToSource.d.ts +8 -11
  106. package/dist/esm/lib/streamToSource.js +22 -68
  107. package/dist/esm/lib/streamToSource.js.map +1 -1
  108. package/dist/esm/lzma/Lzma2ChunkParser.d.ts +73 -0
  109. package/dist/esm/lzma/Lzma2ChunkParser.js +137 -0
  110. package/dist/esm/lzma/Lzma2ChunkParser.js.map +1 -0
  111. package/dist/esm/lzma/index.d.ts +13 -0
  112. package/dist/esm/lzma/index.js +15 -0
  113. package/dist/esm/lzma/index.js.map +1 -0
  114. package/dist/esm/lzma/stream/transforms.d.ts +38 -0
  115. package/dist/esm/lzma/stream/transforms.js +150 -0
  116. package/dist/esm/lzma/stream/transforms.js.map +1 -0
  117. package/dist/esm/lzma/sync/Lzma2Decoder.d.ts +30 -0
  118. package/dist/esm/lzma/sync/Lzma2Decoder.js +115 -0
  119. package/dist/esm/lzma/sync/Lzma2Decoder.js.map +1 -0
  120. package/dist/esm/lzma/sync/LzmaDecoder.d.ts +82 -0
  121. package/dist/esm/lzma/sync/LzmaDecoder.js +403 -0
  122. package/dist/esm/lzma/sync/LzmaDecoder.js.map +1 -0
  123. package/dist/esm/lzma/sync/RangeDecoder.d.ts +69 -0
  124. package/dist/esm/lzma/sync/RangeDecoder.js +132 -0
  125. package/dist/esm/lzma/sync/RangeDecoder.js.map +1 -0
  126. package/dist/esm/lzma/types.d.ts +110 -0
  127. package/dist/esm/lzma/types.js +154 -0
  128. package/dist/esm/lzma/types.js.map +1 -0
  129. package/dist/esm/nextEntry.js +24 -26
  130. package/dist/esm/nextEntry.js.map +1 -1
  131. package/dist/esm/sevenz/ArchiveSource.d.ts +16 -0
  132. package/dist/esm/sevenz/ArchiveSource.js +70 -1
  133. package/dist/esm/sevenz/ArchiveSource.js.map +1 -1
  134. package/dist/esm/sevenz/FolderStreamSplitter.d.ts +101 -0
  135. package/dist/esm/sevenz/FolderStreamSplitter.js +207 -0
  136. package/dist/esm/sevenz/FolderStreamSplitter.js.map +1 -0
  137. package/dist/esm/sevenz/SevenZipParser.d.ts +71 -10
  138. package/dist/esm/sevenz/SevenZipParser.js +414 -198
  139. package/dist/esm/sevenz/SevenZipParser.js.map +1 -1
  140. package/dist/esm/sevenz/codecs/BZip2.js +2 -1
  141. package/dist/esm/sevenz/codecs/BZip2.js.map +1 -1
  142. package/dist/esm/sevenz/codecs/Bcj.d.ts +5 -4
  143. package/dist/esm/sevenz/codecs/Bcj.js +106 -6
  144. package/dist/esm/sevenz/codecs/Bcj.js.map +1 -1
  145. package/dist/esm/sevenz/codecs/BcjArm.d.ts +5 -4
  146. package/dist/esm/sevenz/codecs/BcjArm.js +55 -7
  147. package/dist/esm/sevenz/codecs/BcjArm.js.map +1 -1
  148. package/dist/esm/sevenz/codecs/Copy.d.ts +2 -4
  149. package/dist/esm/sevenz/codecs/Copy.js +1 -9
  150. package/dist/esm/sevenz/codecs/Copy.js.map +1 -1
  151. package/dist/esm/sevenz/codecs/Deflate.d.ts +6 -4
  152. package/dist/esm/sevenz/codecs/Deflate.js +9 -7
  153. package/dist/esm/sevenz/codecs/Deflate.js.map +1 -1
  154. package/dist/esm/sevenz/codecs/Delta.d.ts +5 -4
  155. package/dist/esm/sevenz/codecs/Delta.js +33 -8
  156. package/dist/esm/sevenz/codecs/Delta.js.map +1 -1
  157. package/dist/esm/sevenz/codecs/Lzma.d.ts +5 -2
  158. package/dist/esm/sevenz/codecs/Lzma.js +17 -24
  159. package/dist/esm/sevenz/codecs/Lzma.js.map +1 -1
  160. package/dist/esm/sevenz/codecs/Lzma2.d.ts +9 -3
  161. package/dist/esm/sevenz/codecs/Lzma2.js +15 -196
  162. package/dist/esm/sevenz/codecs/Lzma2.js.map +1 -1
  163. package/dist/esm/sevenz/codecs/createBufferingDecoder.d.ts +2 -2
  164. package/dist/esm/sevenz/codecs/createBufferingDecoder.js +1 -9
  165. package/dist/esm/sevenz/codecs/createBufferingDecoder.js.map +1 -1
  166. package/dist/esm/types.d.ts +2 -16
  167. package/dist/esm/types.js.map +1 -1
  168. package/package.json +3 -3
  169. package/assets/lzma-purejs/LICENSE +0 -11
  170. package/assets/lzma-purejs/index.js +0 -19
  171. package/assets/lzma-purejs/lib/LZ/OutWindow.js +0 -78
  172. package/assets/lzma-purejs/lib/LZ.js +0 -6
  173. package/assets/lzma-purejs/lib/LZMA/Base.js +0 -48
  174. package/assets/lzma-purejs/lib/LZMA/Decoder.js +0 -328
  175. package/assets/lzma-purejs/lib/LZMA.js +0 -6
  176. package/assets/lzma-purejs/lib/RangeCoder/BitTreeDecoder.js +0 -41
  177. package/assets/lzma-purejs/lib/RangeCoder/Decoder.js +0 -58
  178. package/assets/lzma-purejs/lib/RangeCoder/Encoder.js +0 -106
  179. package/assets/lzma-purejs/lib/RangeCoder.js +0 -10
  180. package/assets/lzma-purejs/lib/Stream.js +0 -41
  181. package/assets/lzma-purejs/lib/Util.js +0 -114
  182. package/assets/lzma-purejs/lib/makeBuffer.js +0 -25
  183. package/assets/lzma-purejs/package-lock.json +0 -13
  184. package/assets/lzma-purejs/package.json +0 -8
@@ -1,328 +0,0 @@
1
- 'use strict';
2
- var Base = require('./Base');
3
- var LZ = require('../LZ');
4
- var RangeCoder = require('../RangeCoder');
5
-
6
- var initBitModels = RangeCoder.Encoder.initBitModels;
7
-
8
- var LenDecoder = function(){
9
- this._choice = initBitModels(null, 2);
10
- this._lowCoder = [];
11
- this._midCoder = [];
12
- this._highCoder = new RangeCoder.BitTreeDecoder(8);
13
- this._numPosStates = 0;
14
- };
15
-
16
- LenDecoder.prototype.create = function(numPosStates){
17
- for (; this._numPosStates < numPosStates; ++this._numPosStates){
18
- this._lowCoder[this._numPosStates] = new RangeCoder.BitTreeDecoder(3);
19
- this._midCoder[this._numPosStates] = new RangeCoder.BitTreeDecoder(3);
20
- }
21
- };
22
-
23
- LenDecoder.prototype.init = function(){
24
- initBitModels(this._choice);
25
- for (var i = this._numPosStates - 1; i >= 0; i--){
26
- this._lowCoder[i].init();
27
- this._midCoder[i].init();
28
- }
29
- this._highCoder.init();
30
- };
31
-
32
- LenDecoder.prototype.decode = function(rangeDecoder, posState){
33
- if (rangeDecoder.decodeBit(this._choice, 0) === 0){
34
- return this._lowCoder[posState].decode(rangeDecoder);
35
- }
36
- if (rangeDecoder.decodeBit(this._choice, 1) === 0){
37
- return 8 + this._midCoder[posState].decode(rangeDecoder);
38
- }
39
- return 16 + this._highCoder.decode(rangeDecoder);
40
- };
41
-
42
- var LiteralDecoder = function(){};
43
-
44
- LiteralDecoder.Decoder2 = function(){
45
- this._decoders = initBitModels(null, 0x300);
46
- };
47
-
48
- LiteralDecoder.Decoder2.prototype.init = function(){
49
- initBitModels(this._decoders);
50
- };
51
-
52
- LiteralDecoder.Decoder2.prototype.decodeNormal = function(rangeDecoder){
53
- var symbol = 1;
54
- do {
55
- symbol = (symbol << 1) | rangeDecoder.decodeBit(this._decoders, symbol);
56
- } while(symbol < 0x100);
57
- return symbol & 0xff;
58
- };
59
-
60
- LiteralDecoder.Decoder2.prototype.decodeWithMatchByte = function(rangeDecoder, matchByte){
61
- var symbol = 1;
62
- do {
63
- var matchBit = (matchByte >> 7) & 1;
64
- matchByte <<= 1;
65
- var bit = rangeDecoder.decodeBit(this._decoders, ((1 + matchBit) << 8) + symbol);
66
- symbol = (symbol << 1) | bit;
67
- if (matchBit !== bit){
68
- while(symbol < 0x100){
69
- symbol = (symbol << 1) | rangeDecoder.decodeBit(this._decoders, symbol);
70
- }
71
- break;
72
- }
73
- } while(symbol < 0x100);
74
- return symbol & 0xff;
75
- };
76
-
77
- LiteralDecoder.prototype.create = function(numPosBits, numPrevBits){
78
- if (this._coders && this._numPrevBits === numPrevBits && this._numPosBits === numPosBits) return;
79
- this._numPosBits = numPosBits;
80
- this._posMask = (1 << numPosBits) - 1;
81
- this._numPrevBits = numPrevBits;
82
- // Lazy allocation: only create coders array, allocate individual coders on demand
83
- // This saves significant memory for archives that don't use all coder slots
84
- this._coders = [];
85
- this._coderCount = 1 << (this._numPrevBits + this._numPosBits);
86
- };
87
-
88
- LiteralDecoder.prototype.init = function(){
89
- // Only init coders that have been allocated (lazy allocation support)
90
- for (var i = 0; i < this._coders.length; i++){
91
- if (this._coders[i]) {
92
- this._coders[i].init();
93
- }
94
- }
95
- };
96
-
97
- LiteralDecoder.prototype.getDecoder = function(pos, prevByte){
98
- var index = ((pos & this._posMask) << this._numPrevBits) +
99
- ((prevByte & 0xff) >>> (8 - this._numPrevBits));
100
- // Lazy allocation: create coder on first access
101
- if (!this._coders[index]) {
102
- this._coders[index] = new LiteralDecoder.Decoder2();
103
- }
104
- return this._coders[index];
105
- };
106
-
107
- var Decoder = function(){
108
- this._outWindow = new LZ.OutWindow();
109
- this._rangeDecoder = new RangeCoder.Decoder();
110
- this._isMatchDecoders = initBitModels(null, Base.kNumStates << Base.kNumPosStatesBitsMax);
111
- this._isRepDecoders = initBitModels(null, Base.kNumStates);
112
- this._isRepG0Decoders = initBitModels(null, Base.kNumStates);
113
- this._isRepG1Decoders = initBitModels(null, Base.kNumStates);
114
- this._isRepG2Decoders = initBitModels(null, Base.kNumStates);
115
- this._isRep0LongDecoders = initBitModels(null, Base.kNumStates << Base.kNumPosStatesBitsMax);
116
- this._posSlotDecoder = [];
117
- this._posDecoders = initBitModels(null, Base.kNumFullDistances - Base.kEndPosModelIndex);
118
- this._posAlignDecoder = new RangeCoder.BitTreeDecoder(Base.kNumAlignBits);
119
- this._lenDecoder = new LenDecoder();
120
- this._repLenDecoder = new LenDecoder();
121
- this._literalDecoder = new LiteralDecoder();
122
- this._dictionarySize = -1;
123
- this._dictionarySizeCheck = -1;
124
- this._posStateMask = 0;
125
-
126
- // LZMA2 state preservation
127
- this._state = 0;
128
- this._rep0 = 0;
129
- this._rep1 = 0;
130
- this._rep2 = 0;
131
- this._rep3 = 0;
132
- this._prevByte = 0;
133
- this._nowPos64 = 0;
134
- this._solid = false;
135
-
136
- for (var i = 0; i < Base.kNumLenToPosStates; i++){
137
- this._posSlotDecoder[i] = new RangeCoder.BitTreeDecoder(Base.kNumPosSlotBits);
138
- }
139
- };
140
-
141
- Decoder.prototype.setSolid = function(solid) {
142
- this._solid = solid;
143
- };
144
-
145
- Decoder.prototype.resetProbabilities = function() {
146
- // Reset probability tables (same as init() but without dictionary/stream reset)
147
- // Used for LZMA2 control bytes 0xa0-0xdf (state reset without dictionary reset)
148
- initBitModels(this._isMatchDecoders);
149
- initBitModels(this._isRepDecoders);
150
- initBitModels(this._isRepG0Decoders);
151
- initBitModels(this._isRepG1Decoders);
152
- initBitModels(this._isRepG2Decoders);
153
- initBitModels(this._isRep0LongDecoders);
154
- initBitModels(this._posDecoders);
155
- this._literalDecoder.init();
156
- for (var i = this._posSlotDecoder.length - 1; i >= 0; i--) {
157
- this._posSlotDecoder[i].init();
158
- }
159
- this._lenDecoder.init();
160
- this._repLenDecoder.init();
161
- this._posAlignDecoder.init();
162
- // Reset state variables
163
- this._state = 0;
164
- this._rep0 = 0;
165
- this._rep1 = 0;
166
- this._rep2 = 0;
167
- this._rep3 = 0;
168
- // DO NOT reset _nowPos64, _prevByte, or dictionary
169
- };
170
-
171
- Decoder.prototype.setDictionarySize = function(dictionarySize){
172
- if (dictionarySize < 0) return false;
173
- if (this._dictionarySize !== dictionarySize){
174
- this._dictionarySize = dictionarySize;
175
- this._dictionarySizeCheck = Math.max(this._dictionarySize, 1);
176
- this._outWindow.create(Math.max(this._dictionarySizeCheck, (1 << 12)));
177
- }
178
- return true;
179
- };
180
-
181
- Decoder.prototype.setLcLpPb = function(lc, lp, pb){
182
- if (lc > Base.kNumLitContextBitsMax || lp > 4 || pb > Base.kNumPosStatesBitsMax) return false;
183
- var numPosStates = 1 << pb;
184
- this._literalDecoder.create(lp, lc);
185
- this._lenDecoder.create(numPosStates);
186
- this._repLenDecoder.create(numPosStates);
187
- this._posStateMask = numPosStates - 1;
188
- return true;
189
- };
190
-
191
- Decoder.prototype.init = function(){
192
- this._outWindow.init(false);
193
- initBitModels(this._isMatchDecoders);
194
- initBitModels(this._isRepDecoders);
195
- initBitModels(this._isRepG0Decoders);
196
- initBitModels(this._isRepG1Decoders);
197
- initBitModels(this._isRepG2Decoders);
198
- initBitModels(this._isRep0LongDecoders);
199
- initBitModels(this._posDecoders);
200
- this._literalDecoder.init();
201
- for (var i = Base.kNumLenToPosStates - 1; i >= 0; i--){
202
- this._posSlotDecoder[i].init();
203
- }
204
- this._lenDecoder.init();
205
- this._repLenDecoder.init();
206
- this._posAlignDecoder.init();
207
- this._rangeDecoder.init();
208
- };
209
-
210
- Decoder.prototype.code = function(inStream, outStream, outSize){
211
- var chunkPos = 0, posState, decoder2, len, distance, posSlot, numDirectBits;
212
- this._rangeDecoder.setStream(inStream);
213
- this._outWindow.setStream(outStream);
214
-
215
- if (!this._solid) {
216
- this.init();
217
- this._state = Base.stateInit();
218
- this._rep0 = 0;
219
- this._rep1 = 0;
220
- this._rep2 = 0;
221
- this._rep3 = 0;
222
- this._prevByte = 0;
223
- this._nowPos64 = 0;
224
- } else {
225
- this._outWindow.init(true);
226
- this._rangeDecoder.init();
227
- }
228
- var cumPos = this._nowPos64;
229
-
230
- while(outSize < 0 || chunkPos < outSize){
231
- posState = cumPos & this._posStateMask;
232
- if (this._rangeDecoder.decodeBit(this._isMatchDecoders, (this._state << Base.kNumPosStatesBitsMax) + posState) === 0){
233
- decoder2 = this._literalDecoder.getDecoder(cumPos, this._prevByte);
234
- if (!Base.stateIsCharState(this._state)){
235
- this._prevByte = decoder2.decodeWithMatchByte(this._rangeDecoder, this._outWindow.getByte(this._rep0));
236
- } else {
237
- this._prevByte = decoder2.decodeNormal(this._rangeDecoder);
238
- }
239
- this._outWindow.putByte(this._prevByte);
240
- this._state = Base.stateUpdateChar(this._state);
241
- chunkPos++; cumPos++;
242
- } else {
243
- if (this._rangeDecoder.decodeBit(this._isRepDecoders, this._state) === 1){
244
- len = 0;
245
- if (this._rangeDecoder.decodeBit(this._isRepG0Decoders, this._state) === 0){
246
- if (this._rangeDecoder.decodeBit(this._isRep0LongDecoders, (this._state << Base.kNumPosStatesBitsMax) + posState) === 0){
247
- this._state = Base.stateUpdateShortRep(this._state);
248
- len = 1;
249
- }
250
- } else {
251
- if (this._rangeDecoder.decodeBit(this._isRepG1Decoders, this._state) === 0){
252
- distance = this._rep1;
253
- } else {
254
- if (this._rangeDecoder.decodeBit(this._isRepG2Decoders, this._state) === 0){
255
- distance = this._rep2;
256
- } else {
257
- distance = this._rep3;
258
- this._rep3 = this._rep2;
259
- }
260
- this._rep2 = this._rep1;
261
- }
262
- this._rep1 = this._rep0;
263
- this._rep0 = distance;
264
- }
265
- if (len === 0){
266
- len = Base.kMatchMinLen + this._repLenDecoder.decode(this._rangeDecoder, posState);
267
- this._state = Base.stateUpdateRep(this._state);
268
- }
269
- } else {
270
- this._rep3 = this._rep2;
271
- this._rep2 = this._rep1;
272
- this._rep1 = this._rep0;
273
- len = Base.kMatchMinLen + this._lenDecoder.decode(this._rangeDecoder, posState);
274
- this._state = Base.stateUpdateMatch(this._state);
275
- posSlot = this._posSlotDecoder[Base.getLenToPosState(len)].decode(this._rangeDecoder);
276
- if (posSlot >= Base.kStartPosModelIndex){
277
- numDirectBits = (posSlot >> 1) - 1;
278
- this._rep0 = (2 | (posSlot & 1)) << numDirectBits;
279
- if (posSlot < Base.kEndPosModelIndex){
280
- this._rep0 += RangeCoder.BitTreeDecoder.reverseDecode(this._posDecoders,
281
- this._rep0 - posSlot - 1, this._rangeDecoder, numDirectBits);
282
- } else {
283
- this._rep0 += this._rangeDecoder.decodeDirectBits(numDirectBits - Base.kNumAlignBits) << Base.kNumAlignBits;
284
- this._rep0 += this._posAlignDecoder.reverseDecode(this._rangeDecoder);
285
- if (this._rep0 < 0){
286
- if (this._rep0 === -1) break;
287
- return false;
288
- }
289
- }
290
- } else {
291
- this._rep0 = posSlot;
292
- }
293
- }
294
- if (this._rep0 >= cumPos || this._rep0 >= this._dictionarySizeCheck) return false;
295
- this._outWindow.copyBlock(this._rep0, len);
296
- chunkPos += len; cumPos += len;
297
- this._prevByte = this._outWindow.getByte(0);
298
- }
299
- }
300
- this._nowPos64 = cumPos;
301
- this._outWindow.flush();
302
- this._outWindow.releaseStream();
303
- this._rangeDecoder.releaseStream();
304
- return true;
305
- };
306
-
307
- Decoder.prototype.setDecoderProperties = function(properties){
308
- if (properties.length < 5) return false;
309
- var value = properties[0] & 0xFF;
310
- var lc = value % 9;
311
- value = ~~(value / 9);
312
- var lp = value % 5;
313
- var pb = ~~(value / 5);
314
- if (!this.setLcLpPb(lc, lp, pb)) return false;
315
- var dictionarySize = 0;
316
- for (var i = 0, shift = 1; i < 4; i++, shift *= 256){
317
- dictionarySize += (properties[1+i] & 0xFF) * shift;
318
- }
319
- return this.setDictionarySize(dictionarySize);
320
- };
321
-
322
- Decoder.prototype.setDecoderPropertiesFromStream = function(stream) {
323
- var buffer = [];
324
- for (var i = 0; i < 5; i++) { buffer[i] = stream.readByte(); }
325
- return this.setDecoderProperties(buffer);
326
- };
327
-
328
- module.exports = Decoder;
@@ -1,6 +0,0 @@
1
- 'use strict';
2
- var Decoder = require('./LZMA/Decoder');
3
-
4
- module.exports = {
5
- Decoder: Decoder
6
- };
@@ -1,41 +0,0 @@
1
- 'use strict';
2
- var Encoder = require('./Encoder');
3
-
4
- var BitTreeDecoder = function(numBitLevels){
5
- this._numBitLevels = numBitLevels;
6
- this.init();
7
- };
8
-
9
- BitTreeDecoder.prototype.init = function(){
10
- this._models = Encoder.initBitModels(null, 1 << this._numBitLevels);
11
- };
12
-
13
- BitTreeDecoder.prototype.decode = function(rangeDecoder){
14
- var m = 1;
15
- for (var i = this._numBitLevels; i > 0; i--){
16
- m = (m << 1) | rangeDecoder.decodeBit(this._models, m);
17
- }
18
- return m - (1 << this._numBitLevels);
19
- };
20
-
21
- BitTreeDecoder.prototype.reverseDecode = function(rangeDecoder){
22
- var m = 1, symbol = 0;
23
- for (var i = 0; i < this._numBitLevels; i++){
24
- var bit = rangeDecoder.decodeBit(this._models, m);
25
- m = (m << 1) | bit;
26
- symbol |= (bit << i);
27
- }
28
- return symbol;
29
- };
30
-
31
- BitTreeDecoder.reverseDecode = function(models, startIndex, rangeDecoder, numBitLevels) {
32
- var m = 1, symbol = 0;
33
- for (var i = 0; i < numBitLevels; i++){
34
- var bit = rangeDecoder.decodeBit(models, startIndex + m);
35
- m = (m << 1) | bit;
36
- symbol |= (bit << i);
37
- }
38
- return symbol;
39
- };
40
-
41
- module.exports = BitTreeDecoder;
@@ -1,58 +0,0 @@
1
- 'use strict';
2
-
3
- var Decoder = function(stream){
4
- if (stream) {
5
- this.setStream(stream);
6
- this.init();
7
- }
8
- };
9
-
10
- Decoder.prototype.setStream = function(stream){ this._stream = stream; };
11
- Decoder.prototype.releaseStream = function(){ this._stream = null; };
12
-
13
- Decoder.prototype.init = function(){
14
- this._code = 0;
15
- this._range = -1;
16
- for (var i = 0; i < 5; i++){
17
- this._code = (this._code << 8) | this._stream.readByte();
18
- }
19
- };
20
-
21
- Decoder.prototype.decodeDirectBits = function(numTotalBits){
22
- var result = 0;
23
- for (var i = numTotalBits; i > 0; i--){
24
- this._range >>>= 1;
25
- var t = (this._code - this._range) >>> 31;
26
- this._code -= this._range & (t - 1);
27
- result = (result << 1) | (1 - t);
28
- if ((this._range & 0xff000000) === 0){
29
- this._code = (this._code << 8) | this._stream.readByte();
30
- this._range <<= 8;
31
- }
32
- }
33
- return result;
34
- };
35
-
36
- Decoder.prototype.decodeBit = function(probs, index){
37
- var prob = probs[index];
38
- var newBound = (this._range >>> 11) * prob;
39
- if ((this._code ^ 0x80000000) < (newBound ^ 0x80000000)){
40
- this._range = newBound;
41
- probs[index] += (2048 - prob) >>> 5;
42
- if ((this._range & 0xff000000) === 0){
43
- this._code = (this._code << 8) | this._stream.readByte();
44
- this._range <<= 8;
45
- }
46
- return 0;
47
- }
48
- this._range -= newBound;
49
- this._code -= newBound;
50
- probs[index] -= prob >>> 5;
51
- if ((this._range & 0xff000000) === 0){
52
- this._code = (this._code << 8) | this._stream.readByte();
53
- this._range <<= 8;
54
- }
55
- return 1;
56
- };
57
-
58
- module.exports = Decoder;
@@ -1,106 +0,0 @@
1
- 'use strict';
2
-
3
- var MAX32 = 0xFFFFFFFF;
4
- var MAX24 = 0x00FFFFFF;
5
- var MAX8 = 0x000000FF;
6
- var MASK24= 0xFF000000;
7
-
8
- var kNumBitModelTotalBits = 11;
9
- var kBitModelTotal = (1 << kNumBitModelTotalBits);
10
- var kNumMoveBits = 5;
11
- var kNumMoveReducingBits = 2;
12
- var kNumBitPriceShiftBits = 6;
13
-
14
- var Encoder = function(stream){
15
- this.init();
16
- if (stream) { this.setStream(stream); }
17
- };
18
- Encoder.prototype.setStream = function(stream) { this._stream = stream; };
19
- Encoder.prototype.releaseStream = function() { this._stream = null; };
20
- Encoder.prototype.init = function() {
21
- this._position = 0;
22
- this.low = 0;
23
- this.range = MAX32;
24
- this._cacheSize = 1;
25
- this._cache = 0;
26
- };
27
- Encoder.prototype.flushData = function() {
28
- for (var i=0; i<5; i++) { this.shiftLow(); }
29
- };
30
- Encoder.prototype.flushStream = function() {
31
- if (this._stream.flush) { this._stream.flush(); }
32
- };
33
- Encoder.prototype.shiftLow = function() {
34
- var overflow = (this.low > MAX32) ? 1 : 0;
35
- if (this.low < MASK24 || overflow) {
36
- this._position += this._cacheSize;
37
- var temp = this._cache;
38
- do {
39
- this._stream.writeByte((temp + overflow) & MAX8);
40
- temp = MAX8;
41
- } while (--this._cacheSize !== 0);
42
- this._cache = this.low >>> 24;
43
- }
44
- this._cacheSize++;
45
- this.low = (this.low & MAX24) * 256;
46
- };
47
- Encoder.prototype.encodeDirectBits = function(v, numTotalBits) {
48
- var mask = 1 << (numTotalBits-1);
49
- for (var i = numTotalBits - 1; i >= 0; i--, mask>>>=1) {
50
- this.range >>>= 1;
51
- if (v & mask) { this.low += this.range; }
52
- if (this.range <= MAX24) {
53
- this.range *= 256;
54
- this.shiftLow();
55
- }
56
- }
57
- };
58
- Encoder.prototype.getProcessedSizeAdd = function() {
59
- return this._cacheSize + this._position + 4;
60
- };
61
- Encoder.initBitModels = function(probs, len) {
62
- if (len && !probs) {
63
- probs = typeof(Uint16Array)!=='undefined' ? new Uint16Array(len) : new Array(len);
64
- }
65
- for (var i=0; i < probs.length; i++) { probs[i] = (kBitModelTotal >>> 1); }
66
- return probs;
67
- };
68
- Encoder.prototype.encode = function(probs, index, symbol) {
69
- var prob = probs[index];
70
- var newBound = (this.range >>> kNumBitModelTotalBits) * prob;
71
- if (symbol === 0) {
72
- this.range = newBound;
73
- probs[index] = prob + ((kBitModelTotal - prob) >>> kNumMoveBits);
74
- } else {
75
- this.low += newBound;
76
- this.range -= newBound;
77
- probs[index] = prob - (prob >>> kNumMoveBits);
78
- }
79
- if (this.range <= MAX24) {
80
- this.range *= 256;
81
- this.shiftLow();
82
- }
83
- };
84
-
85
- var ProbPrices = typeof(Uint32Array)!=='undefined' ?
86
- new Uint32Array(kBitModelTotal >>> kNumMoveReducingBits) : [];
87
- (function() {
88
- var kNumBits = (kNumBitModelTotalBits - kNumMoveReducingBits);
89
- for (var i = kNumBits - 1; i >= 0; i--) {
90
- var start = 1 << (kNumBits - i - 1);
91
- var end = 1 << (kNumBits - i);
92
- for (var j = start; j < end; j++) {
93
- ProbPrices[j] = (i << kNumBitPriceShiftBits) +
94
- (((end - j) << kNumBitPriceShiftBits) >>> (kNumBits - i - 1));
95
- }
96
- }
97
- })();
98
-
99
- Encoder.getPrice = function(prob, symbol) {
100
- return ProbPrices[(((prob - symbol) ^ ((-symbol))) & (kBitModelTotal - 1)) >>> kNumMoveReducingBits];
101
- };
102
- Encoder.getPrice0 = function(prob) { return ProbPrices[prob >>> kNumMoveReducingBits]; };
103
- Encoder.getPrice1 = function(prob) { return ProbPrices[(kBitModelTotal - prob) >>> kNumMoveReducingBits]; };
104
- Encoder.kNumBitPriceShiftBits = kNumBitPriceShiftBits;
105
-
106
- module.exports = Encoder;
@@ -1,10 +0,0 @@
1
- 'use strict';
2
- var BitTreeDecoder = require('./RangeCoder/BitTreeDecoder');
3
- var Decoder = require('./RangeCoder/Decoder');
4
- var Encoder = require('./RangeCoder/Encoder');
5
-
6
- module.exports = {
7
- BitTreeDecoder: BitTreeDecoder,
8
- Decoder: Decoder,
9
- Encoder: Encoder
10
- };
@@ -1,41 +0,0 @@
1
- 'use strict';
2
-
3
- /* very simple input/output stream interface */
4
- var Stream = function() {
5
- };
6
-
7
- // input streams //////////////
8
- Stream.prototype.readByte = function() {
9
- throw new Error("abstract method readByte() not implemented");
10
- };
11
- Stream.prototype.read = function(buffer, bufOffset, length) {
12
- var bytesRead = 0;
13
- while (bytesRead < length) {
14
- var c = this.readByte();
15
- if (c < 0) {
16
- return (bytesRead===0) ? -1 : bytesRead;
17
- }
18
- buffer[bufOffset++] = c;
19
- bytesRead++;
20
- }
21
- return bytesRead;
22
- };
23
- Stream.prototype.seek = function(new_pos) {
24
- throw new Error("abstract method seek() not implemented");
25
- };
26
-
27
- // output streams ///////////
28
- Stream.prototype.writeByte = function(_byte) {
29
- throw new Error("abstract method writeByte() not implemented");
30
- };
31
- Stream.prototype.write = function(buffer, bufOffset, length) {
32
- var i;
33
- for (i=0; i<length; i++) {
34
- this.writeByte(buffer[bufOffset++]);
35
- }
36
- return length;
37
- };
38
- Stream.prototype.flush = function() {
39
- };
40
-
41
- module.exports = Stream;