node-pkware 5.8.0 → 5.9.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/README.md +13 -2
- package/dist/functions.d.ts +7 -2
- package/dist/functions.js +25 -7
- package/dist/functions.js.map +1 -1
- package/dist/simple/Explode.d.ts +32 -9
- package/dist/simple/Explode.js +109 -84
- package/dist/simple/Explode.js.map +1 -1
- package/dist/simple/index.d.ts +1 -1
- package/dist/simple/index.js +1 -1
- package/dist/simple/index.js.map +1 -1
- package/dist/stream/Explode.d.ts +3 -3
- package/dist/stream/Explode.js +3 -3
- package/package.json +1 -1
- package/xo.config.ts +6 -1
package/README.md
CHANGED
|
@@ -124,7 +124,7 @@ The returned function has the `(chunk: Buffer, encoding: string, callback: funct
|
|
|
124
124
|
### Examples
|
|
125
125
|
|
|
126
126
|
There are 2 APIs: "node-pkware/simple" and "node-pkware/stream".
|
|
127
|
-
The "simple" api is recommended as it is much more
|
|
127
|
+
The "simple" api is recommended as it is much more performant compared to the "stream" api.
|
|
128
128
|
|
|
129
129
|
#### Compressing ArrayBuffer with the "simple" API (works in browser too)
|
|
130
130
|
|
|
@@ -235,6 +235,17 @@ fs.createReadStream(`path-to-compressed-file`)
|
|
|
235
235
|
)
|
|
236
236
|
```
|
|
237
237
|
|
|
238
|
+
## Other infos
|
|
239
|
+
|
|
240
|
+
`TypedArray.byteLength` is much slower compared to caching the length of the TypedArray yourself, even though the
|
|
241
|
+
[documentation on MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer#instance_properties)
|
|
242
|
+
says that:
|
|
243
|
+
|
|
244
|
+
> The size, in bytes, of the ArrayBuffer. This is established when the array is constructed and can only be
|
|
245
|
+
> changed using the ArrayBuffer.prototype.resize() method if the ArrayBuffer is resizable.
|
|
246
|
+
|
|
247
|
+
_(tested in node v20.19.2)_
|
|
248
|
+
|
|
238
249
|
## Useful links
|
|
239
250
|
|
|
240
251
|
### Test files
|
|
@@ -251,7 +262,7 @@ https://github.com/arx-tools/pkware-test-files
|
|
|
251
262
|
|
|
252
263
|
Implode was removed from Arx Libertatis at this commit: https://github.com/arx/ArxLibertatis/commit/2db9f0dd023fdd5d4da6f06c08a92d932e218187
|
|
253
264
|
|
|
254
|
-
### Miscellaneous
|
|
265
|
+
### Miscellaneous
|
|
255
266
|
|
|
256
267
|
- https://stackoverflow.com/questions/2094666/pointers-in-c-when-to-use-the-ampersand-and-the-asterisk
|
|
257
268
|
- https://stackoverflow.com/a/49394095/1806628
|
package/dist/functions.d.ts
CHANGED
|
@@ -105,7 +105,7 @@ export declare function toHex(num: number, digits?: number, withoutPrefix?: bool
|
|
|
105
105
|
* mergeSparseArrays(a, b) // -> [1, undefined, 2, 13, 3]
|
|
106
106
|
* ```
|
|
107
107
|
*/
|
|
108
|
-
export declare function mergeSparseArrays<T>(a: T[], b: T[]):
|
|
108
|
+
export declare function mergeSparseArrays<T>(a: T[], b: T[]): Array<T | undefined>;
|
|
109
109
|
/**
|
|
110
110
|
* Builds a list from a seed value. Accepts an iterator function, which returns
|
|
111
111
|
* either false to stop iteration or an array of length 2 containing the value
|
|
@@ -140,6 +140,11 @@ export declare function unfold<T, TResult>(fn: (seed: T) => [result: TResult, ne
|
|
|
140
140
|
export declare function quotientAndRemainder(dividend: number, divisor: number): [quotient: number, remainder: number];
|
|
141
141
|
/**
|
|
142
142
|
* @see https://stackoverflow.com/a/49129872/1806628
|
|
143
|
+
*
|
|
143
144
|
*/
|
|
144
|
-
export declare function
|
|
145
|
+
export declare function concatArrayBuffersAndLengthedDatas(buffers: Array<ArrayBufferLike | {
|
|
146
|
+
data: number[];
|
|
147
|
+
byteLength: number;
|
|
148
|
+
}>, totalLength?: number): ArrayBuffer;
|
|
145
149
|
export declare function sliceArrayBufferAt(buffer: ArrayBufferLike, at: number): [ArrayBuffer, ArrayBuffer];
|
|
150
|
+
export declare function uint8ArrayToArray(view: Uint8Array, from: number, length: number): number[];
|
package/dist/functions.js
CHANGED
|
@@ -195,22 +195,33 @@ export function unfold(fn, seed) {
|
|
|
195
195
|
export function quotientAndRemainder(dividend, divisor) {
|
|
196
196
|
return [Math.floor(dividend / divisor), dividend % divisor];
|
|
197
197
|
}
|
|
198
|
+
function isArrayBufferLike(buffer) {
|
|
199
|
+
return buffer instanceof ArrayBuffer || buffer instanceof SharedArrayBuffer;
|
|
200
|
+
}
|
|
198
201
|
/**
|
|
199
202
|
* @see https://stackoverflow.com/a/49129872/1806628
|
|
203
|
+
*
|
|
200
204
|
*/
|
|
201
|
-
export function
|
|
202
|
-
if (buffers.length === 1) {
|
|
205
|
+
export function concatArrayBuffersAndLengthedDatas(buffers, totalLength) {
|
|
206
|
+
if (buffers.length === 1 && 'byteLength' in buffers[0]) {
|
|
203
207
|
return buffers[0];
|
|
204
208
|
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
209
|
+
if (totalLength === undefined) {
|
|
210
|
+
totalLength = 0;
|
|
211
|
+
for (const buffer of buffers) {
|
|
212
|
+
totalLength = totalLength + buffer.byteLength;
|
|
213
|
+
}
|
|
208
214
|
}
|
|
209
215
|
const combinedBuffer = new Uint8Array(totalLength);
|
|
210
216
|
let offset = 0;
|
|
211
217
|
for (const buffer of buffers) {
|
|
212
|
-
|
|
213
|
-
|
|
218
|
+
if (isArrayBufferLike(buffer)) {
|
|
219
|
+
const view = new Uint8Array(buffer);
|
|
220
|
+
combinedBuffer.set(view, offset);
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
combinedBuffer.set(buffer.data, offset);
|
|
224
|
+
}
|
|
214
225
|
offset = offset + buffer.byteLength;
|
|
215
226
|
}
|
|
216
227
|
return combinedBuffer.buffer;
|
|
@@ -221,4 +232,11 @@ export function sliceArrayBufferAt(buffer, at) {
|
|
|
221
232
|
const right = view.slice(at).buffer;
|
|
222
233
|
return [left, right];
|
|
223
234
|
}
|
|
235
|
+
export function uint8ArrayToArray(view, from, length) {
|
|
236
|
+
const arr = [];
|
|
237
|
+
for (let i = 0; i < length; i++) {
|
|
238
|
+
arr.push(view[from + i]);
|
|
239
|
+
}
|
|
240
|
+
return arr;
|
|
241
|
+
}
|
|
224
242
|
//# sourceMappingURL=functions.js.map
|
package/dist/functions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,MAAM,CAAI,KAAQ,EAAE,WAAmB;IACrD,MAAM,MAAM,GAAQ,EAAE,CAAA;IAEtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACpB,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,KAAK,CAAC,CAAS,EAAE,GAAW,EAAE,GAAW;IACvD,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACZ,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACZ,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,OAAO,CAAC,CAAA;AACV,CAAC;AAED;;GAEG;AACH,uMAAuM;AACvM,MAAM,UAAU,UAAU,CAAC,CAAM;IAC/B,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,mBAAmB,CAAA;AAClE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,YAAoB;IAC9C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACxD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,OAAO,CAAC,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,CAAA;AAChC,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,YAAoB;IACnE,OAAO,MAAM,GAAG,WAAW,CAAC,YAAY,CAAC,CAAA;AAC3C,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,KAAK,CAAC,GAAW,EAAE,SAAiB,CAAC,EAAE,gBAAyB,KAAK;IACnF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACtE,OAAO,EAAE,CAAA;IACX,CAAC;IAED,IAAI,MAAM,GAAG,IAAI,CAAA;IACjB,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,GAAG,EAAE,CAAA;IACb,CAAC;IAED,OAAO,GAAG,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAA;AAC7D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,iBAAiB,CAAI,CAAM,EAAE,CAAM;IACjD,IAAI,
|
|
1
|
+
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"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"}
|
package/dist/simple/Explode.d.ts
CHANGED
|
@@ -1,12 +1,28 @@
|
|
|
1
1
|
export declare class Explode {
|
|
2
|
+
private readonly inputBuffer;
|
|
3
|
+
/**
|
|
4
|
+
* Used for accessing the data within inputBuffer
|
|
5
|
+
*/
|
|
6
|
+
private readonly inputBufferView;
|
|
7
|
+
/**
|
|
8
|
+
* Used for caching inputBuffer.byteLength as that getter is doing some uncached computation to measure the length of
|
|
9
|
+
* inputBuffer
|
|
10
|
+
*/
|
|
11
|
+
private readonly inputBufferSize;
|
|
12
|
+
/**
|
|
13
|
+
* The explode algorithm works by trimming off the beginning of inputBuffer byte by byte. Instead of actually
|
|
14
|
+
* adjusting the inputBuffer every time a byte is handled we store the beginning of the unhandled section and use it
|
|
15
|
+
* when indexing data that is being read.
|
|
16
|
+
*/
|
|
17
|
+
private inputBufferStartIndex;
|
|
18
|
+
private outputBuffer;
|
|
19
|
+
private outputBufferView;
|
|
20
|
+
private outputBufferSize;
|
|
2
21
|
private needMoreInput;
|
|
3
22
|
private extraBits;
|
|
4
23
|
private bitBuffer;
|
|
5
24
|
private readonly lengthCodes;
|
|
6
25
|
private readonly distPosCodes;
|
|
7
|
-
private readonly inputBuffer;
|
|
8
|
-
private inputBufferStartIndex;
|
|
9
|
-
private outputBuffer;
|
|
10
26
|
private compressionType;
|
|
11
27
|
private dictionarySize;
|
|
12
28
|
private dictionarySizeMask;
|
|
@@ -29,24 +45,31 @@ export declare class Explode {
|
|
|
29
45
|
private asciiTable2EB4;
|
|
30
46
|
constructor(input: ArrayBufferLike);
|
|
31
47
|
/**
|
|
32
|
-
* @throws
|
|
33
|
-
* @throws
|
|
34
|
-
* @throws
|
|
48
|
+
* @throws `InvalidCompressionTypeError`
|
|
49
|
+
* @throws `InvalidDictionarySizeError`
|
|
50
|
+
* @throws `AbortedError`
|
|
35
51
|
*/
|
|
36
52
|
getResult(): ArrayBuffer;
|
|
37
53
|
private generateAsciiTables;
|
|
38
54
|
/**
|
|
39
|
-
* @throws
|
|
55
|
+
* @throws `AbortedError` when there isn't enough data to be wasted
|
|
40
56
|
*/
|
|
41
57
|
private wasteBits;
|
|
42
58
|
/**
|
|
43
|
-
* @throws
|
|
59
|
+
* @throws `AbortedError`
|
|
44
60
|
*/
|
|
45
61
|
private decodeNextLiteral;
|
|
46
62
|
/**
|
|
47
|
-
* @throws
|
|
63
|
+
* @throws `AbortedError`
|
|
48
64
|
*/
|
|
49
65
|
private decodeDistance;
|
|
50
66
|
private processInput;
|
|
51
67
|
private parseInitialData;
|
|
68
|
+
/**
|
|
69
|
+
* This function assumes there are at least 2 bytes of data in the buffer
|
|
70
|
+
*
|
|
71
|
+
* @throws `InvalidCompressionTypeError`
|
|
72
|
+
* @throws `InvalidDictionarySizeError`
|
|
73
|
+
*/
|
|
74
|
+
private readHeader;
|
|
52
75
|
}
|
package/dist/simple/Explode.js
CHANGED
|
@@ -1,48 +1,6 @@
|
|
|
1
1
|
import { ChBitsAsc, ChCodeAsc, DistBits, DistCode, EMPTY_BUFFER, ExLenBits, LenBase, LenBits, LenCode, LITERAL_END_STREAM, } from '../constants.js';
|
|
2
2
|
import { AbortedError, InvalidCompressionTypeError, InvalidDictionarySizeError } from '../errors.js';
|
|
3
|
-
import { getLowestNBitsOf, mergeSparseArrays, nBitsOfOnes, repeat, unfold,
|
|
4
|
-
/**
|
|
5
|
-
* This function assumes there are at least 2 bytes of data in the buffer
|
|
6
|
-
*/
|
|
7
|
-
function readHeader(buffer) {
|
|
8
|
-
let compressionType;
|
|
9
|
-
const view = new Uint8Array(buffer);
|
|
10
|
-
switch (view[0]) {
|
|
11
|
-
case 0: {
|
|
12
|
-
compressionType = 'binary';
|
|
13
|
-
break;
|
|
14
|
-
}
|
|
15
|
-
case 1: {
|
|
16
|
-
compressionType = 'ascii';
|
|
17
|
-
break;
|
|
18
|
-
}
|
|
19
|
-
default: {
|
|
20
|
-
throw new InvalidCompressionTypeError();
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
let dictionarySize;
|
|
24
|
-
switch (view[1]) {
|
|
25
|
-
case 4: {
|
|
26
|
-
dictionarySize = 'small';
|
|
27
|
-
break;
|
|
28
|
-
}
|
|
29
|
-
case 5: {
|
|
30
|
-
dictionarySize = 'medium';
|
|
31
|
-
break;
|
|
32
|
-
}
|
|
33
|
-
case 6: {
|
|
34
|
-
dictionarySize = 'large';
|
|
35
|
-
break;
|
|
36
|
-
}
|
|
37
|
-
default: {
|
|
38
|
-
throw new InvalidDictionarySizeError();
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
return {
|
|
42
|
-
compressionType,
|
|
43
|
-
dictionarySize,
|
|
44
|
-
};
|
|
45
|
-
}
|
|
3
|
+
import { getLowestNBitsOf, mergeSparseArrays, nBitsOfOnes, repeat, unfold, concatArrayBuffersAndLengthedDatas, sliceArrayBufferAt, uint8ArrayToArray, } from '../functions.js';
|
|
46
4
|
function generateDecodeTables(startIndexes, lengthBits) {
|
|
47
5
|
const codes = repeat(0, 0x1_00);
|
|
48
6
|
lengthBits.forEach((lengthBit, i) => {
|
|
@@ -74,14 +32,30 @@ function populateAsciiTable(value, index, bits, limit) {
|
|
|
74
32
|
return table;
|
|
75
33
|
}
|
|
76
34
|
export class Explode {
|
|
35
|
+
inputBuffer;
|
|
36
|
+
/**
|
|
37
|
+
* Used for accessing the data within inputBuffer
|
|
38
|
+
*/
|
|
39
|
+
inputBufferView;
|
|
40
|
+
/**
|
|
41
|
+
* Used for caching inputBuffer.byteLength as that getter is doing some uncached computation to measure the length of
|
|
42
|
+
* inputBuffer
|
|
43
|
+
*/
|
|
44
|
+
inputBufferSize;
|
|
45
|
+
/**
|
|
46
|
+
* The explode algorithm works by trimming off the beginning of inputBuffer byte by byte. Instead of actually
|
|
47
|
+
* adjusting the inputBuffer every time a byte is handled we store the beginning of the unhandled section and use it
|
|
48
|
+
* when indexing data that is being read.
|
|
49
|
+
*/
|
|
50
|
+
inputBufferStartIndex;
|
|
51
|
+
outputBuffer;
|
|
52
|
+
outputBufferView;
|
|
53
|
+
outputBufferSize;
|
|
77
54
|
needMoreInput;
|
|
78
55
|
extraBits;
|
|
79
56
|
bitBuffer;
|
|
80
57
|
lengthCodes;
|
|
81
58
|
distPosCodes;
|
|
82
|
-
inputBuffer;
|
|
83
|
-
inputBufferStartIndex;
|
|
84
|
-
outputBuffer;
|
|
85
59
|
compressionType;
|
|
86
60
|
dictionarySize;
|
|
87
61
|
dictionarySizeMask;
|
|
@@ -109,8 +83,12 @@ export class Explode {
|
|
|
109
83
|
this.lengthCodes = generateDecodeTables(LenCode, LenBits);
|
|
110
84
|
this.distPosCodes = generateDecodeTables(DistCode, DistBits);
|
|
111
85
|
this.inputBuffer = input;
|
|
86
|
+
this.inputBufferView = new Uint8Array(this.inputBuffer);
|
|
87
|
+
this.inputBufferSize = this.inputBuffer.byteLength;
|
|
112
88
|
this.inputBufferStartIndex = 0;
|
|
113
89
|
this.outputBuffer = EMPTY_BUFFER;
|
|
90
|
+
this.outputBufferView = new Uint8Array(this.outputBuffer);
|
|
91
|
+
this.outputBufferSize = 0;
|
|
114
92
|
this.compressionType = 'unknown';
|
|
115
93
|
this.dictionarySize = 'unknown';
|
|
116
94
|
this.dictionarySizeMask = 0;
|
|
@@ -125,12 +103,12 @@ export class Explode {
|
|
|
125
103
|
}
|
|
126
104
|
}
|
|
127
105
|
/**
|
|
128
|
-
* @throws
|
|
129
|
-
* @throws
|
|
130
|
-
* @throws
|
|
106
|
+
* @throws `InvalidCompressionTypeError`
|
|
107
|
+
* @throws `InvalidDictionarySizeError`
|
|
108
|
+
* @throws `AbortedError`
|
|
131
109
|
*/
|
|
132
110
|
getResult() {
|
|
133
|
-
return this.outputBuffer.slice(0, this.
|
|
111
|
+
return this.outputBuffer.slice(0, this.outputBufferSize);
|
|
134
112
|
}
|
|
135
113
|
generateAsciiTables() {
|
|
136
114
|
this.chBitsAsc = ChBitsAsc.map((value, index) => {
|
|
@@ -153,10 +131,10 @@ export class Explode {
|
|
|
153
131
|
});
|
|
154
132
|
}
|
|
155
133
|
/**
|
|
156
|
-
* @throws
|
|
134
|
+
* @throws `AbortedError` when there isn't enough data to be wasted
|
|
157
135
|
*/
|
|
158
136
|
wasteBits(numberOfBits) {
|
|
159
|
-
if (numberOfBits > this.extraBits && this.
|
|
137
|
+
if (numberOfBits > this.extraBits && this.inputBufferSize - this.inputBufferStartIndex === 0) {
|
|
160
138
|
throw new AbortedError();
|
|
161
139
|
}
|
|
162
140
|
if (numberOfBits <= this.extraBits) {
|
|
@@ -164,14 +142,13 @@ export class Explode {
|
|
|
164
142
|
this.extraBits = this.extraBits - numberOfBits;
|
|
165
143
|
return;
|
|
166
144
|
}
|
|
167
|
-
const
|
|
168
|
-
const nextByte = inputBufferView[this.inputBufferStartIndex];
|
|
145
|
+
const nextByte = this.inputBufferView[this.inputBufferStartIndex];
|
|
169
146
|
this.inputBufferStartIndex = this.inputBufferStartIndex + 1;
|
|
170
147
|
this.bitBuffer = ((this.bitBuffer >> this.extraBits) | (nextByte << 8)) >> (numberOfBits - this.extraBits);
|
|
171
148
|
this.extraBits = this.extraBits + 8 - numberOfBits;
|
|
172
149
|
}
|
|
173
150
|
/**
|
|
174
|
-
* @throws
|
|
151
|
+
* @throws `AbortedError`
|
|
175
152
|
*/
|
|
176
153
|
decodeNextLiteral() {
|
|
177
154
|
const lastBit = getLowestNBitsOf(this.bitBuffer, 1);
|
|
@@ -221,7 +198,7 @@ export class Explode {
|
|
|
221
198
|
return value;
|
|
222
199
|
}
|
|
223
200
|
/**
|
|
224
|
-
* @throws
|
|
201
|
+
* @throws `AbortedError`
|
|
225
202
|
*/
|
|
226
203
|
decodeDistance(repeatLength) {
|
|
227
204
|
const distPosCode = this.distPosCodes[getLowestNBitsOf(this.bitBuffer, 8)];
|
|
@@ -256,15 +233,10 @@ export class Explode {
|
|
|
256
233
|
return distance + 1;
|
|
257
234
|
}
|
|
258
235
|
processInput() {
|
|
259
|
-
|
|
236
|
+
const headerParsedSuccessfully = this.parseInitialData();
|
|
237
|
+
if (!headerParsedSuccessfully || this.inputBufferSize - this.inputBufferStartIndex === 0) {
|
|
260
238
|
return;
|
|
261
239
|
}
|
|
262
|
-
if (this.compressionType === 'unknown') {
|
|
263
|
-
const headerParsedSuccessfully = this.parseInitialData();
|
|
264
|
-
if (!headerParsedSuccessfully || this.inputBuffer.byteLength - this.inputBufferStartIndex === 0) {
|
|
265
|
-
return;
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
240
|
this.needMoreInput = false;
|
|
269
241
|
const additions = [];
|
|
270
242
|
let additionsByteSum = 0;
|
|
@@ -275,10 +247,7 @@ export class Explode {
|
|
|
275
247
|
while (nextLiteral !== LITERAL_END_STREAM) {
|
|
276
248
|
// we have a character literal here
|
|
277
249
|
if (nextLiteral < 0x1_00) {
|
|
278
|
-
|
|
279
|
-
const additionView = new Uint8Array(addition);
|
|
280
|
-
additionView[0] = nextLiteral;
|
|
281
|
-
additions.push(addition);
|
|
250
|
+
additions.push({ data: [nextLiteral], byteLength: 1 });
|
|
282
251
|
additionsByteSum = additionsByteSum + 1;
|
|
283
252
|
nextLiteral = this.decodeNextLiteral();
|
|
284
253
|
continue;
|
|
@@ -289,49 +258,61 @@ export class Explode {
|
|
|
289
258
|
const repeatLength = nextLiteral - 0xfe;
|
|
290
259
|
const minusDistance = this.decodeDistance(repeatLength);
|
|
291
260
|
// dump the beginning of the output buffer if outputBuffer and the additions exceed 2 blocks
|
|
292
|
-
if (this.
|
|
293
|
-
this.
|
|
261
|
+
if (this.outputBufferSize + additionsByteSum > blockSize * 2) {
|
|
262
|
+
this.outputBufferSize = this.outputBufferSize + additionsByteSum;
|
|
263
|
+
this.outputBuffer = concatArrayBuffersAndLengthedDatas([this.outputBuffer, ...additions], this.outputBufferSize);
|
|
264
|
+
this.outputBufferView = new Uint8Array(this.outputBuffer);
|
|
294
265
|
additions.length = 0;
|
|
295
266
|
additionsByteSum = 0;
|
|
296
267
|
const [a, b] = sliceArrayBufferAt(this.outputBuffer, blockSize);
|
|
297
268
|
finalizedChunks.push(a);
|
|
298
269
|
this.outputBuffer = b;
|
|
270
|
+
this.outputBufferView = new Uint8Array(this.outputBuffer);
|
|
271
|
+
this.outputBufferSize = this.outputBufferSize - blockSize;
|
|
299
272
|
}
|
|
300
|
-
const start = this.
|
|
273
|
+
const start = this.outputBufferSize + additionsByteSum - minusDistance;
|
|
301
274
|
// only add the additions if the "repetition" bleeds into the bytes of "additions"
|
|
302
|
-
if (this.
|
|
303
|
-
this.
|
|
275
|
+
if (this.outputBufferSize < start + repeatLength) {
|
|
276
|
+
this.outputBufferSize = this.outputBufferSize + additionsByteSum;
|
|
277
|
+
this.outputBuffer = concatArrayBuffersAndLengthedDatas([this.outputBuffer, ...additions], this.outputBufferSize);
|
|
278
|
+
this.outputBufferView = new Uint8Array(this.outputBuffer);
|
|
304
279
|
additions.length = 0;
|
|
305
280
|
additionsByteSum = 0;
|
|
306
281
|
}
|
|
307
|
-
const
|
|
308
|
-
|
|
282
|
+
const availableDataLength = Math.min(start + repeatLength, this.outputBufferSize) - start;
|
|
283
|
+
const availableData = {
|
|
284
|
+
data: uint8ArrayToArray(this.outputBufferView, start, availableDataLength),
|
|
285
|
+
byteLength: availableDataLength,
|
|
286
|
+
};
|
|
309
287
|
if (repeatLength > minusDistance) {
|
|
310
|
-
const
|
|
311
|
-
|
|
288
|
+
const repeats = Math.ceil(repeatLength / availableData.byteLength);
|
|
289
|
+
const multipliedData = repeat(availableData, repeats);
|
|
290
|
+
const addition = concatArrayBuffersAndLengthedDatas(multipliedData, repeatLength * repeats).slice(0, repeatLength);
|
|
291
|
+
additions.push(addition);
|
|
292
|
+
additionsByteSum = additionsByteSum + repeatLength;
|
|
312
293
|
}
|
|
313
294
|
else {
|
|
314
|
-
|
|
295
|
+
additions.push(availableData);
|
|
296
|
+
additionsByteSum = additionsByteSum + availableData.byteLength;
|
|
315
297
|
}
|
|
316
|
-
additions.push(addition);
|
|
317
|
-
additionsByteSum = additionsByteSum + addition.byteLength;
|
|
318
298
|
nextLiteral = this.decodeNextLiteral();
|
|
319
299
|
}
|
|
320
300
|
}
|
|
321
301
|
catch {
|
|
322
302
|
this.needMoreInput = true;
|
|
323
303
|
}
|
|
324
|
-
this.
|
|
304
|
+
this.outputBufferSize = finalizedChunks.length * blockSize + this.outputBufferSize + additionsByteSum;
|
|
305
|
+
this.outputBuffer = concatArrayBuffersAndLengthedDatas([...finalizedChunks, this.outputBuffer, ...additions], this.outputBufferSize);
|
|
306
|
+
this.outputBufferView = new Uint8Array(this.outputBuffer);
|
|
325
307
|
}
|
|
326
308
|
parseInitialData() {
|
|
327
|
-
if (this.
|
|
309
|
+
if (this.inputBufferSize < 4) {
|
|
328
310
|
return false;
|
|
329
311
|
}
|
|
330
|
-
const { compressionType, dictionarySize } =
|
|
312
|
+
const { compressionType, dictionarySize } = this.readHeader();
|
|
331
313
|
this.compressionType = compressionType;
|
|
332
314
|
this.dictionarySize = dictionarySize;
|
|
333
|
-
|
|
334
|
-
this.bitBuffer = inputBufferView[this.inputBufferStartIndex + 2];
|
|
315
|
+
this.bitBuffer = this.inputBufferView[this.inputBufferStartIndex + 2];
|
|
335
316
|
this.inputBufferStartIndex = this.inputBufferStartIndex + 3;
|
|
336
317
|
switch (dictionarySize) {
|
|
337
318
|
case 'small': {
|
|
@@ -352,5 +333,49 @@ export class Explode {
|
|
|
352
333
|
}
|
|
353
334
|
return true;
|
|
354
335
|
}
|
|
336
|
+
/**
|
|
337
|
+
* This function assumes there are at least 2 bytes of data in the buffer
|
|
338
|
+
*
|
|
339
|
+
* @throws `InvalidCompressionTypeError`
|
|
340
|
+
* @throws `InvalidDictionarySizeError`
|
|
341
|
+
*/
|
|
342
|
+
readHeader() {
|
|
343
|
+
let compressionType;
|
|
344
|
+
switch (this.inputBufferView[0]) {
|
|
345
|
+
case 0: {
|
|
346
|
+
compressionType = 'binary';
|
|
347
|
+
break;
|
|
348
|
+
}
|
|
349
|
+
case 1: {
|
|
350
|
+
compressionType = 'ascii';
|
|
351
|
+
break;
|
|
352
|
+
}
|
|
353
|
+
default: {
|
|
354
|
+
throw new InvalidCompressionTypeError();
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
let dictionarySize;
|
|
358
|
+
switch (this.inputBufferView[1]) {
|
|
359
|
+
case 4: {
|
|
360
|
+
dictionarySize = 'small';
|
|
361
|
+
break;
|
|
362
|
+
}
|
|
363
|
+
case 5: {
|
|
364
|
+
dictionarySize = 'medium';
|
|
365
|
+
break;
|
|
366
|
+
}
|
|
367
|
+
case 6: {
|
|
368
|
+
dictionarySize = 'large';
|
|
369
|
+
break;
|
|
370
|
+
}
|
|
371
|
+
default: {
|
|
372
|
+
throw new InvalidDictionarySizeError();
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
return {
|
|
376
|
+
compressionType,
|
|
377
|
+
dictionarySize,
|
|
378
|
+
};
|
|
379
|
+
}
|
|
355
380
|
}
|
|
356
381
|
//# sourceMappingURL=Explode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Explode.js","sourceRoot":"","sources":["../../src/simple/Explode.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Explode.js","sourceRoot":"","sources":["../../src/simple/Explode.ts"],"names":[],"mappings":"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"}
|
package/dist/simple/index.d.ts
CHANGED
|
@@ -3,5 +3,5 @@ export declare function explode(input: ArrayBufferLike): ArrayBuffer;
|
|
|
3
3
|
export declare function implode(input: ArrayBufferLike, compressionType: CompressionType, dictionarySize: DictionarySize): ArrayBuffer;
|
|
4
4
|
export { explode as decompress };
|
|
5
5
|
export { implode as compress };
|
|
6
|
-
export { concatArrayBuffers, sliceArrayBufferAt } from '../functions.js';
|
|
6
|
+
export { concatArrayBuffersAndLengthedDatas as concatArrayBuffers, sliceArrayBufferAt } from '../functions.js';
|
|
7
7
|
export type { CompressionType, DictionarySize } from '../simple/types.js';
|
package/dist/simple/index.js
CHANGED
|
@@ -12,5 +12,5 @@ export { explode as decompress };
|
|
|
12
12
|
export { implode as compress };
|
|
13
13
|
// -----------------
|
|
14
14
|
// utils and types
|
|
15
|
-
export { concatArrayBuffers, sliceArrayBufferAt } from '../functions.js';
|
|
15
|
+
export { concatArrayBuffersAndLengthedDatas as concatArrayBuffers, sliceArrayBufferAt } from '../functions.js';
|
|
16
16
|
//# sourceMappingURL=index.js.map
|
package/dist/simple/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/simple/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAGhD,MAAM,UAAU,OAAO,CAAC,KAAsB;IAC5C,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,CAAA;IACnC,OAAO,QAAQ,CAAC,SAAS,EAAE,CAAA;AAC7B,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,KAAsB,EACtB,eAAgC,EAChC,cAA8B;IAE9B,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,eAAe,EAAE,cAAc,CAAC,CAAA;IACpE,OAAO,QAAQ,CAAC,SAAS,EAAE,CAAA;AAC7B,CAAC;AAED,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,CAAA;AAChC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,CAAA;AAE9B,oBAAoB;AACpB,kBAAkB;AAElB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/simple/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAGhD,MAAM,UAAU,OAAO,CAAC,KAAsB;IAC5C,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,CAAA;IACnC,OAAO,QAAQ,CAAC,SAAS,EAAE,CAAA;AAC7B,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,KAAsB,EACtB,eAAgC,EAChC,cAA8B;IAE9B,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,eAAe,EAAE,cAAc,CAAC,CAAA;IACpE,OAAO,QAAQ,CAAC,SAAS,EAAE,CAAA;AAC7B,CAAC;AAED,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,CAAA;AAChC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,CAAA;AAE9B,oBAAoB;AACpB,kBAAkB;AAElB,OAAO,EAAE,kCAAkC,IAAI,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA"}
|
package/dist/stream/Explode.d.ts
CHANGED
|
@@ -26,15 +26,15 @@ export declare class Explode {
|
|
|
26
26
|
private generateAsciiTables;
|
|
27
27
|
private onInputFinished;
|
|
28
28
|
/**
|
|
29
|
-
* @throws
|
|
29
|
+
* @throws `AbortedError` when there isn't enough data to be wasted
|
|
30
30
|
*/
|
|
31
31
|
private wasteBits;
|
|
32
32
|
/**
|
|
33
|
-
* @throws
|
|
33
|
+
* @throws `AbortedError`
|
|
34
34
|
*/
|
|
35
35
|
private decodeNextLiteral;
|
|
36
36
|
/**
|
|
37
|
-
* @throws
|
|
37
|
+
* @throws `AbortedError`
|
|
38
38
|
*/
|
|
39
39
|
private decodeDistance;
|
|
40
40
|
private processChunkData;
|
package/dist/stream/Explode.js
CHANGED
|
@@ -160,7 +160,7 @@ export class Explode {
|
|
|
160
160
|
callback(null, this.outputBuffer.read());
|
|
161
161
|
}
|
|
162
162
|
/**
|
|
163
|
-
* @throws
|
|
163
|
+
* @throws `AbortedError` when there isn't enough data to be wasted
|
|
164
164
|
*/
|
|
165
165
|
wasteBits(numberOfBits) {
|
|
166
166
|
if (numberOfBits > this.extraBits && this.inputBuffer.isEmpty()) {
|
|
@@ -177,7 +177,7 @@ export class Explode {
|
|
|
177
177
|
this.extraBits = this.extraBits + 8 - numberOfBits;
|
|
178
178
|
}
|
|
179
179
|
/**
|
|
180
|
-
* @throws
|
|
180
|
+
* @throws `AbortedError`
|
|
181
181
|
*/
|
|
182
182
|
decodeNextLiteral() {
|
|
183
183
|
const lastBit = getLowestNBitsOf(this.bitBuffer, 1);
|
|
@@ -227,7 +227,7 @@ export class Explode {
|
|
|
227
227
|
return value;
|
|
228
228
|
}
|
|
229
229
|
/**
|
|
230
|
-
* @throws
|
|
230
|
+
* @throws `AbortedError`
|
|
231
231
|
*/
|
|
232
232
|
decodeDistance(repeatLength) {
|
|
233
233
|
const distPosCode = this.distPosCodes[getLowestNBitsOf(this.bitBuffer, 8)];
|
package/package.json
CHANGED
package/xo.config.ts
CHANGED
|
@@ -37,7 +37,12 @@ const xoConfig: FlatXoConfig = {
|
|
|
37
37
|
{ fixStyle: 'separate-type-imports', prefer: 'type-imports' },
|
|
38
38
|
],
|
|
39
39
|
'@typescript-eslint/explicit-function-return-type': 'error',
|
|
40
|
-
'@typescript-eslint/array-type': [
|
|
40
|
+
'@typescript-eslint/array-type': [
|
|
41
|
+
'error',
|
|
42
|
+
{
|
|
43
|
+
default: 'array-simple',
|
|
44
|
+
},
|
|
45
|
+
],
|
|
41
46
|
'@typescript-eslint/parameter-properties': ['error', { prefer: 'class-property' }],
|
|
42
47
|
'operator-assignment': ['error', 'never'],
|
|
43
48
|
'logical-assignment-operators': ['error', 'never'],
|