@loaders.gl/zip 4.4.0-alpha.1 → 4.4.0-alpha.9

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 (71) hide show
  1. package/dist/dist.dev.js +275 -248
  2. package/dist/dist.min.js +2 -2
  3. package/dist/filesystems/IndexedArchive.d.ts +4 -4
  4. package/dist/filesystems/IndexedArchive.d.ts.map +1 -1
  5. package/dist/filesystems/IndexedArchive.js +6 -5
  6. package/dist/filesystems/IndexedArchive.js.map +1 -0
  7. package/dist/filesystems/zip-filesystem.d.ts +7 -6
  8. package/dist/filesystems/zip-filesystem.d.ts.map +1 -1
  9. package/dist/filesystems/zip-filesystem.js +25 -22
  10. package/dist/filesystems/zip-filesystem.js.map +1 -0
  11. package/dist/hash-file-utility.d.ts +3 -3
  12. package/dist/hash-file-utility.d.ts.map +1 -1
  13. package/dist/hash-file-utility.js +2 -1
  14. package/dist/hash-file-utility.js.map +1 -0
  15. package/dist/index.cjs +181 -82
  16. package/dist/index.cjs.map +4 -4
  17. package/dist/index.d.ts +1 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +2 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/lib/tar/header.js +1 -0
  22. package/dist/lib/tar/header.js.map +1 -0
  23. package/dist/lib/tar/tar.js +1 -0
  24. package/dist/lib/tar/tar.js.map +1 -0
  25. package/dist/lib/tar/types.js +1 -0
  26. package/dist/lib/tar/types.js.map +1 -0
  27. package/dist/lib/tar/utils.js +1 -0
  28. package/dist/lib/tar/utils.js.map +1 -0
  29. package/dist/parse-zip/cd-file-header.d.ts +4 -4
  30. package/dist/parse-zip/cd-file-header.d.ts.map +1 -1
  31. package/dist/parse-zip/cd-file-header.js +9 -6
  32. package/dist/parse-zip/cd-file-header.js.map +1 -0
  33. package/dist/parse-zip/end-of-central-directory.d.ts +3 -3
  34. package/dist/parse-zip/end-of-central-directory.d.ts.map +1 -1
  35. package/dist/parse-zip/end-of-central-directory.js +13 -11
  36. package/dist/parse-zip/end-of-central-directory.js.map +1 -0
  37. package/dist/parse-zip/local-file-header.d.ts +2 -2
  38. package/dist/parse-zip/local-file-header.d.ts.map +1 -1
  39. package/dist/parse-zip/local-file-header.js +5 -3
  40. package/dist/parse-zip/local-file-header.js.map +1 -0
  41. package/dist/parse-zip/readable-file-utils.d.ts +34 -0
  42. package/dist/parse-zip/readable-file-utils.d.ts.map +1 -0
  43. package/dist/parse-zip/readable-file-utils.js +111 -0
  44. package/dist/parse-zip/readable-file-utils.js.map +1 -0
  45. package/dist/parse-zip/search-from-the-end.d.ts +2 -2
  46. package/dist/parse-zip/search-from-the-end.d.ts.map +1 -1
  47. package/dist/parse-zip/search-from-the-end.js +7 -8
  48. package/dist/parse-zip/search-from-the-end.js.map +1 -0
  49. package/dist/parse-zip/zip-composition.d.ts.map +1 -1
  50. package/dist/parse-zip/zip-composition.js +16 -8
  51. package/dist/parse-zip/zip-composition.js.map +1 -0
  52. package/dist/parse-zip/zip64-info-generation.js +1 -0
  53. package/dist/parse-zip/zip64-info-generation.js.map +1 -0
  54. package/dist/tar-builder.js +1 -0
  55. package/dist/tar-builder.js.map +1 -0
  56. package/dist/zip-loader.js +2 -1
  57. package/dist/zip-loader.js.map +1 -0
  58. package/dist/zip-writer.js +3 -2
  59. package/dist/zip-writer.js.map +1 -0
  60. package/package.json +6 -6
  61. package/src/filesystems/IndexedArchive.ts +6 -10
  62. package/src/filesystems/zip-filesystem.ts +26 -28
  63. package/src/hash-file-utility.ts +4 -7
  64. package/src/index.ts +5 -0
  65. package/src/parse-zip/cd-file-header.ts +18 -16
  66. package/src/parse-zip/end-of-central-directory.ts +16 -17
  67. package/src/parse-zip/local-file-header.ts +8 -9
  68. package/src/parse-zip/readable-file-utils.ts +134 -0
  69. package/src/parse-zip/search-from-the-end.ts +8 -10
  70. package/src/parse-zip/zip-composition.ts +25 -18
  71. package/src/zip-writer.ts +1 -1
