node-pkware 2.0.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/README.md +42 -40
  2. package/dist/ExpandingBuffer.d.ts +53 -0
  3. package/dist/ExpandingBuffer.js +134 -0
  4. package/dist/ExpandingBuffer.js.map +1 -0
  5. package/dist/Explode.d.ts +8 -0
  6. package/dist/Explode.js +309 -0
  7. package/dist/Explode.js.map +1 -0
  8. package/dist/Implode.d.ts +11 -0
  9. package/dist/Implode.js +305 -0
  10. package/dist/Implode.js.map +1 -0
  11. package/dist/bin/explode.d.ts +2 -0
  12. package/dist/bin/explode.js +59 -0
  13. package/dist/bin/explode.js.map +1 -0
  14. package/dist/bin/helpers.d.ts +8 -0
  15. package/dist/bin/helpers.js +65 -0
  16. package/dist/bin/helpers.js.map +1 -0
  17. package/dist/bin/implode.d.ts +2 -0
  18. package/dist/bin/implode.js +79 -0
  19. package/dist/bin/implode.js.map +1 -0
  20. package/dist/constants.d.ts +32 -0
  21. package/dist/constants.js +114 -0
  22. package/dist/constants.js.map +1 -0
  23. package/{types → dist}/errors.d.ts +13 -11
  24. package/dist/errors.js +52 -0
  25. package/dist/errors.js.map +1 -0
  26. package/dist/functions.d.ts +11 -0
  27. package/dist/functions.js +73 -0
  28. package/dist/functions.js.map +1 -0
  29. package/dist/index.d.ts +20 -0
  30. package/dist/index.js +54 -0
  31. package/dist/index.js.map +1 -0
  32. package/{types/helpers → dist}/stream.d.ts +13 -34
  33. package/dist/stream.js +205 -0
  34. package/dist/stream.js.map +1 -0
  35. package/dist/tsconfig.tsbuildinfo +1 -0
  36. package/dist/types.d.ts +25 -0
  37. package/dist/types.js +3 -0
  38. package/dist/types.js.map +1 -0
  39. package/package.json +14 -45
  40. package/src/ExpandingBuffer.ts +148 -0
  41. package/src/Explode.ts +404 -0
  42. package/src/Implode.ts +368 -0
  43. package/{bin/explode.js → src/bin/explode.ts} +35 -33
  44. package/src/bin/helpers.ts +65 -0
  45. package/src/bin/implode.ts +116 -0
  46. package/src/{constants.js → constants.ts} +31 -50
  47. package/src/errors.ts +47 -0
  48. package/src/functions.ts +73 -0
  49. package/src/index.ts +30 -0
  50. package/src/stream.ts +220 -0
  51. package/src/types.ts +26 -0
  52. package/bin/implode.js +0 -116
  53. package/src/errors.js +0 -50
  54. package/src/explode.js +0 -411
  55. package/src/helpers/ExpandingBuffer.js +0 -123
  56. package/src/helpers/functions.js +0 -150
  57. package/src/helpers/stream.js +0 -190
  58. package/src/helpers/testing.js +0 -80
  59. package/src/implode.js +0 -364
  60. package/src/index.js +0 -18
  61. package/tsconfig.json +0 -20
  62. package/types/constants.d.ts +0 -41
  63. package/types/explode.d.ts +0 -56
  64. package/types/helpers/ExpandingBuffer.d.ts +0 -25
  65. package/types/helpers/Shared.d.ts +0 -46
  66. package/types/helpers/functions.d.ts +0 -15
  67. package/types/helpers/testing.d.ts +0 -6
  68. package/types/implode.d.ts +0 -63
  69. package/types/index.d.ts +0 -8
