@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,9 +1,10 @@
|
|
|
1
1
|
// loaders.gl
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
|
-
import {
|
|
4
|
+
import { compareArrayBuffers, concatenateArrayBuffers } from '@loaders.gl/loader-utils';
|
|
5
5
|
import { parseEoCDRecord } from "./end-of-central-directory.js";
|
|
6
6
|
import { createZip64Info, setFieldToNumber } from "./zip64-info-generation.js";
|
|
7
|
+
import { DataViewReadableFile, getReadableFileSize, readDataView, readRange } from "./readable-file-utils.js";
|
|
7
8
|
// offsets accroding to https://en.wikipedia.org/wiki/ZIP_(file_format)
|
|
8
9
|
const CD_COMPRESSED_SIZE_OFFSET = 20;
|
|
9
10
|
const CD_UNCOMPRESSED_SIZE_OFFSET = 24;
|
|
@@ -20,10 +21,11 @@ export const signature = new Uint8Array([0x50, 0x4b, 0x01, 0x02]);
|
|
|
20
21
|
* @returns Info from the header
|
|
21
22
|
*/
|
|
22
23
|
export const parseZipCDFileHeader = async (headerOffset, file) => {
|
|
23
|
-
|
|
24
|
+
const fileLength = await getReadableFileSize(file);
|
|
25
|
+
if (headerOffset >= fileLength) {
|
|
24
26
|
return null;
|
|
25
27
|
}
|
|
26
|
-
const mainHeader =
|
|
28
|
+
const mainHeader = await readDataView(file, headerOffset, headerOffset + CD_FILE_NAME_OFFSET);
|
|
27
29
|
const magicBytes = mainHeader.buffer.slice(0, 4);
|
|
28
30
|
if (!compareArrayBuffers(magicBytes, signature.buffer)) {
|
|
29
31
|
return null;
|
|
@@ -33,7 +35,7 @@ export const parseZipCDFileHeader = async (headerOffset, file) => {
|
|
|
33
35
|
const extraFieldLength = mainHeader.getUint16(CD_EXTRA_FIELD_LENGTH_OFFSET, true);
|
|
34
36
|
const startDisk = BigInt(mainHeader.getUint16(CD_START_DISK_OFFSET, true));
|
|
35
37
|
const fileNameLength = mainHeader.getUint16(CD_FILE_NAME_LENGTH_OFFSET, true);
|
|
36
|
-
const additionalHeader = await file
|
|
38
|
+
const additionalHeader = await readRange(file, headerOffset + CD_FILE_NAME_OFFSET, headerOffset + CD_FILE_NAME_OFFSET + BigInt(fileNameLength + extraFieldLength));
|
|
37
39
|
const filenameBytes = additionalHeader.slice(0, fileNameLength);
|
|
38
40
|
const fileName = new TextDecoder().decode(filenameBytes);
|
|
39
41
|
const extraOffset = headerOffset + CD_FILE_NAME_OFFSET + BigInt(fileNameLength);
|
|
@@ -59,11 +61,11 @@ export const parseZipCDFileHeader = async (headerOffset, file) => {
|
|
|
59
61
|
};
|
|
60
62
|
/**
|
|
61
63
|
* Create iterator over files of zip archive
|
|
62
|
-
* @param fileProvider - file
|
|
64
|
+
* @param fileProvider - readable file that provides random access to the file
|
|
63
65
|
*/
|
|
64
66
|
export async function* makeZipCDHeaderIterator(fileProvider) {
|
|
65
67
|
const { cdStartOffset, cdByteSize } = await parseEoCDRecord(fileProvider);
|
|
66
|
-
const centralDirectory = new
|
|
68
|
+
const centralDirectory = new DataViewReadableFile(new DataView(await readRange(fileProvider, cdStartOffset, cdStartOffset + cdByteSize)));
|
|
67
69
|
let cdHeader = await parseZipCDFileHeader(0n, centralDirectory);
|
|
68
70
|
while (cdHeader) {
|
|
69
71
|
yield cdHeader;
|
|
@@ -265,3 +267,4 @@ const ZIP_HEADER_FIELDS = [
|
|
|
265
267
|
name: 'offset'
|
|
266
268
|
}
|
|
267
269
|
];
|
|
270
|
+
//# sourceMappingURL=cd-file-header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cd-file-header.js","sourceRoot":"","sources":["../../src/parse-zip/cd-file-header.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { ReadableFile } from '@loaders.gl/loader-utils';
|
|
2
2
|
/**
|
|
3
3
|
* End of central directory info
|
|
4
4
|
* according to https://en.wikipedia.org/wiki/ZIP_(file_format)
|
|
@@ -33,10 +33,10 @@ export type ZipEoCDGenerationOptions = {
|
|
|
33
33
|
};
|
|
34
34
|
/**
|
|
35
35
|
* Parses end of central directory record of zip file
|
|
36
|
-
* @param file -
|
|
36
|
+
* @param file - ReadableFile instance
|
|
37
37
|
* @returns Info from the header
|
|
38
38
|
*/
|
|
39
|
-
export declare const parseEoCDRecord: (file:
|
|
39
|
+
export declare const parseEoCDRecord: (file: ReadableFile) => Promise<ZipEoCDRecord>;
|
|
40
40
|
/**
|
|
41
41
|
* updates EoCD record to add more files to the archieve
|
|
42
42
|
* @param eocdBody buffer containing header
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"end-of-central-directory.d.ts","sourceRoot":"","sources":["../../src/parse-zip/end-of-central-directory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"end-of-central-directory.d.ts","sourceRoot":"","sources":["../../src/parse-zip/end-of-central-directory.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAK3D;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,kCAAkC;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,eAAe,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,EAAE,MAAM,CAAC;IAEtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAmBF;;;;GAIG;AACH,eAAO,MAAM,eAAe,SAAgB,YAAY,KAAG,OAAO,CAAC,aAAa,CAuC/E,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,WAAW,EACrB,cAAc,EAAE,oBAAoB,EACpC,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,MAAM,EACvB,kBAAkB,EAAE,MAAM,GACzB,UAAU,CAmDZ;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,wBAAwB,GAAG,WAAW,CAgB3E"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
import { compareArrayBuffers, concatenateArrayBuffers } from '@loaders.gl/loader-utils';
|
|
5
5
|
import { searchFromTheEnd } from "./search-from-the-end.js";
|
|
6
|
+
import { readBigUint64, readUint16, readUint32, readRange } from "./readable-file-utils.js";
|
|
6
7
|
import { setFieldToNumber } from "./zip64-info-generation.js";
|
|
7
8
|
const eoCDSignature = new Uint8Array([0x50, 0x4b, 0x05, 0x06]);
|
|
8
9
|
const zip64EoCDLocatorSignature = new Uint8Array([0x50, 0x4b, 0x06, 0x07]);
|
|
@@ -21,26 +22,26 @@ const ZIP64_CD_START_OFFSET_OFFSET = 48n;
|
|
|
21
22
|
const ZIP64_COMMENT_OFFSET = 56n;
|
|
22
23
|
/**
|
|
23
24
|
* Parses end of central directory record of zip file
|
|
24
|
-
* @param file -
|
|
25
|
+
* @param file - ReadableFile instance
|
|
25
26
|
* @returns Info from the header
|
|
26
27
|
*/
|
|
27
28
|
export const parseEoCDRecord = async (file) => {
|
|
28
29
|
const zipEoCDOffset = await searchFromTheEnd(file, eoCDSignature);
|
|
29
|
-
let cdRecordsNumber = BigInt(await file
|
|
30
|
-
let cdByteSize = BigInt(await file
|
|
31
|
-
let cdStartOffset = BigInt(await file
|
|
30
|
+
let cdRecordsNumber = BigInt(await readUint16(file, zipEoCDOffset + CD_RECORDS_NUMBER_OFFSET));
|
|
31
|
+
let cdByteSize = BigInt(await readUint32(file, zipEoCDOffset + CD_CD_BYTE_SIZE_OFFSET));
|
|
32
|
+
let cdStartOffset = BigInt(await readUint32(file, zipEoCDOffset + CD_START_OFFSET_OFFSET));
|
|
32
33
|
let zip64EoCDLocatorOffset = zipEoCDOffset - 20n;
|
|
33
34
|
let zip64EoCDOffset = 0n;
|
|
34
|
-
const magicBytes = await file
|
|
35
|
-
if (compareArrayBuffers(magicBytes, zip64EoCDLocatorSignature)) {
|
|
36
|
-
zip64EoCDOffset = await file
|
|
37
|
-
const endOfCDMagicBytes = await file
|
|
35
|
+
const magicBytes = await readRange(file, zip64EoCDLocatorOffset, zip64EoCDLocatorOffset + 4n);
|
|
36
|
+
if (compareArrayBuffers(magicBytes, zip64EoCDLocatorSignature.buffer)) {
|
|
37
|
+
zip64EoCDOffset = await readBigUint64(file, zip64EoCDLocatorOffset + ZIP64_EOCD_START_OFFSET_OFFSET);
|
|
38
|
+
const endOfCDMagicBytes = await readRange(file, zip64EoCDOffset, zip64EoCDOffset + 4n);
|
|
38
39
|
if (!compareArrayBuffers(endOfCDMagicBytes, zip64EoCDSignature.buffer)) {
|
|
39
40
|
throw new Error('zip64 EoCD not found');
|
|
40
41
|
}
|
|
41
|
-
cdRecordsNumber = await file
|
|
42
|
-
cdByteSize = await file
|
|
43
|
-
cdStartOffset = await file
|
|
42
|
+
cdRecordsNumber = await readBigUint64(file, zip64EoCDOffset + ZIP64_CD_RECORDS_NUMBER_OFFSET);
|
|
43
|
+
cdByteSize = await readBigUint64(file, zip64EoCDOffset + ZIP64_CD_CD_BYTE_SIZE_OFFSET);
|
|
44
|
+
cdStartOffset = await readBigUint64(file, zip64EoCDOffset + ZIP64_CD_START_OFFSET_OFFSET);
|
|
44
45
|
}
|
|
45
46
|
else {
|
|
46
47
|
zip64EoCDLocatorOffset = 0n;
|
|
@@ -276,3 +277,4 @@ const ZIP64_EOCD_FIELDS = [
|
|
|
276
277
|
name: 'cdOffset'
|
|
277
278
|
}
|
|
278
279
|
];
|
|
280
|
+
//# sourceMappingURL=end-of-central-directory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"end-of-central-directory.js","sourceRoot":"","sources":["../../src/parse-zip/end-of-central-directory.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 { ZipSignature } from "./search-from-the-end.js";
|
|
3
3
|
/**
|
|
4
4
|
* zip local file header info
|
|
@@ -25,7 +25,7 @@ export declare const signature: ZipSignature;
|
|
|
25
25
|
* @param buffer - buffer containing whole array
|
|
26
26
|
* @returns Info from the header
|
|
27
27
|
*/
|
|
28
|
-
export declare const parseZipLocalFileHeader: (headerOffset: bigint, file:
|
|
28
|
+
export declare const parseZipLocalFileHeader: (headerOffset: bigint, file: ReadableFile) => Promise<ZipLocalFileHeader | null>;
|
|
29
29
|
/** info that can be placed into cd header */
|
|
30
30
|
type GenerateLocalOptions = {
|
|
31
31
|
/** CRC-32 of uncompressed data */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-file-header.d.ts","sourceRoot":"","sources":["../../src/parse-zip/local-file-header.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"local-file-header.d.ts","sourceRoot":"","sources":["../../src/parse-zip/local-file-header.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAC,YAAY,EAAC,iCAA8B;AAInD;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,uBAAuB;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,8BAA8B;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,yBAAyB;IACzB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAUF,eAAO,MAAM,SAAS,EAAE,YAAuD,CAAC;AAEhF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,iBACpB,MAAM,QACd,YAAY,KACjB,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAwDnC,CAAC;AAEF,6CAA6C;AAC7C,KAAK,oBAAoB,GAAG;IAC1B,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,WAAW,CAqC9E"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
import { compareArrayBuffers, concatenateArrayBuffers } from '@loaders.gl/loader-utils';
|
|
5
5
|
import { createZip64Info, setFieldToNumber } from "./zip64-info-generation.js";
|
|
6
|
+
import { readDataView, readRange } from "./readable-file-utils.js";
|
|
6
7
|
// offsets accroding to https://en.wikipedia.org/wiki/ZIP_(file_format)
|
|
7
8
|
const COMPRESSION_METHOD_OFFSET = 8;
|
|
8
9
|
const COMPRESSED_SIZE_OFFSET = 18;
|
|
@@ -18,14 +19,14 @@ export const signature = new Uint8Array([0x50, 0x4b, 0x03, 0x04]);
|
|
|
18
19
|
* @returns Info from the header
|
|
19
20
|
*/
|
|
20
21
|
export const parseZipLocalFileHeader = async (headerOffset, file) => {
|
|
21
|
-
const mainHeader =
|
|
22
|
+
const mainHeader = await readDataView(file, headerOffset, headerOffset + FILE_NAME_OFFSET);
|
|
22
23
|
const magicBytes = mainHeader.buffer.slice(0, 4);
|
|
23
|
-
if (!compareArrayBuffers(magicBytes, signature)) {
|
|
24
|
+
if (!compareArrayBuffers(magicBytes, signature.buffer)) {
|
|
24
25
|
return null;
|
|
25
26
|
}
|
|
26
27
|
const fileNameLength = mainHeader.getUint16(FILE_NAME_LENGTH_OFFSET, true);
|
|
27
28
|
const extraFieldLength = mainHeader.getUint16(EXTRA_FIELD_LENGTH_OFFSET, true);
|
|
28
|
-
const additionalHeader = await file
|
|
29
|
+
const additionalHeader = await readRange(file, headerOffset + FILE_NAME_OFFSET, headerOffset + FILE_NAME_OFFSET + BigInt(fileNameLength + extraFieldLength));
|
|
29
30
|
const fileNameBuffer = additionalHeader.slice(0, fileNameLength);
|
|
30
31
|
const extraDataBuffer = new DataView(additionalHeader.slice(fileNameLength, additionalHeader.byteLength));
|
|
31
32
|
const fileName = new TextDecoder().decode(fileNameBuffer).split('\\').join('/');
|
|
@@ -154,3 +155,4 @@ const ZIP_HEADER_FIELDS = [
|
|
|
154
155
|
name: 'extraLength'
|
|
155
156
|
}
|
|
156
157
|
];
|
|
158
|
+
//# sourceMappingURL=local-file-header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-file-header.js","sourceRoot":"","sources":["../../src/parse-zip/local-file-header.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type ReadableFile, type Stat } from '@loaders.gl/loader-utils';
|
|
2
|
+
/**
|
|
3
|
+
* Read a byte range from a readable file.
|
|
4
|
+
* @param file readable file handle
|
|
5
|
+
* @param start inclusive start offset
|
|
6
|
+
* @param end exclusive end offset
|
|
7
|
+
* @returns requested slice
|
|
8
|
+
*/
|
|
9
|
+
export declare function readRange(file: ReadableFile, start: number | bigint, end: number | bigint): Promise<ArrayBuffer>;
|
|
10
|
+
export declare function readDataView(file: ReadableFile, start: number | bigint, end: number | bigint): Promise<DataView>;
|
|
11
|
+
export declare function readUint8(file: ReadableFile, offset: number | bigint): Promise<number>;
|
|
12
|
+
export declare function readUint16(file: ReadableFile, offset: number | bigint): Promise<number>;
|
|
13
|
+
export declare function readUint32(file: ReadableFile, offset: number | bigint): Promise<number>;
|
|
14
|
+
export declare function readBigUint64(file: ReadableFile, offset: number | bigint): Promise<bigint>;
|
|
15
|
+
/**
|
|
16
|
+
* Resolve the size of a readable file.
|
|
17
|
+
* @param file readable file handle
|
|
18
|
+
* @returns file size as bigint
|
|
19
|
+
*/
|
|
20
|
+
export declare function getReadableFileSize(file: ReadableFile): Promise<bigint>;
|
|
21
|
+
/**
|
|
22
|
+
* Minimal readable file backed by a DataView.
|
|
23
|
+
*/
|
|
24
|
+
export declare class DataViewReadableFile implements ReadableFile {
|
|
25
|
+
readonly handle: DataView;
|
|
26
|
+
readonly size: number;
|
|
27
|
+
readonly bigsize: bigint;
|
|
28
|
+
readonly url: string;
|
|
29
|
+
constructor(dataView: DataView, url?: string);
|
|
30
|
+
close(): Promise<void>;
|
|
31
|
+
stat(): Promise<Stat>;
|
|
32
|
+
read(start?: number | bigint, length?: number): Promise<ArrayBuffer>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=readable-file-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readable-file-utils.d.ts","sourceRoot":"","sources":["../../src/parse-zip/readable-file-utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,KAAK,YAAY,EAAE,KAAK,IAAI,EAAC,MAAM,0BAA0B,CAAC;AAqBzF;;;;;;GAMG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,GAAG,EAAE,MAAM,GAAG,MAAM,GACnB,OAAO,CAAC,WAAW,CAAC,CAQtB;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,GAAG,EAAE,MAAM,GAAG,MAAM,GACnB,OAAO,CAAC,QAAQ,CAAC,CAGnB;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAG5F;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAG7F;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAG7F;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhG;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAiB7E;AAED;;GAEG;AACH,qBAAa,oBAAqB,YAAW,YAAY;IACvD,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;gBAET,QAAQ,EAAE,QAAQ,EAAE,GAAG,GAAE,MAAW;IAO1C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAEtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,IAAI,CAAC,KAAK,GAAE,MAAM,GAAG,MAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAY9E"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
import { copyToArrayBuffer } from '@loaders.gl/loader-utils';
|
|
5
|
+
function toBigInt(value) {
|
|
6
|
+
return typeof value === 'bigint' ? value : BigInt(value);
|
|
7
|
+
}
|
|
8
|
+
function toNumber(value) {
|
|
9
|
+
const numberValue = Number(value);
|
|
10
|
+
if (!Number.isFinite(numberValue)) {
|
|
11
|
+
throw new Error('Offset is out of bounds');
|
|
12
|
+
}
|
|
13
|
+
return numberValue;
|
|
14
|
+
}
|
|
15
|
+
function normalizeOffset(offset, size) {
|
|
16
|
+
if (offset < 0) {
|
|
17
|
+
return Math.max(size + offset, 0);
|
|
18
|
+
}
|
|
19
|
+
return Math.min(offset, size);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Read a byte range from a readable file.
|
|
23
|
+
* @param file readable file handle
|
|
24
|
+
* @param start inclusive start offset
|
|
25
|
+
* @param end exclusive end offset
|
|
26
|
+
* @returns requested slice
|
|
27
|
+
*/
|
|
28
|
+
export async function readRange(file, start, end) {
|
|
29
|
+
const startOffset = toBigInt(start);
|
|
30
|
+
const endOffset = toBigInt(end);
|
|
31
|
+
const length = endOffset - startOffset;
|
|
32
|
+
if (length < 0) {
|
|
33
|
+
throw new Error('Invalid range requested');
|
|
34
|
+
}
|
|
35
|
+
return await file.read(startOffset, toNumber(length));
|
|
36
|
+
}
|
|
37
|
+
export async function readDataView(file, start, end) {
|
|
38
|
+
const arrayBuffer = await readRange(file, start, end);
|
|
39
|
+
return new DataView(arrayBuffer);
|
|
40
|
+
}
|
|
41
|
+
export async function readUint8(file, offset) {
|
|
42
|
+
const dataView = await readDataView(file, offset, toBigInt(offset) + 1n);
|
|
43
|
+
return dataView.getUint8(0);
|
|
44
|
+
}
|
|
45
|
+
export async function readUint16(file, offset) {
|
|
46
|
+
const dataView = await readDataView(file, offset, toBigInt(offset) + 2n);
|
|
47
|
+
return dataView.getUint16(0, true);
|
|
48
|
+
}
|
|
49
|
+
export async function readUint32(file, offset) {
|
|
50
|
+
const dataView = await readDataView(file, offset, toBigInt(offset) + 4n);
|
|
51
|
+
return dataView.getUint32(0, true);
|
|
52
|
+
}
|
|
53
|
+
export async function readBigUint64(file, offset) {
|
|
54
|
+
const dataView = await readDataView(file, offset, toBigInt(offset) + 8n);
|
|
55
|
+
return dataView.getBigUint64(0, true);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Resolve the size of a readable file.
|
|
59
|
+
* @param file readable file handle
|
|
60
|
+
* @returns file size as bigint
|
|
61
|
+
*/
|
|
62
|
+
export async function getReadableFileSize(file) {
|
|
63
|
+
if (file.bigsize > 0n) {
|
|
64
|
+
return file.bigsize;
|
|
65
|
+
}
|
|
66
|
+
if (file.size > 0) {
|
|
67
|
+
return BigInt(file.size);
|
|
68
|
+
}
|
|
69
|
+
if (file.stat) {
|
|
70
|
+
const stats = await file.stat();
|
|
71
|
+
if (stats?.bigsize !== undefined) {
|
|
72
|
+
return stats.bigsize;
|
|
73
|
+
}
|
|
74
|
+
if (stats?.size !== undefined) {
|
|
75
|
+
return BigInt(stats.size);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return 0n;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Minimal readable file backed by a DataView.
|
|
82
|
+
*/
|
|
83
|
+
export class DataViewReadableFile {
|
|
84
|
+
handle;
|
|
85
|
+
size;
|
|
86
|
+
bigsize;
|
|
87
|
+
url;
|
|
88
|
+
constructor(dataView, url = '') {
|
|
89
|
+
this.handle = dataView;
|
|
90
|
+
this.size = dataView.byteLength;
|
|
91
|
+
this.bigsize = BigInt(dataView.byteLength);
|
|
92
|
+
this.url = url;
|
|
93
|
+
}
|
|
94
|
+
async close() { }
|
|
95
|
+
async stat() {
|
|
96
|
+
return { size: this.size, bigsize: this.bigsize, isDirectory: false };
|
|
97
|
+
}
|
|
98
|
+
async read(start = 0, length) {
|
|
99
|
+
const offset = toNumber(start);
|
|
100
|
+
const end = length ? offset + length : this.size;
|
|
101
|
+
const normalizedStart = normalizeOffset(offset, this.size);
|
|
102
|
+
const normalizedEnd = normalizeOffset(end, this.size);
|
|
103
|
+
const clampedEnd = Math.max(normalizedEnd, normalizedStart);
|
|
104
|
+
const lengthToRead = clampedEnd - normalizedStart;
|
|
105
|
+
if (lengthToRead <= 0) {
|
|
106
|
+
return new ArrayBuffer(0);
|
|
107
|
+
}
|
|
108
|
+
return copyToArrayBuffer(this.handle.buffer, normalizedStart, lengthToRead);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=readable-file-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readable-file-utils.js","sourceRoot":"","sources":["../../src/parse-zip/readable-file-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { ReadableFile } from '@loaders.gl/loader-utils';
|
|
2
2
|
/** Description of zip signature type */
|
|
3
3
|
export type ZipSignature = Uint8Array;
|
|
4
4
|
/**
|
|
@@ -7,5 +7,5 @@ export type ZipSignature = Uint8Array;
|
|
|
7
7
|
* @param target
|
|
8
8
|
* @returns
|
|
9
9
|
*/
|
|
10
|
-
export declare const searchFromTheEnd: (file:
|
|
10
|
+
export declare const searchFromTheEnd: (file: ReadableFile, target: ZipSignature) => Promise<bigint>;
|
|
11
11
|
//# sourceMappingURL=search-from-the-end.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-from-the-end.d.ts","sourceRoot":"","sources":["../../src/parse-zip/search-from-the-end.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"search-from-the-end.d.ts","sourceRoot":"","sources":["../../src/parse-zip/search-from-the-end.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAG3D,wCAAwC;AACxC,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC;AAItC;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,SACrB,YAAY,UACV,YAAY,KACnB,OAAO,CAAC,MAAM,CA2BhB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// loaders.gl
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
|
+
import { getReadableFileSize, readRange } from "./readable-file-utils.js";
|
|
4
5
|
const buffLength = 1024;
|
|
5
6
|
/**
|
|
6
7
|
* looking for the last occurrence of the provided
|
|
@@ -9,20 +10,17 @@ const buffLength = 1024;
|
|
|
9
10
|
* @returns
|
|
10
11
|
*/
|
|
11
12
|
export const searchFromTheEnd = async (file, target) => {
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
await file.getUint8(file.length - 3n),
|
|
16
|
-
undefined
|
|
17
|
-
];
|
|
13
|
+
const fileLength = await getReadableFileSize(file);
|
|
14
|
+
const lastBytes = new Uint8Array(await readRange(file, fileLength - 3n, fileLength + 1n));
|
|
15
|
+
const searchWindow = [lastBytes[3], lastBytes[2], lastBytes[1], undefined];
|
|
18
16
|
let targetOffset = -1;
|
|
19
17
|
// looking for the last record in the central directory
|
|
20
|
-
let point =
|
|
18
|
+
let point = fileLength - 4n;
|
|
21
19
|
do {
|
|
22
20
|
const prevPoint = point;
|
|
23
21
|
point -= BigInt(buffLength);
|
|
24
22
|
point = point >= 0n ? point : 0n;
|
|
25
|
-
const buff = new Uint8Array(await file
|
|
23
|
+
const buff = new Uint8Array(await readRange(file, point, prevPoint));
|
|
26
24
|
for (let i = buff.length - 1; i > -1; i--) {
|
|
27
25
|
searchWindow[3] = searchWindow[2];
|
|
28
26
|
searchWindow[2] = searchWindow[1];
|
|
@@ -36,3 +34,4 @@ export const searchFromTheEnd = async (file, target) => {
|
|
|
36
34
|
} while (targetOffset === -1 && point > 0n);
|
|
37
35
|
return point + BigInt(targetOffset);
|
|
38
36
|
};
|
|
37
|
+
//# sourceMappingURL=search-from-the-end.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-from-the-end.js","sourceRoot":"","sources":["../../src/parse-zip/search-from-the-end.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,mBAAmB,EAAE,SAAS,EAAC,iCAA8B;AAKrE,MAAM,UAAU,GAAG,IAAI,CAAC;AAExB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,IAAkB,EAClB,MAAoB,EACH,EAAE;IACnB,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,EAAE,EAAE,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC;IAC1F,MAAM,YAAY,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAE3E,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;IAEtB,uDAAuD;IACvD,IAAI,KAAK,GAAG,UAAU,GAAG,EAAE,CAAC;IAC5B,GAAG,CAAC;QACF,MAAM,SAAS,GAAG,KAAK,CAAC;QACxB,KAAK,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5B,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;QACrE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAClC,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAClC,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAClC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC9D,YAAY,GAAG,CAAC,CAAC;gBACjB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC,QAAQ,YAAY,KAAK,CAAC,CAAC,IAAI,KAAK,GAAG,EAAE,EAAE;IAE5C,OAAO,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACtC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zip-composition.d.ts","sourceRoot":"","sources":["../../src/parse-zip/zip-composition.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"zip-composition.d.ts","sourceRoot":"","sources":["../../src/parse-zip/zip-composition.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,cAAc,EAGf,MAAM,0BAA0B,CAAC;AA0ElC;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,iBAwCxF;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAC7B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,oBAAoB,CAAC,EAAE,CACrB,QAAQ,EAAE;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAC,EAAE,KACtD,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAC,CAAC,iBAwBhD;AAsBD;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,GAChB,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAC,CAAC,CASlD;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,MAAW,EACtB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,MAAM,EAAE,CAAC,CAiBnB"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { concatenateArrayBuffers, path, NodeFilesystem, NodeFile, toArrayBuffer } from '@loaders.gl/loader-utils';
|
|
2
2
|
import { generateEoCD, parseEoCDRecord, updateEoCD } from "./end-of-central-directory.js";
|
|
3
3
|
import { CRC32Hash } from '@loaders.gl/crypto';
|
|
4
4
|
import { generateLocalHeader } from "./local-file-header.js";
|
|
5
5
|
import { generateCDHeader } from "./cd-file-header.js";
|
|
6
6
|
import { fetchFile } from '@loaders.gl/core';
|
|
7
|
+
import { readRange } from "./readable-file-utils.js";
|
|
7
8
|
/**
|
|
8
9
|
* cut off CD and EoCD records from zip file
|
|
9
10
|
* @param provider zip file
|
|
@@ -13,12 +14,13 @@ async function cutTheTailOff(provider) {
|
|
|
13
14
|
// define where the body ends
|
|
14
15
|
const oldEoCDinfo = await parseEoCDRecord(provider);
|
|
15
16
|
const oldCDStartOffset = oldEoCDinfo.cdStartOffset;
|
|
17
|
+
const providerSize = (await provider.stat()).bigsize;
|
|
16
18
|
// define cd length
|
|
17
19
|
const oldCDLength = Number(oldEoCDinfo.offsets.zip64EoCDOffset
|
|
18
20
|
? oldEoCDinfo.offsets.zip64EoCDOffset - oldCDStartOffset
|
|
19
21
|
: oldEoCDinfo.offsets.zipEoCDOffset - oldCDStartOffset);
|
|
20
22
|
// cut off everything except of archieve body
|
|
21
|
-
const zipEnding = await provider
|
|
23
|
+
const zipEnding = await readRange(provider, oldCDStartOffset, providerSize);
|
|
22
24
|
await provider.truncate(Number(oldCDStartOffset));
|
|
23
25
|
// divide cd body and eocd record
|
|
24
26
|
const oldCDBody = zipEnding.slice(0, oldCDLength);
|
|
@@ -61,22 +63,27 @@ async function generateFileHeaders(fileName, fileToAdd, localFileHeaderOffset) {
|
|
|
61
63
|
*/
|
|
62
64
|
export async function addOneFile(zipUrl, fileToAdd, fileName) {
|
|
63
65
|
// init file handler
|
|
64
|
-
const provider = new
|
|
66
|
+
const provider = new NodeFile(zipUrl, 'a+');
|
|
65
67
|
const [oldCDBody, eocdBody, oldEoCDinfo] = await cutTheTailOff(provider);
|
|
68
|
+
let currentOffset = (await provider.stat()).bigsize;
|
|
66
69
|
// remember the new file local header start offset
|
|
67
|
-
const newFileOffset =
|
|
70
|
+
const newFileOffset = currentOffset;
|
|
68
71
|
const [localPart, cdHeaderPart] = await generateFileHeaders(fileName, fileToAdd, newFileOffset);
|
|
69
72
|
// write down the file local header
|
|
70
73
|
await provider.append(localPart);
|
|
74
|
+
currentOffset += BigInt(localPart.byteLength);
|
|
71
75
|
// add the file CD header to the CD
|
|
72
76
|
const newCDBody = concatenateArrayBuffers(oldCDBody, cdHeaderPart);
|
|
73
77
|
// remember the CD start offset
|
|
74
|
-
const newCDStartOffset =
|
|
78
|
+
const newCDStartOffset = currentOffset;
|
|
75
79
|
// write down new CD
|
|
76
80
|
await provider.append(new Uint8Array(newCDBody));
|
|
81
|
+
currentOffset += BigInt(newCDBody.byteLength);
|
|
77
82
|
// remember where eocd starts
|
|
78
|
-
const eocdOffset =
|
|
79
|
-
|
|
83
|
+
const eocdOffset = currentOffset;
|
|
84
|
+
const updatedEoCD = updateEoCD(eocdBody, oldEoCDinfo.offsets, newCDStartOffset, eocdOffset, oldEoCDinfo.cdRecordsNumber + 1n);
|
|
85
|
+
await provider.append(updatedEoCD);
|
|
86
|
+
currentOffset += BigInt(updatedEoCD.byteLength);
|
|
80
87
|
}
|
|
81
88
|
/**
|
|
82
89
|
* creates zip archive with no compression
|
|
@@ -114,7 +121,7 @@ async function addFile(file, resFile, cdArray, fileList) {
|
|
|
114
121
|
fileList?.push({ fileName: file.path, localHeaderOffset: size });
|
|
115
122
|
const [localPart, cdHeaderPart] = await generateFileHeaders(file.path, file.file, size);
|
|
116
123
|
await resFile.append(localPart);
|
|
117
|
-
cdArray.push(cdHeaderPart);
|
|
124
|
+
cdArray.push(toArrayBuffer(cdHeaderPart));
|
|
118
125
|
}
|
|
119
126
|
/**
|
|
120
127
|
* creates iterator providing buffer with file content and path to every file in the input folder
|
|
@@ -162,3 +169,4 @@ function pathJoin(...paths) {
|
|
|
162
169
|
const resPaths = paths.filter((val) => val.length);
|
|
163
170
|
return path.join(...resPaths);
|
|
164
171
|
}
|
|
172
|
+
//# sourceMappingURL=zip-composition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zip-composition.js","sourceRoot":"","sources":["../../src/parse-zip/zip-composition.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zip64-info-generation.js","sourceRoot":"","sources":["../../src/parse-zip/zip64-info-generation.ts"],"names":[],"mappings":"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"}
|
package/dist/tar-builder.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tar-builder.js","sourceRoot":"","sources":["../src/tar-builder.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,GAAG,yBAAsB;AAEhC,MAAM,mBAAmB,GAAG;IAC1B,eAAe,EAAE,EAAE;CACpB,CAAC;AAMF;;GAEG;AACH,MAAM,OAAO,UAAU;IACrB,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,KAAK;YACX,UAAU,EAAE,CAAC,KAAK,CAAC;YACnB,SAAS,EAAE,CAAC,mBAAmB,CAAC;YAChC,OAAO,EAAE,UAAU;YACnB,OAAO,EAAE,mBAAmB;SAC7B,CAAC;IACJ,CAAC;IAED,OAAO,CAAoB;IAC3B,IAAI,CAAM;IACV,KAAK,GAAW,CAAC,CAAC;IAElB,YAAY,OAAoC;QAC9C,IAAI,CAAC,OAAO,GAAG,EAAC,GAAG,mBAAmB,EAAE,GAAG,OAAO,EAAC,CAAC;QACpD,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACpD,CAAC;IACD,kCAAkC;IAClC,OAAO,CAAC,QAAgB,EAAE,MAAmB;QAC3C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACtD,CAAC;CACF"}
|
package/dist/zip-loader.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import JSZip from 'jszip';
|
|
5
5
|
// __VERSION__ is injected by babel-plugin-version-inline
|
|
6
6
|
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
|
7
|
-
const VERSION = typeof "4.4.0-alpha.
|
|
7
|
+
const VERSION = typeof "4.4.0-alpha.9" !== 'undefined' ? "4.4.0-alpha.9" : 'latest';
|
|
8
8
|
export const ZipLoader = {
|
|
9
9
|
dataType: null,
|
|
10
10
|
batchType: null,
|
|
@@ -57,3 +57,4 @@ async function loadZipEntry(jsZip, subFilename, options = {}) {
|
|
|
57
57
|
return error;
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
+
//# sourceMappingURL=zip-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zip-loader.js","sourceRoot":"","sources":["../src/zip-loader.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,yDAAyD;AACzD,qDAAqD;AACrD,MAAM,OAAO,GAAG,sBAAkB,KAAK,WAAW,CAAC,CAAC,iBAAa,CAAC,CAAC,QAAQ,CAAC;AAI5E,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,QAAQ,EAAE,IAA0B;IACpC,SAAS,EAAE,IAAwB;IAEnC,EAAE,EAAE,KAAK;IACT,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,aAAa;IACnB,OAAO,EAAE,OAAO;IAChB,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,SAAS,EAAE,CAAC,iBAAiB,CAAC;IAC9B,QAAQ,EAAE,SAAS;IACnB,KAAK,EAAE,CAAC,IAAI,CAAC;IACb,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,aAAa;CAC8C,CAAC;AAErE,iEAAiE;AACjE,KAAK,UAAU,aAAa,CAAC,IAAS,EAAE,OAAO,GAAG,EAAE;IAClD,MAAM,QAAQ,GAAmB,EAAE,CAAC;IACpC,MAAM,OAAO,GAAgC,EAAE,CAAC;IAEhD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QAE1B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEjD,sCAAsC;QACtC,GAAG,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE;YACrC,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC;YAElC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,EAAE;gBACpF,OAAO,CAAC,YAAY,CAAC,GAAG,kBAAkB,CAAC;YAC7C,CAAC,CAAC,CAAC;YAEH,uDAAuD;YACvD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,aAAa;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;QAC1D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,KAAU,EAAE,WAAmB,EAAE,UAAe,EAAE;IAC5E,sEAAsE;IACtE,sEAAsE;IACtE,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,IAAI,aAAa,CAAC,CAAC;QAC3F,OAAO,WAAW,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,WAAW,sBAAsB,KAAK,EAAE,CAAC,CAAC;QAC9E,sCAAsC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|