@push.rocks/smartarchive 4.2.4 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist_ts/00_commitinfo_data.js +1 -1
  2. package/dist_ts/bzip2/bititerator.d.ts +6 -1
  3. package/dist_ts/bzip2/bititerator.js +30 -24
  4. package/dist_ts/bzip2/bzip2.d.ts +27 -12
  5. package/dist_ts/bzip2/bzip2.js +325 -263
  6. package/dist_ts/bzip2/index.d.ts +4 -1
  7. package/dist_ts/bzip2/index.js +36 -38
  8. package/dist_ts/classes.archiveanalyzer.d.ts +25 -5
  9. package/dist_ts/classes.archiveanalyzer.js +19 -8
  10. package/dist_ts/classes.bzip2tools.d.ts +1 -1
  11. package/dist_ts/classes.gziptools.d.ts +43 -6
  12. package/dist_ts/classes.gziptools.js +76 -24
  13. package/dist_ts/classes.smartarchive.d.ts +198 -16
  14. package/dist_ts/classes.smartarchive.js +652 -79
  15. package/dist_ts/classes.tartools.d.ts +31 -4
  16. package/dist_ts/classes.tartools.js +93 -32
  17. package/dist_ts/classes.ziptools.d.ts +47 -12
  18. package/dist_ts/classes.ziptools.js +128 -23
  19. package/dist_ts/errors.d.ts +44 -0
  20. package/dist_ts/errors.js +62 -0
  21. package/dist_ts/index.d.ts +4 -0
  22. package/dist_ts/index.js +9 -1
  23. package/dist_ts/interfaces.d.ts +119 -0
  24. package/dist_ts/interfaces.js +2 -0
  25. package/package.json +1 -1
  26. package/readme.hints.md +69 -23
  27. package/readme.md +360 -274
  28. package/ts/00_commitinfo_data.ts +1 -1
  29. package/ts/bzip2/bititerator.ts +43 -27
  30. package/ts/bzip2/bzip2.ts +289 -171
  31. package/ts/bzip2/index.ts +52 -50
  32. package/ts/classes.archiveanalyzer.ts +42 -28
  33. package/ts/classes.gziptools.ts +91 -33
  34. package/ts/classes.smartarchive.ts +765 -140
  35. package/ts/classes.tartools.ts +124 -52
  36. package/ts/classes.ziptools.ts +147 -34
  37. package/ts/errors.ts +70 -0
  38. package/ts/index.ts +11 -0
  39. package/ts/interfaces.ts +136 -0
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@push.rocks/smartarchive',
6
- version: '4.2.4',
6
+ version: '5.0.1',
7
7
  description: 'A library for working with archive files, providing utilities for compressing and decompressing data.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSwwQkFBMEI7SUFDaEMsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLHVHQUF1RztDQUNySCxDQUFBIn0=
