@push.rocks/smartarchive 4.0.39 → 4.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.
package/ts/bzip2/bzip2.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export class Bzip2Error extends Error {
2
2
  public name: string = 'Bzip2Error';
3
3
  public message: string;
4
- public stack = (new Error()).stack;
4
+ public stack = new Error().stack;
5
5
 
6
6
  constructor(messageArg: string) {
7
7
  super();
@@ -10,326 +10,322 @@ export class Bzip2Error extends Error {
10
10
  }
11
11
 
12
12
  var messageArg = {
13
- Error: function(message) {throw new Bzip2Error(message);}
13
+ Error: function (message) {
14
+ throw new Bzip2Error(message);
15
+ },
14
16
  };
15
17
 
16
18
  export class Bzip2 {
17
19
  public Bzip2Error = Bzip2Error;
18
- public crcTable =
19
- [
20
- 0x00000000, 0x04c11db7, 0x09823b6e, 0x0d4326d9,
21
- 0x130476dc, 0x17c56b6b, 0x1a864db2, 0x1e475005,
22
- 0x2608edb8, 0x22c9f00f, 0x2f8ad6d6, 0x2b4bcb61,
23
- 0x350c9b64, 0x31cd86d3, 0x3c8ea00a, 0x384fbdbd,
24
- 0x4c11db70, 0x48d0c6c7, 0x4593e01e, 0x4152fda9,
25
- 0x5f15adac, 0x5bd4b01b, 0x569796c2, 0x52568b75,
26
- 0x6a1936c8, 0x6ed82b7f, 0x639b0da6, 0x675a1011,
27
- 0x791d4014, 0x7ddc5da3, 0x709f7b7a, 0x745e66cd,
28
- 0x9823b6e0, 0x9ce2ab57, 0x91a18d8e, 0x95609039,
29
- 0x8b27c03c, 0x8fe6dd8b, 0x82a5fb52, 0x8664e6e5,
30
- 0xbe2b5b58, 0xbaea46ef, 0xb7a96036, 0xb3687d81,
31
- 0xad2f2d84, 0xa9ee3033, 0xa4ad16ea, 0xa06c0b5d,
32
- 0xd4326d90, 0xd0f37027, 0xddb056fe, 0xd9714b49,
33
- 0xc7361b4c, 0xc3f706fb, 0xceb42022, 0xca753d95,
34
- 0xf23a8028, 0xf6fb9d9f, 0xfbb8bb46, 0xff79a6f1,
35
- 0xe13ef6f4, 0xe5ffeb43, 0xe8bccd9a, 0xec7dd02d,
36
- 0x34867077, 0x30476dc0, 0x3d044b19, 0x39c556ae,
37
- 0x278206ab, 0x23431b1c, 0x2e003dc5, 0x2ac12072,
38
- 0x128e9dcf, 0x164f8078, 0x1b0ca6a1, 0x1fcdbb16,
39
- 0x018aeb13, 0x054bf6a4, 0x0808d07d, 0x0cc9cdca,
40
- 0x7897ab07, 0x7c56b6b0, 0x71159069, 0x75d48dde,
41
- 0x6b93dddb, 0x6f52c06c, 0x6211e6b5, 0x66d0fb02,
42
- 0x5e9f46bf, 0x5a5e5b08, 0x571d7dd1, 0x53dc6066,
43
- 0x4d9b3063, 0x495a2dd4, 0x44190b0d, 0x40d816ba,
44
- 0xaca5c697, 0xa864db20, 0xa527fdf9, 0xa1e6e04e,
45
- 0xbfa1b04b, 0xbb60adfc, 0xb6238b25, 0xb2e29692,
46
- 0x8aad2b2f, 0x8e6c3698, 0x832f1041, 0x87ee0df6,
47
- 0x99a95df3, 0x9d684044, 0x902b669d, 0x94ea7b2a,
48
- 0xe0b41de7, 0xe4750050, 0xe9362689, 0xedf73b3e,
49
- 0xf3b06b3b, 0xf771768c, 0xfa325055, 0xfef34de2,
50
- 0xc6bcf05f, 0xc27dede8, 0xcf3ecb31, 0xcbffd686,
51
- 0xd5b88683, 0xd1799b34, 0xdc3abded, 0xd8fba05a,
52
- 0x690ce0ee, 0x6dcdfd59, 0x608edb80, 0x644fc637,
53
- 0x7a089632, 0x7ec98b85, 0x738aad5c, 0x774bb0eb,
54
- 0x4f040d56, 0x4bc510e1, 0x46863638, 0x42472b8f,
55
- 0x5c007b8a, 0x58c1663d, 0x558240e4, 0x51435d53,
56
- 0x251d3b9e, 0x21dc2629, 0x2c9f00f0, 0x285e1d47,
57
- 0x36194d42, 0x32d850f5, 0x3f9b762c, 0x3b5a6b9b,
58
- 0x0315d626, 0x07d4cb91, 0x0a97ed48, 0x0e56f0ff,
59
- 0x1011a0fa, 0x14d0bd4d, 0x19939b94, 0x1d528623,
60
- 0xf12f560e, 0xf5ee4bb9, 0xf8ad6d60, 0xfc6c70d7,
61
- 0xe22b20d2, 0xe6ea3d65, 0xeba91bbc, 0xef68060b,
62
- 0xd727bbb6, 0xd3e6a601, 0xdea580d8, 0xda649d6f,
63
- 0xc423cd6a, 0xc0e2d0dd, 0xcda1f604, 0xc960ebb3,
64
- 0xbd3e8d7e, 0xb9ff90c9, 0xb4bcb610, 0xb07daba7,
65
- 0xae3afba2, 0xaafbe615, 0xa7b8c0cc, 0xa379dd7b,
66
- 0x9b3660c6, 0x9ff77d71, 0x92b45ba8, 0x9675461f,
67
- 0x8832161a, 0x8cf30bad, 0x81b02d74, 0x857130c3,
68
- 0x5d8a9099, 0x594b8d2e, 0x5408abf7, 0x50c9b640,
69
- 0x4e8ee645, 0x4a4ffbf2, 0x470cdd2b, 0x43cdc09c,
70
- 0x7b827d21, 0x7f436096, 0x7200464f, 0x76c15bf8,
71
- 0x68860bfd, 0x6c47164a, 0x61043093, 0x65c52d24,
72
- 0x119b4be9, 0x155a565e, 0x18197087, 0x1cd86d30,
73
- 0x029f3d35, 0x065e2082, 0x0b1d065b, 0x0fdc1bec,
74
- 0x3793a651, 0x3352bbe6, 0x3e119d3f, 0x3ad08088,
75
- 0x2497d08d, 0x2056cd3a, 0x2d15ebe3, 0x29d4f654,
76
- 0xc5a92679, 0xc1683bce, 0xcc2b1d17, 0xc8ea00a0,
77
- 0xd6ad50a5, 0xd26c4d12, 0xdf2f6bcb, 0xdbee767c,
78
- 0xe3a1cbc1, 0xe760d676, 0xea23f0af, 0xeee2ed18,
79
- 0xf0a5bd1d, 0xf464a0aa, 0xf9278673, 0xfde69bc4,
80
- 0x89b8fd09, 0x8d79e0be, 0x803ac667, 0x84fbdbd0,
81
- 0x9abc8bd5, 0x9e7d9662, 0x933eb0bb, 0x97ffad0c,
82
- 0xafb010b1, 0xab710d06, 0xa6322bdf, 0xa2f33668,
83
- 0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4
20
+ public crcTable = [
21
+ 0x00000000, 0x04c11db7, 0x09823b6e, 0x0d4326d9, 0x130476dc, 0x17c56b6b,
22
+ 0x1a864db2, 0x1e475005, 0x2608edb8, 0x22c9f00f, 0x2f8ad6d6, 0x2b4bcb61,
23
+ 0x350c9b64, 0x31cd86d3, 0x3c8ea00a, 0x384fbdbd, 0x4c11db70, 0x48d0c6c7,
24
+ 0x4593e01e, 0x4152fda9, 0x5f15adac, 0x5bd4b01b, 0x569796c2, 0x52568b75,
25
+ 0x6a1936c8, 0x6ed82b7f, 0x639b0da6, 0x675a1011, 0x791d4014, 0x7ddc5da3,
26
+ 0x709f7b7a, 0x745e66cd, 0x9823b6e0, 0x9ce2ab57, 0x91a18d8e, 0x95609039,
27
+ 0x8b27c03c, 0x8fe6dd8b, 0x82a5fb52, 0x8664e6e5, 0xbe2b5b58, 0xbaea46ef,
28
+ 0xb7a96036, 0xb3687d81, 0xad2f2d84, 0xa9ee3033, 0xa4ad16ea, 0xa06c0b5d,
29
+ 0xd4326d90, 0xd0f37027, 0xddb056fe, 0xd9714b49, 0xc7361b4c, 0xc3f706fb,
30
+ 0xceb42022, 0xca753d95, 0xf23a8028, 0xf6fb9d9f, 0xfbb8bb46, 0xff79a6f1,
31
+ 0xe13ef6f4, 0xe5ffeb43, 0xe8bccd9a, 0xec7dd02d, 0x34867077, 0x30476dc0,
32
+ 0x3d044b19, 0x39c556ae, 0x278206ab, 0x23431b1c, 0x2e003dc5, 0x2ac12072,
33
+ 0x128e9dcf, 0x164f8078, 0x1b0ca6a1, 0x1fcdbb16, 0x018aeb13, 0x054bf6a4,
34
+ 0x0808d07d, 0x0cc9cdca, 0x7897ab07, 0x7c56b6b0, 0x71159069, 0x75d48dde,
35
+ 0x6b93dddb, 0x6f52c06c, 0x6211e6b5, 0x66d0fb02, 0x5e9f46bf, 0x5a5e5b08,
36
+ 0x571d7dd1, 0x53dc6066, 0x4d9b3063, 0x495a2dd4, 0x44190b0d, 0x40d816ba,
37
+ 0xaca5c697, 0xa864db20, 0xa527fdf9, 0xa1e6e04e, 0xbfa1b04b, 0xbb60adfc,
38
+ 0xb6238b25, 0xb2e29692, 0x8aad2b2f, 0x8e6c3698, 0x832f1041, 0x87ee0df6,
39
+ 0x99a95df3, 0x9d684044, 0x902b669d, 0x94ea7b2a, 0xe0b41de7, 0xe4750050,
40
+ 0xe9362689, 0xedf73b3e, 0xf3b06b3b, 0xf771768c, 0xfa325055, 0xfef34de2,
41
+ 0xc6bcf05f, 0xc27dede8, 0xcf3ecb31, 0xcbffd686, 0xd5b88683, 0xd1799b34,
42
+ 0xdc3abded, 0xd8fba05a, 0x690ce0ee, 0x6dcdfd59, 0x608edb80, 0x644fc637,
43
+ 0x7a089632, 0x7ec98b85, 0x738aad5c, 0x774bb0eb, 0x4f040d56, 0x4bc510e1,
44
+ 0x46863638, 0x42472b8f, 0x5c007b8a, 0x58c1663d, 0x558240e4, 0x51435d53,
45
+ 0x251d3b9e, 0x21dc2629, 0x2c9f00f0, 0x285e1d47, 0x36194d42, 0x32d850f5,
46
+ 0x3f9b762c, 0x3b5a6b9b, 0x0315d626, 0x07d4cb91, 0x0a97ed48, 0x0e56f0ff,
47
+ 0x1011a0fa, 0x14d0bd4d, 0x19939b94, 0x1d528623, 0xf12f560e, 0xf5ee4bb9,
48
+ 0xf8ad6d60, 0xfc6c70d7, 0xe22b20d2, 0xe6ea3d65, 0xeba91bbc, 0xef68060b,
49
+ 0xd727bbb6, 0xd3e6a601, 0xdea580d8, 0xda649d6f, 0xc423cd6a, 0xc0e2d0dd,
50
+ 0xcda1f604, 0xc960ebb3, 0xbd3e8d7e, 0xb9ff90c9, 0xb4bcb610, 0xb07daba7,
51
+ 0xae3afba2, 0xaafbe615, 0xa7b8c0cc, 0xa379dd7b, 0x9b3660c6, 0x9ff77d71,
52
+ 0x92b45ba8, 0x9675461f, 0x8832161a, 0x8cf30bad, 0x81b02d74, 0x857130c3,
53
+ 0x5d8a9099, 0x594b8d2e, 0x5408abf7, 0x50c9b640, 0x4e8ee645, 0x4a4ffbf2,
54
+ 0x470cdd2b, 0x43cdc09c, 0x7b827d21, 0x7f436096, 0x7200464f, 0x76c15bf8,
55
+ 0x68860bfd, 0x6c47164a, 0x61043093, 0x65c52d24, 0x119b4be9, 0x155a565e,
56
+ 0x18197087, 0x1cd86d30, 0x029f3d35, 0x065e2082, 0x0b1d065b, 0x0fdc1bec,
57
+ 0x3793a651, 0x3352bbe6, 0x3e119d3f, 0x3ad08088, 0x2497d08d, 0x2056cd3a,
58
+ 0x2d15ebe3, 0x29d4f654, 0xc5a92679, 0xc1683bce, 0xcc2b1d17, 0xc8ea00a0,
59
+ 0xd6ad50a5, 0xd26c4d12, 0xdf2f6bcb, 0xdbee767c, 0xe3a1cbc1, 0xe760d676,
60
+ 0xea23f0af, 0xeee2ed18, 0xf0a5bd1d, 0xf464a0aa, 0xf9278673, 0xfde69bc4,
61
+ 0x89b8fd09, 0x8d79e0be, 0x803ac667, 0x84fbdbd0, 0x9abc8bd5, 0x9e7d9662,
62
+ 0x933eb0bb, 0x97ffad0c, 0xafb010b1, 0xab710d06, 0xa6322bdf, 0xa2f33668,
63
+ 0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4,
84
64
  ];
85
65
 
86
- array = function(bytes) {
87
- var bit = 0, byte = 0;
88
- var BITMASK = [0, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF ];
89
- return function(n) {
90
- var result = 0;
91
- while(n > 0) {
92
- var left = 8 - bit;
93
- if (n >= left) {
94
- result <<= left;
95
- result |= (BITMASK[left] & bytes[byte++]);
96
- bit = 0;
97
- n -= left;
98
- } else {
99
- result <<= n;
100
- result |= ((bytes[byte] & (BITMASK[n] << (8 - n - bit))) >> (8 - n - bit));
101
- bit += n;
102
- n = 0;
103
- }
66
+ array = function (bytes) {
67
+ var bit = 0,
68
+ byte = 0;
69
+ var BITMASK = [0, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff];
70
+ return function (n) {
71
+ var result = 0;
72
+ while (n > 0) {
73
+ var left = 8 - bit;
74
+ if (n >= left) {
75
+ result <<= left;
76
+ result |= BITMASK[left] & bytes[byte++];
77
+ bit = 0;
78
+ n -= left;
79
+ } else {
80
+ result <<= n;
81
+ result |=
82
+ (bytes[byte] & (BITMASK[n] << (8 - n - bit))) >> (8 - n - bit);
83
+ bit += n;
84
+ n = 0;
104
85
  }
105
- return result;
106
- }
107
- }
86
+ }
87
+ return result;
88
+ };
89
+ };
108
90
 
109
- simple = function(srcbuffer, stream) {
91
+ simple = function (srcbuffer, stream) {
110
92
  var bits = this.array(srcbuffer);
111
93
  var size = this.header(bits);
112
94
  var ret = false;
113
95
  var bufsize = 100000 * size;
114
96
  var buf = new Int32Array(bufsize);
115
-
97
+
116
98
  do {
117
- ret = this.decompress(bits, stream, buf, bufsize);
118
- } while(!ret);
119
- }
99
+ ret = this.decompress(bits, stream, buf, bufsize);
100
+ } while (!ret);
101
+ };
120
102
 
121
- header = function(bits) {
103
+ header = function (bits) {
122
104
  this.byteCount = new Int32Array(256);
123
105
  this.symToByte = new Uint8Array(256);
124
106
  this.mtfSymbol = new Int32Array(256);
125
107
  this.selectors = new Uint8Array(0x8000);
126
-
127
- if (bits(8*3) != 4348520) messageArg.Error("No magic number found");
128
-
108
+
109
+ if (bits(8 * 3) != 4348520) messageArg.Error('No magic number found');
110
+
129
111
  var i = bits(8) - 48;
130
- if (i < 1 || i > 9) messageArg.Error("Not a BZIP archive");
112
+ if (i < 1 || i > 9) messageArg.Error('Not a BZIP archive');
131
113
  return i;
132
114
  };
133
115
 
134
- decompress = function(bits, stream, buf, bufsize, streamCRC) {
116
+ decompress = function (bits, stream, buf, bufsize, streamCRC) {
135
117
  var MAX_HUFCODE_BITS = 20;
136
118
  var MAX_SYMBOLS = 258;
137
119
  var SYMBOL_RUNA = 0;
138
120
  var SYMBOL_RUNB = 1;
139
121
  var GROUP_SIZE = 50;
140
- var crc = 0 ^ (-1);
141
-
142
- for(var h = '', i = 0; i < 6; i++) h += bits(8).toString(16);
143
- if (h == "177245385090") {
144
- var finalCRC = bits(32)|0;
145
- if (finalCRC !== streamCRC) messageArg.Error("Error in bzip2: crc32 do not match");
122
+ var crc = 0 ^ -1;
123
+
124
+ for (var h = '', i = 0; i < 6; i++) h += bits(8).toString(16);
125
+ if (h == '177245385090') {
126
+ var finalCRC = bits(32) | 0;
127
+ if (finalCRC !== streamCRC)
128
+ messageArg.Error('Error in bzip2: crc32 do not match');
146
129
  // align stream to byte
147
130
  bits(null);
148
131
  return null; // reset streamCRC for next call
149
132
  }
150
- if (h != "314159265359") messageArg.Error("eek not valid bzip data");
151
- var crcblock = bits(32)|0; // CRC code
152
- if (bits(1)) messageArg.Error("unsupported obsolete version");
133
+ if (h != '314159265359') messageArg.Error('eek not valid bzip data');
134
+ var crcblock = bits(32) | 0; // CRC code
135
+ if (bits(1)) messageArg.Error('unsupported obsolete version');
153
136
  var origPtr = bits(24);
154
- if (origPtr > bufsize) messageArg.Error("Initial position larger than buffer size");
137
+ if (origPtr > bufsize)
138
+ messageArg.Error('Initial position larger than buffer size');
155
139
  var t = bits(16);
156
140
  var symTotal = 0;
157
141
  for (i = 0; i < 16; i++) {
158
- if (t & (1 << (15 - i))) {
159
- var k = bits(16);
160
- for(j = 0; j < 16; j++) {
161
- if (k & (1 << (15 - j))) {
162
- this.symToByte[symTotal++] = (16 * i) + j;
163
- }
164
- }
142
+ if (t & (1 << (15 - i))) {
143
+ var k = bits(16);
144
+ for (j = 0; j < 16; j++) {
145
+ if (k & (1 << (15 - j))) {
146
+ this.symToByte[symTotal++] = 16 * i + j;
147
+ }
165
148
  }
149
+ }
166
150
  }
167
-
151
+
168
152
  var groupCount = bits(3);
169
- if (groupCount < 2 || groupCount > 6) messageArg.Error("another error");
153
+ if (groupCount < 2 || groupCount > 6) messageArg.Error('another error');
170
154
  var nSelectors = bits(15);
171
- if (nSelectors == 0) messageArg.Error("meh");
172
- for(var i = 0; i < groupCount; i++) this.mtfSymbol[i] = i;
173
-
174
- for(var i = 0; i < nSelectors; i++) {
175
- for(var j = 0; bits(1); j++) if (j >= groupCount) messageArg.Error("whoops another error");
176
- var uc = this.mtfSymbol[j];
177
- for(var k: any = j-1; k>=0; k--) {
178
- this.mtfSymbol[k+1] = this.mtfSymbol[k];
179
- }
180
- this.mtfSymbol[0] = uc;
181
- this.selectors[i] = uc;
155
+ if (nSelectors == 0) messageArg.Error('meh');
156
+ for (var i = 0; i < groupCount; i++) this.mtfSymbol[i] = i;
157
+
158
+ for (var i = 0; i < nSelectors; i++) {
159
+ for (var j = 0; bits(1); j++)
160
+ if (j >= groupCount) messageArg.Error('whoops another error');
161
+ var uc = this.mtfSymbol[j];
162
+ for (var k: any = j - 1; k >= 0; k--) {
163
+ this.mtfSymbol[k + 1] = this.mtfSymbol[k];
164
+ }
165
+ this.mtfSymbol[0] = uc;
166
+ this.selectors[i] = uc;
182
167
  }
183
-
168
+
184
169
  var symCount = symTotal + 2;
185
170
  var groups = [];
186
171
  var length = new Uint8Array(MAX_SYMBOLS),
187
- temp = new Uint16Array(MAX_HUFCODE_BITS+1);
188
-
172
+ temp = new Uint16Array(MAX_HUFCODE_BITS + 1);
173
+
189
174
  var hufGroup;
190
-
191
- for(var j = 0; j < groupCount; j++) {
192
- t = bits(5); //lengths
193
- for(var i = 0; i < symCount; i++) {
194
- while(true){
195
- if (t < 1 || t > MAX_HUFCODE_BITS) messageArg.Error("I gave up a while ago on writing error messages");
196
- if (!bits(1)) break;
197
- if (!bits(1)) t++;
198
- else t--;
199
- }
200
- length[i] = t;
201
- }
202
- var minLen, maxLen;
203
- minLen = maxLen = length[0];
204
- for(var i = 1; i < symCount; i++) {
205
- if (length[i] > maxLen) maxLen = length[i];
206
- else if (length[i] < minLen) minLen = length[i];
207
- }
208
- hufGroup = groups[j] = {};
209
- hufGroup.permute = new Int32Array(MAX_SYMBOLS);
210
- hufGroup.limit = new Int32Array(MAX_HUFCODE_BITS + 1);
211
- hufGroup.base = new Int32Array(MAX_HUFCODE_BITS + 1);
212
-
213
- hufGroup.minLen = minLen;
214
- hufGroup.maxLen = maxLen;
215
- var base = hufGroup.base;
216
- var limit = hufGroup.limit;
217
- var pp = 0;
218
- for(var i: number = minLen; i <= maxLen; i++)
219
- for(var t: any = 0; t < symCount; t++)
220
- if (length[t] == i) hufGroup.permute[pp++] = t;
221
- for(i = minLen; i <= maxLen; i++) temp[i] = limit[i] = 0;
222
- for(i = 0; i < symCount; i++) temp[length[i]]++;
223
- pp = t = 0;
224
- for(i = minLen; i < maxLen; i++) {
225
- pp += temp[i];
226
- limit[i] = pp - 1;
227
- pp <<= 1;
228
- base[i+1] = pp - (t += temp[i]);
175
+
176
+ for (var j = 0; j < groupCount; j++) {
177
+ t = bits(5); //lengths
178
+ for (var i = 0; i < symCount; i++) {
179
+ while (true) {
180
+ if (t < 1 || t > MAX_HUFCODE_BITS)
181
+ messageArg.Error('I gave up a while ago on writing error messages');
182
+ if (!bits(1)) break;
183
+ if (!bits(1)) t++;
184
+ else t--;
229
185
  }
230
- limit[maxLen] = pp + temp[maxLen] - 1;
231
- base[minLen] = 0;
186
+ length[i] = t;
187
+ }
188
+ var minLen, maxLen;
189
+ minLen = maxLen = length[0];
190
+ for (var i = 1; i < symCount; i++) {
191
+ if (length[i] > maxLen) maxLen = length[i];
192
+ else if (length[i] < minLen) minLen = length[i];
193
+ }
194
+ hufGroup = groups[j] = {};
195
+ hufGroup.permute = new Int32Array(MAX_SYMBOLS);
196
+ hufGroup.limit = new Int32Array(MAX_HUFCODE_BITS + 1);
197
+ hufGroup.base = new Int32Array(MAX_HUFCODE_BITS + 1);
198
+
199
+ hufGroup.minLen = minLen;
200
+ hufGroup.maxLen = maxLen;
201
+ var base = hufGroup.base;
202
+ var limit = hufGroup.limit;
203
+ var pp = 0;
204
+ for (var i: number = minLen; i <= maxLen; i++)
205
+ for (var t: any = 0; t < symCount; t++)
206
+ if (length[t] == i) hufGroup.permute[pp++] = t;
207
+ for (i = minLen; i <= maxLen; i++) temp[i] = limit[i] = 0;
208
+ for (i = 0; i < symCount; i++) temp[length[i]]++;
209
+ pp = t = 0;
210
+ for (i = minLen; i < maxLen; i++) {
211
+ pp += temp[i];
212
+ limit[i] = pp - 1;
213
+ pp <<= 1;
214
+ base[i + 1] = pp - (t += temp[i]);
215
+ }
216
+ limit[maxLen] = pp + temp[maxLen] - 1;
217
+ base[minLen] = 0;
232
218
  }
233
-
234
- for(var i = 0; i < 256; i++) {
235
- this.mtfSymbol[i] = i;
236
- this.byteCount[i] = 0;
219
+
220
+ for (var i = 0; i < 256; i++) {
221
+ this.mtfSymbol[i] = i;
222
+ this.byteCount[i] = 0;
237
223
  }
238
224
  var runPos, count, symCount: number, selector;
239
- runPos = count = symCount = selector = 0;
240
- while(true) {
241
- if (!(symCount--)) {
242
- symCount = GROUP_SIZE - 1;
243
- if (selector >= nSelectors) messageArg.Error("meow i'm a kitty, that's an error");
244
- hufGroup = groups[this.selectors[selector++]];
245
- base = hufGroup.base;
246
- limit = hufGroup.limit;
247
- }
248
- i = hufGroup.minLen;
249
- j = bits(i);
250
- while(true) {
251
- if (i > hufGroup.maxLen) messageArg.Error("rawr i'm a dinosaur");
252
- if (j <= limit[i]) break;
253
- i++;
254
- j = (j << 1) | bits(1);
255
- }
256
- j -= base[i];
257
- if (j < 0 || j >= MAX_SYMBOLS) messageArg.Error("moo i'm a cow");
258
- var nextSym = hufGroup.permute[j];
259
- if (nextSym == SYMBOL_RUNA || nextSym == SYMBOL_RUNB) {
260
- if (!runPos){
261
- runPos = 1;
262
- t = 0;
263
- }
264
- if (nextSym == SYMBOL_RUNA) t += runPos;
265
- else t += 2 * runPos;
266
- runPos <<= 1;
267
- continue;
225
+ runPos = count = symCount = selector = 0;
226
+ while (true) {
227
+ if (!symCount--) {
228
+ symCount = GROUP_SIZE - 1;
229
+ if (selector >= nSelectors)
230
+ messageArg.Error("meow i'm a kitty, that's an error");
231
+ hufGroup = groups[this.selectors[selector++]];
232
+ base = hufGroup.base;
233
+ limit = hufGroup.limit;
234
+ }
235
+ i = hufGroup.minLen;
236
+ j = bits(i);
237
+ while (true) {
238
+ if (i > hufGroup.maxLen) messageArg.Error("rawr i'm a dinosaur");
239
+ if (j <= limit[i]) break;
240
+ i++;
241
+ j = (j << 1) | bits(1);
242
+ }
243
+ j -= base[i];
244
+ if (j < 0 || j >= MAX_SYMBOLS) messageArg.Error("moo i'm a cow");
245
+ var nextSym = hufGroup.permute[j];
246
+ if (nextSym == SYMBOL_RUNA || nextSym == SYMBOL_RUNB) {
247
+ if (!runPos) {
248
+ runPos = 1;
249
+ t = 0;
268
250
  }
269
- if (runPos) {
270
- runPos = 0;
271
- if (count + t > bufsize) messageArg.Error("Boom.");
272
- uc = this.symToByte[this.mtfSymbol[0]];
273
- this.byteCount[uc] += t;
274
- while(t--) buf[count++] = uc;
275
- }
276
- if (nextSym > symTotal) break;
277
- if (count >= bufsize) messageArg.Error("I can't think of anything. Error");
278
- i = nextSym - 1;
279
- uc = this.mtfSymbol[i];
280
- for(var k: any = i-1; k>=0; k--) {
281
- this.mtfSymbol[k+1] = this.mtfSymbol[k];
282
- }
283
- this.mtfSymbol[0] = uc
284
- uc = this.symToByte[uc];
285
- this.byteCount[uc]++;
286
- buf[count++] = uc;
251
+ if (nextSym == SYMBOL_RUNA) t += runPos;
252
+ else t += 2 * runPos;
253
+ runPos <<= 1;
254
+ continue;
255
+ }
256
+ if (runPos) {
257
+ runPos = 0;
258
+ if (count + t > bufsize) messageArg.Error('Boom.');
259
+ uc = this.symToByte[this.mtfSymbol[0]];
260
+ this.byteCount[uc] += t;
261
+ while (t--) buf[count++] = uc;
262
+ }
263
+ if (nextSym > symTotal) break;
264
+ if (count >= bufsize)
265
+ messageArg.Error("I can't think of anything. Error");
266
+ i = nextSym - 1;
267
+ uc = this.mtfSymbol[i];
268
+ for (var k: any = i - 1; k >= 0; k--) {
269
+ this.mtfSymbol[k + 1] = this.mtfSymbol[k];
270
+ }
271
+ this.mtfSymbol[0] = uc;
272
+ uc = this.symToByte[uc];
273
+ this.byteCount[uc]++;
274
+ buf[count++] = uc;
287
275
  }
288
- if (origPtr < 0 || origPtr >= count) messageArg.Error("I'm a monkey and I'm throwing something at someone, namely you");
276
+ if (origPtr < 0 || origPtr >= count)
277
+ messageArg.Error(
278
+ "I'm a monkey and I'm throwing something at someone, namely you",
279
+ );
289
280
  var j = 0;
290
- for(var i = 0; i < 256; i++) {
291
- k = j + this.byteCount[i];
292
- this.byteCount[i] = j;
293
- j = k;
281
+ for (var i = 0; i < 256; i++) {
282
+ k = j + this.byteCount[i];
283
+ this.byteCount[i] = j;
284
+ j = k;
294
285
  }
295
- for(var i = 0; i < count; i++) {
296
- uc = buf[i] & 0xff;
297
- buf[this.byteCount[uc]] |= (i << 8);
298
- this.byteCount[uc]++;
286
+ for (var i = 0; i < count; i++) {
287
+ uc = buf[i] & 0xff;
288
+ buf[this.byteCount[uc]] |= i << 8;
289
+ this.byteCount[uc]++;
299
290
  }
300
- var pos = 0, current = 0, run = 0;
291
+ var pos = 0,
292
+ current = 0,
293
+ run = 0;
301
294
  if (count) {
302
- pos = buf[origPtr];
303
- current = (pos & 0xff);
304
- pos >>= 8;
305
- run = -1;
295
+ pos = buf[origPtr];
296
+ current = pos & 0xff;
297
+ pos >>= 8;
298
+ run = -1;
306
299
  }
307
300
  count = count;
308
301
  var copies, previous, outbyte;
309
- while(count) {
310
- count--;
311
- previous = current;
312
- pos = buf[pos];
313
- current = pos & 0xff;
314
- pos >>= 8;
315
- if (run++ == 3) {
316
- copies = current;
317
- outbyte = previous;
318
- current = -1;
319
- } else {
320
- copies = 1;
321
- outbyte = current;
322
- }
323
- while(copies--) {
324
- crc = ((crc << 8) ^ this.crcTable[((crc>>24) ^ outbyte) & 0xFF])&0xFFFFFFFF; // crc32
325
- stream(outbyte);
326
- }
327
- if (current != previous) run = 0;
302
+ while (count) {
303
+ count--;
304
+ previous = current;
305
+ pos = buf[pos];
306
+ current = pos & 0xff;
307
+ pos >>= 8;
308
+ if (run++ == 3) {
309
+ copies = current;
310
+ outbyte = previous;
311
+ current = -1;
312
+ } else {
313
+ copies = 1;
314
+ outbyte = current;
315
+ }
316
+ while (copies--) {
317
+ crc =
318
+ ((crc << 8) ^ this.crcTable[((crc >> 24) ^ outbyte) & 0xff]) &
319
+ 0xffffffff; // crc32
320
+ stream(outbyte);
321
+ }
322
+ if (current != previous) run = 0;
328
323
  }
329
-
330
- crc = (crc ^ (-1)) >>> 0;
331
- if ((crc|0) != (crcblock|0)) messageArg.Error("Error in bzip2: crc32 do not match");
332
- streamCRC = (crc ^ ((streamCRC << 1) | (streamCRC >>> 31))) & 0xFFFFFFFF;
324
+
325
+ crc = (crc ^ -1) >>> 0;
326
+ if ((crc | 0) != (crcblock | 0))
327
+ messageArg.Error('Error in bzip2: crc32 do not match');
328
+ streamCRC = (crc ^ ((streamCRC << 1) | (streamCRC >>> 31))) & 0xffffffff;
333
329
  return streamCRC;
334
330
  };
335
- };
331
+ }
package/ts/bzip2/index.ts CHANGED
@@ -26,7 +26,13 @@ export function unbzip2Stream() {
26
26
  chunk.push(b);
27
27
  };
28
28
 
29
- streamCRC = bzip2Instance.decompress(bitReader, f, buf, bufsize, streamCRC);
29
+ streamCRC = bzip2Instance.decompress(
30
+ bitReader,
31
+ f,
32
+ buf,
33
+ bufsize,
34
+ streamCRC,
35
+ );
30
36
  if (streamCRC === null) {
31
37
  // reset for next bzip2 header
32
38
  blockSize = 0;
@@ -66,7 +72,10 @@ export function unbzip2Stream() {
66
72
  return bufferQueue.shift();
67
73
  });
68
74
  }
69
- while (!broken && hasBytes - bitReader.bytesRead + 1 >= (25000 + 100000 * blockSize || 4)) {
75
+ while (
76
+ !broken &&
77
+ hasBytes - bitReader.bytesRead + 1 >= (25000 + 100000 * blockSize || 4)
78
+ ) {
70
79
  //console.error('decompressing with', hasBytes - bitReader.bytesRead + 1, 'bytes in buffer');
71
80
  const result = await decompressAndPush();
72
81
  if (!result) {
@@ -86,7 +95,8 @@ export function unbzip2Stream() {
86
95
  await streamTools.push(result);
87
96
  }
88
97
  if (!broken) {
89
- if (streamCRC !== null) this.emit('error', new Error('input stream ended prematurely'));
98
+ if (streamCRC !== null)
99
+ this.emit('error', new Error('input stream ended prematurely'));
90
100
  }
91
101
  },
92
102
  });