@@ -1,18 +1,18 @@
1
- import { FileProviderInterface } from '@loaders.gl/loader-utils';
1
+ import type { ReadableFile } from '@loaders.gl/loader-utils';
2
2
  /**
3
3
  * Abstract class for fetching indexed archive formats (SLPK, 3TZ). Those types of zip archive has
4
4
  * a hash file inside that allows to increase reading speed
5
5
  */
6
6
  export declare abstract class IndexedArchive {
7
- fileProvider: FileProviderInterface;
7
+ file: ReadableFile;
8
8
  fileName?: string;
9
9
  /**
10
10
  * Constructor
11
- * @param fileProvider - instance of a binary data reader
11
+ * @param fileProvider - readable file instance for random access
12
12
  * @param hashTable - pre-loaded hashTable. If presented, getFile will skip reading the hash file
13
13
  * @param fileName - name of the archive. It is used to add to an URL of a loader context
14
14
  */
15
- constructor(fileProvider: FileProviderInterface, hashTable?: Record<string, bigint>, fileName?: string);
15
+ constructor(file: ReadableFile, hashTable?: Record<string, bigint>, fileName?: string);
16
16
  /**
17
17
  * Get internal file from the archive
18
18
  * @param path - path to the file
@@ -1 +1 @@
1
- {"version":3,"file":"IndexedArchive.d.ts","sourceRoot":"","sources":["../../src/filesystems/IndexedArchive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAC,MAAM,0BAA0B,CAAC;AAG/D;;;GAGG;AACH,8BAAsB,cAAc;IAC3B,YAAY,EAAE,qBAAqB,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;;OAKG;gBAED,YAAY,EAAE,qBAAqB,EACnC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,QAAQ,CAAC,EAAE,MAAM;IAMnB;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAEnE;;;;OAIG;cACa,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAK3E"}
1
+ {"version":3,"file":"IndexedArchive.d.ts","sourceRoot":"","sources":["../../src/filesystems/IndexedArchive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAG3D;;;GAGG;AACH,8BAAsB,cAAc;IAC3B,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;;OAKG;gBACS,IAAI,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM;IAKrF;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAEnE;;;;OAIG;cACa,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAK3E"}
@@ -4,16 +4,16 @@ import { ZipFileSystem } from "./zip-filesystem.js";
4
4
  * a hash file inside that allows to increase reading speed
5
5
  */
6
6
  export class IndexedArchive {
7
- fileProvider;
7
+ file;
8
8
  fileName;
9
9
  /**
10
10
  * Constructor
11
- * @param fileProvider - instance of a binary data reader
11
+ * @param fileProvider - readable file instance for random access
12
12
  * @param hashTable - pre-loaded hashTable. If presented, getFile will skip reading the hash file
13
13
  * @param fileName - name of the archive. It is used to add to an URL of a loader context
14
14
  */
15
- constructor(fileProvider, hashTable, fileName) {
16
- this.fileProvider = fileProvider;
15
+ constructor(file, hashTable, fileName) {
16
+ this.file = file;
17
17
  this.fileName = fileName;
18
18
  }
19
19
  /**
@@ -22,8 +22,9 @@ export class IndexedArchive {
22
22
  * @returns
23
23
  */
24
24
  async getFileWithoutHash(filename) {
25
- const zipFS = new ZipFileSystem(this.fileProvider);
25
+ const zipFS = new ZipFileSystem(this.file);
26
26
  const response = await zipFS.fetch(filename);
27
27
  return await response.arrayBuffer();
28
28
  }
29
29
  }
30
+ //# sourceMappingURL=IndexedArchive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndexedArchive.js","sourceRoot":"","sources":["../../src/filesystems/IndexedArchive.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,4BAAyB;AAE/C;;;GAGG;AACH,MAAM,OAAgB,cAAc;IAC3B,IAAI,CAAe;IACnB,QAAQ,CAAU;IAEzB;;;;;OAKG;IACH,YAAY,IAAkB,EAAE,SAAkC,EAAE,QAAiB;QACnF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IASD;;;;OAIG;IACO,KAAK,CAAC,kBAAkB,CAAC,QAAgB;QACjD,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7C,OAAO,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;IACtC,CAAC;CACF"}
@@ -1,4 +1,5 @@
1
- import { FileSystem, FileProviderInterface } from '@loaders.gl/loader-utils';
1
+ import { FileSystem } from '@loaders.gl/loader-utils';
2
+ import type { ReadableFile } from '@loaders.gl/loader-utils';
2
3
  import { ZipCDFileHeader } from "../parse-zip/cd-file-header.js";
3
4
  import { IndexedArchive } from "./IndexedArchive.js";
4
5
  export type CompressionHandler = (compressedFile: ArrayBuffer) => Promise<ArrayBuffer>;
@@ -8,18 +9,18 @@ export declare const ZIP_COMPRESSION_HANDLERS: {
8
9
  };
9
10
  /**
10
11
  * FileSystem adapter for a ZIP file
11
- * Holds FileProvider object that provides random access to archived files
12
+ * Holds a ReadableFile object that provides random access to archived files
12
13
  */
13
14
  export declare class ZipFileSystem implements FileSystem {
14
- /** FileProvider instance promise */
15
- fileProvider: FileProviderInterface | null;
15
+ /** File instance */
16
+ file: ReadableFile | null;
16
17
  fileName?: string;
17
18
  archive: IndexedArchive | null;
18
19
  /**
19
20
  * Constructor
20
- * @param file - instance of FileProvider or file path string
21
+ * @param file - instance of ReadableFile or file path string
21
22
  */
22
- constructor(file: FileProviderInterface | IndexedArchive | string);
23
+ constructor(file: ReadableFile | IndexedArchive | string | Blob | ArrayBuffer);
23
24
  /** Clean up resources */
24
25
  destroy(): Promise<void>;
25
26
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"zip-filesystem.d.ts","sourceRoot":"","sources":["../../src/filesystems/zip-filesystem.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,UAAU,EAEV,qBAAqB,EAGtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAC,eAAe,EAA0B,uCAAoC;AAGrF,OAAO,EAAC,cAAc,EAAC,4BAAyB;AAEhD,MAAM,MAAM,kBAAkB,GAAG,CAAC,cAAc,EAAE,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AACvF,kDAAkD;AAClD,eAAO,MAAM,wBAAwB,EAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAA;CASxE,CAAC;AAEF;;;GAGG;AACH,qBAAa,aAAc,YAAW,UAAU;IAC9C,oCAAoC;IAC7B,YAAY,EAAE,qBAAqB,GAAG,IAAI,CAAQ;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,cAAc,GAAG,IAAI,CAAQ;IAE7C;;;OAGG;gBACS,IAAI,EAAE,qBAAqB,GAAG,cAAc,GAAG,MAAM;IAkBjE,yBAAyB;IACnB,OAAO;IAMb;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAYlC;;;;OAIG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC;IAKvE;;;;OAIG;IACG,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IA0ChD;;;;OAIG;YACW,eAAe;CAiB9B"}
1
+ {"version":3,"file":"zip-filesystem.d.ts","sourceRoot":"","sources":["../../src/filesystems/zip-filesystem.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,UAAU,EAAgC,MAAM,0BAA0B,CAAC;AACnF,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAC,eAAe,EAA0B,uCAAoC;AAGrF,OAAO,EAAC,cAAc,EAAC,4BAAyB;AAGhD,MAAM,MAAM,kBAAkB,GAAG,CAAC,cAAc,EAAE,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AACvF,kDAAkD;AAClD,eAAO,MAAM,wBAAwB,EAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAA;CASxE,CAAC;AAEF;;;GAGG;AACH,qBAAa,aAAc,YAAW,UAAU;IAC9C,oBAAoB;IACb,IAAI,EAAE,YAAY,GAAG,IAAI,CAAQ;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,cAAc,GAAG,IAAI,CAAQ;IAE7C;;;OAGG;gBACS,IAAI,EAAE,YAAY,GAAG,cAAc,GAAG,MAAM,GAAG,IAAI,GAAG,WAAW;IAmB7E,yBAAyB;IACnB,OAAO;IAMb;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAYlC;;;;OAIG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC;IAKvE;;;;OAIG;IACG,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IA2ChD;;;;OAIG;YACW,eAAe;CAiB9B"}
@@ -1,11 +1,12 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { isBrowser, isFileProvider, FileHandleFile } from '@loaders.gl/loader-utils';
4
+ import { isBrowser, BlobFile, NodeFile } from '@loaders.gl/loader-utils';
5
5
  import { makeZipCDHeaderIterator } from "../parse-zip/cd-file-header.js";
6
6
  import { parseZipLocalFileHeader } from "../parse-zip/local-file-header.js";
7
7
  import { DeflateCompression } from '@loaders.gl/compression';
8
8
  import { IndexedArchive } from "./IndexedArchive.js";
9
+ import { readRange } from "../parse-zip/readable-file-utils.js";
9
10
  /** Handling different compression types in zip */
10
11
  export const ZIP_COMPRESSION_HANDLERS = {
11
12
  /** No compression */
@@ -19,41 +20,42 @@ export const ZIP_COMPRESSION_HANDLERS = {
19
20
  };
20
21
  /**
21
22
  * FileSystem adapter for a ZIP file
22
- * Holds FileProvider object that provides random access to archived files
23
+ * Holds a ReadableFile object that provides random access to archived files
23
24
  */
24
25
  export class ZipFileSystem {
25
- /** FileProvider instance promise */
26
- fileProvider = null;
26
+ /** File instance */
27
+ file = null;
27
28
  fileName;
28
29
  archive = null;
29
30
  /**
30
31
  * Constructor
31
- * @param file - instance of FileProvider or file path string
32
+ * @param file - instance of ReadableFile or file path string
32
33
  */
33
34
  constructor(file) {
34
35
  // Try to open file in NodeJS
35
36
  if (typeof file === 'string') {
36
37
  this.fileName = file;
37
- if (!isBrowser) {
38
- this.fileProvider = new FileHandleFile(file);
39
- }
40
- else {
41
- throw new Error('Cannot open file for random access in a WEB browser');
38
+ if (isBrowser) {
39
+ throw new Error('ZipFileSystem cannot open file paths in browser environments');
42
40
  }
41
+ this.file = new NodeFile(file);
42
+ }
43
+ else if (file instanceof Blob || file instanceof ArrayBuffer) {
44
+ this.file = new BlobFile(file);
43
45
  }
44
46
  else if (file instanceof IndexedArchive) {
45
- this.fileProvider = file.fileProvider;
47
+ this.file = file.file;
46
48
  this.archive = file;
47
49
  this.fileName = file.fileName;
48
50
  }
49
- else if (isFileProvider(file)) {
50
- this.fileProvider = file;
51
+ else {
52
+ this.file = file;
51
53
  }
52
54
  }
53
55
  /** Clean up resources */
54
56
  async destroy() {
55
- if (this.fileProvider) {
56
- await this.fileProvider.destroy();
57
+ if (this.file) {
58
+ await this.file.close();
57
59
  }
58
60
  }
59
61
  /**
@@ -61,11 +63,11 @@ export class ZipFileSystem {
61
63
  * @returns array of file names
62
64
  */
63
65
  async readdir() {
64
- if (!this.fileProvider) {
66
+ if (!this.file) {
65
67
  throw new Error('No data detected in the zip archive');
66
68
  }
67
69
  const fileNames = [];
68
- const zipCDIterator = makeZipCDHeaderIterator(this.fileProvider);
70
+ const zipCDIterator = makeZipCDHeaderIterator(this.file);
69
71
  for await (const cdHeader of zipCDIterator) {
70
72
  fileNames.push(cdHeader.fileName);
71
73
  }
@@ -94,11 +96,11 @@ export class ZipFileSystem {
94
96
  uncompressedFile = await this.archive.getFile(filename, 'http');
95
97
  }
96
98
  else {
97
- if (!this.fileProvider) {
99
+ if (!this.file) {
98
100
  throw new Error('No data detected in the zip archive');
99
101
  }
100
102
  const cdFileHeader = await this.getCDFileHeader(filename);
101
- const localFileHeader = await parseZipLocalFileHeader(cdFileHeader.localHeaderOffset, this.fileProvider);
103
+ const localFileHeader = await parseZipLocalFileHeader(cdFileHeader.localHeaderOffset, this.file);
102
104
  if (!localFileHeader) {
103
105
  throw new Error('Local file header has not been found in the zip archive`');
104
106
  }
@@ -106,7 +108,7 @@ export class ZipFileSystem {
106
108
  if (!compressionHandler) {
107
109
  throw Error('Only Deflation compression is supported');
108
110
  }
109
- const compressedFile = await this.fileProvider.slice(localFileHeader.fileDataOffset, localFileHeader.fileDataOffset + localFileHeader.compressedSize);
111
+ const compressedFile = await readRange(this.file, localFileHeader.fileDataOffset, localFileHeader.fileDataOffset + localFileHeader.compressedSize);
110
112
  uncompressedFile = await compressionHandler(compressedFile);
111
113
  }
112
114
  const response = new Response(uncompressedFile);
@@ -121,10 +123,10 @@ export class ZipFileSystem {
121
123
  * @returns central directory file header
122
124
  */
123
125
  async getCDFileHeader(filename) {
124
- if (!this.fileProvider) {
126
+ if (!this.file) {
125
127
  throw new Error('No data detected in the zip archive');
126
128
  }
127
- const zipCDIterator = makeZipCDHeaderIterator(this.fileProvider);
129
+ const zipCDIterator = makeZipCDHeaderIterator(this.file);
128
130
  let result = null;
129
131
  for await (const cdHeader of zipCDIterator) {
130
132
  if (cdHeader.fileName === filename) {
@@ -138,3 +140,4 @@ export class ZipFileSystem {
138
140
  return result;
139
141
  }
140
142
  }
143
+ //# sourceMappingURL=zip-filesystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zip-filesystem.js","sourceRoot":"","sources":["../../src/filesystems/zip-filesystem.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { FileProviderInterface } from '@loaders.gl/loader-utils';
1
+ import type { ReadableFile } from '@loaders.gl/loader-utils';
2
2
  import { ZipCDFileHeader } from "./parse-zip/cd-file-header.js";
3
3
  /**
4
4
  * Reads hash file from buffer and returns it in ready-to-use form
@@ -8,10 +8,10 @@ import { ZipCDFileHeader } from "./parse-zip/cd-file-header.js";
8
8
  export declare function parseHashTable(arrayBuffer: ArrayBuffer): Record<string, bigint>;
9
9
  /**
10
10
  * generates hash info from zip files "central directory"
11
- * @param fileProvider - provider of the archive
11
+ * @param fileProvider - readable archive source
12
12
  * @returns ready to use hash info
13
13
  */
14
- export declare function makeHashTableFromZipHeaders(fileProvider: FileProviderInterface): Promise<Record<string, bigint>>;
14
+ export declare function makeHashTableFromZipHeaders(fileProvider: ReadableFile): Promise<Record<string, bigint>>;
15
15
  /**
16
16
  * creates hash table from file offset iterator
17
17
  * @param zipCDIterator iterator to use
@@ -1 +1 @@
1
- {"version":3,"file":"hash-file-utility.d.ts","sourceRoot":"","sources":["../src/hash-file-utility.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,qBAAqB,EAGtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAC,eAAe,EAA0B,sCAAmC;AAEpF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAY/E;AASD;;;;GAIG;AACH,wBAAsB,2BAA2B,CAC/C,YAAY,EAAE,qBAAqB,GAClC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAGjC;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,aAAa,EAAE,aAAa,CAAC,eAAe,CAAC,GAC5C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAcjC;AAED,mCAAmC;AACnC,KAAK,YAAY,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,aAAa,EAAE,aAAa,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,GAClE,OAAO,CAAC,WAAW,CAAC,CAwBtB"}
1
+ {"version":3,"file":"hash-file-utility.d.ts","sourceRoot":"","sources":["../src/hash-file-utility.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAC,eAAe,EAA0B,sCAAmC;AAEpF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAY/E;AASD;;;;GAIG;AACH,wBAAsB,2BAA2B,CAC/C,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAGjC;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,aAAa,EAAE,aAAa,CAAC,eAAe,CAAC,GAC5C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAcjC;AAED,mCAAmC;AACnC,KAAK,YAAY,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,aAAa,EAAE,aAAa,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,GAClE,OAAO,CAAC,WAAW,CAAC,CAwBtB"}
@@ -27,7 +27,7 @@ function bufferToHex(buffer, start, length) {
27
27
  }
28
28
  /**
29
29
  * generates hash info from zip files "central directory"
30
- * @param fileProvider - provider of the archive
30
+ * @param fileProvider - readable archive source
31
31
  * @returns ready to use hash info
32
32
  */
33
33
  export async function makeHashTableFromZipHeaders(fileProvider) {
@@ -103,3 +103,4 @@ function hexStringToBuffer(str) {
103
103
  function bigintToBuffer(n) {
104
104
  return new BigUint64Array([n]).buffer;
105
105
  }
106
+ //# sourceMappingURL=hash-file-utility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash-file-utility.js","sourceRoot":"","sources":["../src/hash-file-utility.ts"],"names":[],"mappings":"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"}