@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.
- package/dist/dist.dev.js +275 -248
- package/dist/dist.min.js +2 -2
- package/dist/filesystems/IndexedArchive.d.ts +4 -4
- package/dist/filesystems/IndexedArchive.d.ts.map +1 -1
- package/dist/filesystems/IndexedArchive.js +6 -5
- package/dist/filesystems/IndexedArchive.js.map +1 -0
- package/dist/filesystems/zip-filesystem.d.ts +7 -6
- package/dist/filesystems/zip-filesystem.d.ts.map +1 -1
- package/dist/filesystems/zip-filesystem.js +25 -22
- package/dist/filesystems/zip-filesystem.js.map +1 -0
- package/dist/hash-file-utility.d.ts +3 -3
- package/dist/hash-file-utility.d.ts.map +1 -1
- package/dist/hash-file-utility.js +2 -1
- package/dist/hash-file-utility.js.map +1 -0
- package/dist/index.cjs +181 -82
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/tar/header.js +1 -0
- package/dist/lib/tar/header.js.map +1 -0
- package/dist/lib/tar/tar.js +1 -0
- package/dist/lib/tar/tar.js.map +1 -0
- package/dist/lib/tar/types.js +1 -0
- package/dist/lib/tar/types.js.map +1 -0
- package/dist/lib/tar/utils.js +1 -0
- package/dist/lib/tar/utils.js.map +1 -0
- package/dist/parse-zip/cd-file-header.d.ts +4 -4
- package/dist/parse-zip/cd-file-header.d.ts.map +1 -1
- package/dist/parse-zip/cd-file-header.js +9 -6
- package/dist/parse-zip/cd-file-header.js.map +1 -0
- package/dist/parse-zip/end-of-central-directory.d.ts +3 -3
- package/dist/parse-zip/end-of-central-directory.d.ts.map +1 -1
- package/dist/parse-zip/end-of-central-directory.js +13 -11
- package/dist/parse-zip/end-of-central-directory.js.map +1 -0
- package/dist/parse-zip/local-file-header.d.ts +2 -2
- package/dist/parse-zip/local-file-header.d.ts.map +1 -1
- package/dist/parse-zip/local-file-header.js +5 -3
- package/dist/parse-zip/local-file-header.js.map +1 -0
- package/dist/parse-zip/readable-file-utils.d.ts +34 -0
- package/dist/parse-zip/readable-file-utils.d.ts.map +1 -0
- package/dist/parse-zip/readable-file-utils.js +111 -0
- package/dist/parse-zip/readable-file-utils.js.map +1 -0
- package/dist/parse-zip/search-from-the-end.d.ts +2 -2
- package/dist/parse-zip/search-from-the-end.d.ts.map +1 -1
- package/dist/parse-zip/search-from-the-end.js +7 -8
- package/dist/parse-zip/search-from-the-end.js.map +1 -0
- package/dist/parse-zip/zip-composition.d.ts.map +1 -1
- package/dist/parse-zip/zip-composition.js +16 -8
- package/dist/parse-zip/zip-composition.js.map +1 -0
- package/dist/parse-zip/zip64-info-generation.js +1 -0
- package/dist/parse-zip/zip64-info-generation.js.map +1 -0
- package/dist/tar-builder.js +1 -0
- package/dist/tar-builder.js.map +1 -0
- package/dist/zip-loader.js +2 -1
- package/dist/zip-loader.js.map +1 -0
- package/dist/zip-writer.js +3 -2
- package/dist/zip-writer.js.map +1 -0
- package/package.json +6 -6
- package/src/filesystems/IndexedArchive.ts +6 -10
- package/src/filesystems/zip-filesystem.ts +26 -28
- package/src/hash-file-utility.ts +4 -7
- package/src/index.ts +5 -0
- package/src/parse-zip/cd-file-header.ts +18 -16
- package/src/parse-zip/end-of-central-directory.ts +16 -17
- package/src/parse-zip/local-file-header.ts +8 -9
- package/src/parse-zip/readable-file-utils.ts +134 -0
- package/src/parse-zip/search-from-the-end.ts +8 -10
- package/src/parse-zip/zip-composition.ts +25 -18
- package/src/zip-writer.ts +1 -1
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import {
|
|
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
|
-
|
|
7
|
+
file: ReadableFile;
|
|
8
8
|
fileName?: string;
|
|
9
9
|
/**
|
|
10
10
|
* Constructor
|
|
11
|
-
* @param fileProvider -
|
|
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(
|
|
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,
|
|
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
|
-
|
|
7
|
+
file;
|
|
8
8
|
fileName;
|
|
9
9
|
/**
|
|
10
10
|
* Constructor
|
|
11
|
-
* @param fileProvider -
|
|
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(
|
|
16
|
-
this.
|
|
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.
|
|
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
|
|
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
|
|
12
|
+
* Holds a ReadableFile object that provides random access to archived files
|
|
12
13
|
*/
|
|
13
14
|
export declare class ZipFileSystem implements FileSystem {
|
|
14
|
-
/**
|
|
15
|
-
|
|
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
|
|
21
|
+
* @param file - instance of ReadableFile or file path string
|
|
21
22
|
*/
|
|
22
|
-
constructor(file:
|
|
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,
|
|
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,
|
|
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
|
|
23
|
+
* Holds a ReadableFile object that provides random access to archived files
|
|
23
24
|
*/
|
|
24
25
|
export class ZipFileSystem {
|
|
25
|
-
/**
|
|
26
|
-
|
|
26
|
+
/** File instance */
|
|
27
|
+
file = null;
|
|
27
28
|
fileName;
|
|
28
29
|
archive = null;
|
|
29
30
|
/**
|
|
30
31
|
* Constructor
|
|
31
|
-
* @param file - instance of
|
|
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 (
|
|
38
|
-
|
|
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.
|
|
47
|
+
this.file = file.file;
|
|
46
48
|
this.archive = file;
|
|
47
49
|
this.fileName = file.fileName;
|
|
48
50
|
}
|
|
49
|
-
else
|
|
50
|
-
this.
|
|
51
|
+
else {
|
|
52
|
+
this.file = file;
|
|
51
53
|
}
|
|
52
54
|
}
|
|
53
55
|
/** Clean up resources */
|
|
54
56
|
async destroy() {
|
|
55
|
-
if (this.
|
|
56
|
-
await this.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
126
|
+
if (!this.file) {
|
|
125
127
|
throw new Error('No data detected in the zip archive');
|
|
126
128
|
}
|
|
127
|
-
const zipCDIterator = makeZipCDHeaderIterator(this.
|
|
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 {
|
|
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 -
|
|
11
|
+
* @param fileProvider - readable archive source
|
|
12
12
|
* @returns ready to use hash info
|
|
13
13
|
*/
|
|
14
|
-
export declare function makeHashTableFromZipHeaders(fileProvider:
|
|
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":"
|
|
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 -
|
|
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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"}
|