@@ -1,56 +0,0 @@
1
- import ExpandingBuffer from './helpers/ExpandingBuffer'
2
- import { Callback, Config, Handler, PrivateState } from './helpers/Shared'
3
- import { CompressionType, DictionarySizeBits, PKDCL_STREAM_END, PKDCL_OK, LITERAL_STREAM_ABORTED } from './constants'
4
-
5
- export function readHeader(buffer: Buffer): {
6
- compressionType: CompressionType
7
- dictionarySizeBits: DictionarySizeBits
8
- }
9
-
10
- type PrivateExplodeState = {
11
- _backup: {
12
- extraBits: number
13
- bitBuffer: Buffer
14
- }
15
- needMoreInput: boolean
16
- isFirstChunk: boolean
17
- extraBits: number
18
- bitBuffer: Buffer
19
- chBitsAsc: number[] // DecodeLit and GenAscTabs uses this
20
- lengthCodes: number[]
21
- distPosCodes: number[]
22
- inputBuffer: ExpandingBuffer
23
- outputBuffer: ExpandingBuffer
24
- onInputFinished(callback: Callback): void
25
- backup(): void
26
- restore(): void
27
- stats: {
28
- chunkCounter: number
29
- }
30
- compressionType: CompressionType
31
- dictionarySizeBits: DictionarySizeBits
32
- dictionarySizeMask: number
33
- asciiTable2C34: number[]
34
- asciiTable2D34: number[]
35
- asciiTable2E34: number[]
36
- asciiTable2EB4: number[]
37
- }
38
-
39
- /**
40
- * Decompresses stream
41
- * @returns a function, that you can use as a `transform._transform` method.
42
- */
43
- export function explode(config?: Config): PrivateState<PrivateExplodeState> & Handler
44
- export function createPATIterator(limit: number, stepper: number): (n: number) => false | [number, number]
45
- export function populateAsciiTable(value: number, index: number, bits: number, limit: number): number[]
46
- export function generateAsciiTables(): {
47
- asciiTable2C34: number[]
48
- asciiTable2D34: number[]
49
- asciiTable2E34: number[]
50
- asciiTable2EB4: number[]
51
- }
52
- export function processChunkData(state: PrivateExplodeState, verbose?: boolean): void
53
- export function wasteBits(state: PrivateExplodeState, numberOfBits: number): typeof PKDCL_STREAM_END | typeof PKDCL_OK
54
- export function decodeNextLiteral(state: PrivateExplodeState): typeof LITERAL_STREAM_ABORTED | number
55
- export function decodeDistance(state: PrivateExplodeState, repeatLength: number): number
56
- export function generateDecodeTables(startIndexes: number[], lengthBits: number[]): number[]
@@ -1,25 +0,0 @@
1
- export = ExpandingBuffer
2
- declare class ExpandingBuffer {
3
- constructor(numberOfBytes?: number)
4
- _heap: Buffer
5
- _startIndex: number
6
- _endIndex: number
7
- _backup: {
8
- _startIndex: number
9
- _endIndex: number
10
- }
11
- _getActualData(offset?: number): Buffer
12
- size(): number
13
- isEmpty(): boolean
14
- heapSize(): number
15
- append(buffer: Buffer): void
16
- read(offset?: number, limit?: number): number | Buffer
17
- flushStart(numberOfBytes: number): void
18
- flushEnd(numberOfBytes: number): void
19
- dropStart(numberOfBytes: number): void
20
- dropEnd(numberOfBytes: number): void
21
- getHeap(): Buffer
22
- clear(): void
23
- _saveIndices(): void
24
- _restoreIndices(): void
25
- }
@@ -1,46 +0,0 @@
1
- /**
2
- * Shared type signatures used throughout the library.
3
- */
4
-
5
- /**
6
- * A traditional "nodeback<Buffer>" callback type.
7
- * @param error The error, if any.
8
- * @param data The data, if any.
9
- */
10
- export type Callback = (error: Error | null, chunk: Buffer) => void
11
-
12
- /**
13
- * Handler for one chunk of bytes
14
- * @param chunk The chunk of bytes
15
- * @param encoding The encoding of the chunk (not used)
16
- * @param callback The callback to call when done
17
- */
18
- export type Handler = (chunk: Buffer, encoding: unknown, callback: Callback) => void
19
-
20
- /**
21
- * How the implode & explode functions store their internal state.
22
- */
23
- export type PrivateState<T> = { _state: T }
24
-
25
- /**
26
- * Configuration options for the implode & explode functions.
27
- */
28
- export type Config = {
29
- /**
30
- * Whether the code should display extra messages on the console or not
31
- * @default false
32
- */
33
- verbose?: boolean
34
- /**
35
- * The starting size of the input buffer, may expand later as needed.
36
- * Not having to expand may have performance impact.
37
- * @default 0
38
- */
39
- inputBufferSize?: number
40
- /**
41
- * The starting size of the output buffer, may expand later as needed.
42
- * Not having to expand may have performance impact.
43
- * @default 0
44
- */
45
- outputBufferSize?: number
46
- }
@@ -1,15 +0,0 @@
1
- export function isNumber(x: any): boolean
2
- export function isString(x: any): boolean
3
- export function isFunction(x: any): boolean
4
- export function noop(): void
5
- export function isPlainObject(x: any): boolean
6
- export function isBetween(min: number, max: number, num: number): boolean
7
- export function nBitsOfOnes(numberOfBits: number): number
8
- export function maskBits(numberOfBits: number, number: number): number
9
- export function getLowestNBits(numberOfBits: number, number: number): number
10
- export function isFullHexString(str: string): boolean
11
- export function toHex(num: number, digits?: number, withoutPrefix?: boolean): string
12
- export function mergeSparseArrays<T>(a: T[], b: T[]): T[]
13
- export function parseNumberString(n: string, defaultValue?: number): number
14
- export function getPackageVersion(): Promise<string>
15
- export function fileExists(filename: string): Promise<boolean>
@@ -1,6 +0,0 @@
1
- import { Handler } from './Shared'
2
-
3
- export function isClass(obj: any): obj is Object
4
- export function buffersShouldEqual(expected: Buffer, result: Buffer, offset?: number, displayAsHex?: boolean): void
5
- export function bufferToString(buffer: Buffer, limit?: number): string
6
- export function transformToABC(): Handler
@@ -1,63 +0,0 @@
1
- import { CompressionType, DictionarySizeBits } from './constants'
2
- import ExpandingBuffer from './helpers/ExpandingBuffer'
3
- import { Callback, Config, Handler, PrivateState } from './helpers/Shared'
4
-
5
- type PrivateExplodeState = {
6
- _backup: {
7
- extraBits: number
8
- bitBuffer: Buffer
9
- }
10
- needMoreInput: boolean
11
- isFirstChunk: boolean
12
- extraBits: number
13
- bitBuffer: Buffer
14
- chBitsAsc: number[] // DecodeLit and GenAscTabs uses this
15
- lengthCodes: number[]
16
- distPosCodes: number[]
17
- nChBits: number[]
18
- nChCodes: number[]
19
- inputBuffer: ExpandingBuffer
20
- outputBuffer: ExpandingBuffer
21
- onInputFinished(callback: Callback): void
22
- backup(): void
23
- restore(): void
24
- stats: {
25
- chunkCounter: number
26
- }
27
- compressionType: CompressionType
28
- dictionarySizeBits: DictionarySizeBits
29
- dictionarySizeMask: number
30
- asciiTable2C34: number[]
31
- asciiTable2D34: number[]
32
- asciiTable2E34: number[]
33
- asciiTable2EB4: number[]
34
- }
35
-
36
- export function setup(state: PrivateExplodeState): void
37
- export function outputBits(state: PrivateExplodeState, nBits: number, bitBuffer: number): void
38
- export function getSizeOfMatching(inputBytes: number[], a: number, b: number): number
39
- export function findRepetitions(
40
- inputBytes: number[],
41
- endOfLastMatch: number,
42
- cursor: number,
43
- ): { size: number; distance: number }
44
- export function isRepetitionFlushable(
45
- size: number,
46
- distance: number,
47
- startIndex: number,
48
- inputBufferSize: number,
49
- ): boolean | null
50
- export function processChunkData(state: PrivateExplodeState, verbose?: boolean): void
51
-
52
- /**
53
- * Compresses stream
54
- * @param compressionType one of `constants.CompressionType`
55
- * @param dictionarySizeBits one of `constants.DictionarySizeBits`
56
- * @param config `Config` object
57
- * @return a function, that you can use as a transform._transform method
58
- */
59
- export function implode(
60
- compressionType: CompressionType,
61
- dictionarySizeBits: DictionarySizeBits,
62
- config?: Config,
63
- ): PrivateState<PrivateExplodeState> & Handler
package/types/index.d.ts DELETED
@@ -1,8 +0,0 @@
1
- export { implode } from './implode'
2
- export { implode as compress } from './implode'
3
- export { explode } from './explode'
4
- export { explode as decompress } from './explode'
5
-
6
- export * as constants from './constants'
7
- export * as errors from './errors'
8
- export * as stream from './helpers/stream'