@loaders.gl/zip 4.1.0-alpha.1 → 4.1.0-alpha.3
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 +115 -16
- package/dist/filesystems/zip-filesystem.d.ts.map +1 -1
- package/dist/filesystems/zip-filesystem.js.map +1 -1
- package/dist/hash-file-utility.d.ts.map +1 -1
- package/dist/hash-file-utility.js.map +1 -1
- package/dist/index.cjs +126 -9
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/tar/header.d.ts.map +1 -1
- package/dist/lib/tar/header.js.map +1 -1
- package/dist/lib/tar/tar.d.ts.map +1 -1
- package/dist/lib/tar/tar.js.map +1 -1
- package/dist/lib/tar/types.d.ts.map +1 -1
- package/dist/lib/tar/types.js.map +1 -1
- package/dist/lib/tar/utils.d.ts.map +1 -1
- package/dist/lib/tar/utils.js.map +1 -1
- package/dist/parse-zip/cd-file-header.d.ts.map +1 -1
- package/dist/parse-zip/cd-file-header.js +2 -2
- package/dist/parse-zip/cd-file-header.js.map +1 -1
- package/dist/parse-zip/end-of-central-directory.d.ts.map +1 -1
- package/dist/parse-zip/end-of-central-directory.js.map +1 -1
- package/dist/parse-zip/local-file-header.d.ts +16 -0
- package/dist/parse-zip/local-file-header.d.ts.map +1 -1
- package/dist/parse-zip/local-file-header.js +73 -1
- package/dist/parse-zip/local-file-header.js.map +1 -1
- package/dist/parse-zip/search-from-the-end.d.ts.map +1 -1
- package/dist/parse-zip/search-from-the-end.js.map +1 -1
- package/dist/parse-zip/zip64-info-generation.d.ts +5 -8
- package/dist/parse-zip/zip64-info-generation.d.ts.map +1 -1
- package/dist/parse-zip/zip64-info-generation.js +6 -3
- package/dist/parse-zip/zip64-info-generation.js.map +1 -1
- package/dist/tar-builder.d.ts.map +1 -1
- package/dist/tar-builder.js.map +1 -1
- package/dist/zip-loader.d.ts.map +1 -1
- package/dist/zip-loader.js +1 -1
- package/dist/zip-loader.js.map +1 -1
- package/dist/zip-writer.d.ts +2 -2
- package/dist/zip-writer.d.ts.map +1 -1
- package/dist/zip-writer.js +22 -7
- package/dist/zip-writer.js.map +1 -1
- package/package.json +5 -5
- package/src/filesystems/zip-filesystem.ts +2 -1
- package/src/hash-file-utility.ts +2 -1
- package/src/index.ts +4 -2
- package/src/lib/tar/header.ts +2 -1
- package/src/lib/tar/tar.ts +2 -1
- package/src/lib/tar/types.ts +2 -1
- package/src/lib/tar/utils.ts +2 -1
- package/src/parse-zip/cd-file-header.ts +5 -3
- package/src/parse-zip/end-of-central-directory.ts +2 -1
- package/src/parse-zip/local-file-header.ts +128 -2
- package/src/parse-zip/search-from-the-end.ts +2 -1
- package/src/parse-zip/zip64-info-generation.ts +20 -4
- package/src/tar-builder.ts +2 -1
- package/src/zip-loader.ts +2 -1
- package/src/zip-writer.ts +24 -10
package/dist/dist.dev.js
CHANGED
|
@@ -6957,6 +6957,7 @@ var __exports__ = (() => {
|
|
|
6957
6957
|
ZipLoader: () => ZipLoader,
|
|
6958
6958
|
ZipWriter: () => ZipWriter,
|
|
6959
6959
|
generateCDHeader: () => generateCDHeader,
|
|
6960
|
+
generateLocalHeader: () => generateLocalHeader,
|
|
6960
6961
|
localHeaderSignature: () => signature3,
|
|
6961
6962
|
makeHashTableFromZipHeaders: () => makeHashTableFromZipHeaders,
|
|
6962
6963
|
makeZipCDHeaderIterator: () => makeZipCDHeaderIterator,
|
|
@@ -6969,7 +6970,7 @@ var __exports__ = (() => {
|
|
|
6969
6970
|
|
|
6970
6971
|
// src/zip-loader.ts
|
|
6971
6972
|
var import_jszip = __toESM(require_jszip_min(), 1);
|
|
6972
|
-
var VERSION =
|
|
6973
|
+
var VERSION = true ? "4.1.0-alpha.3" : "latest";
|
|
6973
6974
|
var ZipLoader = {
|
|
6974
6975
|
id: "zip",
|
|
6975
6976
|
module: "zip",
|
|
@@ -7014,11 +7015,22 @@ var __exports__ = (() => {
|
|
|
7014
7015
|
|
|
7015
7016
|
// src/zip-writer.ts
|
|
7016
7017
|
var import_jszip2 = __toESM(require_jszip_min(), 1);
|
|
7018
|
+
var VERSION2 = true ? "4.1.0-alpha.3" : "latest";
|
|
7017
7019
|
var ZipWriter = {
|
|
7018
7020
|
name: "Zip Archive",
|
|
7021
|
+
id: "zip",
|
|
7022
|
+
module: "zip",
|
|
7023
|
+
version: VERSION2,
|
|
7019
7024
|
extensions: ["zip"],
|
|
7020
7025
|
category: "archive",
|
|
7021
7026
|
mimeTypes: ["application/zip"],
|
|
7027
|
+
options: {
|
|
7028
|
+
zip: {
|
|
7029
|
+
onUpdate: () => {
|
|
7030
|
+
}
|
|
7031
|
+
},
|
|
7032
|
+
jszip: {}
|
|
7033
|
+
},
|
|
7022
7034
|
encode: encodeZipAsync
|
|
7023
7035
|
};
|
|
7024
7036
|
async function encodeZipAsync(fileMap, options = {}) {
|
|
@@ -7027,18 +7039,21 @@ var __exports__ = (() => {
|
|
|
7027
7039
|
const subFileData = fileMap[subFileName];
|
|
7028
7040
|
jsZip.file(subFileName, subFileData, options?.jszip || {});
|
|
7029
7041
|
}
|
|
7042
|
+
const zipOptions = {
|
|
7043
|
+
...ZipWriter.options.zip,
|
|
7044
|
+
...options?.zip
|
|
7045
|
+
};
|
|
7030
7046
|
const jszipOptions = {
|
|
7031
|
-
...options?.jszip,
|
|
7032
|
-
|
|
7047
|
+
...ZipWriter.options?.jszip,
|
|
7048
|
+
...options.jszip
|
|
7033
7049
|
};
|
|
7034
|
-
const {
|
|
7035
|
-
onUpdate = () => {
|
|
7036
|
-
}
|
|
7037
|
-
} = options;
|
|
7038
7050
|
try {
|
|
7039
|
-
return await jsZip.generateAsync(
|
|
7051
|
+
return await jsZip.generateAsync({
|
|
7052
|
+
...jszipOptions,
|
|
7053
|
+
type: "arraybuffer"
|
|
7054
|
+
}, zipOptions.onUpdate);
|
|
7040
7055
|
} catch (error) {
|
|
7041
|
-
options.log.error(`Unable to
|
|
7056
|
+
options.log.error(`Unable to encode zip archive: ${error}`);
|
|
7042
7057
|
throw error;
|
|
7043
7058
|
}
|
|
7044
7059
|
}
|
|
@@ -7361,6 +7376,12 @@ var __exports__ = (() => {
|
|
|
7361
7376
|
async stat() {
|
|
7362
7377
|
throw NOT_IMPLEMENTED;
|
|
7363
7378
|
}
|
|
7379
|
+
async truncate(length) {
|
|
7380
|
+
throw NOT_IMPLEMENTED;
|
|
7381
|
+
}
|
|
7382
|
+
async append(data) {
|
|
7383
|
+
throw NOT_IMPLEMENTED;
|
|
7384
|
+
}
|
|
7364
7385
|
async close() {
|
|
7365
7386
|
}
|
|
7366
7387
|
};
|
|
@@ -7372,9 +7393,14 @@ var __exports__ = (() => {
|
|
|
7372
7393
|
|
|
7373
7394
|
// ../loader-utils/src/lib/file-provider/file-handle-file.ts
|
|
7374
7395
|
var FileHandleFile = class {
|
|
7375
|
-
constructor(path) {
|
|
7376
|
-
this.file = new NodeFileFacade(path, "r");
|
|
7377
|
-
|
|
7396
|
+
constructor(path, append = false) {
|
|
7397
|
+
this.file = new NodeFileFacade(path, append ? "a+" : "r");
|
|
7398
|
+
}
|
|
7399
|
+
async truncate(length) {
|
|
7400
|
+
await this.file.truncate(length);
|
|
7401
|
+
}
|
|
7402
|
+
async append(buffer) {
|
|
7403
|
+
await this.file.append(buffer);
|
|
7378
7404
|
}
|
|
7379
7405
|
async destroy() {
|
|
7380
7406
|
await this.file.close();
|
|
@@ -7420,7 +7446,7 @@ var __exports__ = (() => {
|
|
|
7420
7446
|
return await this.file.read(startOffset, length);
|
|
7421
7447
|
}
|
|
7422
7448
|
get length() {
|
|
7423
|
-
return this.
|
|
7449
|
+
return this.file.bigsize;
|
|
7424
7450
|
}
|
|
7425
7451
|
};
|
|
7426
7452
|
|
|
@@ -7492,12 +7518,15 @@ var __exports__ = (() => {
|
|
|
7492
7518
|
}
|
|
7493
7519
|
return concatenateArrayBuffers(...arraysToConcat);
|
|
7494
7520
|
}
|
|
7521
|
+
function setFieldToNumber(header, fieldSize, fieldOffset, value) {
|
|
7522
|
+
NUMBER_SETTERS[fieldSize](header, fieldOffset, value);
|
|
7523
|
+
}
|
|
7495
7524
|
var NUMBER_SETTERS = {
|
|
7496
7525
|
2: (header, offset, value) => {
|
|
7497
|
-
header.setUint16(offset, value, true);
|
|
7526
|
+
header.setUint16(offset, Number(value), true);
|
|
7498
7527
|
},
|
|
7499
7528
|
4: (header, offset, value) => {
|
|
7500
|
-
header.setUint32(offset, value, true);
|
|
7529
|
+
header.setUint32(offset, Number(value), true);
|
|
7501
7530
|
},
|
|
7502
7531
|
8: (header, offset, value) => {
|
|
7503
7532
|
header.setBigUint64(offset, BigInt(value), true);
|
|
@@ -7639,7 +7668,7 @@ var __exports__ = (() => {
|
|
|
7639
7668
|
}
|
|
7640
7669
|
const header = new DataView(new ArrayBuffer(46));
|
|
7641
7670
|
for (const field of ZIP_HEADER_FIELDS) {
|
|
7642
|
-
|
|
7671
|
+
setFieldToNumber(header, field.size, field.offset, optionsToUse[field.name ?? ""] ?? field.default ?? 0);
|
|
7643
7672
|
}
|
|
7644
7673
|
const encodedName = new TextEncoder().encode(optionsToUse.fileName);
|
|
7645
7674
|
const resHeader = concatenateArrayBuffers(header.buffer, encodedName, zip64header);
|
|
@@ -7758,6 +7787,76 @@ var __exports__ = (() => {
|
|
|
7758
7787
|
compressionMethod
|
|
7759
7788
|
};
|
|
7760
7789
|
};
|
|
7790
|
+
function generateLocalHeader(options) {
|
|
7791
|
+
const optionsToUse = {
|
|
7792
|
+
...options,
|
|
7793
|
+
extraLength: 0,
|
|
7794
|
+
fnlength: options.fileName.length
|
|
7795
|
+
};
|
|
7796
|
+
let zip64header = new ArrayBuffer(0);
|
|
7797
|
+
const optionsToZip64 = {};
|
|
7798
|
+
if (optionsToUse.length >= 4294967295) {
|
|
7799
|
+
optionsToZip64.size = optionsToUse.length;
|
|
7800
|
+
optionsToUse.length = 4294967295;
|
|
7801
|
+
}
|
|
7802
|
+
if (Object.keys(optionsToZip64).length) {
|
|
7803
|
+
zip64header = createZip64Info(optionsToZip64);
|
|
7804
|
+
optionsToUse.extraLength = zip64header.byteLength;
|
|
7805
|
+
}
|
|
7806
|
+
const header = new DataView(new ArrayBuffer(Number(FILE_NAME_OFFSET)));
|
|
7807
|
+
for (const field of ZIP_HEADER_FIELDS2) {
|
|
7808
|
+
setFieldToNumber(header, field.size, field.offset, optionsToUse[field.name ?? ""] ?? field.default ?? 0);
|
|
7809
|
+
}
|
|
7810
|
+
const encodedName = new TextEncoder().encode(optionsToUse.fileName);
|
|
7811
|
+
const resHeader = concatenateArrayBuffers(header.buffer, encodedName, zip64header);
|
|
7812
|
+
return resHeader;
|
|
7813
|
+
}
|
|
7814
|
+
var ZIP_HEADER_FIELDS2 = [{
|
|
7815
|
+
offset: 0,
|
|
7816
|
+
size: 4,
|
|
7817
|
+
default: new DataView(signature3.buffer).getUint32(0, true)
|
|
7818
|
+
}, {
|
|
7819
|
+
offset: 4,
|
|
7820
|
+
size: 2,
|
|
7821
|
+
default: 45
|
|
7822
|
+
}, {
|
|
7823
|
+
offset: 6,
|
|
7824
|
+
size: 2,
|
|
7825
|
+
default: 0
|
|
7826
|
+
}, {
|
|
7827
|
+
offset: 8,
|
|
7828
|
+
size: 2,
|
|
7829
|
+
default: 0
|
|
7830
|
+
}, {
|
|
7831
|
+
offset: 10,
|
|
7832
|
+
size: 2,
|
|
7833
|
+
default: 0
|
|
7834
|
+
}, {
|
|
7835
|
+
offset: 12,
|
|
7836
|
+
size: 2,
|
|
7837
|
+
default: 0
|
|
7838
|
+
}, {
|
|
7839
|
+
offset: 14,
|
|
7840
|
+
size: 4,
|
|
7841
|
+
name: "crc32"
|
|
7842
|
+
}, {
|
|
7843
|
+
offset: 18,
|
|
7844
|
+
size: 4,
|
|
7845
|
+
name: "length"
|
|
7846
|
+
}, {
|
|
7847
|
+
offset: 22,
|
|
7848
|
+
size: 4,
|
|
7849
|
+
name: "length"
|
|
7850
|
+
}, {
|
|
7851
|
+
offset: 26,
|
|
7852
|
+
size: 2,
|
|
7853
|
+
name: "fnlength"
|
|
7854
|
+
}, {
|
|
7855
|
+
offset: 28,
|
|
7856
|
+
size: 2,
|
|
7857
|
+
default: 0,
|
|
7858
|
+
name: "extraLength"
|
|
7859
|
+
}];
|
|
7761
7860
|
|
|
7762
7861
|
// ../crypto/src/lib/hash.ts
|
|
7763
7862
|
var Hash = class {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zip-filesystem.d.ts","sourceRoot":"","sources":["../../src/filesystems/zip-filesystem.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"zip-filesystem.d.ts","sourceRoot":"","sources":["../../src/filesystems/zip-filesystem.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,UAAU,EAAY,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAC,YAAY,EAAiB,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAAC,eAAe,EAA0B,MAAM,6BAA6B,CAAC;AAiBrF;;;GAGG;AACH,qBAAa,aAAc,YAAW,UAAU;IAC9C,oCAAoC;IACpC,SAAS,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAQ;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;gBACS,IAAI,EAAE,YAAY,GAAG,MAAM;IAcvC,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;IA8BhD;;;;OAIG;YACW,eAAe;CAiB9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zip-filesystem.js","names":["isBrowser","isFileProvider","FileHandleFile","makeZipCDHeaderIterator","parseZipLocalFileHeader","DeflateCompression","COMPRESSION_METHODS","compressedFile","compression","raw","decompressedData","decompress","ZipFileSystem","constructor","file","fileProvider","fileName","Error","destroy","readdir","fileNames","zipCDIterator","cdHeader","push","stat","filename","cdFileHeader","getCDFileHeader","size","Number","uncompressedSize","fetch","localFileHeader","localHeaderOffset","compressionHandler","compressionMethod","toString","slice","fileDataOffset","compressedSize","uncompressedFile","response","Response","Object","defineProperty","value","result"],"sources":["../../src/filesystems/zip-filesystem.ts"],"sourcesContent":["// loaders.gl
|
|
1
|
+
{"version":3,"file":"zip-filesystem.js","names":["isBrowser","isFileProvider","FileHandleFile","makeZipCDHeaderIterator","parseZipLocalFileHeader","DeflateCompression","COMPRESSION_METHODS","compressedFile","compression","raw","decompressedData","decompress","ZipFileSystem","constructor","file","fileProvider","fileName","Error","destroy","readdir","fileNames","zipCDIterator","cdHeader","push","stat","filename","cdFileHeader","getCDFileHeader","size","Number","uncompressedSize","fetch","localFileHeader","localHeaderOffset","compressionHandler","compressionMethod","toString","slice","fileDataOffset","compressedSize","uncompressedFile","response","Response","Object","defineProperty","value","result"],"sources":["../../src/filesystems/zip-filesystem.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {FileSystem, isBrowser} from '@loaders.gl/loader-utils';\nimport {FileProvider, isFileProvider} from '@loaders.gl/loader-utils';\nimport {FileHandleFile} from '@loaders.gl/loader-utils';\nimport {ZipCDFileHeader, makeZipCDHeaderIterator} from '../parse-zip/cd-file-header';\nimport {parseZipLocalFileHeader} from '../parse-zip/local-file-header';\nimport {DeflateCompression} from '@loaders.gl/compression';\n\ntype CompressionHandler = (compressedFile: ArrayBuffer) => Promise<ArrayBuffer>;\n/** Handling different compression types in zip */\nconst COMPRESSION_METHODS: {[key: number]: CompressionHandler} = {\n /** No compression */\n 0: async (compressedFile) => compressedFile,\n /** Deflation */\n 8: async (compressedFile) => {\n const compression = new DeflateCompression({raw: true});\n const decompressedData = await compression.decompress(compressedFile);\n return decompressedData;\n }\n};\n\n/**\n * FileSystem adapter for a ZIP file\n * Holds FileProvider object that provides random access to archived files\n */\nexport class ZipFileSystem implements FileSystem {\n /** FileProvider instance promise */\n protected fileProvider: FileProvider | null = null;\n public fileName?: string;\n\n /**\n * Constructor\n * @param file - instance of FileProvider or file path string\n */\n constructor(file: FileProvider | string) {\n // Try to open file in NodeJS\n if (typeof file === 'string') {\n this.fileName = file;\n if (!isBrowser) {\n this.fileProvider = new FileHandleFile(file);\n } else {\n throw new Error('Cannot open file for random access in a WEB browser');\n }\n } else if (isFileProvider(file)) {\n this.fileProvider = file;\n }\n }\n\n /** Clean up resources */\n async destroy() {\n if (this.fileProvider) {\n await this.fileProvider.destroy();\n }\n }\n\n /**\n * Get file names list from zip archive\n * @returns array of file names\n */\n async readdir(): Promise<string[]> {\n if (!this.fileProvider) {\n throw new Error('No data detected in the zip archive');\n }\n const fileNames: string[] = [];\n const zipCDIterator = makeZipCDHeaderIterator(this.fileProvider);\n for await (const cdHeader of zipCDIterator) {\n fileNames.push(cdHeader.fileName);\n }\n return fileNames;\n }\n\n /**\n * Get file metadata\n * @param filename - name of a file\n * @returns central directory data\n */\n async stat(filename: string): Promise<ZipCDFileHeader & {size: number}> {\n const cdFileHeader = await this.getCDFileHeader(filename);\n return {...cdFileHeader, size: Number(cdFileHeader.uncompressedSize)};\n }\n\n /**\n * Implementation of fetch against this file system\n * @param filename - name of a file\n * @returns - Response with file data\n */\n async fetch(filename: string): Promise<Response> {\n if (!this.fileProvider) {\n throw new Error('No data detected in the zip archive');\n }\n const cdFileHeader = await this.getCDFileHeader(filename);\n const localFileHeader = await parseZipLocalFileHeader(\n cdFileHeader.localHeaderOffset,\n this.fileProvider\n );\n if (!localFileHeader) {\n throw new Error('Local file header has not been found in the zip archive`');\n }\n\n const compressionHandler = COMPRESSION_METHODS[localFileHeader.compressionMethod.toString()];\n if (!compressionHandler) {\n throw Error('Only Deflation compression is supported');\n }\n\n const compressedFile = await this.fileProvider.slice(\n localFileHeader.fileDataOffset,\n localFileHeader.fileDataOffset + localFileHeader.compressedSize\n );\n\n const uncompressedFile = await compressionHandler(compressedFile);\n\n const response = new Response(uncompressedFile);\n Object.defineProperty(response, 'url', {value: `${this.fileName || ''}/${filename}`});\n return response;\n }\n\n /**\n * Get central directory file header\n * @param filename - name of a file\n * @returns central directory file header\n */\n private async getCDFileHeader(filename: string): Promise<ZipCDFileHeader> {\n if (!this.fileProvider) {\n throw new Error('No data detected in the zip archive');\n }\n const zipCDIterator = makeZipCDHeaderIterator(this.fileProvider);\n let result: ZipCDFileHeader | null = null;\n for await (const cdHeader of zipCDIterator) {\n if (cdHeader.fileName === filename) {\n result = cdHeader;\n break;\n }\n }\n if (!result) {\n throw new Error('File has not been found in the zip archive');\n }\n return result;\n }\n}\n"],"mappings":"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"}
|
|
@@ -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":"AAKA,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAGtD;;;;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,CAejC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash-file-utility.js","names":["MD5Hash","makeZipCDHeaderIterator","parseHashTable","arrayBuffer","dataView","DataView","hashMap","i","byteLength","offset","getBigUint64","hash","bufferToHex","buffer","start","length","Uint8Array","map","x","toString","padStart","join","makeHashTableFromZipHeaders","fileProvider","zipCDIterator","md5Hash","textEncoder","TextEncoder","hashTable","cdHeader","filename","fileName","split","toLocaleLowerCase","encode","md5","localHeaderOffset"],"sources":["../src/hash-file-utility.ts"],"sourcesContent":["// loaders.gl
|
|
1
|
+
{"version":3,"file":"hash-file-utility.js","names":["MD5Hash","makeZipCDHeaderIterator","parseHashTable","arrayBuffer","dataView","DataView","hashMap","i","byteLength","offset","getBigUint64","hash","bufferToHex","buffer","start","length","Uint8Array","map","x","toString","padStart","join","makeHashTableFromZipHeaders","fileProvider","zipCDIterator","md5Hash","textEncoder","TextEncoder","hashTable","cdHeader","filename","fileName","split","toLocaleLowerCase","encode","md5","localHeaderOffset"],"sources":["../src/hash-file-utility.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {MD5Hash} from '@loaders.gl/crypto';\nimport {FileProvider} from '@loaders.gl/loader-utils';\nimport {makeZipCDHeaderIterator} from './parse-zip/cd-file-header';\n\n/**\n * Reads hash file from buffer and returns it in ready-to-use form\n * @param arrayBuffer - buffer containing hash file\n * @returns Map containing hash and offset\n */\nexport function parseHashTable(arrayBuffer: ArrayBuffer): Record<string, bigint> {\n const dataView = new DataView(arrayBuffer);\n\n const hashMap: Record<string, bigint> = {};\n\n for (let i = 0; i < arrayBuffer.byteLength; i = i + 24) {\n const offset = dataView.getBigUint64(i + 16, true);\n const hash = bufferToHex(arrayBuffer, i, 16);\n hashMap[hash] = offset;\n }\n\n return hashMap;\n}\n\nfunction bufferToHex(buffer: ArrayBuffer, start: number, length: number): string {\n // buffer is an ArrayBuffer\n return [...new Uint8Array(buffer, start, length)]\n .map((x) => x.toString(16).padStart(2, '0'))\n .join('');\n}\n\n/**\n * generates hash info from zip files \"central directory\"\n * @param fileProvider - provider of the archive\n * @returns ready to use hash info\n */\nexport async function makeHashTableFromZipHeaders(\n fileProvider: FileProvider\n): Promise<Record<string, bigint>> {\n const zipCDIterator = makeZipCDHeaderIterator(fileProvider);\n const md5Hash = new MD5Hash();\n const textEncoder = new TextEncoder();\n\n const hashTable: Record<string, bigint> = {};\n\n for await (const cdHeader of zipCDIterator) {\n const filename = cdHeader.fileName.split('\\\\').join('/').toLocaleLowerCase();\n const arrayBuffer = textEncoder.encode(filename).buffer;\n const md5 = await md5Hash.hash(arrayBuffer, 'hex');\n hashTable[md5] = cdHeader.localHeaderOffset;\n }\n\n return hashTable;\n}\n"],"mappings":"AAIA,SAAQA,OAAO,QAAO,oBAAoB;AAAC,SAEnCC,uBAAuB;AAO/B,OAAO,SAASC,cAAcA,CAACC,WAAwB,EAA0B;EAC/E,MAAMC,QAAQ,GAAG,IAAIC,QAAQ,CAACF,WAAW,CAAC;EAE1C,MAAMG,OAA+B,GAAG,CAAC,CAAC;EAE1C,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,WAAW,CAACK,UAAU,EAAED,CAAC,GAAGA,CAAC,GAAG,EAAE,EAAE;IACtD,MAAME,MAAM,GAAGL,QAAQ,CAACM,YAAY,CAACH,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC;IAClD,MAAMI,IAAI,GAAGC,WAAW,CAACT,WAAW,EAAEI,CAAC,EAAE,EAAE,CAAC;IAC5CD,OAAO,CAACK,IAAI,CAAC,GAAGF,MAAM;EACxB;EAEA,OAAOH,OAAO;AAChB;AAEA,SAASM,WAAWA,CAACC,MAAmB,EAAEC,KAAa,EAAEC,MAAc,EAAU;EAE/E,OAAO,CAAC,GAAG,IAAIC,UAAU,CAACH,MAAM,EAAEC,KAAK,EAAEC,MAAM,CAAC,CAAC,CAC9CE,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAC3CC,IAAI,CAAC,EAAE,CAAC;AACb;AAOA,OAAO,eAAeC,2BAA2BA,CAC/CC,YAA0B,EACO;EACjC,MAAMC,aAAa,GAAGvB,uBAAuB,CAACsB,YAAY,CAAC;EAC3D,MAAME,OAAO,GAAG,IAAIzB,OAAO,CAAC,CAAC;EAC7B,MAAM0B,WAAW,GAAG,IAAIC,WAAW,CAAC,CAAC;EAErC,MAAMC,SAAiC,GAAG,CAAC,CAAC;EAE5C,WAAW,MAAMC,QAAQ,IAAIL,aAAa,EAAE;IAC1C,MAAMM,QAAQ,GAAGD,QAAQ,CAACE,QAAQ,CAACC,KAAK,CAAC,IAAI,CAAC,CAACX,IAAI,CAAC,GAAG,CAAC,CAACY,iBAAiB,CAAC,CAAC;IAC5E,MAAM9B,WAAW,GAAGuB,WAAW,CAACQ,MAAM,CAACJ,QAAQ,CAAC,CAACjB,MAAM;IACvD,MAAMsB,GAAG,GAAG,MAAMV,OAAO,CAACd,IAAI,CAACR,WAAW,EAAE,KAAK,CAAC;IAClDyB,SAAS,CAACO,GAAG,CAAC,GAAGN,QAAQ,CAACO,iBAAiB;EAC7C;EAEA,OAAOR,SAAS;AAClB"}
|
package/dist/index.cjs
CHANGED
|
@@ -36,6 +36,7 @@ __export(src_exports, {
|
|
|
36
36
|
ZipLoader: () => ZipLoader,
|
|
37
37
|
ZipWriter: () => ZipWriter,
|
|
38
38
|
generateCDHeader: () => generateCDHeader,
|
|
39
|
+
generateLocalHeader: () => generateLocalHeader,
|
|
39
40
|
localHeaderSignature: () => signature3,
|
|
40
41
|
makeHashTableFromZipHeaders: () => makeHashTableFromZipHeaders,
|
|
41
42
|
makeZipCDHeaderIterator: () => makeZipCDHeaderIterator,
|
|
@@ -94,27 +95,41 @@ async function loadZipEntry(jsZip, subFilename, options = {}) {
|
|
|
94
95
|
|
|
95
96
|
// src/zip-writer.ts
|
|
96
97
|
var import_jszip2 = __toESM(require("jszip"), 1);
|
|
98
|
+
var VERSION2 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
97
99
|
var ZipWriter = {
|
|
98
100
|
name: "Zip Archive",
|
|
101
|
+
id: "zip",
|
|
102
|
+
module: "zip",
|
|
103
|
+
version: VERSION2,
|
|
99
104
|
extensions: ["zip"],
|
|
100
105
|
category: "archive",
|
|
101
106
|
mimeTypes: ["application/zip"],
|
|
102
|
-
|
|
107
|
+
options: {
|
|
108
|
+
zip: {
|
|
109
|
+
onUpdate: () => {
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
jszip: {}
|
|
113
|
+
},
|
|
103
114
|
encode: encodeZipAsync
|
|
104
115
|
};
|
|
105
116
|
async function encodeZipAsync(fileMap, options = {}) {
|
|
117
|
+
var _a;
|
|
106
118
|
const jsZip = new import_jszip2.default();
|
|
107
119
|
for (const subFileName in fileMap) {
|
|
108
120
|
const subFileData = fileMap[subFileName];
|
|
109
121
|
jsZip.file(subFileName, subFileData, (options == null ? void 0 : options.jszip) || {});
|
|
110
122
|
}
|
|
111
|
-
const
|
|
112
|
-
const {
|
|
113
|
-
} } = options;
|
|
123
|
+
const zipOptions = { ...ZipWriter.options.zip, ...options == null ? void 0 : options.zip };
|
|
124
|
+
const jszipOptions = { ...(_a = ZipWriter.options) == null ? void 0 : _a.jszip, ...options.jszip };
|
|
114
125
|
try {
|
|
115
|
-
return await jsZip.generateAsync(
|
|
126
|
+
return await jsZip.generateAsync(
|
|
127
|
+
{ ...jszipOptions, type: "arraybuffer" },
|
|
128
|
+
// generate an arraybuffer
|
|
129
|
+
zipOptions.onUpdate
|
|
130
|
+
);
|
|
116
131
|
} catch (error) {
|
|
117
|
-
options.log.error(`Unable to
|
|
132
|
+
options.log.error(`Unable to encode zip archive: ${error}`);
|
|
118
133
|
throw error;
|
|
119
134
|
}
|
|
120
135
|
}
|
|
@@ -416,12 +431,15 @@ function createZip64Info(options) {
|
|
|
416
431
|
}
|
|
417
432
|
return (0, import_loader_utils2.concatenateArrayBuffers)(...arraysToConcat);
|
|
418
433
|
}
|
|
434
|
+
function setFieldToNumber(header, fieldSize, fieldOffset, value) {
|
|
435
|
+
NUMBER_SETTERS[fieldSize](header, fieldOffset, value);
|
|
436
|
+
}
|
|
419
437
|
var NUMBER_SETTERS = {
|
|
420
438
|
2: (header, offset, value) => {
|
|
421
|
-
header.setUint16(offset, value, true);
|
|
439
|
+
header.setUint16(offset, Number(value), true);
|
|
422
440
|
},
|
|
423
441
|
4: (header, offset, value) => {
|
|
424
|
-
header.setUint32(offset, value, true);
|
|
442
|
+
header.setUint32(offset, Number(value), true);
|
|
425
443
|
},
|
|
426
444
|
8: (header, offset, value) => {
|
|
427
445
|
header.setBigUint64(offset, BigInt(value), true);
|
|
@@ -570,8 +588,9 @@ function generateCDHeader(options) {
|
|
|
570
588
|
}
|
|
571
589
|
const header = new DataView(new ArrayBuffer(46));
|
|
572
590
|
for (const field of ZIP_HEADER_FIELDS) {
|
|
573
|
-
|
|
591
|
+
setFieldToNumber(
|
|
574
592
|
header,
|
|
593
|
+
field.size,
|
|
575
594
|
field.offset,
|
|
576
595
|
optionsToUse[field.name ?? ""] ?? field.default ?? 0
|
|
577
596
|
);
|
|
@@ -734,6 +753,104 @@ var parseZipLocalFileHeader = async (headerOffset, buffer) => {
|
|
|
734
753
|
compressionMethod
|
|
735
754
|
};
|
|
736
755
|
};
|
|
756
|
+
function generateLocalHeader(options) {
|
|
757
|
+
const optionsToUse = {
|
|
758
|
+
...options,
|
|
759
|
+
extraLength: 0,
|
|
760
|
+
fnlength: options.fileName.length
|
|
761
|
+
};
|
|
762
|
+
let zip64header = new ArrayBuffer(0);
|
|
763
|
+
const optionsToZip64 = {};
|
|
764
|
+
if (optionsToUse.length >= 4294967295) {
|
|
765
|
+
optionsToZip64.size = optionsToUse.length;
|
|
766
|
+
optionsToUse.length = 4294967295;
|
|
767
|
+
}
|
|
768
|
+
if (Object.keys(optionsToZip64).length) {
|
|
769
|
+
zip64header = createZip64Info(optionsToZip64);
|
|
770
|
+
optionsToUse.extraLength = zip64header.byteLength;
|
|
771
|
+
}
|
|
772
|
+
const header = new DataView(new ArrayBuffer(Number(FILE_NAME_OFFSET)));
|
|
773
|
+
for (const field of ZIP_HEADER_FIELDS2) {
|
|
774
|
+
setFieldToNumber(
|
|
775
|
+
header,
|
|
776
|
+
field.size,
|
|
777
|
+
field.offset,
|
|
778
|
+
optionsToUse[field.name ?? ""] ?? field.default ?? 0
|
|
779
|
+
);
|
|
780
|
+
}
|
|
781
|
+
const encodedName = new TextEncoder().encode(optionsToUse.fileName);
|
|
782
|
+
const resHeader = (0, import_loader_utils4.concatenateArrayBuffers)(header.buffer, encodedName, zip64header);
|
|
783
|
+
return resHeader;
|
|
784
|
+
}
|
|
785
|
+
var ZIP_HEADER_FIELDS2 = [
|
|
786
|
+
// Local file header signature = 0x04034b50
|
|
787
|
+
{
|
|
788
|
+
offset: 0,
|
|
789
|
+
size: 4,
|
|
790
|
+
default: new DataView(signature3.buffer).getUint32(0, true)
|
|
791
|
+
},
|
|
792
|
+
// Version needed to extract (minimum)
|
|
793
|
+
{
|
|
794
|
+
offset: 4,
|
|
795
|
+
size: 2,
|
|
796
|
+
default: 45
|
|
797
|
+
},
|
|
798
|
+
// General purpose bit flag
|
|
799
|
+
{
|
|
800
|
+
offset: 6,
|
|
801
|
+
size: 2,
|
|
802
|
+
default: 0
|
|
803
|
+
},
|
|
804
|
+
// Compression method
|
|
805
|
+
{
|
|
806
|
+
offset: 8,
|
|
807
|
+
size: 2,
|
|
808
|
+
default: 0
|
|
809
|
+
},
|
|
810
|
+
// File last modification time
|
|
811
|
+
{
|
|
812
|
+
offset: 10,
|
|
813
|
+
size: 2,
|
|
814
|
+
default: 0
|
|
815
|
+
},
|
|
816
|
+
// File last modification date
|
|
817
|
+
{
|
|
818
|
+
offset: 12,
|
|
819
|
+
size: 2,
|
|
820
|
+
default: 0
|
|
821
|
+
},
|
|
822
|
+
// CRC-32 of uncompressed data
|
|
823
|
+
{
|
|
824
|
+
offset: 14,
|
|
825
|
+
size: 4,
|
|
826
|
+
name: "crc32"
|
|
827
|
+
},
|
|
828
|
+
// Compressed size (or 0xffffffff for ZIP64)
|
|
829
|
+
{
|
|
830
|
+
offset: 18,
|
|
831
|
+
size: 4,
|
|
832
|
+
name: "length"
|
|
833
|
+
},
|
|
834
|
+
// Uncompressed size (or 0xffffffff for ZIP64)
|
|
835
|
+
{
|
|
836
|
+
offset: 22,
|
|
837
|
+
size: 4,
|
|
838
|
+
name: "length"
|
|
839
|
+
},
|
|
840
|
+
// File name length (n)
|
|
841
|
+
{
|
|
842
|
+
offset: 26,
|
|
843
|
+
size: 2,
|
|
844
|
+
name: "fnlength"
|
|
845
|
+
},
|
|
846
|
+
// Extra field length (m)
|
|
847
|
+
{
|
|
848
|
+
offset: 28,
|
|
849
|
+
size: 2,
|
|
850
|
+
default: 0,
|
|
851
|
+
name: "extraLength"
|
|
852
|
+
}
|
|
853
|
+
];
|
|
737
854
|
|
|
738
855
|
// src/hash-file-utility.ts
|
|
739
856
|
var import_crypto = require("@loaders.gl/crypto");
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export { ZipLoader } from './zip-loader';
|
|
|
2
2
|
export { ZipWriter } from './zip-writer';
|
|
3
3
|
export { TarBuilder } from './tar-builder';
|
|
4
4
|
export { parseZipCDFileHeader, makeZipCDHeaderIterator, signature as CD_HEADER_SIGNATURE, generateCDHeader } from './parse-zip/cd-file-header';
|
|
5
|
-
export { parseZipLocalFileHeader, signature as localHeaderSignature } from './parse-zip/local-file-header';
|
|
5
|
+
export { parseZipLocalFileHeader, signature as localHeaderSignature, generateLocalHeader } from './parse-zip/local-file-header';
|
|
6
6
|
export { parseEoCDRecord } from './parse-zip/end-of-central-directory';
|
|
7
7
|
export { searchFromTheEnd } from './parse-zip/search-from-the-end';
|
|
8
8
|
export { parseHashTable, makeHashTableFromZipHeaders } from './hash-file-utility';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AACvC,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AACvC,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAEzC,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,SAAS,IAAI,mBAAmB,EAChC,gBAAgB,EACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,uBAAuB,EACvB,SAAS,IAAI,oBAAoB,EACjC,mBAAmB,EACpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAC,eAAe,EAAC,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AAGjE,OAAO,EAAC,cAAc,EAAE,2BAA2B,EAAC,MAAM,qBAAqB,CAAC;AAEhF,OAAO,EAAC,aAAa,EAAC,MAAM,8BAA8B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@ export { ZipLoader } from "./zip-loader.js";
|
|
|
2
2
|
export { ZipWriter } from "./zip-writer.js";
|
|
3
3
|
export { TarBuilder } from "./tar-builder.js";
|
|
4
4
|
export { parseZipCDFileHeader, makeZipCDHeaderIterator, signature as CD_HEADER_SIGNATURE, generateCDHeader } from "./parse-zip/cd-file-header.js";
|
|
5
|
-
export { parseZipLocalFileHeader, signature as localHeaderSignature } from "./parse-zip/local-file-header.js";
|
|
5
|
+
export { parseZipLocalFileHeader, signature as localHeaderSignature, generateLocalHeader } from "./parse-zip/local-file-header.js";
|
|
6
6
|
export { parseEoCDRecord } from "./parse-zip/end-of-central-directory.js";
|
|
7
7
|
export { searchFromTheEnd } from "./parse-zip/search-from-the-end.js";
|
|
8
8
|
export { parseHashTable, makeHashTableFromZipHeaders } from "./hash-file-utility.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["ZipLoader","ZipWriter","TarBuilder","parseZipCDFileHeader","makeZipCDHeaderIterator","signature","CD_HEADER_SIGNATURE","generateCDHeader","parseZipLocalFileHeader","localHeaderSignature","parseEoCDRecord","searchFromTheEnd","parseHashTable","makeHashTableFromZipHeaders","ZipFileSystem"],"sources":["../src/index.ts"],"sourcesContent":["// loaders.gl
|
|
1
|
+
{"version":3,"file":"index.js","names":["ZipLoader","ZipWriter","TarBuilder","parseZipCDFileHeader","makeZipCDHeaderIterator","signature","CD_HEADER_SIGNATURE","generateCDHeader","parseZipLocalFileHeader","localHeaderSignature","generateLocalHeader","parseEoCDRecord","searchFromTheEnd","parseHashTable","makeHashTableFromZipHeaders","ZipFileSystem"],"sources":["../src/index.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nexport {ZipLoader} from './zip-loader';\nexport {ZipWriter} from './zip-writer';\nexport {TarBuilder} from './tar-builder';\n\nexport {\n parseZipCDFileHeader,\n makeZipCDHeaderIterator,\n signature as CD_HEADER_SIGNATURE,\n generateCDHeader\n} from './parse-zip/cd-file-header';\nexport {\n parseZipLocalFileHeader,\n signature as localHeaderSignature,\n generateLocalHeader\n} from './parse-zip/local-file-header';\nexport {parseEoCDRecord} from './parse-zip/end-of-central-directory';\nexport {searchFromTheEnd} from './parse-zip/search-from-the-end';\n\n// export type {HashElement} from './hash-file-utility';\nexport {parseHashTable, makeHashTableFromZipHeaders} from './hash-file-utility';\n\nexport {ZipFileSystem} from './filesystems/zip-filesystem';\n"],"mappings":"SAIQA,SAAS;AAAA,SACTC,SAAS;AAAA,SACTC,UAAU;AAAA,SAGhBC,oBAAoB,EACpBC,uBAAuB,EACvBC,SAAS,IAAIC,mBAAmB,EAChCC,gBAAgB;AAAA,SAGhBC,uBAAuB,EACvBH,SAAS,IAAII,oBAAoB,EACjCC,mBAAmB;AAAA,SAEbC,eAAe;AAAA,SACfC,gBAAgB;AAAA,SAGhBC,cAAc,EAAEC,2BAA2B;AAAA,SAE3CC,aAAa"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../src/lib/tar/header.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../src/lib/tar/header.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAe,OAAO,EAAC,MAAM,SAAS,CAAC;AAyCnD;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,UAAU,CAsB/E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header.js","names":["utils","structure","fileName","fileMode","uid","gid","fileSize","mtime","checksum","type","linkName","ustar","owner","group","majorNumber","minorNumber","filenamePrefix","padding","format","data","cb","buffer","clean","offset","Object","entries","forEach","_ref","field","length","str","i","fieldLength","charCodeAt"],"sources":["../../../src/lib/tar/header.ts"],"sourcesContent":["// loaders.gl
|
|
1
|
+
{"version":3,"file":"header.js","names":["utils","structure","fileName","fileMode","uid","gid","fileSize","mtime","checksum","type","linkName","ustar","owner","group","majorNumber","minorNumber","filenamePrefix","padding","format","data","cb","buffer","clean","offset","Object","entries","forEach","_ref","field","length","str","i","fieldLength","charCodeAt"],"sources":["../../../src/lib/tar/header.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// This file is derived from the tar-js code base under MIT license\n// See https://github.com/beatgammit/tar-js/blob/master/LICENSE\n/*\n * tar-js\n * MIT (c) 2011 T. Jameson Little\n */\n/* eslint-disable */\nimport * as utils from './utils';\nimport type {TarStructure, TarData} from './types';\n/*\nstruct posix_header { // byte offset\n\tchar name[100]; // 0\n\tchar mode[8]; // 100\n\tchar uid[8]; // 108\n\tchar gid[8]; // 116\n\tchar size[12]; // 124\n\tchar mtime[12]; // 136\n\tchar chksum[8]; // 148\n\tchar typeflag; // 156\n\tchar linkname[100]; // 157\n\tchar magic[6]; // 257\n\tchar version[2]; // 263\n\tchar uname[32]; // 265\n\tchar gname[32]; // 297\n\tchar devmajor[8]; // 329\n\tchar devminor[8]; // 337\n\tchar prefix[155]; // 345\n // 500\n};\n*/\n\nconst structure: TarStructure = {\n fileName: 100,\n fileMode: 8,\n uid: 8,\n gid: 8,\n fileSize: 12,\n mtime: 12,\n checksum: 8,\n type: 1,\n linkName: 100,\n ustar: 8,\n owner: 32,\n group: 32,\n majorNumber: 8,\n minorNumber: 8,\n filenamePrefix: 155,\n padding: 12\n};\n/**\n * Getting the header\n * @param data\n * @param [cb]\n * @returns {Uint8Array} | Array\n */\nexport function format(data: TarData, cb?: any): [string, number][] | Uint8Array {\n const buffer = utils.clean(512);\n let offset = 0;\n\n Object.entries(structure).forEach(([field, length]) => {\n const str = data[field] || '';\n let i: number;\n let fieldLength: number;\n\n for (i = 0, fieldLength = str.length; i < fieldLength; i += 1) {\n buffer[offset] = str.charCodeAt(i);\n offset += 1;\n }\n\n // space it out with nulls\n offset += length - i;\n });\n\n if (typeof cb === 'function') {\n return cb(buffer, offset);\n }\n return buffer;\n}\n"],"mappings":"OAWO,KAAKA,KAAK;AAwBjB,MAAMC,SAAuB,GAAG;EAC9BC,QAAQ,EAAE,GAAG;EACbC,QAAQ,EAAE,CAAC;EACXC,GAAG,EAAE,CAAC;EACNC,GAAG,EAAE,CAAC;EACNC,QAAQ,EAAE,EAAE;EACZC,KAAK,EAAE,EAAE;EACTC,QAAQ,EAAE,CAAC;EACXC,IAAI,EAAE,CAAC;EACPC,QAAQ,EAAE,GAAG;EACbC,KAAK,EAAE,CAAC;EACRC,KAAK,EAAE,EAAE;EACTC,KAAK,EAAE,EAAE;EACTC,WAAW,EAAE,CAAC;EACdC,WAAW,EAAE,CAAC;EACdC,cAAc,EAAE,GAAG;EACnBC,OAAO,EAAE;AACX,CAAC;AAOD,OAAO,SAASC,MAAMA,CAACC,IAAa,EAAEC,EAAQ,EAAmC;EAC/E,MAAMC,MAAM,GAAGrB,KAAK,CAACsB,KAAK,CAAC,GAAG,CAAC;EAC/B,IAAIC,MAAM,GAAG,CAAC;EAEdC,MAAM,CAACC,OAAO,CAACxB,SAAS,CAAC,CAACyB,OAAO,CAACC,IAAA,IAAqB;IAAA,IAApB,CAACC,KAAK,EAAEC,MAAM,CAAC,GAAAF,IAAA;IAChD,MAAMG,GAAG,GAAGX,IAAI,CAACS,KAAK,CAAC,IAAI,EAAE;IAC7B,IAAIG,CAAS;IACb,IAAIC,WAAmB;IAEvB,KAAKD,CAAC,GAAG,CAAC,EAAEC,WAAW,GAAGF,GAAG,CAACD,MAAM,EAAEE,CAAC,GAAGC,WAAW,EAAED,CAAC,IAAI,CAAC,EAAE;MAC7DV,MAAM,CAACE,MAAM,CAAC,GAAGO,GAAG,CAACG,UAAU,CAACF,CAAC,CAAC;MAClCR,MAAM,IAAI,CAAC;IACb;IAGAA,MAAM,IAAIM,MAAM,GAAGE,CAAC;EACtB,CAAC,CAAC;EAEF,IAAI,OAAOX,EAAE,KAAK,UAAU,EAAE;IAC5B,OAAOA,EAAE,CAACC,MAAM,EAAEE,MAAM,CAAC;EAC3B;EACA,OAAOF,MAAM;AACf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tar.d.ts","sourceRoot":"","sources":["../../../src/lib/tar/tar.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tar.d.ts","sourceRoot":"","sources":["../../../src/lib/tar/tar.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAC,SAAS,EAAE,UAAU,EAAsB,MAAM,SAAS,CAAC;AAQxE,cAAM,GAAG;IACP,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,UAAU,CAAC;IAChB,MAAM,EAAE,SAAS,CAAM;IACvB,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;gBACS,eAAe,EAAE,MAAM,GAAG,SAAS;IAY/C;;;;;OAKG;IAEH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,SAAS;IA+DlF;;;OAGG;IACH,IAAI,IAAI,IAAI;IAkCZ;;OAEG;IACH,KAAK;CAIN;AAED,eAAe,GAAG,CAAC"}
|
package/dist/lib/tar/tar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tar.js","names":["clean","pad","stringToUint8","format","blockSize","headerLength","inputLength","recordSize","Tar","constructor","recordsPerBlock","written","out","blocks","length","save","bind","clear","append","filepath","input","opts","checksum","Uint8Array","prototype","errorInputMatch","exec","toString","errorInput","errorMessage","mode","parseInt","mtime","Math","floor","Number","Date","uid","gid","data","fileName","fileMode","fileSize","type","ustar","owner","group","Object","keys","forEach","key","i","value","charCodeAt","headerArr","ceil","push","header","buffers","chunks","Array","max","pow","chunk","b","arguments","undefined","c","buffer","set","Blob"],"sources":["../../../src/lib/tar/tar.ts"],"sourcesContent":["// loaders.gl
|
|
1
|
+
{"version":3,"file":"tar.js","names":["clean","pad","stringToUint8","format","blockSize","headerLength","inputLength","recordSize","Tar","constructor","recordsPerBlock","written","out","blocks","length","save","bind","clear","append","filepath","input","opts","checksum","Uint8Array","prototype","errorInputMatch","exec","toString","errorInput","errorMessage","mode","parseInt","mtime","Math","floor","Number","Date","uid","gid","data","fileName","fileMode","fileSize","type","ustar","owner","group","Object","keys","forEach","key","i","value","charCodeAt","headerArr","ceil","push","header","buffers","chunks","Array","max","pow","chunk","b","arguments","undefined","c","buffer","set","Blob"],"sources":["../../../src/lib/tar/tar.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// This file is derived from the tar-js code base under MIT license\n// See https://github.com/beatgammit/tar-js/blob/master/LICENSE\n/*\n * tar-js\n * MIT (c) 2011 T. Jameson Little\n */\n\nimport {clean, pad, stringToUint8} from './utils';\nimport {format} from './header';\nimport type {TarBlocks, TarOptions, TarChunks, TarChunk} from './types';\n\nlet blockSize: number;\nlet headerLength: number;\nlet inputLength: number;\n\nconst recordSize = 512;\n\nclass Tar {\n written: number;\n out: Uint8Array;\n blocks: TarBlocks = [];\n length: number;\n\n /**\n * @param [recordsPerBlock]\n */\n constructor(recordsPerBlock: number | undefined) {\n this.written = 0;\n blockSize = (recordsPerBlock || 20) * recordSize;\n this.out = clean(blockSize);\n\n this.blocks = [];\n this.length = 0;\n this.save = this.save.bind(this);\n this.clear = this.clear.bind(this);\n this.append = this.append.bind(this);\n }\n\n /**\n * Append a file to the tar archive\n * @param filepath\n * @param input\n * @param [opts]\n */\n // eslint-disable-next-line complexity\n append(filepath: string, input: string | Uint8Array, opts?: TarOptions | undefined) {\n let checksum: string | any;\n\n if (typeof input === 'string') {\n input = stringToUint8(input);\n } else if (input.constructor && input.constructor !== Uint8Array.prototype.constructor) {\n // @ts-ignore\n const errorInputMatch = /function\\s*([$A-Za-z_][0-9A-Za-z_]*)\\s*\\(/.exec(\n input.constructor.toString()\n );\n const errorInput = errorInputMatch && errorInputMatch[1];\n const errorMessage = `Invalid input type. You gave me: ${errorInput}`;\n throw errorMessage;\n }\n\n opts = opts || {};\n\n const mode = opts.mode || parseInt('777', 8) & 0xfff;\n const mtime = opts.mtime || Math.floor(Number(new Date()) / 1000);\n const uid = opts.uid || 0;\n const gid = opts.gid || 0;\n\n const data: Record<string, string> = {\n fileName: filepath,\n fileMode: pad(mode, 7),\n uid: pad(uid, 7),\n gid: pad(gid, 7),\n fileSize: pad(input.length, 11),\n mtime: pad(mtime, 11),\n checksum: ' ',\n // 0 = just a file\n type: '0',\n ustar: 'ustar ',\n owner: opts.owner || '',\n group: opts.group || ''\n };\n\n // calculate the checksum\n checksum = 0;\n Object.keys(data).forEach((key) => {\n let i: number;\n const value = data[key];\n let length: number;\n\n for (i = 0, length = value.length; i < length; i += 1) {\n checksum += value.charCodeAt(i);\n }\n });\n\n data.checksum = `${pad(checksum, 6)}\\u0000 `;\n\n const headerArr = format(data);\n\n headerLength = Math.ceil(headerArr.length / recordSize) * recordSize;\n inputLength = Math.ceil(input.length / recordSize) * recordSize;\n\n this.blocks.push({\n header: headerArr,\n input,\n headerLength,\n inputLength\n });\n }\n /**\n * Compiling data to a Blob object\n * @returns {Blob}\n */\n save(): Blob {\n const buffers: any = [];\n const chunks = new Array<TarChunks>();\n let length = 0;\n const max = Math.pow(2, 20);\n\n let chunk = new Array<TarChunk>();\n this.blocks.forEach((b: any = []) => {\n if (length + b.headerLength + b.inputLength > max) {\n chunks.push({blocks: chunk, length});\n chunk = [];\n length = 0;\n }\n chunk.push(b);\n length += b.headerLength + b.inputLength;\n });\n chunks.push({blocks: chunk, length});\n\n chunks.forEach((c: any = []) => {\n const buffer = new Uint8Array(c.length);\n let written = 0;\n c.blocks.forEach((b: any = []) => {\n buffer.set(b.header, written);\n written += b.headerLength;\n buffer.set(b.input, written);\n written += b.inputLength;\n });\n buffers.push(buffer);\n });\n\n buffers.push(new Uint8Array(2 * recordSize));\n\n return new Blob(buffers, {type: 'octet/stream'});\n }\n /**\n * Clear the data by its blocksize\n */\n clear() {\n this.written = 0;\n this.out = clean(blockSize);\n }\n}\n\nexport default Tar;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/tar/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/tar/types.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB,CAAC;AACF;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;CAC/B,CAAC;AACF;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC;IACrB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AACF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,KAAK,CAAC,EAAE,GAAG,CAAC;CACb,CAAC;AACF;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB,CAAC;AACF;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,GAAG,CAAC;CACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/lib/tar/types.ts"],"sourcesContent":["// loaders.gl
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/lib/tar/types.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/**\n * Structure of data\n */\nexport type TarStructure = {\n [index: string]: number;\n};\n/**\n * Image of input data\n */\nexport type TarData = {\n [index: string]: string | any;\n};\n/**\n * Describes inner content of the blocks in the Tar's constructor\n */\nexport type TarBlocks = {\n [index: string]: any;\n header?: Uint8Array;\n input?: string | Uint8Array;\n headerLength?: number;\n inputLength?: number;\n};\n/**\n * Describes additional options for Tar class\n */\nexport type TarOptions = {\n mode?: number;\n mtime?: number;\n uid?: number;\n gid?: number;\n owner?: any;\n group?: any;\n};\n/**\n * Array of numbers for TarChunks\n */\nexport type TarChunk = {\n [index: number]: any;\n};\n/**\n * Sections of binary data inside the Tar class\n */\nexport type TarChunks = {\n [index: number]: TarChunk;\n length?: number;\n blocks?: any;\n};\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/tar/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/tar/utils.ts"],"names":[],"mappings":"AAUA;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAOhD;AACD;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAGrE;AACD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,CAa1F"}
|