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 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 { evenAndRemainder, getLowestNBits, mergeSparseArrays, nBitsOfOnes, repeat, toHex, unfold, } from './functions.js';
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] = evenAndRemainder(blockSize, instance.#outputBuffer.size());
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 = getLowestNBits(8, ChCodeAsc[index]);
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 (getLowestNBits(6, acc) === 0) {
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 = getLowestNBits(1, this.#bitBuffer);
166
+ const lastBit = getLowestNBitsOf(this.#bitBuffer, 1);
167
167
  this.#wasteBits(1);
168
168
  if (lastBit) {
169
- let lengthCode = this.#lengthCodes[getLowestNBits(8, this.#bitBuffer)];
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 = getLowestNBits(extraLenghtBits, this.#bitBuffer);
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 = getLowestNBits(8, this.#bitBuffer);
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 (getLowestNBits(6, this.#bitBuffer)) {
195
+ if (getLowestNBitsOf(this.#bitBuffer, 6)) {
196
196
  this.#wasteBits(4);
197
- value = this.#asciiTable2D34[getLowestNBits(8, this.#bitBuffer)];
197
+ value = this.#asciiTable2D34[getLowestNBitsOf(this.#bitBuffer, 8)];
198
198
  }
199
199
  else {
200
200
  this.#wasteBits(6);
201
- value = this.#asciiTable2E34[getLowestNBits(7, this.#bitBuffer)];
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[getLowestNBits(8, this.#bitBuffer)];
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[getLowestNBits(8, this.#bitBuffer)];
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) | getLowestNBits(2, this.#bitBuffer);
222
+ distance = (distPosCode << 2) | getLowestNBitsOf(this.#bitBuffer, 2);
223
223
  bitsToWaste = 2;
224
224
  }
225
225
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"Explode.js","sourceRoot":"","sources":["../src/Explode.ts"],"names":[],"mappings":"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"}
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, clone, evenAndRemainder, getLowestNBits, last, nBitsOfOnes, repeat, toHex } from './functions.js';
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 = clone(DistCode);
49
- #distBits = clone(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] = evenAndRemainder(blockSize, instance.#outputBuffer.size());
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(last(this.#nChBits), last(this.#nChCodes));
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 = getLowestNBits(16, nChCode) + 2;
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 | getLowestNBits(8, bitBuffer << outBits));
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 = getLowestNBits(3, this.#outBits);
288
+ this.#outBits = getLowestNBitsOf(this.#outBits, 3);
289
289
  bitBuffer = bitBuffer >> (8 - outBits);
290
- this.#outputBuffer.appendByte(getLowestNBits(8, bitBuffer));
290
+ this.#outputBuffer.appendByte(getLowestNBitsOf(bitBuffer, 8));
291
291
  }
292
292
  else {
293
- this.#outBits = getLowestNBits(3, this.#outBits);
293
+ this.#outBits = getLowestNBitsOf(this.#outBits, 3);
294
294
  if (this.#outBits === 0) {
295
295
  this.#outputBuffer.appendByte(0);
296
296
  }
@@ -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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"}
@@ -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) === 0b00000111
12
- * nBitsOfOnes(7) === 0b01111111
40
+ * nBitsOfOnes(3) === 0b111
41
+ * nBitsOfOnes(7) === 0b111_1111
13
42
  * ```
14
43
  */
15
44
  export declare function nBitsOfOnes(numberOfBits: number): number;
16
- export declare function getLowestNBits(numberOfBits: number, number: number): number;
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
- export declare function evenAndRemainder(divisor: number, n: number): [number, number];
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) === 0b00000111
30
- * nBitsOfOnes(7) === 0b01111111
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
- export function getLowestNBits(numberOfBits, number) {
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
- const prefix = withoutPrefix ? '' : '0x';
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
- const result = [...b, ...(b.length < a.length ? repeat(undefined, a.length - b.length) : [])];
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
- export function evenAndRemainder(divisor, n) {
74
- return [Math.floor(n / divisor), n % divisor];
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
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"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"}
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 const explode: (config?: Config) => (this: import("./stream").Transform, chunk: Buffer, encoding: BufferEncoding, callback: import("./stream").TransformCallback) => void;
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 const implode: (compressionType: Compression, dictionarySize: DictionarySize, config?: Config) => (this: import("./stream").Transform, chunk: Buffer, encoding: BufferEncoding, callback: import("./stream").TransformCallback) => void;
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 const explode = (config = {}) => {
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 const implode = (compressionType, dictionarySize, config = {}) => {
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;AAGzC;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,SAAiB,EAAE,EAAE,EAAE;IAC7C,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IACpC,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAA;AAC9B,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,eAA4B,EAAE,cAA8B,EAAE,SAAiB,EAAE,EAAE,EAAE;IAC3G,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,eAAe,EAAE,cAAc,EAAE,MAAM,CAAC,CAAA;IACrE,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAA;AAC9B,CAAC,CAAA;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"}
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 "**predicate**" function, that awaits Buffers, keeps an internal counter of the bytes from them and splits the appropriate buffer at the given index.
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
- * If you want to split data at the 100th byte and you keep feeding 60 byte long buffers to the function returned by `splitAt(100)`, then it will return arrays in the following manner:
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 const splitAt: (index: number) => (chunk: Buffer) => [Buffer, Buffer, boolean];
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 const transformIdentity: () => (this: Transform, chunk: Buffer, encoding: BufferEncoding, callback: TransformCallback) => void;
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 const transformEmpty: () => (this: Transform, chunk: Buffer, encoding: BufferEncoding, callback: TransformCallback) => void;
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 const through: (handler: StreamHandler) => Transform;
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 const transformSplitBy: (predicate: (chunk: Buffer) => [Buffer, Buffer, boolean], leftHandler: StreamHandler, rightHandler: StreamHandler) => (this: Transform, chunk: Buffer, encoding: BufferEncoding, callback: TransformCallback) => void;
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 const toBuffer: (done: (buffer: Buffer) => void) => Writable;
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 "**predicate**" function, that awaits Buffers, keeps an internal counter of the bytes from them and splits the appropriate buffer at the given index.
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
- * If you want to split data at the 100th byte and you keep feeding 60 byte long buffers to the function returned by `splitAt(100)`, then it will return arrays in the following manner:
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 const splitAt = (index) => {
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 += chunk.length;
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 const transformIdentity = () => {
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 const transformEmpty = () => {
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 const through = (handler) => {
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 const transformSplitBy = (predicate, leftHandler, rightHandler) => {
90
+ export function transformSplitBy(predicate, leftHandler, rightHandler) {
87
91
  let isFirstChunk = true;
88
92
  let wasLeftFlushCalled = false;
89
- const damChunkSize = 0x10000;
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 _left = leftTransform.handle(left, encoding);
96
- const _right = rightTransform.handle(right, encoding);
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
- this._flush = (flushCallback) => {
104
+ transformInstance._flush = async function (flushCallback) {
100
105
  if (!dam.isEmpty()) {
101
- this.push(dam.read());
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((err, data) => {
109
- if (err) {
110
- reject(err);
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
- Promise.all([leftFiller, rightFiller])
132
- .then((buffers) => {
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
- .catch((err) => {
137
- flushCallback(err);
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((err, data) => {
145
- if (err) {
146
- reject(err);
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
- Promise.all([_left, filler, _right])
158
- .then((buffers) => {
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
- .catch((err) => {
175
- callback(err);
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 const toBuffer = (done) => {
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
@@ -1 +1 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-pkware",
3
- "version": "4.0.0-alpha.3",
3
+ "version": "4.0.0-alpha.5",
4
4
  "description": "nodejs implementation of StormLib's pkware compressor/de-compressor",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",