@loaders.gl/zip 4.0.0-alpha.21 → 4.0.0-alpha.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/dist.min.js +4650 -176
  2. package/dist/es5/filesystems/zip-filesystem.js +134 -102
  3. package/dist/es5/filesystems/zip-filesystem.js.map +1 -1
  4. package/dist/es5/hash-file-utility.js.map +1 -1
  5. package/dist/es5/index.js +6 -14
  6. package/dist/es5/index.js.map +1 -1
  7. package/dist/es5/parse-zip/cd-file-header.js.map +1 -1
  8. package/dist/es5/parse-zip/end-of-central-directory.js.map +1 -1
  9. package/dist/es5/parse-zip/local-file-header.js.map +1 -1
  10. package/dist/es5/parse-zip/search-from-the-end.js.map +1 -1
  11. package/dist/es5/tar-builder.js +8 -8
  12. package/dist/es5/tar-builder.js.map +1 -1
  13. package/dist/es5/zip-loader.js +2 -4
  14. package/dist/es5/zip-loader.js.map +1 -1
  15. package/dist/esm/filesystems/zip-filesystem.js +18 -5
  16. package/dist/esm/filesystems/zip-filesystem.js.map +1 -1
  17. package/dist/esm/hash-file-utility.js.map +1 -1
  18. package/dist/esm/index.js +2 -3
  19. package/dist/esm/index.js.map +1 -1
  20. package/dist/esm/parse-zip/cd-file-header.js.map +1 -1
  21. package/dist/esm/parse-zip/end-of-central-directory.js.map +1 -1
  22. package/dist/esm/parse-zip/local-file-header.js.map +1 -1
  23. package/dist/esm/parse-zip/search-from-the-end.js.map +1 -1
  24. package/dist/esm/tar-builder.js +2 -2
  25. package/dist/esm/tar-builder.js.map +1 -1
  26. package/dist/esm/zip-loader.js +1 -2
  27. package/dist/esm/zip-loader.js.map +1 -1
  28. package/dist/filesystems/zip-filesystem.d.ts +4 -3
  29. package/dist/filesystems/zip-filesystem.d.ts.map +1 -1
  30. package/dist/filesystems/zip-filesystem.js +17 -8
  31. package/dist/hash-file-utility.d.ts +1 -1
  32. package/dist/hash-file-utility.d.ts.map +1 -1
  33. package/dist/index.d.ts +2 -4
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +5 -9
  36. package/dist/parse-zip/cd-file-header.d.ts +1 -1
  37. package/dist/parse-zip/cd-file-header.d.ts.map +1 -1
  38. package/dist/parse-zip/end-of-central-directory.d.ts +1 -1
  39. package/dist/parse-zip/end-of-central-directory.d.ts.map +1 -1
  40. package/dist/parse-zip/local-file-header.d.ts +1 -1
  41. package/dist/parse-zip/local-file-header.d.ts.map +1 -1
  42. package/dist/parse-zip/search-from-the-end.d.ts +1 -1
  43. package/dist/parse-zip/search-from-the-end.d.ts.map +1 -1
  44. package/dist/tar-builder.d.ts +2 -2
  45. package/dist/tar-builder.d.ts.map +1 -1
  46. package/dist/tar-builder.js +4 -3
  47. package/dist/zip-loader.d.ts +0 -1
  48. package/dist/zip-loader.d.ts.map +1 -1
  49. package/dist/zip-loader.js +1 -2
  50. package/package.json +4 -9
  51. package/src/filesystems/zip-filesystem.ts +16 -6
  52. package/src/hash-file-utility.ts +1 -1
  53. package/src/index.ts +5 -5
  54. package/src/parse-zip/cd-file-header.ts +1 -1
  55. package/src/parse-zip/end-of-central-directory.ts +1 -1
  56. package/src/parse-zip/local-file-header.ts +1 -1
  57. package/src/parse-zip/search-from-the-end.ts +1 -1
  58. package/src/tar-builder.ts +2 -2
  59. package/src/zip-loader.ts +0 -2
  60. package/dist/es5/file-provider/data-view-file.js +0 -146
  61. package/dist/es5/file-provider/data-view-file.js.map +0 -1
  62. package/dist/es5/file-provider/file-handle-file.js +0 -234
  63. package/dist/es5/file-provider/file-handle-file.js.map +0 -1
  64. package/dist/es5/file-provider/file-handle.js +0 -101
  65. package/dist/es5/file-provider/file-handle.js.map +0 -1
  66. package/dist/es5/file-provider/file-provider.js +0 -11
  67. package/dist/es5/file-provider/file-provider.js.map +0 -1
  68. package/dist/esm/file-provider/data-view-file.js +0 -33
  69. package/dist/esm/file-provider/data-view-file.js.map +0 -1
  70. package/dist/esm/file-provider/file-handle-file.js +0 -57
  71. package/dist/esm/file-provider/file-handle-file.js.map +0 -1
  72. package/dist/esm/file-provider/file-handle.js +0 -37
  73. package/dist/esm/file-provider/file-handle.js.map +0 -1
  74. package/dist/esm/file-provider/file-provider.js +0 -4
  75. package/dist/esm/file-provider/file-provider.js.map +0 -1
  76. package/dist/file-provider/data-view-file.d.ts +0 -37
  77. package/dist/file-provider/data-view-file.d.ts.map +0 -1
  78. package/dist/file-provider/data-view-file.js +0 -63
  79. package/dist/file-provider/file-handle-file.d.ts +0 -53
  80. package/dist/file-provider/file-handle-file.d.ts.map +0 -1
  81. package/dist/file-provider/file-handle-file.js +0 -90
  82. package/dist/file-provider/file-handle.d.ts +0 -40
  83. package/dist/file-provider/file-handle.d.ts.map +0 -1
  84. package/dist/file-provider/file-handle.js +0 -57
  85. package/dist/file-provider/file-provider.d.ts +0 -45
  86. package/dist/file-provider/file-provider.d.ts.map +0 -1
  87. package/dist/file-provider/file-provider.js +0 -13
  88. package/src/file-provider/data-view-file.ts +0 -72
  89. package/src/file-provider/file-handle-file.ts +0 -114
  90. package/src/file-provider/file-handle.ts +0 -73
  91. package/src/file-provider/file-provider.ts +0 -56
