node-pkware 3.0.5 → 4.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ExpandingBuffer.d.ts +0 -1
- package/dist/ExpandingBuffer.js +11 -15
- package/dist/ExpandingBuffer.js.map +1 -1
- package/dist/Explode.d.ts +2 -3
- package/dist/Explode.js +63 -67
- package/dist/Explode.js.map +1 -1
- package/dist/Implode.d.ts +3 -4
- package/dist/Implode.js +49 -54
- package/dist/Implode.js.map +1 -1
- package/dist/bin/explode.js +16 -20
- package/dist/bin/explode.js.map +1 -1
- package/dist/bin/helpers.d.ts +0 -4
- package/dist/bin/helpers.js +15 -23
- package/dist/bin/helpers.js.map +1 -1
- package/dist/bin/implode.js +19 -23
- package/dist/bin/implode.js.map +1 -1
- package/dist/constants.d.ts +0 -1
- package/dist/constants.js +49 -52
- package/dist/constants.js.map +1 -1
- package/dist/errors.js +4 -11
- package/dist/errors.js.map +1 -1
- package/dist/functions.d.ts +1 -1
- package/dist/functions.js +13 -27
- package/dist/functions.js.map +1 -1
- package/dist/index.d.ts +8 -10
- package/dist/index.js +11 -41
- package/dist/index.js.map +1 -1
- package/dist/stream.d.ts +1 -3
- package/dist/stream.js +26 -35
- package/dist/stream.js.map +1 -1
- package/dist/types.js +1 -2
- package/package.json +13 -6
- package/dist/tsconfig.tsbuildinfo +0 -1
package/dist/Implode.js
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const functions_1 = require("./functions");
|
|
9
|
-
const getSizeOfMatching = (inputBytes, a, b) => {
|
|
10
|
-
const limit = (0, functions_1.clamp)(2, constants_1.LONGEST_ALLOWED_REPETITION, b - a);
|
|
1
|
+
import { Buffer } from 'node:buffer';
|
|
2
|
+
import { ChBitsAsc, ChCodeAsc, Compression, DictionarySize, DistBits, DistCode, EMPTY_BUFFER, ExLenBits, LenBits, LenCode, LONGEST_ALLOWED_REPETITION, } from './constants.js';
|
|
3
|
+
import { InvalidCompressionTypeError, InvalidDictionarySizeError } from './errors.js';
|
|
4
|
+
import { ExpandingBuffer } from './ExpandingBuffer.js';
|
|
5
|
+
import { clamp, clone, evenAndRemainder, getLowestNBits, last, nBitsOfOnes, repeat, toHex } from './functions.js';
|
|
6
|
+
export const getSizeOfMatching = (inputBytes, a, b) => {
|
|
7
|
+
const limit = clamp(2, LONGEST_ALLOWED_REPETITION, b - a);
|
|
11
8
|
for (let i = 2; i <= limit; i++) {
|
|
12
9
|
if (inputBytes[a + i] !== inputBytes[b + i]) {
|
|
13
10
|
return i;
|
|
@@ -15,7 +12,6 @@ const getSizeOfMatching = (inputBytes, a, b) => {
|
|
|
15
12
|
}
|
|
16
13
|
return limit;
|
|
17
14
|
};
|
|
18
|
-
exports.getSizeOfMatching = getSizeOfMatching;
|
|
19
15
|
/**
|
|
20
16
|
* TODO: make sure that we find the most recent one,
|
|
21
17
|
* which in turn allows us to store backward length in less amount of bits
|
|
@@ -34,40 +30,40 @@ const findRepetitions = (inputBytes, endOfLastMatch, cursor) => {
|
|
|
34
30
|
const distance = cursor - endOfLastMatch - matchIndex;
|
|
35
31
|
return {
|
|
36
32
|
distance: distance - 1,
|
|
37
|
-
size: distance > 2 ?
|
|
33
|
+
size: distance > 2 ? getSizeOfMatching(inputBytes, endOfLastMatch + matchIndex, cursor) : 2,
|
|
38
34
|
};
|
|
39
35
|
}
|
|
40
36
|
return { size: 0, distance: 0 };
|
|
41
37
|
};
|
|
42
|
-
class Implode {
|
|
38
|
+
export class Implode {
|
|
43
39
|
#verbose;
|
|
44
40
|
#isFirstChunk = true;
|
|
45
41
|
#inputBuffer;
|
|
46
42
|
#outputBuffer;
|
|
47
43
|
#stats = { chunkCounter: 0 };
|
|
48
|
-
#compressionType =
|
|
49
|
-
#dictionarySize =
|
|
44
|
+
#compressionType = Compression.Unknown;
|
|
45
|
+
#dictionarySize = DictionarySize.Unknown;
|
|
50
46
|
#dictionarySizeMask = -1;
|
|
51
47
|
#streamEnded = false;
|
|
52
|
-
#distCodes =
|
|
53
|
-
#distBits =
|
|
48
|
+
#distCodes = clone(DistCode);
|
|
49
|
+
#distBits = clone(DistBits);
|
|
54
50
|
#startIndex = 0;
|
|
55
51
|
#handledFirstTwoBytes = false;
|
|
56
52
|
#outBits = 0;
|
|
57
|
-
#nChBits =
|
|
58
|
-
#nChCodes =
|
|
53
|
+
#nChBits = repeat(0, 0x306);
|
|
54
|
+
#nChCodes = repeat(0, 0x306);
|
|
59
55
|
constructor(compressionType, dictionarySize, config) {
|
|
60
|
-
if (!(compressionType in
|
|
61
|
-
throw new
|
|
56
|
+
if (!(compressionType in Compression) || compressionType === Compression.Unknown) {
|
|
57
|
+
throw new InvalidCompressionTypeError();
|
|
62
58
|
}
|
|
63
|
-
if (!(dictionarySize in
|
|
64
|
-
throw new
|
|
59
|
+
if (!(dictionarySize in DictionarySize) || dictionarySize === DictionarySize.Unknown) {
|
|
60
|
+
throw new InvalidDictionarySizeError();
|
|
65
61
|
}
|
|
66
62
|
this.#compressionType = compressionType;
|
|
67
63
|
this.#dictionarySize = dictionarySize;
|
|
68
64
|
this.#verbose = config?.verbose ?? false;
|
|
69
|
-
this.#inputBuffer = new
|
|
70
|
-
this.#outputBuffer = new
|
|
65
|
+
this.#inputBuffer = new ExpandingBuffer(config?.inputBufferSize ?? 0);
|
|
66
|
+
this.#outputBuffer = new ExpandingBuffer(config?.outputBufferSize ?? 0);
|
|
71
67
|
}
|
|
72
68
|
getHandler() {
|
|
73
69
|
const instance = this;
|
|
@@ -80,20 +76,20 @@ class Implode {
|
|
|
80
76
|
}
|
|
81
77
|
if (instance.#verbose) {
|
|
82
78
|
instance.#stats.chunkCounter++;
|
|
83
|
-
console.log(`implode: reading ${
|
|
79
|
+
console.log(`implode: reading ${toHex(chunk.length)} bytes from chunk #${instance.#stats.chunkCounter}`);
|
|
84
80
|
}
|
|
85
81
|
instance.#processChunkData();
|
|
86
82
|
const blockSize = 0x800;
|
|
87
83
|
if (instance.#outputBuffer.size() <= blockSize) {
|
|
88
|
-
callback(null,
|
|
84
|
+
callback(null, EMPTY_BUFFER);
|
|
89
85
|
return;
|
|
90
86
|
}
|
|
91
|
-
let [numberOfBlocks] =
|
|
87
|
+
let [numberOfBlocks] = evenAndRemainder(blockSize, instance.#outputBuffer.size());
|
|
92
88
|
// making sure to leave one block worth of data for lookback when processing chunk data
|
|
93
89
|
numberOfBlocks--;
|
|
94
90
|
const numberOfBytes = numberOfBlocks * blockSize;
|
|
95
91
|
// make sure to create a copy of the output buffer slice as it will get flushed in the next line
|
|
96
|
-
const output =
|
|
92
|
+
const output = Buffer.from(instance.#outputBuffer.read(0, numberOfBytes));
|
|
97
93
|
instance.#outputBuffer.flushStart(numberOfBytes);
|
|
98
94
|
if (instance.#outBits === 0) {
|
|
99
95
|
instance.#outputBuffer.setByte(-1, 0);
|
|
@@ -112,8 +108,8 @@ class Implode {
|
|
|
112
108
|
if (this.#verbose) {
|
|
113
109
|
console.log('---------------');
|
|
114
110
|
console.log('implode: total number of chunks read:', this.#stats.chunkCounter);
|
|
115
|
-
console.log('implode: inputBuffer heap size',
|
|
116
|
-
console.log('implode: outputBuffer heap size',
|
|
111
|
+
console.log('implode: inputBuffer heap size', toHex(this.#inputBuffer.heapSize()));
|
|
112
|
+
console.log('implode: outputBuffer heap size', toHex(this.#outputBuffer.heapSize()));
|
|
117
113
|
}
|
|
118
114
|
callback(null, this.#outputBuffer.read());
|
|
119
115
|
}
|
|
@@ -184,15 +180,15 @@ class Implode {
|
|
|
184
180
|
this.#startIndex -= endOfLastMatch
|
|
185
181
|
endOfLastMatch = 0
|
|
186
182
|
*/
|
|
187
|
-
if (this.#dictionarySize ===
|
|
183
|
+
if (this.#dictionarySize === DictionarySize.Small && this.#startIndex >= 0x400) {
|
|
188
184
|
this.#inputBuffer.dropStart(0x400);
|
|
189
185
|
this.#startIndex -= 0x400;
|
|
190
186
|
}
|
|
191
|
-
else if (this.#dictionarySize ===
|
|
187
|
+
else if (this.#dictionarySize === DictionarySize.Medium && this.#startIndex >= 0x800) {
|
|
192
188
|
this.#inputBuffer.dropStart(0x800);
|
|
193
189
|
this.#startIndex -= 0x800;
|
|
194
190
|
}
|
|
195
|
-
else if (this.#dictionarySize ===
|
|
191
|
+
else if (this.#dictionarySize === DictionarySize.Large && this.#startIndex >= 0x1000) {
|
|
196
192
|
this.#inputBuffer.dropStart(0x1000);
|
|
197
193
|
this.#startIndex -= 0x1000;
|
|
198
194
|
}
|
|
@@ -203,7 +199,7 @@ class Implode {
|
|
|
203
199
|
}
|
|
204
200
|
if (this.#streamEnded) {
|
|
205
201
|
// Write the termination literal
|
|
206
|
-
this.#outputBits(
|
|
202
|
+
this.#outputBits(last(this.#nChBits), last(this.#nChCodes));
|
|
207
203
|
}
|
|
208
204
|
}
|
|
209
205
|
/**
|
|
@@ -239,37 +235,37 @@ class Implode {
|
|
|
239
235
|
}
|
|
240
236
|
#setup() {
|
|
241
237
|
switch (this.#dictionarySize) {
|
|
242
|
-
case
|
|
243
|
-
this.#dictionarySizeMask =
|
|
238
|
+
case DictionarySize.Large:
|
|
239
|
+
this.#dictionarySizeMask = nBitsOfOnes(6);
|
|
244
240
|
break;
|
|
245
|
-
case
|
|
246
|
-
this.#dictionarySizeMask =
|
|
241
|
+
case DictionarySize.Medium:
|
|
242
|
+
this.#dictionarySizeMask = nBitsOfOnes(5);
|
|
247
243
|
break;
|
|
248
|
-
case
|
|
249
|
-
this.#dictionarySizeMask =
|
|
244
|
+
case DictionarySize.Small:
|
|
245
|
+
this.#dictionarySizeMask = nBitsOfOnes(4);
|
|
250
246
|
break;
|
|
251
247
|
}
|
|
252
248
|
switch (this.#compressionType) {
|
|
253
|
-
case
|
|
249
|
+
case Compression.Binary:
|
|
254
250
|
let nChCode = 0;
|
|
255
251
|
for (let nCount = 0; nCount < 0x100; nCount++) {
|
|
256
252
|
this.#nChBits[nCount] = 9;
|
|
257
253
|
this.#nChCodes[nCount] = nChCode;
|
|
258
|
-
nChCode =
|
|
254
|
+
nChCode = getLowestNBits(16, nChCode) + 2;
|
|
259
255
|
}
|
|
260
256
|
break;
|
|
261
|
-
case
|
|
257
|
+
case Compression.Ascii:
|
|
262
258
|
for (let nCount = 0; nCount < 0x100; nCount++) {
|
|
263
|
-
this.#nChBits[nCount] =
|
|
264
|
-
this.#nChCodes[nCount] =
|
|
259
|
+
this.#nChBits[nCount] = ChBitsAsc[nCount] + 1;
|
|
260
|
+
this.#nChCodes[nCount] = ChCodeAsc[nCount] * 2;
|
|
265
261
|
}
|
|
266
262
|
break;
|
|
267
263
|
}
|
|
268
264
|
let nCount = 0x100;
|
|
269
265
|
for (let i = 0; i < 0x10; i++) {
|
|
270
|
-
for (let nCount2 = 0; nCount2 < 1 <<
|
|
271
|
-
this.#nChBits[nCount] =
|
|
272
|
-
this.#nChCodes[nCount] = (nCount2 << (
|
|
266
|
+
for (let nCount2 = 0; nCount2 < 1 << ExLenBits[i]; nCount2++) {
|
|
267
|
+
this.#nChBits[nCount] = ExLenBits[i] + LenBits[i] + 1;
|
|
268
|
+
this.#nChCodes[nCount] = (nCount2 << (LenBits[i] + 1)) | (LenCode[i] * 2) | 1;
|
|
273
269
|
nCount++;
|
|
274
270
|
}
|
|
275
271
|
}
|
|
@@ -286,20 +282,19 @@ class Implode {
|
|
|
286
282
|
}
|
|
287
283
|
const outBits = this.#outBits;
|
|
288
284
|
const lastBytes = this.#outputBuffer.readByte(this.#outputBuffer.size() - 1);
|
|
289
|
-
this.#outputBuffer.setByte(-1, lastBytes |
|
|
285
|
+
this.#outputBuffer.setByte(-1, lastBytes | getLowestNBits(8, bitBuffer << outBits));
|
|
290
286
|
this.#outBits = this.#outBits + nBits;
|
|
291
287
|
if (this.#outBits > 8) {
|
|
292
|
-
this.#outBits =
|
|
288
|
+
this.#outBits = getLowestNBits(3, this.#outBits);
|
|
293
289
|
bitBuffer = bitBuffer >> (8 - outBits);
|
|
294
|
-
this.#outputBuffer.appendByte(
|
|
290
|
+
this.#outputBuffer.appendByte(getLowestNBits(8, bitBuffer));
|
|
295
291
|
}
|
|
296
292
|
else {
|
|
297
|
-
this.#outBits =
|
|
293
|
+
this.#outBits = getLowestNBits(3, this.#outBits);
|
|
298
294
|
if (this.#outBits === 0) {
|
|
299
295
|
this.#outputBuffer.appendByte(0);
|
|
300
296
|
}
|
|
301
297
|
}
|
|
302
298
|
}
|
|
303
299
|
}
|
|
304
|
-
exports.Implode = Implode;
|
|
305
300
|
//# sourceMappingURL=Implode.js.map
|
package/dist/Implode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Implode.js","sourceRoot":"","sources":["../src/Implode.ts"],"names":[],"mappings":";;;AAAA,6CAAoC;AAEpC,2CAYoB;AACpB,qCAAkF;AAClF,uDAAmD;AACnD,2CAA8G;AAGvG,MAAM,iBAAiB,GAAG,CAAC,UAAkB,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE;IAC5E,MAAM,KAAK,GAAG,IAAA,iBAAK,EAAC,CAAC,EAAE,sCAA0B,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;IAEzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE;QAC/B,IAAI,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;YAC3C,OAAO,CAAC,CAAA;SACT;KACF;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAVY,QAAA,iBAAiB,qBAU7B;AAED;;;;GAIG;AACH,MAAM,eAAe,GAAG,CAAC,UAAkB,EAAE,cAAsB,EAAE,MAAc,EAAE,EAAE;IACrF,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAA;IACrD,MAAM,QAAQ,GAAG,MAAM,KAAK,cAAc,IAAI,MAAM,GAAG,cAAc,GAAG,CAAC,CAAA;IACzE,IAAI,cAAc,IAAI,QAAQ,EAAE;QAC9B,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAA;KAChC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;IAC5D,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;IAEtD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3C,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE;QACrB,MAAM,QAAQ,GAAG,MAAM,GAAG,cAAc,GAAG,UAAU,CAAA;QACrD,OAAO;YACL,QAAQ,EAAE,QAAQ,GAAG,CAAC;YACtB,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,yBAAiB,EAAC,UAAU,EAAE,cAAc,GAAG,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5F,CAAA;KACF;IAED,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAA;AACjC,CAAC,CAAA;AAED,MAAa,OAAO;IAClB,QAAQ,CAAS;IACjB,aAAa,GAAY,IAAI,CAAA;IAC7B,YAAY,CAAiB;IAC7B,aAAa,CAAiB;IAC9B,MAAM,GAAU,EAAE,YAAY,EAAE,CAAC,EAAE,CAAA;IACnC,gBAAgB,GAAgB,uBAAW,CAAC,OAAO,CAAA;IACnD,eAAe,GAAmB,0BAAc,CAAC,OAAO,CAAA;IACxD,mBAAmB,GAAW,CAAC,CAAC,CAAA;IAChC,YAAY,GAAY,KAAK,CAAA;IAC7B,UAAU,GAAa,IAAA,iBAAK,EAAC,oBAAQ,CAAC,CAAA;IACtC,SAAS,GAAa,IAAA,iBAAK,EAAC,oBAAQ,CAAC,CAAA;IACrC,WAAW,GAAW,CAAC,CAAA;IACvB,qBAAqB,GAAY,KAAK,CAAA;IACtC,QAAQ,GAAW,CAAC,CAAA;IACpB,QAAQ,GAAa,IAAA,kBAAM,EAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACrC,SAAS,GAAa,IAAA,kBAAM,EAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAEtC,YAAY,eAA4B,EAAE,cAA8B,EAAE,MAAc;QACtF,IAAI,CAAC,CAAC,eAAe,IAAI,uBAAW,CAAC,IAAI,eAAe,KAAK,uBAAW,CAAC,OAAO,EAAE;YAChF,MAAM,IAAI,oCAA2B,EAAE,CAAA;SACxC;QAED,IAAI,CAAC,CAAC,cAAc,IAAI,0BAAc,CAAC,IAAI,cAAc,KAAK,0BAAc,CAAC,OAAO,EAAE;YACpF,MAAM,IAAI,mCAA0B,EAAE,CAAA;SACvC;QAED,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAA;QACvC,IAAI,CAAC,eAAe,GAAG,cAAc,CAAA;QACrC,IAAI,CAAC,QAAQ,GAAG,MAAM,EAAE,OAAO,IAAI,KAAK,CAAA;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,iCAAe,CAAC,MAAM,EAAE,eAAe,IAAI,CAAC,CAAC,CAAA;QACrE,IAAI,CAAC,aAAa,GAAG,IAAI,iCAAe,CAAC,MAAM,EAAE,gBAAgB,IAAI,CAAC,CAAC,CAAA;IACzE,CAAC;IAED,UAAU;QACR,MAAM,QAAQ,GAAG,IAAI,CAAA;QAErB,OAAO,UAA2B,KAAa,EAAE,QAAwB,EAAE,QAA2B;YACpG,IAAI;gBACF,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBAEnC,IAAI,QAAQ,CAAC,aAAa,EAAE;oBAC1B,QAAQ,CAAC,aAAa,GAAG,KAAK,CAAA;oBAC9B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;iBACvD;gBAED,IAAI,QAAQ,CAAC,QAAQ,EAAE;oBACrB,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,CAAA;oBAC9B,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAA,iBAAK,EAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAA;iBACzG;gBAED,QAAQ,CAAC,iBAAiB,EAAE,CAAA;gBAE5B,MAAM,SAAS,GAAG,KAAK,CAAA;gBAEvB,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,SAAS,EAAE;oBAC9C,QAAQ,CAAC,IAAI,EAAE,wBAAY,CAAC,CAAA;oBAC5B,OAAM;iBACP;gBAED,IAAI,CAAC,cAAc,CAAC,GAAG,IAAA,4BAAgB,EAAC,SAAS,EAAE,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAA;gBAEjF,uFAAuF;gBACvF,cAAc,EAAE,CAAA;gBAEhB,MAAM,aAAa,GAAG,cAAc,GAAG,SAAS,CAAA;gBAChD,gGAAgG;gBAChG,MAAM,MAAM,GAAG,oBAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;gBACzE,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;gBAEhD,IAAI,QAAQ,CAAC,QAAQ,KAAK,CAAC,EAAE;oBAC3B,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;iBACtC;gBAED,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;aACvB;YAAC,OAAO,CAAU,EAAE;gBACnB,QAAQ,CAAC,CAAU,CAAC,CAAA;aACrB;QACH,CAAC,CAAA;IACH,CAAC;IAED,gBAAgB,CAAC,QAA2B;QAC1C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;QAExB,IAAI;YACF,IAAI,CAAC,iBAAiB,EAAE,CAAA;YAExB,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;gBAC9B,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;gBAC9E,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,IAAA,iBAAK,EAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;gBAClF,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,IAAA,iBAAK,EAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;aACrF;YAED,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAA;SAC1C;QAAC,OAAO,CAAU,EAAE;YACnB,QAAQ,CAAC,CAAU,CAAC,CAAA;SACrB;IACH,CAAC;IAED,iBAAiB;QACf,IAAI,IAAI,CAAC,mBAAmB,KAAK,CAAC,CAAC,EAAE;YACnC,IAAI,CAAC,MAAM,EAAE,CAAA;SACd;QAED,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE;YAChC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;YAEpB,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;gBAC/B,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;oBAChC,OAAM;iBACP;gBAED,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAA;gBAEjC,IAAI,CAAC,oBAAoB,EAAE,CAAA;aAC5B;YAED,kCAAkC;YAElC,IAAI,cAAc,GAAG,CAAC,CAAA,CAAC,mDAAmD;YAE1E,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE;gBAClD,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,eAAe,CACtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,EACtC,cAAc,EACd,IAAI,CAAC,WAAW,CACjB,CAAA;gBAED,IAAI,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;gBAE7D,IAAI,WAAW,KAAK,KAAK,EAAE;oBACzB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;oBACzD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;oBAC3D,IAAI,CAAC,WAAW,IAAI,CAAC,CAAA;iBACtB;qBAAM;oBACL,IAAI,WAAW,KAAK,IAAI,EAAE;wBACxB;;;;;;;;;;;;;;;;;0BAiBE;qBACH;oBAED,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;oBACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;oBAC3D,IAAI,IAAI,KAAK,CAAC,EAAE;wBACd,MAAM,IAAI,GAAG,QAAQ,IAAI,CAAC,CAAA;wBAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;wBAC7D,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAA;qBAClC;yBAAM;wBACL,MAAM,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAA;wBAC7C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;wBAC7D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,CAAA;qBAC5E;oBAED,IAAI,CAAC,WAAW,IAAI,IAAI,CAAA;iBACzB;gBAED;;;;kBAIE;gBAEF,IAAI,IAAI,CAAC,eAAe,KAAK,0BAAc,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,IAAI,KAAK,EAAE;oBAC9E,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;oBAClC,IAAI,CAAC,WAAW,IAAI,KAAK,CAAA;iBAC1B;qBAAM,IAAI,IAAI,CAAC,eAAe,KAAK,0BAAc,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,KAAK,EAAE;oBACtF,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;oBAClC,IAAI,CAAC,WAAW,IAAI,KAAK,CAAA;iBAC1B;qBAAM,IAAI,IAAI,CAAC,eAAe,KAAK,0BAAc,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,IAAI,MAAM,EAAE;oBACtF,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;oBACnC,IAAI,CAAC,WAAW,IAAI,MAAM,CAAA;iBAC3B;aACF;YAED,kCAAkC;YAElC,wDAAwD;YACxD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;SAC1B;QAED,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,gCAAgC;YAChC,IAAI,CAAC,WAAW,CAAC,IAAA,gBAAI,EAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAA,gBAAI,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;SAC5D;IACH,CAAC;IAED;;;;OAIG;IACH,sBAAsB,CAAC,IAAY,EAAE,QAAgB;QACnD,IAAI,IAAI,KAAK,CAAC,EAAE;YACd,OAAO,KAAK,CAAA;SACb;QAED,oEAAoE;QACpE,mEAAmE;QACnE,kDAAkD;QAClD,IAAI,IAAI,KAAK,CAAC,IAAI,QAAQ,IAAI,KAAK,EAAE;YACnC,OAAO,KAAK,CAAA;SACb;QAED,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE;YACjE,OAAO,IAAI,CAAA;SACZ;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;OAGG;IACH,oBAAoB;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC3C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;QAC7D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;QAC7D,IAAI,CAAC,WAAW,IAAI,CAAC,CAAA;IACvB,CAAC;IAED,MAAM;QACJ,QAAQ,IAAI,CAAC,eAAe,EAAE;YAC5B,KAAK,0BAAc,CAAC,KAAK;gBACvB,IAAI,CAAC,mBAAmB,GAAG,IAAA,uBAAW,EAAC,CAAC,CAAC,CAAA;gBACzC,MAAK;YACP,KAAK,0BAAc,CAAC,MAAM;gBACxB,IAAI,CAAC,mBAAmB,GAAG,IAAA,uBAAW,EAAC,CAAC,CAAC,CAAA;gBACzC,MAAK;YACP,KAAK,0BAAc,CAAC,KAAK;gBACvB,IAAI,CAAC,mBAAmB,GAAG,IAAA,uBAAW,EAAC,CAAC,CAAC,CAAA;gBACzC,MAAK;SACR;QAED,QAAQ,IAAI,CAAC,gBAAgB,EAAE;YAC7B,KAAK,uBAAW,CAAC,MAAM;gBACrB,IAAI,OAAO,GAAG,CAAC,CAAA;gBACf,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE,MAAM,EAAE,EAAE;oBAC7C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;oBACzB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,OAAO,CAAA;oBAChC,OAAO,GAAG,IAAA,0BAAc,EAAC,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;iBAC1C;gBACD,MAAK;YACP,KAAK,uBAAW,CAAC,KAAK;gBACpB,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE,MAAM,EAAE,EAAE;oBAC7C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,qBAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;oBAC7C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,qBAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;iBAC/C;gBACD,MAAK;SACR;QAED,IAAI,MAAM,GAAG,KAAK,CAAA;QAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC7B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,qBAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE;gBAC5D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,qBAAS,CAAC,CAAC,CAAC,GAAG,mBAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;gBACrD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,mBAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;gBAC7E,MAAM,EAAE,CAAA;aACT;SACF;QAED,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QACpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QACnD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAChC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAA;IACnB,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,SAAiB;QAC1C,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;YAC9B,SAAS,GAAG,SAAS,IAAI,CAAC,CAAA;YAC1B,KAAK,GAAG,KAAK,GAAG,CAAC,CAAA;SAClB;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAA;QAE7B,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;QAC5E,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,IAAA,0BAAc,EAAC,CAAC,EAAE,SAAS,IAAI,OAAO,CAAC,CAAC,CAAA;QAEnF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;QAErC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE;YACrB,IAAI,CAAC,QAAQ,GAAG,IAAA,0BAAc,EAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;YAChD,SAAS,GAAG,SAAS,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,CAAA;YACtC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAA,0BAAc,EAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAA;SAC5D;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,IAAA,0BAAc,EAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;YAChD,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;gBACvB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;aACjC;SACF;IACH,CAAC;CACF;AArTD,0BAqTC"}
|
|
1
|
+
{"version":3,"file":"Implode.js","sourceRoot":"","sources":["../src/Implode.ts"],"names":[],"mappings":"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"}
|
package/dist/bin/explode.js
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env -S node --enable-source-maps
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const helpers_1 = require("./helpers");
|
|
9
|
-
const stream_1 = require("../stream");
|
|
10
|
-
const index_1 = require("../index");
|
|
11
|
-
const args = (0, minimist_lite_1.default)(process.argv.slice(2), {
|
|
2
|
+
import process from 'node:process';
|
|
3
|
+
import minimist from 'minimist-lite';
|
|
4
|
+
import { getPackageVersion, parseNumberString, getInputStream, getOutputStream } from './helpers.js';
|
|
5
|
+
import { transformEmpty, transformIdentity, transformSplitBy, splitAt, through } from '../stream.js';
|
|
6
|
+
import { explode } from '../index.js';
|
|
7
|
+
const args = minimist(process.argv.slice(2), {
|
|
12
8
|
string: ['output', 'offset', 'input-buffer-size', 'output-buffer-size'],
|
|
13
9
|
boolean: ['version', 'drop-before-offset', 'verbose'],
|
|
14
10
|
alias: {
|
|
@@ -16,36 +12,36 @@ const args = (0, minimist_lite_1.default)(process.argv.slice(2), {
|
|
|
16
12
|
},
|
|
17
13
|
});
|
|
18
14
|
const decompress = (input, output, offset, keepHeader, config) => {
|
|
19
|
-
const leftHandler = keepHeader ?
|
|
20
|
-
const rightHandler =
|
|
21
|
-
const handler =
|
|
15
|
+
const leftHandler = keepHeader ? transformIdentity() : transformEmpty();
|
|
16
|
+
const rightHandler = explode(config);
|
|
17
|
+
const handler = transformSplitBy(splitAt(offset), leftHandler, rightHandler);
|
|
22
18
|
return new Promise((resolve, reject) => {
|
|
23
|
-
input.pipe(
|
|
19
|
+
input.pipe(through(handler).on('error', reject)).pipe(output).on('finish', resolve).on('error', reject);
|
|
24
20
|
});
|
|
25
21
|
};
|
|
26
22
|
(async () => {
|
|
27
23
|
if (args.version) {
|
|
28
|
-
const version = await
|
|
24
|
+
const version = await getPackageVersion();
|
|
29
25
|
console.log(`node-pkware - version ${version}`);
|
|
30
26
|
process.exit(0);
|
|
31
27
|
}
|
|
32
28
|
let input;
|
|
33
29
|
let output;
|
|
34
30
|
try {
|
|
35
|
-
input = await
|
|
36
|
-
output = await
|
|
31
|
+
input = await getInputStream(args._[0]);
|
|
32
|
+
output = await getOutputStream(args.output);
|
|
37
33
|
}
|
|
38
34
|
catch (e) {
|
|
39
35
|
const error = e;
|
|
40
36
|
console.error('error:', error.message);
|
|
41
37
|
process.exit(1);
|
|
42
38
|
}
|
|
43
|
-
const offset =
|
|
39
|
+
const offset = parseNumberString(args.offset, 0);
|
|
44
40
|
const keepHeader = !args['drop-before-offset'];
|
|
45
41
|
const config = {
|
|
46
42
|
verbose: args.verbose,
|
|
47
|
-
inputBufferSize:
|
|
48
|
-
outputBufferSize:
|
|
43
|
+
inputBufferSize: parseNumberString(args['input-buffer-size'], 0x10000),
|
|
44
|
+
outputBufferSize: parseNumberString(args['output-buffer-size'], 0x40000),
|
|
49
45
|
};
|
|
50
46
|
decompress(input, output, offset, keepHeader, config)
|
|
51
47
|
.then(() => {
|
package/dist/bin/explode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explode.js","sourceRoot":"","sources":["../../src/bin/explode.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"explode.js","sourceRoot":"","sources":["../../src/bin/explode.ts"],"names":[],"mappings":"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"}
|
package/dist/bin/helpers.d.ts
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
|
-
/// <reference types="node" />
|
|
4
|
-
/// <reference types="node" />
|
|
5
1
|
export declare const parseNumberString: (n?: string, defaultValue?: number) => number;
|
|
6
2
|
export declare const getPackageVersion: () => Promise<string>;
|
|
7
3
|
export declare const getInputStream: (filename?: string) => Promise<NodeJS.ReadableStream>;
|
package/dist/bin/helpers.js
CHANGED
|
@@ -1,18 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getOutputStream = exports.getInputStream = exports.getPackageVersion = exports.parseNumberString = void 0;
|
|
7
|
-
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import process from 'node:process';
|
|
9
4
|
const isDecimalString = (input) => {
|
|
10
5
|
return /^\d+$/.test(input);
|
|
11
6
|
};
|
|
12
7
|
const isFullHexString = (input) => {
|
|
13
8
|
return /^\s*0x[0-9a-f]+\s*$/.test(input);
|
|
14
9
|
};
|
|
15
|
-
const parseNumberString = (n, defaultValue = 0) => {
|
|
10
|
+
export const parseNumberString = (n, defaultValue = 0) => {
|
|
16
11
|
if (typeof n === 'undefined') {
|
|
17
12
|
return defaultValue;
|
|
18
13
|
}
|
|
@@ -24,10 +19,9 @@ const parseNumberString = (n, defaultValue = 0) => {
|
|
|
24
19
|
}
|
|
25
20
|
return defaultValue;
|
|
26
21
|
};
|
|
27
|
-
|
|
28
|
-
const getPackageVersion = async () => {
|
|
22
|
+
export const getPackageVersion = async () => {
|
|
29
23
|
try {
|
|
30
|
-
const rawIn = await
|
|
24
|
+
const rawIn = await fs.promises.readFile(path.resolve(__dirname, '../../package.json'), 'utf-8');
|
|
31
25
|
const { version } = JSON.parse(rawIn);
|
|
32
26
|
return version;
|
|
33
27
|
}
|
|
@@ -35,31 +29,29 @@ const getPackageVersion = async () => {
|
|
|
35
29
|
return 'unknown';
|
|
36
30
|
}
|
|
37
31
|
};
|
|
38
|
-
exports.getPackageVersion = getPackageVersion;
|
|
39
32
|
const fileExists = async (filename) => {
|
|
40
33
|
try {
|
|
41
|
-
await
|
|
34
|
+
await fs.promises.access(filename, fs.constants.R_OK);
|
|
42
35
|
return true;
|
|
43
36
|
}
|
|
44
37
|
catch (error) {
|
|
45
38
|
return false;
|
|
46
39
|
}
|
|
47
40
|
};
|
|
48
|
-
const getInputStream = async (filename) => {
|
|
49
|
-
if (
|
|
50
|
-
|
|
41
|
+
export const getInputStream = async (filename) => {
|
|
42
|
+
if (filename === undefined) {
|
|
43
|
+
process.stdin.resume();
|
|
44
|
+
return process.stdin;
|
|
51
45
|
}
|
|
52
46
|
if (await fileExists(filename)) {
|
|
53
|
-
return
|
|
47
|
+
return fs.createReadStream(filename);
|
|
54
48
|
}
|
|
55
49
|
throw new Error('input file does not exist');
|
|
56
50
|
};
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
if (typeof filename === 'undefined') {
|
|
51
|
+
export const getOutputStream = async (filename) => {
|
|
52
|
+
if (filename === undefined) {
|
|
60
53
|
return process.stdout;
|
|
61
54
|
}
|
|
62
|
-
return
|
|
55
|
+
return fs.createWriteStream(filename);
|
|
63
56
|
};
|
|
64
|
-
exports.getOutputStream = getOutputStream;
|
|
65
57
|
//# sourceMappingURL=helpers.js.map
|
package/dist/bin/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/bin/helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/bin/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,EAAE;IACxC,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC5B,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,EAAE;IACxC,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC1C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAU,EAAE,eAAuB,CAAC,EAAE,EAAE;IACxE,IAAI,OAAO,CAAC,KAAK,WAAW,EAAE,CAAC;QAC7B,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;QACvB,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAA;IACpB,CAAC;IAED,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;QACvB,OAAO,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;IAC3C,CAAC;IAED,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE;IAC1C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,OAAO,CAAC,CAAA;QAChG,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAwB,CAAA;QAC5D,OAAO,OAAO,CAAA;IAChB,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC,CAAA;AAED,MAAM,UAAU,GAAG,KAAK,EAAE,QAAgB,EAAE,EAAE;IAC5C,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACrD,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,QAAiB,EAAkC,EAAE;IACxF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAA;QACtB,OAAO,OAAO,CAAC,KAAK,CAAA;IACtB,CAAC;IAED,IAAI,MAAM,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IACtC,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;AAC9C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,QAAiB,EAAkC,EAAE;IACzF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC,MAAM,CAAA;IACvB,CAAC;IAED,OAAO,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;AACvC,CAAC,CAAA"}
|
package/dist/bin/implode.js
CHANGED
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env -S node --enable-source-maps
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const
|
|
9
|
-
const helpers_1 = require("./helpers");
|
|
10
|
-
const stream_1 = require("../stream");
|
|
11
|
-
const index_1 = require("../index");
|
|
12
|
-
const args = (0, minimist_lite_1.default)(process.argv.slice(2), {
|
|
2
|
+
import process from 'node:process';
|
|
3
|
+
import minimist from 'minimist-lite';
|
|
4
|
+
import { Compression, DictionarySize } from '../constants.js';
|
|
5
|
+
import { getPackageVersion, parseNumberString, getInputStream, getOutputStream } from './helpers.js';
|
|
6
|
+
import { transformEmpty, transformIdentity, transformSplitBy, splitAt, through } from '../stream.js';
|
|
7
|
+
import { implode } from '../index.js';
|
|
8
|
+
const args = minimist(process.argv.slice(2), {
|
|
13
9
|
string: ['output', 'offset', 'input-buffer-size', 'output-buffer-size'],
|
|
14
10
|
boolean: ['version', 'ascii', 'binary', 'small', 'medium', 'large', 'drop-before-offset', 'verbose'],
|
|
15
11
|
alias: {
|
|
@@ -22,16 +18,16 @@ const args = (0, minimist_lite_1.default)(process.argv.slice(2), {
|
|
|
22
18
|
},
|
|
23
19
|
});
|
|
24
20
|
const compress = (input, output, offset, keepHeader, compressionType, dictionarySize, config) => {
|
|
25
|
-
const leftHandler = keepHeader ?
|
|
26
|
-
const rightHandler =
|
|
27
|
-
const handler =
|
|
21
|
+
const leftHandler = keepHeader ? transformIdentity() : transformEmpty();
|
|
22
|
+
const rightHandler = implode(compressionType, dictionarySize, config);
|
|
23
|
+
const handler = transformSplitBy(splitAt(offset), leftHandler, rightHandler);
|
|
28
24
|
return new Promise((resolve, reject) => {
|
|
29
|
-
input.pipe(
|
|
25
|
+
input.pipe(through(handler).on('error', reject)).pipe(output).on('finish', resolve).on('error', reject);
|
|
30
26
|
});
|
|
31
27
|
};
|
|
32
28
|
(async () => {
|
|
33
29
|
if (args.version) {
|
|
34
|
-
const version = await
|
|
30
|
+
const version = await getPackageVersion();
|
|
35
31
|
console.log(`node-pkware - version ${version}`);
|
|
36
32
|
process.exit(0);
|
|
37
33
|
}
|
|
@@ -50,22 +46,22 @@ const compress = (input, output, offset, keepHeader, compressionType, dictionary
|
|
|
50
46
|
if ((args.small ? 1 : 0) + (args.medium ? 1 : 0) + (args.large ? 1 : 0) > 1) {
|
|
51
47
|
throw new Error('multiple dictionary sizes specified, can only work with either --small, --medium or --large');
|
|
52
48
|
}
|
|
53
|
-
input = await
|
|
54
|
-
output = await
|
|
49
|
+
input = await getInputStream(args._[0]);
|
|
50
|
+
output = await getOutputStream(args.output);
|
|
55
51
|
}
|
|
56
52
|
catch (e) {
|
|
57
53
|
const error = e;
|
|
58
54
|
console.error('error:', error.message);
|
|
59
55
|
process.exit(1);
|
|
60
56
|
}
|
|
61
|
-
const compressionType = args.ascii ?
|
|
62
|
-
const dictionarySize = args.small ?
|
|
63
|
-
const offset =
|
|
57
|
+
const compressionType = args.ascii ? Compression.Ascii : Compression.Binary;
|
|
58
|
+
const dictionarySize = args.small ? DictionarySize.Small : args.medium ? DictionarySize.Medium : DictionarySize.Large;
|
|
59
|
+
const offset = parseNumberString(args.offset, 0);
|
|
64
60
|
const keepHeader = !args['drop-before-offset'];
|
|
65
61
|
const config = {
|
|
66
62
|
verbose: args.verbose,
|
|
67
|
-
inputBufferSize:
|
|
68
|
-
outputBufferSize:
|
|
63
|
+
inputBufferSize: parseNumberString(args['input-buffer-size'], 0x10000),
|
|
64
|
+
outputBufferSize: parseNumberString(args['output-buffer-size'], 0x12000),
|
|
69
65
|
};
|
|
70
66
|
compress(input, output, offset, keepHeader, compressionType, dictionarySize, config)
|
|
71
67
|
.then(() => {
|
package/dist/bin/implode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"implode.js","sourceRoot":"","sources":["../../src/bin/implode.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"implode.js","sourceRoot":"","sources":["../../src/bin/implode.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.d.ts
CHANGED