node-pkware 4.0.0-alpha.3 → 4.0.0-alpha.5
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/Explode.js +14 -14
- package/dist/Explode.js.map +1 -1
- package/dist/Implode.js +10 -10
- package/dist/Implode.js.map +1 -1
- package/dist/functions.d.ts +117 -6
- package/dist/functions.js +129 -13
- package/dist/functions.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/stream.d.ts +14 -8
- package/dist/stream.js +46 -43
- package/dist/stream.js.map +1 -1
- package/package.json +1 -1
package/dist/Explode.js
CHANGED
|
@@ -2,7 +2,7 @@ import { Buffer } from 'node:buffer';
|
|
|
2
2
|
import { ChBitsAsc, ChCodeAsc, Compression, DictionarySize, DistBits, DistCode, EMPTY_BUFFER, ExLenBits, LenBase, LenBits, LenCode, LITERAL_END_STREAM, } from './constants.js';
|
|
3
3
|
import { AbortedError, InvalidCompressionTypeError, InvalidDictionarySizeError } from './errors.js';
|
|
4
4
|
import { ExpandingBuffer } from './ExpandingBuffer.js';
|
|
5
|
-
import {
|
|
5
|
+
import { quotientAndRemainder, getLowestNBitsOf, mergeSparseArrays, nBitsOfOnes, repeat, toHex, unfold, } from './functions.js';
|
|
6
6
|
/**
|
|
7
7
|
* This function assumes there are at least 2 bytes of data in the buffer
|
|
8
8
|
*/
|
|
@@ -95,7 +95,7 @@ export class Explode {
|
|
|
95
95
|
callback(null, EMPTY_BUFFER);
|
|
96
96
|
return;
|
|
97
97
|
}
|
|
98
|
-
let [numberOfBlocks] =
|
|
98
|
+
let [numberOfBlocks] = quotientAndRemainder(instance.#outputBuffer.size(), blockSize);
|
|
99
99
|
// making sure to leave one block worth of data for lookback when processing chunk data
|
|
100
100
|
numberOfBlocks--;
|
|
101
101
|
const numberOfBytes = numberOfBlocks * blockSize;
|
|
@@ -115,13 +115,13 @@ export class Explode {
|
|
|
115
115
|
this.#asciiTable2C34 = mergeSparseArrays(populateAsciiTable(value, index, 0, 0x100), this.#asciiTable2C34);
|
|
116
116
|
return value - 0;
|
|
117
117
|
}
|
|
118
|
-
const acc =
|
|
118
|
+
const acc = getLowestNBitsOf(ChCodeAsc[index], 8);
|
|
119
119
|
if (acc === 0) {
|
|
120
120
|
this.#asciiTable2EB4 = mergeSparseArrays(populateAsciiTable(value, index, 8, 0x100), this.#asciiTable2EB4);
|
|
121
121
|
return value - 8;
|
|
122
122
|
}
|
|
123
123
|
this.#asciiTable2C34[acc] = 0xff;
|
|
124
|
-
if (
|
|
124
|
+
if (getLowestNBitsOf(acc, 6) === 0) {
|
|
125
125
|
this.#asciiTable2E34 = mergeSparseArrays(populateAsciiTable(value, index, 6, 0x80), this.#asciiTable2E34);
|
|
126
126
|
return value - 6;
|
|
127
127
|
}
|
|
@@ -163,14 +163,14 @@ export class Explode {
|
|
|
163
163
|
* @throws {@link AbortedError}
|
|
164
164
|
*/
|
|
165
165
|
#decodeNextLiteral() {
|
|
166
|
-
const lastBit =
|
|
166
|
+
const lastBit = getLowestNBitsOf(this.#bitBuffer, 1);
|
|
167
167
|
this.#wasteBits(1);
|
|
168
168
|
if (lastBit) {
|
|
169
|
-
let lengthCode = this.#lengthCodes[
|
|
169
|
+
let lengthCode = this.#lengthCodes[getLowestNBitsOf(this.#bitBuffer, 8)];
|
|
170
170
|
this.#wasteBits(LenBits[lengthCode]);
|
|
171
171
|
const extraLenghtBits = ExLenBits[lengthCode];
|
|
172
172
|
if (extraLenghtBits !== 0) {
|
|
173
|
-
const extraLength =
|
|
173
|
+
const extraLength = getLowestNBitsOf(this.#bitBuffer, extraLenghtBits);
|
|
174
174
|
try {
|
|
175
175
|
this.#wasteBits(extraLenghtBits);
|
|
176
176
|
}
|
|
@@ -183,7 +183,7 @@ export class Explode {
|
|
|
183
183
|
}
|
|
184
184
|
return lengthCode + 0x100;
|
|
185
185
|
}
|
|
186
|
-
const lastByte =
|
|
186
|
+
const lastByte = getLowestNBitsOf(this.#bitBuffer, 8);
|
|
187
187
|
if (this.#compressionType === Compression.Binary) {
|
|
188
188
|
this.#wasteBits(8);
|
|
189
189
|
return lastByte;
|
|
@@ -192,19 +192,19 @@ export class Explode {
|
|
|
192
192
|
if (lastByte > 0) {
|
|
193
193
|
value = this.#asciiTable2C34[lastByte];
|
|
194
194
|
if (value === 0xff) {
|
|
195
|
-
if (
|
|
195
|
+
if (getLowestNBitsOf(this.#bitBuffer, 6)) {
|
|
196
196
|
this.#wasteBits(4);
|
|
197
|
-
value = this.#asciiTable2D34[
|
|
197
|
+
value = this.#asciiTable2D34[getLowestNBitsOf(this.#bitBuffer, 8)];
|
|
198
198
|
}
|
|
199
199
|
else {
|
|
200
200
|
this.#wasteBits(6);
|
|
201
|
-
value = this.#asciiTable2E34[
|
|
201
|
+
value = this.#asciiTable2E34[getLowestNBitsOf(this.#bitBuffer, 7)];
|
|
202
202
|
}
|
|
203
203
|
}
|
|
204
204
|
}
|
|
205
205
|
else {
|
|
206
206
|
this.#wasteBits(8);
|
|
207
|
-
value = this.#asciiTable2EB4[
|
|
207
|
+
value = this.#asciiTable2EB4[getLowestNBitsOf(this.#bitBuffer, 8)];
|
|
208
208
|
}
|
|
209
209
|
this.#wasteBits(this.#chBitsAsc[value]);
|
|
210
210
|
return value;
|
|
@@ -213,13 +213,13 @@ export class Explode {
|
|
|
213
213
|
* @throws {@link AbortedError}
|
|
214
214
|
*/
|
|
215
215
|
#decodeDistance(repeatLength) {
|
|
216
|
-
const distPosCode = this.#distPosCodes[
|
|
216
|
+
const distPosCode = this.#distPosCodes[getLowestNBitsOf(this.#bitBuffer, 8)];
|
|
217
217
|
const distPosBits = DistBits[distPosCode];
|
|
218
218
|
this.#wasteBits(distPosBits);
|
|
219
219
|
let distance;
|
|
220
220
|
let bitsToWaste;
|
|
221
221
|
if (repeatLength === 2) {
|
|
222
|
-
distance = (distPosCode << 2) |
|
|
222
|
+
distance = (distPosCode << 2) | getLowestNBitsOf(this.#bitBuffer, 2);
|
|
223
223
|
bitsToWaste = 2;
|
|
224
224
|
}
|
|
225
225
|
else {
|
package/dist/Explode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Explode.js","sourceRoot":"","sources":["../src/Explode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EACL,SAAS,EACT,SAAS,EACT,WAAW,EACX,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,OAAO,EACP,OAAO,EACP,OAAO,EACP,kBAAkB,GACnB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,YAAY,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAA;AACtG,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,MAAM,EACN,KAAK,EACL,MAAM,GACP,MAAM,mBAAmB,CAAA;AAG1B;;GAEG;AACH,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,EAAE;IACpC,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAC3C,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAE1C,IAAI,CAAC,CAAC,eAAe,IAAI,WAAW,CAAC,IAAI,eAAe,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC;QACjF,MAAM,IAAI,2BAA2B,EAAE,CAAA;IACzC,CAAC;IAED,IAAI,CAAC,CAAC,cAAc,IAAI,cAAc,CAAC,IAAI,cAAc,KAAK,cAAc,CAAC,OAAO,EAAE,CAAC;QACrF,MAAM,IAAI,0BAA0B,EAAE,CAAA;IACxC,CAAC;IAED,OAAO;QACL,eAAe,EAAE,eAA8B;QAC/C,cAAc,EAAE,cAAgC;KACjD,CAAA;AACH,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAAC,YAAsB,EAAE,UAAoB,EAAE,EAAE;IAC5E,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAE9B,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;QAClC,KAAK,IAAI,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;YACzE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAClB,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAAE,OAAe,EAAE,EAAE;IAC3D,OAAO,CAAC,CAAS,EAAE,EAAE;QACnB,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,CAAsB,CAAA;IAC3E,CAAC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAE,KAAa,EAAE,IAAY,EAAE,KAAa,EAAE,EAAE;IACvF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,CAAA;IACvD,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,CAAA;IACrC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAEnC,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACnB,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IACpB,CAAC,CAAC,CAAA;IACF,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,OAAO,OAAO;IAClB,QAAQ,CAAS;IACjB,cAAc,GAAY,IAAI,CAAA;IAC9B,aAAa,GAAY,IAAI,CAAA;IAC7B,UAAU,GAAW,CAAC,CAAA;IACtB,UAAU,GAAW,CAAC,CAAA;IACtB,WAAW,GAA6C;QACtD,SAAS,EAAE,CAAC,CAAC;QACb,SAAS,EAAE,CAAC,CAAC;KACd,CAAA;IACD,YAAY,GAAa,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC/D,aAAa,GAAa,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAClE,YAAY,CAAiB;IAC7B,aAAa,CAAiB;IAC9B,MAAM,GAAU,EAAE,YAAY,EAAE,CAAC,EAAE,CAAA;IACnC,gBAAgB,GAAgB,WAAW,CAAC,OAAO,CAAA;IACnD,eAAe,GAAmB,cAAc,CAAC,OAAO,CAAA;IACxD,mBAAmB,GAAW,CAAC,CAAA;IAC/B,UAAU,GAAa,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACvC,eAAe,GAAa,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAC5C,eAAe,GAAa,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAC5C,eAAe,GAAa,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IAC3C,eAAe,GAAa,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAE5C,YAAY,SAAiB,EAAE;QAC7B,IAAI,CAAC,QAAQ,GAAG,MAAM,EAAE,OAAO,IAAI,KAAK,CAAA;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,eAAe,IAAI,CAAC,CAAC,CAAA;QACrE,IAAI,CAAC,aAAa,GAAG,IAAI,eAAe,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,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAA;YAE9B,IAAI,CAAC;gBACH,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBAEnC,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;oBAC3B,QAAQ,CAAC,aAAa,GAAG,KAAK,CAAA;oBAC9B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;gBACxD,CAAC;gBAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;oBACtB,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,CAAA;oBAC9B,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAA;gBAC1G,CAAC;gBAED,QAAQ,CAAC,iBAAiB,EAAE,CAAA;gBAE5B,MAAM,SAAS,GAAG,MAAM,CAAA;gBAExB,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,SAAS,EAAE,CAAC;oBAC/C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;oBAC5B,OAAM;gBACR,CAAC;gBAED,IAAI,CAAC,cAAc,CAAC,GAAG,gBAAgB,CAAC,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,MAAM,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,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YACxB,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBACpB,QAAQ,CAAC,CAAU,CAAC,CAAA;YACtB,CAAC;QACH,CAAC,CAAA;IACH,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC/C,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACf,IAAI,CAAC,eAAe,GAAG,iBAAiB,CACtC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAC1C,IAAI,CAAC,eAAe,CACT,CAAA;gBACb,OAAO,KAAK,GAAG,CAAC,CAAA;YAClB,CAAC;YAED,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;YAC/C,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;gBACd,IAAI,CAAC,eAAe,GAAG,iBAAiB,CACtC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAC1C,IAAI,CAAC,eAAe,CACT,CAAA;gBACb,OAAO,KAAK,GAAG,CAAC,CAAA;YAClB,CAAC;YAED,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;YAEhC,IAAI,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,eAAe,GAAG,iBAAiB,CACtC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EACzC,IAAI,CAAC,eAAe,CACT,CAAA;gBACb,OAAO,KAAK,GAAG,CAAC,CAAA;YAClB,CAAC;YAED,IAAI,CAAC,eAAe,GAAG,iBAAiB,CACtC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAC1C,IAAI,CAAC,eAAe,CACT,CAAA;YAEb,OAAO,KAAK,GAAG,CAAC,CAAA;QAClB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,gBAAgB,CAAC,QAA2B;QAC1C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;YAC9B,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;YAC9E,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;YAClF,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;QACtF,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,QAAQ,CAAC,IAAI,YAAY,EAAE,CAAC,CAAA;YAC5B,OAAM;QACR,CAAC;QAED,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAA;IAC3C,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,YAAoB;QAC7B,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;YAClE,MAAM,IAAI,YAAY,EAAE,CAAA;QAC1B,CAAC;QAED,IAAI,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,YAAY,CAAA;YACjD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,YAAY,CAAA;YAChD,OAAM;QACR,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC9C,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAE9B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,CAAA;QAC9G,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,YAAY,CAAA;IACtD,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAElD,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAElB,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;YAEtE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;YAEpC,MAAM,eAAe,GAAG,SAAS,CAAC,UAAU,CAAC,CAAA;YAC7C,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,WAAW,GAAG,cAAc,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;gBAEpE,IAAI,CAAC;oBACH,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAA;gBAClC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,IAAI,UAAU,GAAG,WAAW,KAAK,KAAK,EAAE,CAAC;wBACvC,MAAM,IAAI,YAAY,EAAE,CAAA;oBAC1B,CAAC;gBACH,CAAC;gBAED,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,WAAW,CAAA;YAChD,CAAC;YAED,OAAO,UAAU,GAAG,KAAK,CAAA;QAC3B,CAAC;QAED,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAEnD,IAAI,IAAI,CAAC,gBAAgB,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;YACjD,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YAClB,OAAO,QAAQ,CAAA;QACjB,CAAC;QAED,IAAI,KAAa,CAAA;QAEjB,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;YAEtC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,IAAI,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;oBACvC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;oBAElB,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;gBAClE,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;oBAElB,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;gBAClE,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YAElB,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;QAClE,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;QAEvC,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,YAAoB;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;QAC1E,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAA;QAEzC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;QAE5B,IAAI,QAAgB,CAAA;QACpB,IAAI,WAAmB,CAAA;QAEvB,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACvB,QAAQ,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;YAClE,WAAW,GAAG,CAAC,CAAA;QACjB,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAA;YAC/F,WAAW,GAAG,IAAI,CAAC,eAAe,CAAA;QACpC,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;QAE5B,OAAO,QAAQ,GAAG,CAAC,CAAA;IACrB,CAAC;IAED,iBAAiB;QACf,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;YAChC,OAAM;QACR,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC;YAClD,MAAM,wBAAwB,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;YACzD,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC7D,OAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,KAAK,CAAA;QAE3B,IAAI,CAAC,OAAO,EAAE,CAAA;QAEd,IAAI,CAAC;YACH,IAAI,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAA;YAE3C,OAAO,WAAW,KAAK,kBAAkB,EAAE,CAAC;gBAC1C,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,YAAY,GAAG,WAAW,GAAG,IAAI,CAAA;oBAEvC,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAA;oBACxD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,aAAa,EAAE,YAAY,CAAC,CAAA;oBAEtG,IAAI,QAAgB,CAAA;oBAEpB,IAAI,YAAY,GAAG,aAAa,EAAE,CAAC;wBACjC,MAAM,cAAc,GAAG,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;wBAC5F,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAA;oBACpE,CAAC;yBAAM,CAAC;wBACN,QAAQ,GAAG,aAAa,CAAA;oBAC1B,CAAC;oBAED,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;gBACrC,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;gBAC5C,CAAC;gBAED,IAAI,CAAC,OAAO,EAAE,CAAA;gBAEd,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAA;YACzC,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;QAC5B,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,EAAE,CAAA;QACjB,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAEpF,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAA;QACvC,IAAI,CAAC,eAAe,GAAG,cAAc,CAAA;QACrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC/C,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAC9B,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC,cAAc,CAAC,CAAA;QAEtD,IAAI,IAAI,CAAC,gBAAgB,KAAK,WAAW,CAAC,KAAK,EAAE,CAAC;YAChD,IAAI,CAAC,oBAAoB,EAAE,CAAA;QAC7B,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,8BAA8B,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;YAC/E,OAAO,CAAC,GAAG,CAAC,+BAA+B,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;QACpF,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO;QACL,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAA;QAC5C,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAA;QAC5C,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAA;IACjC,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAA;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAA;QAC5C,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAA;IACpC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"Explode.js","sourceRoot":"","sources":["../src/Explode.ts"],"names":[],"mappings":"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"}
|
package/dist/Implode.js
CHANGED
|
@@ -2,7 +2,7 @@ import { Buffer } from 'node:buffer';
|
|
|
2
2
|
import { ChBitsAsc, ChCodeAsc, Compression, DictionarySize, DistBits, DistCode, EMPTY_BUFFER, ExLenBits, LenBits, LenCode, LONGEST_ALLOWED_REPETITION, } from './constants.js';
|
|
3
3
|
import { InvalidCompressionTypeError, InvalidDictionarySizeError } from './errors.js';
|
|
4
4
|
import { ExpandingBuffer } from './ExpandingBuffer.js';
|
|
5
|
-
import { clamp,
|
|
5
|
+
import { clamp, quotientAndRemainder, getLowestNBitsOf, nBitsOfOnes, repeat, toHex } from './functions.js';
|
|
6
6
|
export const getSizeOfMatching = (inputBytes, a, b) => {
|
|
7
7
|
const limit = clamp(2, LONGEST_ALLOWED_REPETITION, b - a);
|
|
8
8
|
for (let i = 2; i <= limit; i++) {
|
|
@@ -45,8 +45,8 @@ export class Implode {
|
|
|
45
45
|
#dictionarySize = DictionarySize.Unknown;
|
|
46
46
|
#dictionarySizeMask = -1;
|
|
47
47
|
#streamEnded = false;
|
|
48
|
-
#distCodes =
|
|
49
|
-
#distBits =
|
|
48
|
+
#distCodes = structuredClone(DistCode);
|
|
49
|
+
#distBits = structuredClone(DistBits);
|
|
50
50
|
#startIndex = 0;
|
|
51
51
|
#handledFirstTwoBytes = false;
|
|
52
52
|
#outBits = 0;
|
|
@@ -84,7 +84,7 @@ export class Implode {
|
|
|
84
84
|
callback(null, EMPTY_BUFFER);
|
|
85
85
|
return;
|
|
86
86
|
}
|
|
87
|
-
let [numberOfBlocks] =
|
|
87
|
+
let [numberOfBlocks] = quotientAndRemainder(instance.#outputBuffer.size(), blockSize);
|
|
88
88
|
// making sure to leave one block worth of data for lookback when processing chunk data
|
|
89
89
|
numberOfBlocks--;
|
|
90
90
|
const numberOfBytes = numberOfBlocks * blockSize;
|
|
@@ -199,7 +199,7 @@ export class Implode {
|
|
|
199
199
|
}
|
|
200
200
|
if (this.#streamEnded) {
|
|
201
201
|
// Write the termination literal
|
|
202
|
-
this.#outputBits(
|
|
202
|
+
this.#outputBits(this.#nChBits.at(-1), this.#nChCodes.at(-1));
|
|
203
203
|
}
|
|
204
204
|
}
|
|
205
205
|
/**
|
|
@@ -251,7 +251,7 @@ export class Implode {
|
|
|
251
251
|
for (let nCount = 0; nCount < 0x100; nCount++) {
|
|
252
252
|
this.#nChBits[nCount] = 9;
|
|
253
253
|
this.#nChCodes[nCount] = nChCode;
|
|
254
|
-
nChCode =
|
|
254
|
+
nChCode = getLowestNBitsOf(nChCode, 16) + 2;
|
|
255
255
|
}
|
|
256
256
|
break;
|
|
257
257
|
case Compression.Ascii:
|
|
@@ -282,15 +282,15 @@ export class Implode {
|
|
|
282
282
|
}
|
|
283
283
|
const outBits = this.#outBits;
|
|
284
284
|
const lastBytes = this.#outputBuffer.readByte(this.#outputBuffer.size() - 1);
|
|
285
|
-
this.#outputBuffer.setByte(-1, lastBytes |
|
|
285
|
+
this.#outputBuffer.setByte(-1, lastBytes | getLowestNBitsOf(bitBuffer << outBits, 8));
|
|
286
286
|
this.#outBits = this.#outBits + nBits;
|
|
287
287
|
if (this.#outBits > 8) {
|
|
288
|
-
this.#outBits =
|
|
288
|
+
this.#outBits = getLowestNBitsOf(this.#outBits, 3);
|
|
289
289
|
bitBuffer = bitBuffer >> (8 - outBits);
|
|
290
|
-
this.#outputBuffer.appendByte(
|
|
290
|
+
this.#outputBuffer.appendByte(getLowestNBitsOf(bitBuffer, 8));
|
|
291
291
|
}
|
|
292
292
|
else {
|
|
293
|
-
this.#outBits =
|
|
293
|
+
this.#outBits = getLowestNBitsOf(this.#outBits, 3);
|
|
294
294
|
if (this.#outBits === 0) {
|
|
295
295
|
this.#outputBuffer.appendByte(0);
|
|
296
296
|
}
|
package/dist/Implode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Implode.js","sourceRoot":"","sources":["../src/Implode.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Implode.js","sourceRoot":"","sources":["../src/Implode.ts"],"names":[],"mappings":"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"}
|
package/dist/functions.d.ts
CHANGED
|
@@ -1,24 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates a copy of `value` `repetitions` times into an array:
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```js
|
|
6
|
+
* repeat(4, 10) -> [4, 4, 4, 4, 4, 4, 4, 4, 4, 4]
|
|
7
|
+
* ```
|
|
8
|
+
*
|
|
9
|
+
* Watch out! For reference types (arrays and objects) the repetitions will
|
|
10
|
+
* all point to the same object:
|
|
11
|
+
*
|
|
12
|
+
* ```js
|
|
13
|
+
* const data = { x: 10, y: 20 }
|
|
14
|
+
* const reps = repeat(data, 3) // -> [data, data, data]
|
|
15
|
+
* reps[2].x = 20
|
|
16
|
+
* console.log(data) // -> { x: 20, y: 20 }
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
1
19
|
export declare function repeat<T>(value: T, repetitions: number): T[];
|
|
20
|
+
/**
|
|
21
|
+
* Makes sure `n` is no smaller than `min` and no greater than `max`:
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```js
|
|
25
|
+
* clamp(3, 7, 8) === 7
|
|
26
|
+
* clamp(3, 7, 2) === 3
|
|
27
|
+
* clamp(3, 7, 5) === 5
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
2
30
|
export declare function clamp(min: number, max: number, n: number): number;
|
|
3
|
-
export declare function clone<T>(data: T): T;
|
|
4
31
|
/**
|
|
5
32
|
* @see https://github.com/ramda/ramda/blob/master/source/internal/_isFunction.js
|
|
6
33
|
*/
|
|
7
34
|
export declare function isFunction(x: any): x is Function;
|
|
8
35
|
/**
|
|
36
|
+
* Creates `numberOfBits` number of 1s:
|
|
37
|
+
*
|
|
9
38
|
* @example
|
|
10
39
|
* ```js
|
|
11
|
-
* nBitsOfOnes(3) ===
|
|
12
|
-
* nBitsOfOnes(7) ===
|
|
40
|
+
* nBitsOfOnes(3) === 0b111
|
|
41
|
+
* nBitsOfOnes(7) === 0b111_1111
|
|
13
42
|
* ```
|
|
14
43
|
*/
|
|
15
44
|
export declare function nBitsOfOnes(numberOfBits: number): number;
|
|
16
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Keeps the `numberOfBits` lower bits of `number` as is and discards higher bits:
|
|
47
|
+
*
|
|
48
|
+
* ```
|
|
49
|
+
* getLowestNBitsOf(0bXXXX_XXXX, 3) === 0b0000_0XXX
|
|
50
|
+
* ```
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```js
|
|
54
|
+
* getLowestNBitsOf(0b1101_1011, 4) === 0b0000_1011
|
|
55
|
+
* getLowestNBitsOf(0b1101_1011, 3) === 0b0000_0011
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare function getLowestNBitsOf(number: number, numberOfBits: number): number;
|
|
59
|
+
/**
|
|
60
|
+
* Converts a decimal integer into a hexadecimal number in a string with or without prefix and padding zeros
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```js
|
|
64
|
+
* toHex(17) === "0x11"
|
|
65
|
+
* toHex(17, 5) === "0x00011"
|
|
66
|
+
* toHex(17, 5, false) === "00011"
|
|
67
|
+
* toHex(17, 0, false) === "11"
|
|
68
|
+
*
|
|
69
|
+
* // invalid case: 1st parameter is not an integer
|
|
70
|
+
* toHex(14.632) === ""
|
|
71
|
+
*
|
|
72
|
+
* // invalid case: 2nd parameter is not an integer
|
|
73
|
+
* toHex(50, 3.2) === ""
|
|
74
|
+
*
|
|
75
|
+
* // invalid case: 2nd parameter is negative
|
|
76
|
+
* toHex(24, -5) === ""
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
17
79
|
export declare function toHex(num: number, digits?: number, withoutPrefix?: boolean): string;
|
|
80
|
+
/**
|
|
81
|
+
* A sparse array is an array with holes in it:
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```js
|
|
85
|
+
* const sparseArray = [1,, 3,, 5]
|
|
86
|
+
*
|
|
87
|
+
* // same as:
|
|
88
|
+
* const sparseArray = []
|
|
89
|
+
* sparseArray[0] = 1
|
|
90
|
+
* sparseArray[2] = 3
|
|
91
|
+
* sparseArray[4] = 5
|
|
92
|
+
* ```
|
|
93
|
+
*
|
|
94
|
+
* This function fills in holes in the 1st parameter array from the 2nd parameter array:
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ```js
|
|
98
|
+
* const a = [1,, 2,, 3]
|
|
99
|
+
* const b = [,, 12, 13, 14]
|
|
100
|
+
* mergeSparseArrays(a, b) // -> [1, undefined, 2, 13, 3]
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
18
103
|
export declare function mergeSparseArrays<T>(a: T[], b: T[]): (T | undefined)[];
|
|
19
|
-
export declare function last<T>(arr: T[]): T;
|
|
20
104
|
/**
|
|
105
|
+
* Builds a list from a seed value. Accepts an iterator function, which returns
|
|
106
|
+
* either false to stop iteration or an array of length 2 containing the value
|
|
107
|
+
* to add to the resulting list and the seed to be used in the next call to the
|
|
108
|
+
* iterator function.
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```js
|
|
112
|
+
* // while n is < 50:
|
|
113
|
+
* // - turn current value to negative
|
|
114
|
+
* // - add 10 to the next value
|
|
115
|
+
* function fn(n) {
|
|
116
|
+
* if (n > 50) {
|
|
117
|
+
* return false
|
|
118
|
+
* }
|
|
119
|
+
*
|
|
120
|
+
* return [-n, n + 10]
|
|
121
|
+
* }
|
|
122
|
+
*
|
|
123
|
+
* unfold(fn, 10) // -> [-10, -20, -30, -40, -50]
|
|
124
|
+
* ```
|
|
125
|
+
*
|
|
21
126
|
* @see https://github.com/ramda/ramda/blob/master/source/unfold.js
|
|
22
127
|
*/
|
|
23
128
|
export declare function unfold<T, TResult>(fn: (seed: T) => [TResult, T] | false, seed: T): TResult[];
|
|
24
|
-
|
|
129
|
+
/**
|
|
130
|
+
* @example
|
|
131
|
+
* ```js
|
|
132
|
+
* quotientAndRemainder(20, 3) // -> [6, 2]
|
|
133
|
+
* ```
|
|
134
|
+
*/
|
|
135
|
+
export declare function quotientAndRemainder(dividend: number, divisor: number): [number, number];
|
package/dist/functions.js
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates a copy of `value` `repetitions` times into an array:
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```js
|
|
6
|
+
* repeat(4, 10) -> [4, 4, 4, 4, 4, 4, 4, 4, 4, 4]
|
|
7
|
+
* ```
|
|
8
|
+
*
|
|
9
|
+
* Watch out! For reference types (arrays and objects) the repetitions will
|
|
10
|
+
* all point to the same object:
|
|
11
|
+
*
|
|
12
|
+
* ```js
|
|
13
|
+
* const data = { x: 10, y: 20 }
|
|
14
|
+
* const reps = repeat(data, 3) // -> [data, data, data]
|
|
15
|
+
* reps[2].x = 20
|
|
16
|
+
* console.log(data) // -> { x: 20, y: 20 }
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
1
19
|
export function repeat(value, repetitions) {
|
|
2
20
|
const values = [];
|
|
3
21
|
for (let i = 0; i < repetitions; i++) {
|
|
@@ -5,6 +23,16 @@ export function repeat(value, repetitions) {
|
|
|
5
23
|
}
|
|
6
24
|
return values;
|
|
7
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Makes sure `n` is no smaller than `min` and no greater than `max`:
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```js
|
|
31
|
+
* clamp(3, 7, 8) === 7
|
|
32
|
+
* clamp(3, 7, 2) === 3
|
|
33
|
+
* clamp(3, 7, 5) === 5
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
8
36
|
export function clamp(min, max, n) {
|
|
9
37
|
if (n < min) {
|
|
10
38
|
return min;
|
|
@@ -14,9 +42,6 @@ export function clamp(min, max, n) {
|
|
|
14
42
|
}
|
|
15
43
|
return n;
|
|
16
44
|
}
|
|
17
|
-
export function clone(data) {
|
|
18
|
-
return JSON.parse(JSON.stringify(data));
|
|
19
|
-
}
|
|
20
45
|
/**
|
|
21
46
|
* @see https://github.com/ramda/ramda/blob/master/source/internal/_isFunction.js
|
|
22
47
|
*/
|
|
@@ -24,10 +49,12 @@ export function isFunction(x) {
|
|
|
24
49
|
return Object.prototype.toString.call(x) === '[object Function]';
|
|
25
50
|
}
|
|
26
51
|
/**
|
|
52
|
+
* Creates `numberOfBits` number of 1s:
|
|
53
|
+
*
|
|
27
54
|
* @example
|
|
28
55
|
* ```js
|
|
29
|
-
* nBitsOfOnes(3) ===
|
|
30
|
-
* nBitsOfOnes(7) ===
|
|
56
|
+
* nBitsOfOnes(3) === 0b111
|
|
57
|
+
* nBitsOfOnes(7) === 0b111_1111
|
|
31
58
|
* ```
|
|
32
59
|
*/
|
|
33
60
|
export function nBitsOfOnes(numberOfBits) {
|
|
@@ -36,18 +63,83 @@ export function nBitsOfOnes(numberOfBits) {
|
|
|
36
63
|
}
|
|
37
64
|
return (1 << numberOfBits) - 1;
|
|
38
65
|
}
|
|
39
|
-
|
|
66
|
+
/**
|
|
67
|
+
* Keeps the `numberOfBits` lower bits of `number` as is and discards higher bits:
|
|
68
|
+
*
|
|
69
|
+
* ```
|
|
70
|
+
* getLowestNBitsOf(0bXXXX_XXXX, 3) === 0b0000_0XXX
|
|
71
|
+
* ```
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```js
|
|
75
|
+
* getLowestNBitsOf(0b1101_1011, 4) === 0b0000_1011
|
|
76
|
+
* getLowestNBitsOf(0b1101_1011, 3) === 0b0000_0011
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
export function getLowestNBitsOf(number, numberOfBits) {
|
|
40
80
|
return number & nBitsOfOnes(numberOfBits);
|
|
41
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Converts a decimal integer into a hexadecimal number in a string with or without prefix and padding zeros
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* ```js
|
|
87
|
+
* toHex(17) === "0x11"
|
|
88
|
+
* toHex(17, 5) === "0x00011"
|
|
89
|
+
* toHex(17, 5, false) === "00011"
|
|
90
|
+
* toHex(17, 0, false) === "11"
|
|
91
|
+
*
|
|
92
|
+
* // invalid case: 1st parameter is not an integer
|
|
93
|
+
* toHex(14.632) === ""
|
|
94
|
+
*
|
|
95
|
+
* // invalid case: 2nd parameter is not an integer
|
|
96
|
+
* toHex(50, 3.2) === ""
|
|
97
|
+
*
|
|
98
|
+
* // invalid case: 2nd parameter is negative
|
|
99
|
+
* toHex(24, -5) === ""
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
42
102
|
export function toHex(num, digits = 0, withoutPrefix = false) {
|
|
43
103
|
if (!Number.isInteger(num) || !Number.isInteger(digits) || digits < 0) {
|
|
44
104
|
return '';
|
|
45
105
|
}
|
|
46
|
-
|
|
106
|
+
let prefix = '0x';
|
|
107
|
+
if (withoutPrefix) {
|
|
108
|
+
prefix = '';
|
|
109
|
+
}
|
|
47
110
|
return `${prefix}${num.toString(16).padStart(digits, '0')}`;
|
|
48
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* A sparse array is an array with holes in it:
|
|
114
|
+
*
|
|
115
|
+
* @example
|
|
116
|
+
* ```js
|
|
117
|
+
* const sparseArray = [1,, 3,, 5]
|
|
118
|
+
*
|
|
119
|
+
* // same as:
|
|
120
|
+
* const sparseArray = []
|
|
121
|
+
* sparseArray[0] = 1
|
|
122
|
+
* sparseArray[2] = 3
|
|
123
|
+
* sparseArray[4] = 5
|
|
124
|
+
* ```
|
|
125
|
+
*
|
|
126
|
+
* This function fills in holes in the 1st parameter array from the 2nd parameter array:
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* ```js
|
|
130
|
+
* const a = [1,, 2,, 3]
|
|
131
|
+
* const b = [,, 12, 13, 14]
|
|
132
|
+
* mergeSparseArrays(a, b) // -> [1, undefined, 2, 13, 3]
|
|
133
|
+
* ```
|
|
134
|
+
*/
|
|
49
135
|
export function mergeSparseArrays(a, b) {
|
|
50
|
-
|
|
136
|
+
let result;
|
|
137
|
+
if (b.length < a.length) {
|
|
138
|
+
result = [...b, ...repeat(undefined, a.length - b.length)];
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
result = [...b];
|
|
142
|
+
}
|
|
51
143
|
for (let i = 0; i < a.length; i++) {
|
|
52
144
|
if (a[i] !== undefined) {
|
|
53
145
|
result[i] = a[i];
|
|
@@ -55,10 +147,28 @@ export function mergeSparseArrays(a, b) {
|
|
|
55
147
|
}
|
|
56
148
|
return result;
|
|
57
149
|
}
|
|
58
|
-
export function last(arr) {
|
|
59
|
-
return arr[arr.length - 1];
|
|
60
|
-
}
|
|
61
150
|
/**
|
|
151
|
+
* Builds a list from a seed value. Accepts an iterator function, which returns
|
|
152
|
+
* either false to stop iteration or an array of length 2 containing the value
|
|
153
|
+
* to add to the resulting list and the seed to be used in the next call to the
|
|
154
|
+
* iterator function.
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* ```js
|
|
158
|
+
* // while n is < 50:
|
|
159
|
+
* // - turn current value to negative
|
|
160
|
+
* // - add 10 to the next value
|
|
161
|
+
* function fn(n) {
|
|
162
|
+
* if (n > 50) {
|
|
163
|
+
* return false
|
|
164
|
+
* }
|
|
165
|
+
*
|
|
166
|
+
* return [-n, n + 10]
|
|
167
|
+
* }
|
|
168
|
+
*
|
|
169
|
+
* unfold(fn, 10) // -> [-10, -20, -30, -40, -50]
|
|
170
|
+
* ```
|
|
171
|
+
*
|
|
62
172
|
* @see https://github.com/ramda/ramda/blob/master/source/unfold.js
|
|
63
173
|
*/
|
|
64
174
|
export function unfold(fn, seed) {
|
|
@@ -70,7 +180,13 @@ export function unfold(fn, seed) {
|
|
|
70
180
|
}
|
|
71
181
|
return result;
|
|
72
182
|
}
|
|
73
|
-
|
|
74
|
-
|
|
183
|
+
/**
|
|
184
|
+
* @example
|
|
185
|
+
* ```js
|
|
186
|
+
* quotientAndRemainder(20, 3) // -> [6, 2]
|
|
187
|
+
* ```
|
|
188
|
+
*/
|
|
189
|
+
export function quotientAndRemainder(dividend, divisor) {
|
|
190
|
+
return [Math.floor(dividend / divisor), dividend % divisor];
|
|
75
191
|
}
|
|
76
192
|
//# 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,MAAM,UAAU,MAAM,CAAI,KAAQ,EAAE,WAAmB;IACrD,MAAM,MAAM,GAAQ,EAAE,CAAA;IACtB,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,MAAM,UAAU,KAAK,CAAC,GAAW,EAAE,GAAW,EAAE,CAAS;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
|
|
1
|
+
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { type Compression, type DictionarySize } from './constants.js';
|
|
2
|
+
import { type StreamHandler } from './stream.js';
|
|
2
3
|
import { type Config } from './types.js';
|
|
3
4
|
/**
|
|
4
5
|
* Decompresses stream
|
|
5
6
|
* @returns a function that you can use as a `transform._transform` method.
|
|
6
7
|
*/
|
|
7
|
-
export declare
|
|
8
|
+
export declare function explode(config?: Config): StreamHandler;
|
|
8
9
|
/**
|
|
9
10
|
* Compresses stream
|
|
10
11
|
* @returns a function that you can use as a `transform._transform` method.
|
|
11
12
|
*/
|
|
12
|
-
export declare
|
|
13
|
+
export declare function implode(compressionType: Compression, dictionarySize: DictionarySize, config?: Config): StreamHandler;
|
|
13
14
|
export { explode as decompress };
|
|
14
15
|
export { implode as compress };
|
|
15
16
|
export { Compression, DictionarySize } from './constants.js';
|
package/dist/index.js
CHANGED
|
@@ -4,18 +4,18 @@ import { Implode } from './Implode.js';
|
|
|
4
4
|
* Decompresses stream
|
|
5
5
|
* @returns a function that you can use as a `transform._transform` method.
|
|
6
6
|
*/
|
|
7
|
-
export
|
|
7
|
+
export function explode(config = {}) {
|
|
8
8
|
const instance = new Explode(config);
|
|
9
9
|
return instance.getHandler();
|
|
10
|
-
}
|
|
10
|
+
}
|
|
11
11
|
/**
|
|
12
12
|
* Compresses stream
|
|
13
13
|
* @returns a function that you can use as a `transform._transform` method.
|
|
14
14
|
*/
|
|
15
|
-
export
|
|
15
|
+
export function implode(compressionType, dictionarySize, config = {}) {
|
|
16
16
|
const instance = new Implode(compressionType, dictionarySize, config);
|
|
17
17
|
return instance.getHandler();
|
|
18
|
-
}
|
|
18
|
+
}
|
|
19
19
|
export { explode as decompress };
|
|
20
20
|
export { implode as compress };
|
|
21
21
|
export { Compression, DictionarySize } from './constants.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAIzC;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,SAAiB,EAAE;IACzC,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IACpC,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAA;AAC9B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CACrB,eAA4B,EAC5B,cAA8B,EAC9B,SAAiB,EAAE;IAEnB,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,eAAe,EAAE,cAAc,EAAE,MAAM,CAAC,CAAA;IACrE,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAA;AAC9B,CAAC;AAED,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,CAAA;AAChC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,CAAA;AAE9B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAA;AACxC,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAA"}
|
package/dist/stream.d.ts
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import { Transform, Writable, type TransformCallback } from 'node:stream';
|
|
2
2
|
export type StreamHandler = (this: Transform, chunk: Buffer, encoding: BufferEncoding, callback: TransformCallback) => void | Promise<void>;
|
|
3
|
+
type TransformPredicate = (chunk: Buffer) => [Buffer, Buffer, boolean];
|
|
3
4
|
/**
|
|
4
|
-
* Creates a
|
|
5
|
+
* Creates a {@link TransformPredicate} function, that awaits Buffers, keeps an internal counter
|
|
6
|
+
* of the bytes from them and splits the appropriate buffer at the given index.
|
|
7
|
+
*
|
|
5
8
|
* Splitting is done by returning an array with `[left: Buffer, right: Buffer, isLeftDone: bool]`.
|
|
6
|
-
*
|
|
9
|
+
*
|
|
10
|
+
* If you want to split data at the 100th byte and you keep feeding 60 byte long buffers to the function
|
|
11
|
+
* returned by `splitAt(100)`, then it will return arrays in the following manner:
|
|
7
12
|
* 1. `[inputBuffer, emptyBuffer, false]`
|
|
8
13
|
* 2. `[inputBuffer.slice(0, 40), inputBuffer.slice(40, 60), true]`
|
|
9
14
|
* 3. `[emptyBuffer, inputBuffer, true]`
|
|
@@ -11,29 +16,30 @@ export type StreamHandler = (this: Transform, chunk: Buffer, encoding: BufferEnc
|
|
|
11
16
|
* 5. ... and so on
|
|
12
17
|
* @param index - a positive integer at which to split the buffer
|
|
13
18
|
*/
|
|
14
|
-
export declare
|
|
19
|
+
export declare function splitAt(index: number): TransformPredicate;
|
|
15
20
|
/**
|
|
16
21
|
* A `transform._transform` type function, which lets the input chunks through without any changes
|
|
17
22
|
*/
|
|
18
|
-
export declare
|
|
23
|
+
export declare function transformIdentity(): StreamHandler;
|
|
19
24
|
/**
|
|
20
25
|
* A `transform._transform` type function, which for every input chunk will output an empty buffer
|
|
21
26
|
*/
|
|
22
|
-
export declare
|
|
27
|
+
export declare function transformEmpty(): StreamHandler;
|
|
23
28
|
/**
|
|
24
29
|
* Takes a `transform._transform` type function and turns it into a Transform stream instance
|
|
25
30
|
* @param handler a `transform._transform` type function
|
|
26
31
|
* @returns a Transform stream instance
|
|
27
32
|
*/
|
|
28
|
-
export declare
|
|
33
|
+
export declare function through(handler: StreamHandler): Transform;
|
|
29
34
|
/**
|
|
30
35
|
* Higher order function for introducing conditional logic to `transform._transform` functions.
|
|
31
36
|
* This is used internally to handle offsets for `explode()`.
|
|
32
37
|
* @returns a `transform._transform` type function
|
|
33
38
|
*/
|
|
34
|
-
export declare
|
|
39
|
+
export declare function transformSplitBy(predicate: TransformPredicate, leftHandler: StreamHandler, rightHandler: StreamHandler): (this: Transform, chunk: Buffer, encoding: BufferEncoding, callback: TransformCallback) => Promise<void>;
|
|
35
40
|
/**
|
|
36
41
|
* Data can be piped to the returned function from a stream and it will concatenate all chunks into a single buffer.
|
|
37
42
|
* @param done a callback function, which will receive the concatenated buffer as a parameter
|
|
38
43
|
*/
|
|
39
|
-
export declare
|
|
44
|
+
export declare function toBuffer(done: (buffer: Buffer) => void): Writable;
|
|
45
|
+
export {};
|
package/dist/stream.js
CHANGED
|
@@ -4,19 +4,23 @@ import { isFunction } from './functions.js';
|
|
|
4
4
|
import { ExpandingBuffer } from './ExpandingBuffer.js';
|
|
5
5
|
import { EMPTY_BUFFER } from './constants.js';
|
|
6
6
|
class QuasiTransform {
|
|
7
|
-
#handler;
|
|
8
7
|
_flush;
|
|
8
|
+
#handler;
|
|
9
9
|
constructor(handler) {
|
|
10
10
|
this.#handler = handler;
|
|
11
11
|
}
|
|
12
|
-
handle(chunk, encoding) {
|
|
12
|
+
async handle(chunk, encoding) {
|
|
13
13
|
return promisify(this.#handler).call(this, chunk, encoding);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
|
-
* Creates a
|
|
17
|
+
* Creates a {@link TransformPredicate} function, that awaits Buffers, keeps an internal counter
|
|
18
|
+
* of the bytes from them and splits the appropriate buffer at the given index.
|
|
19
|
+
*
|
|
18
20
|
* Splitting is done by returning an array with `[left: Buffer, right: Buffer, isLeftDone: bool]`.
|
|
19
|
-
*
|
|
21
|
+
*
|
|
22
|
+
* If you want to split data at the 100th byte and you keep feeding 60 byte long buffers to the function
|
|
23
|
+
* returned by `splitAt(100)`, then it will return arrays in the following manner:
|
|
20
24
|
* 1. `[inputBuffer, emptyBuffer, false]`
|
|
21
25
|
* 2. `[inputBuffer.slice(0, 40), inputBuffer.slice(40, 60), true]`
|
|
22
26
|
* 3. `[emptyBuffer, inputBuffer, true]`
|
|
@@ -24,7 +28,7 @@ class QuasiTransform {
|
|
|
24
28
|
* 5. ... and so on
|
|
25
29
|
* @param index - a positive integer at which to split the buffer
|
|
26
30
|
*/
|
|
27
|
-
export
|
|
31
|
+
export function splitAt(index) {
|
|
28
32
|
let cntr = 0;
|
|
29
33
|
return (chunk) => {
|
|
30
34
|
let left;
|
|
@@ -48,66 +52,67 @@ export const splitAt = (index) => {
|
|
|
48
52
|
right = chunk.subarray(index - cntr);
|
|
49
53
|
isLeftDone = true;
|
|
50
54
|
}
|
|
51
|
-
cntr
|
|
55
|
+
cntr = cntr + chunk.length;
|
|
52
56
|
return [left, right, isLeftDone];
|
|
53
57
|
};
|
|
54
|
-
}
|
|
58
|
+
}
|
|
55
59
|
/**
|
|
56
60
|
* A `transform._transform` type function, which lets the input chunks through without any changes
|
|
57
61
|
*/
|
|
58
|
-
export
|
|
62
|
+
export function transformIdentity() {
|
|
59
63
|
return function (chunk, encoding, callback) {
|
|
60
64
|
callback(null, chunk);
|
|
61
65
|
};
|
|
62
|
-
}
|
|
66
|
+
}
|
|
63
67
|
/**
|
|
64
68
|
* A `transform._transform` type function, which for every input chunk will output an empty buffer
|
|
65
69
|
*/
|
|
66
|
-
export
|
|
70
|
+
export function transformEmpty() {
|
|
67
71
|
return function (chunk, encoding, callback) {
|
|
68
72
|
callback(null, EMPTY_BUFFER);
|
|
69
73
|
};
|
|
70
|
-
}
|
|
74
|
+
}
|
|
71
75
|
/**
|
|
72
76
|
* Takes a `transform._transform` type function and turns it into a Transform stream instance
|
|
73
77
|
* @param handler a `transform._transform` type function
|
|
74
78
|
* @returns a Transform stream instance
|
|
75
79
|
*/
|
|
76
|
-
export
|
|
80
|
+
export function through(handler) {
|
|
77
81
|
return new Transform({
|
|
78
82
|
transform: handler,
|
|
79
83
|
});
|
|
80
|
-
}
|
|
84
|
+
}
|
|
81
85
|
/**
|
|
82
86
|
* Higher order function for introducing conditional logic to `transform._transform` functions.
|
|
83
87
|
* This is used internally to handle offsets for `explode()`.
|
|
84
88
|
* @returns a `transform._transform` type function
|
|
85
89
|
*/
|
|
86
|
-
export
|
|
90
|
+
export function transformSplitBy(predicate, leftHandler, rightHandler) {
|
|
87
91
|
let isFirstChunk = true;
|
|
88
92
|
let wasLeftFlushCalled = false;
|
|
89
|
-
const damChunkSize =
|
|
93
|
+
const damChunkSize = 0x1_00_00;
|
|
90
94
|
const dam = new ExpandingBuffer();
|
|
91
95
|
const leftTransform = new QuasiTransform(leftHandler);
|
|
92
96
|
const rightTransform = new QuasiTransform(rightHandler);
|
|
93
|
-
return function (chunk, encoding, callback) {
|
|
97
|
+
return async function (chunk, encoding, callback) {
|
|
94
98
|
const [left, right, isLeftDone] = predicate(chunk);
|
|
95
|
-
const
|
|
96
|
-
const
|
|
99
|
+
const transformedLeft = leftTransform.handle(left, encoding);
|
|
100
|
+
const transformedRight = rightTransform.handle(right, encoding);
|
|
101
|
+
const transformInstance = this;
|
|
97
102
|
if (isFirstChunk) {
|
|
98
103
|
isFirstChunk = false;
|
|
99
|
-
|
|
104
|
+
transformInstance._flush = async function (flushCallback) {
|
|
100
105
|
if (!dam.isEmpty()) {
|
|
101
|
-
|
|
106
|
+
transformInstance.push(dam.read());
|
|
102
107
|
}
|
|
103
108
|
const leftFiller = new Promise((resolve, reject) => {
|
|
104
109
|
if (wasLeftFlushCalled || !isFunction(leftTransform._flush)) {
|
|
105
110
|
resolve(EMPTY_BUFFER);
|
|
106
111
|
return;
|
|
107
112
|
}
|
|
108
|
-
leftTransform._flush((
|
|
109
|
-
if (
|
|
110
|
-
reject(
|
|
113
|
+
leftTransform._flush((error, data) => {
|
|
114
|
+
if (error) {
|
|
115
|
+
reject(error);
|
|
111
116
|
}
|
|
112
117
|
else {
|
|
113
118
|
resolve(data);
|
|
@@ -128,22 +133,21 @@ export const transformSplitBy = (predicate, leftHandler, rightHandler) => {
|
|
|
128
133
|
}
|
|
129
134
|
});
|
|
130
135
|
});
|
|
131
|
-
|
|
132
|
-
.
|
|
133
|
-
// TODO: TransformCallback assumes the returned data is any instead of Buffer
|
|
136
|
+
try {
|
|
137
|
+
const buffers = await Promise.all([leftFiller, rightFiller]);
|
|
134
138
|
flushCallback(null, Buffer.concat(buffers));
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
flushCallback(
|
|
138
|
-
}
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
flushCallback(error);
|
|
142
|
+
}
|
|
139
143
|
};
|
|
140
144
|
}
|
|
141
145
|
const filler = new Promise((resolve, reject) => {
|
|
142
146
|
if (isLeftDone && !wasLeftFlushCalled && isFunction(leftTransform._flush)) {
|
|
143
147
|
wasLeftFlushCalled = true;
|
|
144
|
-
leftTransform._flush((
|
|
145
|
-
if (
|
|
146
|
-
reject(
|
|
148
|
+
leftTransform._flush((error, data) => {
|
|
149
|
+
if (error) {
|
|
150
|
+
reject(error);
|
|
147
151
|
}
|
|
148
152
|
else {
|
|
149
153
|
resolve(data);
|
|
@@ -154,9 +158,8 @@ export const transformSplitBy = (predicate, leftHandler, rightHandler) => {
|
|
|
154
158
|
resolve(EMPTY_BUFFER);
|
|
155
159
|
}
|
|
156
160
|
});
|
|
157
|
-
|
|
158
|
-
.
|
|
159
|
-
// TODO: TransformCallback assumes the returned data is any instead of Buffer
|
|
161
|
+
try {
|
|
162
|
+
const buffers = await Promise.all([transformedLeft, filler, transformedRight]);
|
|
160
163
|
dam.append(Buffer.concat(buffers));
|
|
161
164
|
if (dam.size() > damChunkSize) {
|
|
162
165
|
const chunks = Math.floor(dam.size() / damChunkSize);
|
|
@@ -170,17 +173,17 @@ export const transformSplitBy = (predicate, leftHandler, rightHandler) => {
|
|
|
170
173
|
else {
|
|
171
174
|
callback(null, EMPTY_BUFFER);
|
|
172
175
|
}
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
callback(
|
|
176
|
-
}
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
callback(error);
|
|
179
|
+
}
|
|
177
180
|
};
|
|
178
|
-
}
|
|
181
|
+
}
|
|
179
182
|
/**
|
|
180
183
|
* Data can be piped to the returned function from a stream and it will concatenate all chunks into a single buffer.
|
|
181
184
|
* @param done a callback function, which will receive the concatenated buffer as a parameter
|
|
182
185
|
*/
|
|
183
|
-
export
|
|
186
|
+
export function toBuffer(done) {
|
|
184
187
|
const buffer = new ExpandingBuffer();
|
|
185
188
|
return new Writable({
|
|
186
189
|
write(chunk, encoding, callback) {
|
|
@@ -192,5 +195,5 @@ export const toBuffer = (done) => {
|
|
|
192
195
|
callback();
|
|
193
196
|
},
|
|
194
197
|
});
|
|
195
|
-
}
|
|
198
|
+
}
|
|
196
199
|
//# sourceMappingURL=stream.js.map
|
package/dist/stream.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAA0B,MAAM,aAAa,CAAA;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAWhD,MAAM,cAAc;IAClB,
|
|
1
|
+
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"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"}
|