@@ -1,5 +1,5 @@
1
1
  import JSZip from 'jszip';
2
- const VERSION = typeof "4.0.0-alpha.21" !== 'undefined' ? "4.0.0-alpha.21" : 'latest';
2
+ const VERSION = typeof "4.0.0-alpha.23" !== 'undefined' ? "4.0.0-alpha.23" : 'latest';
3
3
  export const ZipLoader = {
4
4
  id: 'zip',
5
5
  module: 'zip',
@@ -43,5 +43,4 @@ async function loadZipEntry(jsZip, subFilename) {
43
43
  return error;
44
44
  }
45
45
  }
46
- export const _typecheckZipLoader = ZipLoader;
47
46
  //# sourceMappingURL=zip-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zip-loader.js","names":["JSZip","VERSION","ZipLoader","id","module","name","version","extensions","mimeTypes","category","tests","options","parse","parseZipAsync","data","arguments","length","undefined","promises","fileMap","jsZip","zip","loadAsync","forEach","relativePath","zipEntry","subFilename","promise","loadZipEntry","then","arrayBufferOrError","push","Promise","all","error","log","concat","arrayBuffer","file","async","dataType","_typecheckZipLoader"],"sources":["../../src/zip-loader.ts"],"sourcesContent":["// Zip loader\nimport type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport JSZip from 'jszip';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\ntype FileMap = Record<string, ArrayBuffer>;\n\nexport const ZipLoader: LoaderWithParser<FileMap, never, LoaderOptions> = {\n id: 'zip',\n module: 'zip',\n name: 'Zip Archive',\n version: VERSION,\n extensions: ['zip'],\n mimeTypes: ['application/zip'],\n category: 'archive',\n tests: ['PK'],\n options: {},\n parse: parseZipAsync\n};\n\n// TODO - Could return a map of promises, perhaps as an option...\nasync function parseZipAsync(data: any, options = {}): Promise<FileMap> {\n const promises: Promise<any>[] = [];\n const fileMap: Record<string, ArrayBuffer> = {};\n\n try {\n const jsZip = new JSZip();\n\n const zip = await jsZip.loadAsync(data, options);\n\n // start to load each file in this zip\n zip.forEach((relativePath, zipEntry) => {\n const subFilename = zipEntry.name;\n\n const promise = loadZipEntry(jsZip, subFilename, options).then((arrayBufferOrError) => {\n fileMap[relativePath] = arrayBufferOrError;\n });\n\n // Ensure Promise.all doesn't ignore rejected promises.\n promises.push(promise);\n });\n\n await Promise.all(promises);\n return fileMap;\n } catch (error) {\n // @ts-ignore\n options.log.error(`Unable to read zip archive: ${error}`);\n throw error;\n }\n}\n\nasync function loadZipEntry(jsZip: any, subFilename: string, options: any = {}) {\n // jszip supports both arraybuffer and text, the main loaders.gl types\n // https://stuk.github.io/jszip/documentation/api_zipobject/async.html\n try {\n const arrayBuffer = await jsZip.file(subFilename).async(options.dataType || 'arraybuffer');\n return arrayBuffer;\n } catch (error) {\n options.log.error(`Unable to read ${subFilename} from zip archive: ${error}`);\n // Store error in place of data in map\n return error;\n }\n}\n\nexport const _typecheckZipLoader: LoaderWithParser = ZipLoader;\n"],"mappings":"AAEA,OAAOA,KAAK,MAAM,OAAO;AAIzB,MAAMC,OAAO,GAAG,uBAAkB,KAAK,WAAW,sBAAiB,QAAQ;AAI3E,OAAO,MAAMC,SAA0D,GAAG;EACxEC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,KAAK;EACbC,IAAI,EAAE,aAAa;EACnBC,OAAO,EAAEL,OAAO;EAChBM,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,iBAAiB,CAAC;EAC9BC,QAAQ,EAAE,SAAS;EACnBC,KAAK,EAAE,CAAC,IAAI,CAAC;EACbC,OAAO,EAAE,CAAC,CAAC;EACXC,KAAK,EAAEC;AACT,CAAC;AAGD,eAAeA,aAAaA,CAACC,IAAS,EAAkC;EAAA,IAAhCH,OAAO,GAAAI,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAClD,MAAMG,QAAwB,GAAG,EAAE;EACnC,MAAMC,OAAoC,GAAG,CAAC,CAAC;EAE/C,IAAI;IACF,MAAMC,KAAK,GAAG,IAAIpB,KAAK,CAAC,CAAC;IAEzB,MAAMqB,GAAG,GAAG,MAAMD,KAAK,CAACE,SAAS,CAACR,IAAI,EAAEH,OAAO,CAAC;IAGhDU,GAAG,CAACE,OAAO,CAAC,CAACC,YAAY,EAAEC,QAAQ,KAAK;MACtC,MAAMC,WAAW,GAAGD,QAAQ,CAACpB,IAAI;MAEjC,MAAMsB,OAAO,GAAGC,YAAY,CAACR,KAAK,EAAEM,WAAW,EAAEf,OAAO,CAAC,CAACkB,IAAI,CAAEC,kBAAkB,IAAK;QACrFX,OAAO,CAACK,YAAY,CAAC,GAAGM,kBAAkB;MAC5C,CAAC,CAAC;MAGFZ,QAAQ,CAACa,IAAI,CAACJ,OAAO,CAAC;IACxB,CAAC,CAAC;IAEF,MAAMK,OAAO,CAACC,GAAG,CAACf,QAAQ,CAAC;IAC3B,OAAOC,OAAO;EAChB,CAAC,CAAC,OAAOe,KAAK,EAAE;IAEdvB,OAAO,CAACwB,GAAG,CAACD,KAAK,gCAAAE,MAAA,CAAgCF,KAAK,CAAE,CAAC;IACzD,MAAMA,KAAK;EACb;AACF;AAEA,eAAeN,YAAYA,CAACR,KAAU,EAAEM,WAAmB,EAAqB;EAAA,IAAnBf,OAAY,GAAAI,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAG5E,IAAI;IACF,MAAMsB,WAAW,GAAG,MAAMjB,KAAK,CAACkB,IAAI,CAACZ,WAAW,CAAC,CAACa,KAAK,CAAC5B,OAAO,CAAC6B,QAAQ,IAAI,aAAa,CAAC;IAC1F,OAAOH,WAAW;EACpB,CAAC,CAAC,OAAOH,KAAK,EAAE;IACdvB,OAAO,CAACwB,GAAG,CAACD,KAAK,mBAAAE,MAAA,CAAmBV,WAAW,yBAAAU,MAAA,CAAsBF,KAAK,CAAE,CAAC;IAE7E,OAAOA,KAAK;EACd;AACF;AAEA,OAAO,MAAMO,mBAAqC,GAAGvC,SAAS"}