@@ -1 +1,6 @@
1
- export declare function bitIterator(nextBuffer: () => Buffer): (n: any) => number;
1
+ import type { IBitReader } from '../interfaces.js';
2
+ /**
3
+ * Creates a bit reader function for BZIP2 decompression.
4
+ * Takes a buffer iterator as input and returns a function that reads bits.
5
+ */
6
+ export declare function bitIterator(nextBuffer: () => Buffer): IBitReader;
@@ -1,44 +1,50 @@
1
- var BITMASK = [0, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff];
2
- // returns a function that reads bits.
3
- // takes a buffer iterator as input
1
+ const BITMASK = [0, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff];
2
+ /**
3
+ * Creates a bit reader function for BZIP2 decompression.
4
+ * Takes a buffer iterator as input and returns a function that reads bits.
5
+ */
4
6
  export function bitIterator(nextBuffer) {
5
- var bit = 0, byte = 0;
6
- var bytes = nextBuffer();
7
- var f = function (n) {
8
- if (n === null && bit != 0) {
7
+ let bit = 0;
8
+ let byte = 0;
9
+ let bytes = nextBuffer();
10
+ let _bytesRead = 0;
11
+ const reader = function (n) {
12
+ if (n === null && bit !== 0) {
9
13
  // align to byte boundary
10
14
  bit = 0;
11
15
  byte++;
12
16
  return;
13
17
  }
14
- var result = 0;
15
- while (n > 0) {
18
+ let result = 0;
19
+ let remaining = n;
20
+ while (remaining > 0) {
16
21
  if (byte >= bytes.length) {
17
22
  byte = 0;
18
23
  bytes = nextBuffer();
19
24
  }
20
- var left = 8 - bit;
21
- if (bit === 0 && n > 0)
22
- // @ts-ignore
23
- f.bytesRead++;
24
- if (n >= left) {
25
+ const left = 8 - bit;
26
+ if (bit === 0 && remaining > 0) {
27
+ _bytesRead++;
28
+ }
29
+ if (remaining >= left) {
25
30
  result <<= left;
26
31
  result |= BITMASK[left] & bytes[byte++];
27
32
  bit = 0;
28
- n -= left;
33
+ remaining -= left;
29
34
  }
30
35
  else {
31
- result <<= n;
32
- result |=
33
- (bytes[byte] & (BITMASK[n] << (8 - n - bit))) >> (8 - n - bit);
34
- bit += n;
35
- n = 0;
36
+ result <<= remaining;
37
+ result |= (bytes[byte] & (BITMASK[remaining] << (8 - remaining - bit))) >> (8 - remaining - bit);
38
+ bit += remaining;
39
+ remaining = 0;
36
40
  }
37
41
  }
38
42
  return result;
39
43
  };
40
- // @ts-ignore
41
- f.bytesRead = 0;
42
- return f;
44
+ Object.defineProperty(reader, 'bytesRead', {
45
+ get: () => _bytesRead,
46
+ enumerable: true,
47
+ });
48
+ return reader;
43
49
  }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0aXRlcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9iemlwMi9iaXRpdGVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFFbEUsc0NBQXNDO0FBQ3RDLG1DQUFtQztBQUNuQyxNQUFNLFVBQVUsV0FBVyxDQUFDLFVBQXdCO0lBQ2xELElBQUksR0FBRyxHQUFHLENBQUMsRUFDVCxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ1gsSUFBSSxLQUFLLEdBQUcsVUFBVSxFQUFFLENBQUM7SUFDekIsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDM0IseUJBQXlCO1lBQ3pCLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFDUixJQUFJLEVBQUUsQ0FBQztZQUNQLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDYixJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3pCLElBQUksR0FBRyxDQUFDLENBQUM7Z0JBQ1QsS0FBSyxHQUFHLFVBQVUsRUFBRSxDQUFDO1lBQ3ZCLENBQUM7WUFDRCxJQUFJLElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO1lBQ25CLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztnQkFDcEIsYUFBYTtnQkFDYixDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ2QsTUFBTSxLQUFLLElBQUksQ0FBQztnQkFDaEIsTUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDeEMsR0FBRyxHQUFHLENBQUMsQ0FBQztnQkFDUixDQUFDLElBQUksSUFBSSxDQUFDO1lBQ1osQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sS0FBSyxDQUFDLENBQUM7Z0JBQ2IsTUFBTTtvQkFDSixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztnQkFDakUsR0FBRyxJQUFJLENBQUMsQ0FBQztnQkFDVCxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ1IsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUM7SUFDRixhQUFhO0lBQ2IsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDaEIsT0FBTyxDQUFDLENBQUM7QUFDWCxDQUFDIn0=
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0aXRlcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9iemlwMi9iaXRpdGVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFVLENBQUM7QUFFN0U7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxVQUF3QjtJQUNsRCxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDWixJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7SUFDYixJQUFJLEtBQUssR0FBRyxVQUFVLEVBQUUsQ0FBQztJQUN6QixJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFFbkIsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFnQjtRQUN2QyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVCLHlCQUF5QjtZQUN6QixHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQ1IsSUFBSSxFQUFFLENBQUM7WUFDUCxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksU0FBUyxHQUFHLENBQVcsQ0FBQztRQUU1QixPQUFPLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNyQixJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3pCLElBQUksR0FBRyxDQUFDLENBQUM7Z0JBQ1QsS0FBSyxHQUFHLFVBQVUsRUFBRSxDQUFDO1lBQ3ZCLENBQUM7WUFFRCxNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO1lBRXJCLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQy9CLFVBQVUsRUFBRSxDQUFDO1lBQ2YsQ0FBQztZQUVELElBQUksU0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUN0QixNQUFNLEtBQUssSUFBSSxDQUFDO2dCQUNoQixNQUFNLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUN4QyxHQUFHLEdBQUcsQ0FBQyxDQUFDO2dCQUNSLFNBQVMsSUFBSSxJQUFJLENBQUM7WUFDcEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sS0FBSyxTQUFTLENBQUM7Z0JBQ3JCLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxTQUFTLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLFNBQVMsR0FBRyxHQUFHLENBQUMsQ0FBQztnQkFDakcsR0FBRyxJQUFJLFNBQVMsQ0FBQztnQkFDakIsU0FBUyxHQUFHLENBQUMsQ0FBQztZQUNoQixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQWUsQ0FBQztJQUVoQixNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUU7UUFDekMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLFVBQVU7UUFDckIsVUFBVSxFQUFFLElBQUk7S0FDakIsQ0FBQyxDQUFDO0lBRUgsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyJ9
@@ -1,14 +1,29 @@
1
- export declare class Bzip2Error extends Error {
2
- name: string;
3
- message: string;
4
- stack: string;
5
- constructor(messageArg: string);
6
- }
1
+ import { Bzip2Error } from '../errors.js';
2
+ import type { IBitReader } from '../interfaces.js';
3
+ export { Bzip2Error };
4
+ /**
5
+ * BZIP2 decompression implementation
6
+ */
7
7
  export declare class Bzip2 {
8
- Bzip2Error: typeof Bzip2Error;
9
- crcTable: number[];
10
- array: (bytes: any) => (n: any) => number;
11
- simple: (srcbuffer: any, stream: any) => void;
12
- header: (bits: any) => number;
13
- decompress: (bits: any, stream: any, buf: any, bufsize: any, streamCRC: any) => any;
8
+ readonly crcTable: readonly number[];
9
+ private byteCount;
10
+ private symToByte;
11
+ private mtfSymbol;
12
+ private selectors;
13
+ /**
14
+ * Create a bit reader from a byte array
15
+ */
16
+ array(bytes: Uint8Array | Buffer): (n: number) => number;
17
+ /**
18
+ * Simple decompression from a buffer
19
+ */
20
+ simple(srcbuffer: Uint8Array | Buffer, stream: (byte: number) => void): void;
21
+ /**
22
+ * Parse BZIP2 header and return block size
23
+ */
24
+ header(bits: IBitReader): number;
25
+ /**
26
+ * Decompress a BZIP2 block
27
+ */
28
+ decompress(bits: IBitReader, stream: (byte: number) => void, buf: Int32Array, bufsize: number, streamCRC?: number | null): number | null;
14
29
  }