@loaders.gl/zip 4.2.0-alpha.2 → 4.2.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 CHANGED
@@ -6975,7 +6975,7 @@ var __exports__ = (() => {
6975
6975
 
6976
6976
  // src/zip-loader.ts
6977
6977
  var import_jszip = __toESM(require_jszip_min(), 1);
6978
- var VERSION = true ? "4.2.0-alpha.2" : "latest";
6978
+ var VERSION = true ? "4.2.0-alpha.3" : "latest";
6979
6979
  var ZipLoader = {
6980
6980
  id: "zip",
6981
6981
  module: "zip",
@@ -7020,7 +7020,7 @@ var __exports__ = (() => {
7020
7020
 
7021
7021
  // src/zip-writer.ts
7022
7022
  var import_jszip2 = __toESM(require_jszip_min(), 1);
7023
- var VERSION2 = true ? "4.2.0-alpha.2" : "latest";
7023
+ var VERSION2 = true ? "4.2.0-alpha.3" : "latest";
7024
7024
  var ZipWriter = {
7025
7025
  name: "Zip Archive",
7026
7026
  id: "zip",
@@ -13,7 +13,7 @@ export declare const ZIP_COMPRESSION_HANDLERS: {
13
13
  */
14
14
  export declare class ZipFileSystem implements FileSystem {
15
15
  /** FileProvider instance promise */
16
- protected fileProvider: FileProvider | null;
16
+ fileProvider: FileProvider | null;
17
17
  fileName?: string;
18
18
  archive: IndexedArchive | null;
19
19
  /**
@@ -1 +1 @@
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;AAGrF,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAEhD,MAAM,MAAM,kBAAkB,GAAG,CAAC,cAAc,EAAE,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AACvF,kDAAkD;AAClD,eAAO,MAAM,wBAAwB,EAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAA;CASxE,CAAC;AAEF;;;GAGG;AACH,qBAAa,aAAc,YAAW,UAAU;IAC9C,oCAAoC;IACpC,SAAS,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAQ;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,cAAc,GAAG,IAAI,CAAQ;IAE7C;;;OAGG;gBACS,IAAI,EAAE,YAAY,GAAG,cAAc,GAAG,MAAM;IAkBxD,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;IAsChD;;;;OAIG;YACW,eAAe;CAiB9B"}
1
+ {"version":3,"file":"zip-filesystem.d.ts","sourceRoot":"","sources":["../../src/filesystems/zip-filesystem.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,UAAU,EAAY,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAC,YAAY,EAAiB,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAAC,eAAe,EAA0B,MAAM,6BAA6B,CAAC;AAGrF,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAEhD,MAAM,MAAM,kBAAkB,GAAG,CAAC,cAAc,EAAE,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AACvF,kDAAkD;AAClD,eAAO,MAAM,wBAAwB,EAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAA;CASxE,CAAC;AAEF;;;GAGG;AACH,qBAAa,aAAc,YAAW,UAAU;IAC9C,oCAAoC;IAC7B,YAAY,EAAE,YAAY,GAAG,IAAI,CAAQ;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,cAAc,GAAG,IAAI,CAAQ;IAE7C;;;OAGG;gBACS,IAAI,EAAE,YAAY,GAAG,cAAc,GAAG,MAAM;IAkBxD,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;IAsChD;;;;OAIG;YACW,eAAe;CAiB9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"zip-filesystem.js","names":["isBrowser","isFileProvider","FileHandleFile","makeZipCDHeaderIterator","parseZipLocalFileHeader","DeflateCompression","IndexedArchive","ZIP_COMPRESSION_HANDLERS","compressedFile","compression","raw","decompressedData","decompress","ZipFileSystem","constructor","file","fileProvider","fileName","archive","Error","destroy","readdir","fileNames","zipCDIterator","cdHeader","push","stat","filename","cdFileHeader","getCDFileHeader","size","Number","uncompressedSize","fetch","uncompressedFile","getFile","localFileHeader","localHeaderOffset","compressionHandler","compressionMethod","toString","slice","fileDataOffset","compressedSize","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';\nimport {IndexedArchive} from './IndexedArchive';\n\nexport type CompressionHandler = (compressedFile: ArrayBuffer) => Promise<ArrayBuffer>;\n/** Handling different compression types in zip */\nexport const ZIP_COMPRESSION_HANDLERS: {[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 public archive: IndexedArchive | null = null;\n\n /**\n * Constructor\n * @param file - instance of FileProvider or file path string\n */\n constructor(file: FileProvider | IndexedArchive | 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 (file instanceof IndexedArchive) {\n this.fileProvider = file.fileProvider;\n this.archive = file;\n this.fileName = file.fileName;\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 let uncompressedFile: ArrayBuffer;\n if (this.archive) {\n uncompressedFile = await this.archive.getFile(filename, 'http');\n } else {\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 =\n ZIP_COMPRESSION_HANDLERS[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 uncompressedFile = await compressionHandler(compressedFile);\n }\n\n const response = new Response(uncompressedFile);\n Object.defineProperty(response, 'url', {\n value: filename ? `${this.fileName || ''}/${filename}` : this.fileName || ''\n });\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
+ {"version":3,"file":"zip-filesystem.js","names":["isBrowser","isFileProvider","FileHandleFile","makeZipCDHeaderIterator","parseZipLocalFileHeader","DeflateCompression","IndexedArchive","ZIP_COMPRESSION_HANDLERS","compressedFile","compression","raw","decompressedData","decompress","ZipFileSystem","constructor","file","fileProvider","fileName","archive","Error","destroy","readdir","fileNames","zipCDIterator","cdHeader","push","stat","filename","cdFileHeader","getCDFileHeader","size","Number","uncompressedSize","fetch","uncompressedFile","getFile","localFileHeader","localHeaderOffset","compressionHandler","compressionMethod","toString","slice","fileDataOffset","compressedSize","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';\nimport {IndexedArchive} from './IndexedArchive';\n\nexport type CompressionHandler = (compressedFile: ArrayBuffer) => Promise<ArrayBuffer>;\n/** Handling different compression types in zip */\nexport const ZIP_COMPRESSION_HANDLERS: {[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 public fileProvider: FileProvider | null = null;\n public fileName?: string;\n public archive: IndexedArchive | null = null;\n\n /**\n * Constructor\n * @param file - instance of FileProvider or file path string\n */\n constructor(file: FileProvider | IndexedArchive | 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 (file instanceof IndexedArchive) {\n this.fileProvider = file.fileProvider;\n this.archive = file;\n this.fileName = file.fileName;\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 let uncompressedFile: ArrayBuffer;\n if (this.archive) {\n uncompressedFile = await this.archive.getFile(filename, 'http');\n } else {\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 =\n ZIP_COMPRESSION_HANDLERS[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 uncompressedFile = await compressionHandler(compressedFile);\n }\n\n const response = new Response(uncompressedFile);\n Object.defineProperty(response, 'url', {\n value: filename ? `${this.fileName || ''}/${filename}` : this.fileName || ''\n });\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,5 +1,5 @@
1
1
  import JSZip from 'jszip';
2
- const VERSION = typeof "4.2.0-alpha.2" !== 'undefined' ? "4.2.0-alpha.2" : 'latest';
2
+ const VERSION = typeof "4.2.0-alpha.3" !== 'undefined' ? "4.2.0-alpha.3" : 'latest';
3
3
  export const ZipLoader = {
4
4
  id: 'zip',
5
5
  module: 'zip',
@@ -1,5 +1,5 @@
1
1
  import JSZip from 'jszip';
2
- const VERSION = typeof "4.2.0-alpha.2" !== 'undefined' ? "4.2.0-alpha.2" : 'latest';
2
+ const VERSION = typeof "4.2.0-alpha.3" !== 'undefined' ? "4.2.0-alpha.3" : 'latest';
3
3
  export const ZipWriter = {
4
4
  name: 'Zip Archive',
5
5
  id: 'zip',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/zip",
3
- "version": "4.2.0-alpha.2",
3
+ "version": "4.2.0-alpha.3",
4
4
  "description": "Zip Archive Loader",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -38,11 +38,11 @@
38
38
  "build-bundle": "ocular-bundle ./src/index.ts"
39
39
  },
40
40
  "dependencies": {
41
- "@loaders.gl/compression": "4.2.0-alpha.2",
42
- "@loaders.gl/crypto": "4.2.0-alpha.2",
43
- "@loaders.gl/loader-utils": "4.2.0-alpha.2",
41
+ "@loaders.gl/compression": "4.2.0-alpha.3",
42
+ "@loaders.gl/crypto": "4.2.0-alpha.3",
43
+ "@loaders.gl/loader-utils": "4.2.0-alpha.3",
44
44
  "jszip": "^3.1.5",
45
45
  "md5": "^2.3.0"
46
46
  },
47
- "gitHead": "d66a6a4626ea84c5f2cad5fa5cf7ebb6943c57c8"
47
+ "gitHead": "cf18e05801314a62c9fc4c2a85e8888a8a852083"
48
48
  }
@@ -29,7 +29,7 @@ export const ZIP_COMPRESSION_HANDLERS: {[key: number]: CompressionHandler} = {
29
29
  */
30
30
  export class ZipFileSystem implements FileSystem {
31
31
  /** FileProvider instance promise */
32
- protected fileProvider: FileProvider | null = null;
32
+ public fileProvider: FileProvider | null = null;
33
33
  public fileName?: string;
34
34
  public archive: IndexedArchive | null = null;
35
35