1
+ {"version":3,"file":"zip-loader.js","names":["JSZip","VERSION","ZipLoader","id","module","name","version","extensions","mimeTypes","category","tests","options","parse","parseZipAsync","data","arguments","length","undefined","promises","fileMap","jsZip","zip","loadAsync","forEach","relativePath","zipEntry","subFilename","promise","loadZipEntry","then","arrayBufferOrError","push","Promise","all","error","log","concat","arrayBuffer","file","async","dataType"],"sources":["../../src/zip-loader.ts"],"sourcesContent":["// Zip loader\nimport type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport JSZip from 'jszip';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\ntype FileMap = Record<string, ArrayBuffer>;\n\nexport const ZipLoader: LoaderWithParser<FileMap, never, LoaderOptions> = {\n id: 'zip',\n module: 'zip',\n name: 'Zip Archive',\n version: VERSION,\n extensions: ['zip'],\n mimeTypes: ['application/zip'],\n category: 'archive',\n tests: ['PK'],\n options: {},\n parse: parseZipAsync\n};\n\n// TODO - Could return a map of promises, perhaps as an option...\nasync function parseZipAsync(data: any, options = {}): Promise<FileMap> {\n const promises: Promise<any>[] = [];\n const fileMap: Record<string, ArrayBuffer> = {};\n\n try {\n const jsZip = new JSZip();\n\n const zip = await jsZip.loadAsync(data, options);\n\n // start to load each file in this zip\n zip.forEach((relativePath, zipEntry) => {\n const subFilename = zipEntry.name;\n\n const promise = loadZipEntry(jsZip, subFilename, options).then((arrayBufferOrError) => {\n fileMap[relativePath] = arrayBufferOrError;\n });\n\n // Ensure Promise.all doesn't ignore rejected promises.\n promises.push(promise);\n });\n\n await Promise.all(promises);\n return fileMap;\n } catch (error) {\n // @ts-ignore\n options.log.error(`Unable to read zip archive: ${error}`);\n throw error;\n }\n}\n\nasync function loadZipEntry(jsZip: any, subFilename: string, options: any = {}) {\n // jszip supports both arraybuffer and text, the main loaders.gl types\n // https://stuk.github.io/jszip/documentation/api_zipobject/async.html\n try {\n const arrayBuffer = await jsZip.file(subFilename).async(options.dataType || 'arraybuffer');\n return arrayBuffer;\n } catch (error) {\n options.log.error(`Unable to read ${subFilename} from zip archive: ${error}`);\n // Store error in place of data in map\n return error;\n }\n}\n"],"mappings":"AAEA,OAAOA,KAAK,MAAM,OAAO;AAIzB,MAAMC,OAAO,GAAG,uBAAkB,KAAK,WAAW,sBAAiB,QAAQ;AAI3E,OAAO,MAAMC,SAA0D,GAAG;EACxEC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,KAAK;EACbC,IAAI,EAAE,aAAa;EACnBC,OAAO,EAAEL,OAAO;EAChBM,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,iBAAiB,CAAC;EAC9BC,QAAQ,EAAE,SAAS;EACnBC,KAAK,EAAE,CAAC,IAAI,CAAC;EACbC,OAAO,EAAE,CAAC,CAAC;EACXC,KAAK,EAAEC;AACT,CAAC;AAGD,eAAeA,aAAaA,CAACC,IAAS,EAAkC;EAAA,IAAhCH,OAAO,GAAAI,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAClD,MAAMG,QAAwB,GAAG,EAAE;EACnC,MAAMC,OAAoC,GAAG,CAAC,CAAC;EAE/C,IAAI;IACF,MAAMC,KAAK,GAAG,IAAIpB,KAAK,CAAC,CAAC;IAEzB,MAAMqB,GAAG,GAAG,MAAMD,KAAK,CAACE,SAAS,CAACR,IAAI,EAAEH,OAAO,CAAC;IAGhDU,GAAG,CAACE,OAAO,CAAC,CAACC,YAAY,EAAEC,QAAQ,KAAK;MACtC,MAAMC,WAAW,GAAGD,QAAQ,CAACpB,IAAI;MAEjC,MAAMsB,OAAO,GAAGC,YAAY,CAACR,KAAK,EAAEM,WAAW,EAAEf,OAAO,CAAC,CAACkB,IAAI,CAAEC,kBAAkB,IAAK;QACrFX,OAAO,CAACK,YAAY,CAAC,GAAGM,kBAAkB;MAC5C,CAAC,CAAC;MAGFZ,QAAQ,CAACa,IAAI,CAACJ,OAAO,CAAC;IACxB,CAAC,CAAC;IAEF,MAAMK,OAAO,CAACC,GAAG,CAACf,QAAQ,CAAC;IAC3B,OAAOC,OAAO;EAChB,CAAC,CAAC,OAAOe,KAAK,EAAE;IAEdvB,OAAO,CAACwB,GAAG,CAACD,KAAK,gCAAAE,MAAA,CAAgCF,KAAK,CAAE,CAAC;IACzD,MAAMA,KAAK;EACb;AACF;AAEA,eAAeN,YAAYA,CAACR,KAAU,EAAEM,WAAmB,EAAqB;EAAA,IAAnBf,OAAY,GAAAI,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAG5E,IAAI;IACF,MAAMsB,WAAW,GAAG,MAAMjB,KAAK,CAACkB,IAAI,CAACZ,WAAW,CAAC,CAACa,KAAK,CAAC5B,OAAO,CAAC6B,QAAQ,IAAI,aAAa,CAAC;IAC1F,OAAOH,WAAW;EACpB,CAAC,CAAC,OAAOH,KAAK,EAAE;IACdvB,OAAO,CAACwB,GAAG,CAACD,KAAK,mBAAAE,MAAA,CAAmBV,WAAW,yBAAAU,MAAA,CAAsBF,KAAK,CAAE,CAAC;IAE7E,OAAOA,KAAK;EACd;AACF"}
@@ -1,5 +1,5 @@
1
- import { FileSystem } from '@loaders.gl/core';
2
- import { FileProvider } from '../file-provider/file-provider';
1
+ import { FileSystem } from '@loaders.gl/loader-utils';
2
+ import { FileProvider } from '@loaders.gl/loader-utils';
3
3
  import { ZipCDFileHeader } from '../parse-zip/cd-file-header';
4
4
  /**
5
5
  * FileSystem adapter for a ZIP file
@@ -7,7 +7,8 @@ import { ZipCDFileHeader } from '../parse-zip/cd-file-header';
7
7
  */
8
8
  export declare class ZipFileSystem implements FileSystem {
9
9
  /** FileProvider instance promise */
10
- private fileProvider;
10
+ protected fileProvider: Promise<FileProvider | null>;
11
+ fileName?: string;
11
12
  /**
12
13
  * Constructor
13
14
  * @param file - instance of FileProvider or file path string
@@ -1 +1 @@
1
- {"version":3,"file":"zip-filesystem.d.ts","sourceRoot":"","sources":["../../src/filesystems/zip-filesystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAY,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAC,YAAY,EAAiB,MAAM,gCAAgC,CAAC;AAE5E,OAAO,EAAC,eAAe,EAA2B,MAAM,6BAA6B,CAAC;AAUtF;;;GAGG;AACH,qBAAa,aAAc,YAAW,UAAU;IAC9C,oCAAoC;IACpC,OAAO,CAAC,YAAY,CAAuD;IAE3E;;;OAGG;gBACS,IAAI,EAAE,YAAY,GAAG,MAAM;IAavC,yBAAyB;IACnB,OAAO;IAOb;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAalC;;;;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;CAkB9B"}
1
+ {"version":3,"file":"zip-filesystem.d.ts","sourceRoot":"","sources":["../../src/filesystems/zip-filesystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAY,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAC,YAAY,EAAiB,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAAC,eAAe,EAA2B,MAAM,6BAA6B,CAAC;AAiBtF;;;GAGG;AACH,qBAAa,aAAc,YAAW,UAAU;IAC9C,oCAAoC;IACpC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAyB;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;gBACS,IAAI,EAAE,YAAY,GAAG,MAAM;IAcvC,yBAAyB;IACnB,OAAO;IAOb;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAalC;;;;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;IA+BhD;;;;OAIG;YACW,eAAe;CAkB9B"}
@@ -1,15 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZipFileSystem = void 0;
4
- const core_1 = require("@loaders.gl/core");
5
- const file_provider_1 = require("../file-provider/file-provider");
6
- const file_handle_file_1 = require("../file-provider/file-handle-file");
4
+ const loader_utils_1 = require("@loaders.gl/loader-utils");
5
+ const loader_utils_2 = require("@loaders.gl/loader-utils");
6
+ const loader_utils_3 = require("@loaders.gl/loader-utils");
7
7
  const cd_file_header_1 = require("../parse-zip/cd-file-header");
8
8
  const local_file_header_1 = require("../parse-zip/local-file-header");
9
+ const compression_1 = require("@loaders.gl/compression");
9
10
  /** Handling different compression types in zip */
10
11
  const COMPRESSION_METHODS = {
11
12
  /** No compression */
12
- 0: async (compressedFile) => compressedFile
13
+ 0: async (compressedFile) => compressedFile,
14
+ /** Deflation */
15
+ 8: async (compressedFile) => {
16
+ const compression = new compression_1.DeflateCompression({ raw: true });
17
+ const decompressedData = await compression.decompress(compressedFile);
18
+ return decompressedData;
19
+ }
13
20
  };
14
21
  /**
15
22
  * FileSystem adapter for a ZIP file
@@ -25,14 +32,15 @@ class ZipFileSystem {
25
32
  this.fileProvider = Promise.resolve(null);
26
33
  // Try to open file in NodeJS
27
34
  if (typeof file === 'string') {
28
- if (!core_1.isBrowser) {
29
- this.fileProvider = file_handle_file_1.FileHandleFile.from(file);
35
+ this.fileName = file;
36
+ if (!loader_utils_1.isBrowser) {
37
+ this.fileProvider = loader_utils_3.FileHandleFile.from(file);
30
38
  }
31
39
  else {
32
40
  throw new Error('Cannot open file for random access in a WEB browser');
33
41
  }
34
42
  }
35
- else if ((0, file_provider_1.isFileProvider)(file)) {
43
+ else if ((0, loader_utils_2.isFileProvider)(file)) {
36
44
  this.fileProvider = Promise.resolve(file);
37
45
  }
38
46
  }
@@ -40,7 +48,7 @@ class ZipFileSystem {
40
48
  async destroy() {
41
49
  const fileProvider = await this.fileProvider;
42
50
  if (fileProvider) {
43
- fileProvider.destroy();
51
+ await fileProvider.destroy();
44
52
  }
45
53
  }
46
54
  /**
@@ -90,6 +98,7 @@ class ZipFileSystem {
90
98
  const compressedFile = await fileProvider.slice(localFileHeader.fileDataOffset, localFileHeader.fileDataOffset + localFileHeader.compressedSize);
91
99
  const uncompressedFile = await compressionHandler(compressedFile);
92
100
  const response = new Response(uncompressedFile);
101
+ Object.defineProperty(response, 'url', { value: `${this.fileName || ''}/${filename}` });
93
102
  return response;
94
103
  }
95
104
  /**
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" />
2
- import { FileProvider } from './file-provider/file-provider';
2
+ import { FileProvider } from '@loaders.gl/loader-utils';
3
3
  /** Element of hash array */
4
4
  export type HashElement = {
5
5
  /** File name hash */
@@ -1 +1 @@
1
- {"version":3,"file":"hash-file-utility.d.ts","sourceRoot":"","sources":["../src/hash-file-utility.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,+BAA+B,CAAC;AAE3D,4BAA4B;AAC5B,MAAM,MAAM,WAAW,GAAG;IACxB,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,UAAW,MAAM,SAAS,MAAM,KAAG,MAY5D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,aAAc,WAAW,KAAG,WAAW,EAmBhE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,OAAO,iBACJ,MAAM,aACT,WAAW,EAAE,KACvB,WAAW,GAAG,SAgBhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,iBAAwB,YAAY,KAAG,QAAQ,WAAW,EAAE,CAWxF,CAAC"}
1
+ {"version":3,"file":"hash-file-utility.d.ts","sourceRoot":"","sources":["../src/hash-file-utility.ts"],"names":[],"mappings":";AACA,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAGtD,4BAA4B;AAC5B,MAAM,MAAM,WAAW,GAAG;IACxB,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,UAAW,MAAM,SAAS,MAAM,KAAG,MAY5D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,aAAc,WAAW,KAAG,WAAW,EAmBhE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,OAAO,iBACJ,MAAM,aACT,WAAW,EAAE,KACvB,WAAW,GAAG,SAgBhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,iBAAwB,YAAY,KAAG,QAAQ,WAAW,EAAE,CAWxF,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,13 +1,11 @@
1
1
  export { ZipLoader } from './zip-loader';
2
2
  export { ZipWriter } from './zip-writer';
3
- export { default as TarBuilder } from './tar-builder';
4
- export type { FileProvider } from './file-provider/file-provider';
5
- export { FileHandleFile } from './file-provider/file-handle-file';
6
- export { DataViewFile } from './file-provider/data-view-file';
3
+ export { TarBuilder } from './tar-builder';
7
4
  export { parseZipCDFileHeader, zipCDFileHeaderGenerator, signature as cdSignature } from './parse-zip/cd-file-header';
8
5
  export { parseZipLocalFileHeader, signature as localHeaderSignature } from './parse-zip/local-file-header';
9
6
  export { parseEoCDRecord } from './parse-zip/end-of-central-directory';
10
7
  export { searchFromTheEnd } from './parse-zip/search-from-the-end';
11
8
  export type { HashElement } from './hash-file-utility';
12
9
  export { compareHashes, parseHashFile, findBin, generateHashInfo } from './hash-file-utility';
10
+ export { ZipFileSystem } from './filesystems/zip-filesystem';
13
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AACvC,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AACvC,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,MAAM,eAAe,CAAC;AAEpD,YAAY,EAAC,YAAY,EAAC,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAC,cAAc,EAAC,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAC,YAAY,EAAC,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,SAAS,IAAI,WAAW,EACzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,uBAAuB,EACvB,SAAS,IAAI,oBAAoB,EAClC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAC,eAAe,EAAC,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AAEjE,YAAY,EAAC,WAAW,EAAC,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAC,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,EAAC,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,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,wBAAwB,EACxB,SAAS,IAAI,WAAW,EACzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,uBAAuB,EACvB,SAAS,IAAI,oBAAoB,EAClC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAC,eAAe,EAAC,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AAEjE,YAAY,EAAC,WAAW,EAAC,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAC,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,EAAC,MAAM,qBAAqB,CAAC;AAE5F,OAAO,EAAC,aAAa,EAAC,MAAM,8BAA8B,CAAC"}
package/dist/index.js CHANGED
@@ -1,19 +1,13 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
2
+ // loaders.gl, MIT license
5
3
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.generateHashInfo = exports.findBin = exports.parseHashFile = exports.compareHashes = exports.searchFromTheEnd = exports.parseEoCDRecord = exports.localHeaderSignature = exports.parseZipLocalFileHeader = exports.cdSignature = exports.zipCDFileHeaderGenerator = exports.parseZipCDFileHeader = exports.DataViewFile = exports.FileHandleFile = exports.TarBuilder = exports.ZipWriter = exports.ZipLoader = void 0;
4
+ exports.ZipFileSystem = exports.generateHashInfo = exports.findBin = exports.parseHashFile = exports.compareHashes = exports.searchFromTheEnd = exports.parseEoCDRecord = exports.localHeaderSignature = exports.parseZipLocalFileHeader = exports.cdSignature = exports.zipCDFileHeaderGenerator = exports.parseZipCDFileHeader = exports.TarBuilder = exports.ZipWriter = exports.ZipLoader = void 0;
7
5
  var zip_loader_1 = require("./zip-loader");
8
6
  Object.defineProperty(exports, "ZipLoader", { enumerable: true, get: function () { return zip_loader_1.ZipLoader; } });
9
7
  var zip_writer_1 = require("./zip-writer");
10
8
  Object.defineProperty(exports, "ZipWriter", { enumerable: true, get: function () { return zip_writer_1.ZipWriter; } });
11
9
  var tar_builder_1 = require("./tar-builder");
12
- Object.defineProperty(exports, "TarBuilder", { enumerable: true, get: function () { return __importDefault(tar_builder_1).default; } });
13
- var file_handle_file_1 = require("./file-provider/file-handle-file");
14
- Object.defineProperty(exports, "FileHandleFile", { enumerable: true, get: function () { return file_handle_file_1.FileHandleFile; } });
15
- var data_view_file_1 = require("./file-provider/data-view-file");
16
- Object.defineProperty(exports, "DataViewFile", { enumerable: true, get: function () { return data_view_file_1.DataViewFile; } });
10
+ Object.defineProperty(exports, "TarBuilder", { enumerable: true, get: function () { return tar_builder_1.TarBuilder; } });
17
11
  var cd_file_header_1 = require("./parse-zip/cd-file-header");
18
12
  Object.defineProperty(exports, "parseZipCDFileHeader", { enumerable: true, get: function () { return cd_file_header_1.parseZipCDFileHeader; } });
19
13
  Object.defineProperty(exports, "zipCDFileHeaderGenerator", { enumerable: true, get: function () { return cd_file_header_1.zipCDFileHeaderGenerator; } });
@@ -30,3 +24,5 @@ Object.defineProperty(exports, "compareHashes", { enumerable: true, get: functio
30
24
  Object.defineProperty(exports, "parseHashFile", { enumerable: true, get: function () { return hash_file_utility_1.parseHashFile; } });
31
25
  Object.defineProperty(exports, "findBin", { enumerable: true, get: function () { return hash_file_utility_1.findBin; } });
32
26
  Object.defineProperty(exports, "generateHashInfo", { enumerable: true, get: function () { return hash_file_utility_1.generateHashInfo; } });
27
+ var zip_filesystem_1 = require("./filesystems/zip-filesystem");
28
+ Object.defineProperty(exports, "ZipFileSystem", { enumerable: true, get: function () { return zip_filesystem_1.ZipFileSystem; } });
@@ -1,4 +1,4 @@
1
- import { FileProvider } from '../file-provider/file-provider';
1
+ import { FileProvider } from '@loaders.gl/loader-utils';
2
2
  import { ZipSignature } from './search-from-the-end';
3
3
  /**
4
4
  * zip central directory file header info
@@ -1 +1 @@
1
- {"version":3,"file":"cd-file-header.d.ts","sourceRoot":"","sources":["../../src/parse-zip/cd-file-header.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAC;AAEnD;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,sBAAsB;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,wBAAwB;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,uBAAuB;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,uBAAuB;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAUF,eAAO,MAAM,SAAS,EAAE,YAAuC,CAAC;AAEhE;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,iBACjB,MAAM,UACZ,YAAY,KACnB,QAAQ,eAAe,GAAG,IAAI,CAqDhC,CAAC;AAEF;;;GAGG;AACH,wBAAuB,wBAAwB,CAAC,YAAY,EAAE,YAAY,kDAUzE"}
1
+ {"version":3,"file":"cd-file-header.d.ts","sourceRoot":"","sources":["../../src/parse-zip/cd-file-header.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAC;AAEnD;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,sBAAsB;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,wBAAwB;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,uBAAuB;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,uBAAuB;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAUF,eAAO,MAAM,SAAS,EAAE,YAAuC,CAAC;AAEhE;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,iBACjB,MAAM,UACZ,YAAY,KACnB,QAAQ,eAAe,GAAG,IAAI,CAqDhC,CAAC;AAEF;;;GAGG;AACH,wBAAuB,wBAAwB,CAAC,YAAY,EAAE,YAAY,kDAUzE"}
@@ -1,4 +1,4 @@
1
- import { FileProvider } from '../file-provider/file-provider';
1
+ import { FileProvider } 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)
@@ -1 +1 @@
1
- {"version":3,"file":"end-of-central-directory.d.ts","sourceRoot":"","sources":["../../src/parse-zip/end-of-central-directory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,gCAAgC,CAAC;AAG5D;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,2CAA2C;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAaF;;;;GAIG;AACH,eAAO,MAAM,eAAe,iBAAwB,YAAY,KAAG,QAAQ,aAAa,CAwCvF,CAAC"}
1
+ {"version":3,"file":"end-of-central-directory.d.ts","sourceRoot":"","sources":["../../src/parse-zip/end-of-central-directory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAGtD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,2CAA2C;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAaF;;;;GAIG;AACH,eAAO,MAAM,eAAe,iBAAwB,YAAY,KAAG,QAAQ,aAAa,CAwCvF,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" />
2
- import { FileProvider } from '../file-provider/file-provider';
2
+ import { FileProvider } from '@loaders.gl/loader-utils';
3
3
  /**
4
4
  * zip local file header info
5
5
  * according to https://en.wikipedia.org/wiki/ZIP_(file_format)
@@ -1 +1 @@
1
- {"version":3,"file":"local-file-header.d.ts","sourceRoot":"","sources":["../../src/parse-zip/local-file-header.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,gCAAgC,CAAC;AAE5D;;;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,QAAwC,CAAC;AAE/D;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,iBACpB,MAAM,UACZ,YAAY,KACnB,QAAQ,kBAAkB,GAAG,IAAI,CAkDnC,CAAC"}
1
+ {"version":3,"file":"local-file-header.d.ts","sourceRoot":"","sources":["../../src/parse-zip/local-file-header.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAEtD;;;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,QAAwC,CAAC;AAE/D;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,iBACpB,MAAM,UACZ,YAAY,KACnB,QAAQ,kBAAkB,GAAG,IAAI,CAkDnC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { FileProvider } from '../file-provider/file-provider';
1
+ import { FileProvider } from '@loaders.gl/loader-utils';
2
2
  /** Description of zip signature type */
3
3
  export type ZipSignature = [number, number, number, number];
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"search-from-the-end.d.ts","sourceRoot":"","sources":["../../src/parse-zip/search-from-the-end.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,gCAAgC,CAAC;AAE5D,wCAAwC;AACxC,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE5D;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,SACrB,YAAY,2BAEjB,QAAQ,MAAM,CAuBhB,CAAC"}
1
+ {"version":3,"file":"search-from-the-end.d.ts","sourceRoot":"","sources":["../../src/parse-zip/search-from-the-end.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAEtD,wCAAwC;AACxC,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE5D;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,SACrB,YAAY,2BAEjB,QAAQ,MAAM,CAuBhB,CAAC"}
@@ -5,13 +5,13 @@ type TarBuilderOptions = {
5
5
  /**
6
6
  * Build a tar file by adding files
7
7
  */
8
- export default class TARBuilder {
8
+ export declare class TarBuilder {
9
9
  static get properties(): {
10
10
  id: string;
11
11
  name: string;
12
12
  extensions: string[];
13
13
  mimeTypes: string[];
14
- builder: typeof TARBuilder;
14
+ builder: typeof TarBuilder;
15
15
  options: {
16
16
  recordsPerBlock: number;
17
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tar-builder.d.ts","sourceRoot":"","sources":["../src/tar-builder.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,eAAe,CAAC;AAMhC,KAAK,iBAAiB,GAAG;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,MAAM,KAAK,UAAU;;;;;;;;;MASpB;IAED,OAAO,EAAE,iBAAiB,CAAC;IAC3B,IAAI,EAAE,GAAG,CAAC;IACV,KAAK,EAAE,MAAM,CAAK;gBAEN,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC;IAIhD,kCAAkC;IAClC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW;IAKvC,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC;CAGpC"}
1
+ {"version":3,"file":"tar-builder.d.ts","sourceRoot":"","sources":["../src/tar-builder.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,eAAe,CAAC;AAMhC,KAAK,iBAAiB,GAAG;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,qBAAa,UAAU;IACrB,MAAM,KAAK,UAAU;;;;;;;;;MASpB;IAED,OAAO,EAAE,iBAAiB,CAAC;IAC3B,IAAI,EAAE,GAAG,CAAC;IACV,KAAK,EAAE,MAAM,CAAK;gBAEN,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC;IAIhD,kCAAkC;IAClC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW;IAKvC,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC;CAGpC"}
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TarBuilder = void 0;
6
7
  const tar_1 = __importDefault(require("./lib/tar/tar"));
7
8
  const TAR_BUILDER_OPTIONS = {
8
9
  recordsPerBlock: 20
@@ -10,14 +11,14 @@ const TAR_BUILDER_OPTIONS = {
10
11
  /**
11
12
  * Build a tar file by adding files
12
13
  */
13
- class TARBuilder {
14
+ class TarBuilder {
14
15
  static get properties() {
15
16
  return {
16
17
  id: 'tar',
17
18
  name: 'TAR',
18
19
  extensions: ['tar'],
19
20
  mimeTypes: ['application/x-tar'],
20
- builder: TARBuilder,
21
+ builder: TarBuilder,
21
22
  options: TAR_BUILDER_OPTIONS
22
23
  };
23
24
  }
@@ -35,4 +36,4 @@ class TARBuilder {
35
36
  return new Response(this.tape.save()).arrayBuffer();
36
37
  }
37
38
  }
38
- exports.default = TARBuilder;
39
+ exports.TarBuilder = TarBuilder;
@@ -1,6 +1,5 @@
1
1
  import type { LoaderWithParser, LoaderOptions } from '@loaders.gl/loader-utils';
2
2
  type FileMap = Record<string, ArrayBuffer>;
3
3
  export declare const ZipLoader: LoaderWithParser<FileMap, never, LoaderOptions>;
4
- export declare const _typecheckZipLoader: LoaderWithParser;
5
4
  export {};
6
5
  //# sourceMappingURL=zip-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"zip-loader.d.ts","sourceRoot":"","sources":["../src/zip-loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAO9E,KAAK,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAE3C,eAAO,MAAM,SAAS,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa,CAWrE,CAAC;AA8CF,eAAO,MAAM,mBAAmB,EAAE,gBAA4B,CAAC"}
1
+ {"version":3,"file":"zip-loader.d.ts","sourceRoot":"","sources":["../src/zip-loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAO9E,KAAK,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAE3C,eAAO,MAAM,SAAS,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa,CAWrE,CAAC"}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports._typecheckZipLoader = exports.ZipLoader = void 0;
6
+ exports.ZipLoader = void 0;
7
7
  const jszip_1 = __importDefault(require("jszip"));
8
8
  // __VERSION__ is injected by babel-plugin-version-inline
9
9
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
@@ -58,4 +58,3 @@ async function loadZipEntry(jsZip, subFilename, options = {}) {
58
58
  return error;
59
59
  }
60
60
  }
61
- exports._typecheckZipLoader = exports.ZipLoader;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/zip",
3
- "version": "4.0.0-alpha.21",
3
+ "version": "4.0.0-alpha.23",
4
4
  "description": "Zip Archive Loader",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -25,19 +25,14 @@
25
25
  "dist",
26
26
  "README.md"
27
27
  ],
28
- "browser": {
29
- "fs": false
30
- },
31
28
  "scripts": {
32
29
  "pre-build": "npm run build-bundle",
33
30
  "build-bundle": "esbuild src/bundle.ts --bundle --outfile=dist/dist.min.js"
34
31
  },
35
32
  "dependencies": {
36
- "@loaders.gl/compression": "4.0.0-alpha.21",
33
+ "@loaders.gl/compression": "4.0.0-alpha.23",
34
+ "@loaders.gl/loader-utils": "4.0.0-alpha.23",
37
35
  "jszip": "^3.1.5"
38
36
  },
39
- "peerDependencies": {
40
- "@loaders.gl/core": "^4.0.0"
41
- },
42
- "gitHead": "df5d670b136192b26941396e944f9c46be788e83"
37
+ "gitHead": "e212f2a0c0e342f7cb65ce84fa2ff39f64b7d94b"
43
38
  }
@@ -1,14 +1,21 @@
1
- import {FileSystem, isBrowser} from '@loaders.gl/core';
2
- import {FileProvider, isFileProvider} from '../file-provider/file-provider';
3
- import {FileHandleFile} from '../file-provider/file-handle-file';
1
+ import {FileSystem, isBrowser} from '@loaders.gl/loader-utils';
2
+ import {FileProvider, isFileProvider} from '@loaders.gl/loader-utils';
3
+ import {FileHandleFile} from '@loaders.gl/loader-utils';
4
4
  import {ZipCDFileHeader, zipCDFileHeaderGenerator} from '../parse-zip/cd-file-header';
5
5
  import {parseZipLocalFileHeader} from '../parse-zip/local-file-header';
6
+ import {DeflateCompression} from '@loaders.gl/compression';
6
7
 
7
8
  type CompressionHandler = (compressedFile: ArrayBuffer) => Promise<ArrayBuffer>;
8
9
  /** Handling different compression types in zip */
9
10
  const COMPRESSION_METHODS: {[key: number]: CompressionHandler} = {
10
11
  /** No compression */
11
- 0: async (compressedFile) => compressedFile
12
+ 0: async (compressedFile) => compressedFile,
13
+ /** Deflation */
14
+ 8: async (compressedFile) => {
15
+ const compression = new DeflateCompression({raw: true});
16
+ const decompressedData = await compression.decompress(compressedFile);
17
+ return decompressedData;
18
+ }
12
19
  };
13
20
 
14
21
  /**
@@ -17,7 +24,8 @@ const COMPRESSION_METHODS: {[key: number]: CompressionHandler} = {
17
24
  */
18
25
  export class ZipFileSystem implements FileSystem {
19
26
  /** FileProvider instance promise */
20
- private fileProvider: Promise<FileProvider | null> = Promise.resolve(null);
27
+ protected fileProvider: Promise<FileProvider | null> = Promise.resolve(null);
28
+ public fileName?: string;
21
29
 
22
30
  /**
23
31
  * Constructor
@@ -26,6 +34,7 @@ export class ZipFileSystem implements FileSystem {
26
34
  constructor(file: FileProvider | string) {
27
35
  // Try to open file in NodeJS
28
36
  if (typeof file === 'string') {
37
+ this.fileName = file;
29
38
  if (!isBrowser) {
30
39
  this.fileProvider = FileHandleFile.from(file);
31
40
  } else {
@@ -40,7 +49,7 @@ export class ZipFileSystem implements FileSystem {
40
49
  async destroy() {
41
50
  const fileProvider = await this.fileProvider;
42
51
  if (fileProvider) {
43
- fileProvider.destroy();
52
+ await fileProvider.destroy();
44
53
  }
45
54
  }
46
55
 
@@ -103,6 +112,7 @@ export class ZipFileSystem implements FileSystem {
103
112
  const uncompressedFile = await compressionHandler(compressedFile);
104
113
 
105
114
  const response = new Response(uncompressedFile);
115
+ Object.defineProperty(response, 'url', {value: `${this.fileName || ''}/${filename}`});
106
116
  return response;
107
117
  }
108
118
 
@@ -1,6 +1,6 @@
1
1
  import md5 from 'md5';
2
+ import {FileProvider} from '@loaders.gl/loader-utils';
2
3
  import {zipCDFileHeaderGenerator} from './parse-zip/cd-file-header';
3
- import {FileProvider} from './file-provider/file-provider';
4
4
 
5
5
  /** Element of hash array */
6
6
  export type HashElement = {
package/src/index.ts CHANGED
@@ -1,10 +1,8 @@
1
+ // loaders.gl, MIT license
2
+
1
3
  export {ZipLoader} from './zip-loader';
2
4
  export {ZipWriter} from './zip-writer';
3
- export {default as TarBuilder} from './tar-builder';
4
-
5
- export type {FileProvider} from './file-provider/file-provider';
6
- export {FileHandleFile} from './file-provider/file-handle-file';
7
- export {DataViewFile} from './file-provider/data-view-file';
5
+ export {TarBuilder} from './tar-builder';
8
6
 
9
7
  export {
10
8
  parseZipCDFileHeader,
@@ -20,3 +18,5 @@ export {searchFromTheEnd} from './parse-zip/search-from-the-end';
20
18
 
21
19
  export type {HashElement} from './hash-file-utility';
22
20
  export {compareHashes, parseHashFile, findBin, generateHashInfo} from './hash-file-utility';
21
+
22
+ export {ZipFileSystem} from './filesystems/zip-filesystem';
@@ -1,4 +1,4 @@
1
- import {FileProvider} from '../file-provider/file-provider';
1
+ import {FileProvider} from '@loaders.gl/loader-utils';
2
2
  import {parseEoCDRecord} from './end-of-central-directory';
3
3
  import {ZipSignature} from './search-from-the-end';
4
4
 
@@ -1,4 +1,4 @@
1
- import {FileProvider} from '../file-provider/file-provider';
1
+ import {FileProvider} from '@loaders.gl/loader-utils';
2
2
  import {ZipSignature, searchFromTheEnd} from './search-from-the-end';
3
3
 
4
4
  /**
@@ -1,4 +1,4 @@
1
- import {FileProvider} from '../file-provider/file-provider';
1
+ import {FileProvider} from '@loaders.gl/loader-utils';
2
2
 
3
3
  /**
4
4
  * zip local file header info
@@ -1,4 +1,4 @@
1
- import {FileProvider} from '../file-provider/file-provider';
1
+ import {FileProvider} from '@loaders.gl/loader-utils';
2
2
 
3
3
  /** Description of zip signature type */
4
4
  export type ZipSignature = [number, number, number, number];
@@ -11,14 +11,14 @@ type TarBuilderOptions = {
11
11
  /**
12
12
  * Build a tar file by adding files
13
13
  */
14
- export default class TARBuilder {
14
+ export class TarBuilder {
15
15
  static get properties() {
16
16
  return {
17
17
  id: 'tar',
18
18
  name: 'TAR',
19
19
  extensions: ['tar'],
20
20
  mimeTypes: ['application/x-tar'],
21
- builder: TARBuilder,
21
+ builder: TarBuilder,
22
22
  options: TAR_BUILDER_OPTIONS
23
23
  };
24
24
  }
package/src/zip-loader.ts CHANGED
@@ -64,5 +64,3 @@ async function loadZipEntry(jsZip: any, subFilename: string, options: any = {})
64
64
  return error;
65
65
  }
66
66
  }
67
-
68
- export const _typecheckZipLoader: LoaderWithParser = ZipLoader;