@loaders.gl/zip 4.1.0-alpha.1 → 4.1.0-alpha.10

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 (68) hide show
  1. package/dist/dist.dev.js +313 -51
  2. package/dist/filesystems/zip-filesystem.d.ts.map +1 -1
  3. package/dist/filesystems/zip-filesystem.js.map +1 -1
  4. package/dist/hash-file-utility.d.ts +6 -0
  5. package/dist/hash-file-utility.d.ts.map +1 -1
  6. package/dist/hash-file-utility.js +22 -0
  7. package/dist/hash-file-utility.js.map +1 -1
  8. package/dist/index.cjs +290 -56
  9. package/dist/index.d.ts +3 -2
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +3 -2
  12. package/dist/index.js.map +1 -1
  13. package/dist/lib/tar/header.d.ts.map +1 -1
  14. package/dist/lib/tar/header.js.map +1 -1
  15. package/dist/lib/tar/tar.d.ts.map +1 -1
  16. package/dist/lib/tar/tar.js.map +1 -1
  17. package/dist/lib/tar/types.d.ts.map +1 -1
  18. package/dist/lib/tar/types.js.map +1 -1
  19. package/dist/lib/tar/utils.d.ts.map +1 -1
  20. package/dist/lib/tar/utils.js.map +1 -1
  21. package/dist/parse-zip/cd-file-header.d.ts +1 -1
  22. package/dist/parse-zip/cd-file-header.d.ts.map +1 -1
  23. package/dist/parse-zip/cd-file-header.js +4 -4
  24. package/dist/parse-zip/cd-file-header.js.map +1 -1
  25. package/dist/parse-zip/end-of-central-directory.d.ts +19 -0
  26. package/dist/parse-zip/end-of-central-directory.d.ts.map +1 -1
  27. package/dist/parse-zip/end-of-central-directory.js +41 -8
  28. package/dist/parse-zip/end-of-central-directory.js.map +1 -1
  29. package/dist/parse-zip/local-file-header.d.ts +16 -0
  30. package/dist/parse-zip/local-file-header.d.ts.map +1 -1
  31. package/dist/parse-zip/local-file-header.js +73 -1
  32. package/dist/parse-zip/local-file-header.js.map +1 -1
  33. package/dist/parse-zip/search-from-the-end.d.ts.map +1 -1
  34. package/dist/parse-zip/search-from-the-end.js.map +1 -1
  35. package/dist/parse-zip/zip-compozition.d.ts +8 -0
  36. package/dist/parse-zip/zip-compozition.d.ts.map +1 -0
  37. package/dist/parse-zip/zip-compozition.js +43 -0
  38. package/dist/parse-zip/zip-compozition.js.map +1 -0
  39. package/dist/parse-zip/zip64-info-generation.d.ts +5 -8
  40. package/dist/parse-zip/zip64-info-generation.d.ts.map +1 -1
  41. package/dist/parse-zip/zip64-info-generation.js +6 -3
  42. package/dist/parse-zip/zip64-info-generation.js.map +1 -1
  43. package/dist/tar-builder.d.ts.map +1 -1
  44. package/dist/tar-builder.js.map +1 -1
  45. package/dist/zip-loader.d.ts.map +1 -1
  46. package/dist/zip-loader.js +1 -1
  47. package/dist/zip-loader.js.map +1 -1
  48. package/dist/zip-writer.d.ts +2 -2
  49. package/dist/zip-writer.d.ts.map +1 -1
  50. package/dist/zip-writer.js +22 -7
  51. package/dist/zip-writer.js.map +1 -1
  52. package/package.json +7 -7
  53. package/src/filesystems/zip-filesystem.ts +2 -1
  54. package/src/hash-file-utility.ts +52 -2
  55. package/src/index.ts +6 -3
  56. package/src/lib/tar/header.ts +2 -1
  57. package/src/lib/tar/tar.ts +2 -1
  58. package/src/lib/tar/types.ts +2 -1
  59. package/src/lib/tar/utils.ts +2 -1
  60. package/src/parse-zip/cd-file-header.ts +8 -6
  61. package/src/parse-zip/end-of-central-directory.ts +99 -9
  62. package/src/parse-zip/local-file-header.ts +128 -2
  63. package/src/parse-zip/search-from-the-end.ts +2 -1
  64. package/src/parse-zip/zip-compozition.ts +113 -0
  65. package/src/parse-zip/zip64-info-generation.ts +20 -4
  66. package/src/tar-builder.ts +2 -1
  67. package/src/zip-loader.ts +2 -1
  68. package/src/zip-writer.ts +24 -10
package/dist/index.cjs CHANGED
@@ -35,7 +35,10 @@ __export(src_exports, {
35
35
  ZipFileSystem: () => ZipFileSystem,
36
36
  ZipLoader: () => ZipLoader,
37
37
  ZipWriter: () => ZipWriter,
38
+ addOneFile: () => addOneFile,
39
+ composeHashFile: () => composeHashFile,
38
40
  generateCDHeader: () => generateCDHeader,
41
+ generateLocalHeader: () => generateLocalHeader,
39
42
  localHeaderSignature: () => signature3,
40
43
  makeHashTableFromZipHeaders: () => makeHashTableFromZipHeaders,
41
44
  makeZipCDHeaderIterator: () => makeZipCDHeaderIterator,
@@ -94,27 +97,41 @@ async function loadZipEntry(jsZip, subFilename, options = {}) {
94
97
 
95
98
  // src/zip-writer.ts
96
99
  var import_jszip2 = __toESM(require("jszip"), 1);
100
+ var VERSION2 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
97
101
  var ZipWriter = {
98
102
  name: "Zip Archive",
103
+ id: "zip",
104
+ module: "zip",
105
+ version: VERSION2,
99
106
  extensions: ["zip"],
100
107
  category: "archive",
101
108
  mimeTypes: ["application/zip"],
102
- // @ts-ignore
109
+ options: {
110
+ zip: {
111
+ onUpdate: () => {
112
+ }
113
+ },
114
+ jszip: {}
115
+ },
103
116
  encode: encodeZipAsync
104
117
  };
105
118
  async function encodeZipAsync(fileMap, options = {}) {
119
+ var _a;
106
120
  const jsZip = new import_jszip2.default();
107
121
  for (const subFileName in fileMap) {
108
122
  const subFileData = fileMap[subFileName];
109
123
  jsZip.file(subFileName, subFileData, (options == null ? void 0 : options.jszip) || {});
110
124
  }
111
- const jszipOptions = { ...options == null ? void 0 : options.jszip, type: "arraybuffer" };
112
- const { onUpdate = () => {
113
- } } = options;
125
+ const zipOptions = { ...ZipWriter.options.zip, ...options == null ? void 0 : options.zip };
126
+ const jszipOptions = { ...(_a = ZipWriter.options) == null ? void 0 : _a.jszip, ...options.jszip };
114
127
  try {
115
- return await jsZip.generateAsync(jszipOptions, onUpdate);
128
+ return await jsZip.generateAsync(
129
+ { ...jszipOptions, type: "arraybuffer" },
130
+ // generate an arraybuffer
131
+ zipOptions.onUpdate
132
+ );
116
133
  } catch (error) {
117
- options.log.error(`Unable to write zip archive: ${error}`);
134
+ options.log.error(`Unable to encode zip archive: ${error}`);
118
135
  throw error;
119
136
  }
120
137
  }
@@ -338,7 +355,7 @@ var TarBuilder = class {
338
355
  var import_loader_utils3 = require("@loaders.gl/loader-utils");
339
356
 
340
357
  // src/parse-zip/end-of-central-directory.ts
341
- var import_loader_utils = require("@loaders.gl/loader-utils");
358
+ var import_loader_utils2 = require("@loaders.gl/loader-utils");
342
359
 
343
360
  // src/parse-zip/search-from-the-end.ts
344
361
  var searchFromTheEnd = async (file, target) => {
@@ -362,43 +379,8 @@ var searchFromTheEnd = async (file, target) => {
362
379
  return targetOffset;
363
380
  };
364
381
 
365
- // src/parse-zip/end-of-central-directory.ts
366
- var eoCDSignature = new Uint8Array([80, 75, 5, 6]);
367
- var zip64EoCDLocatorSignature = new Uint8Array([80, 75, 6, 7]);
368
- var zip64EoCDSignature = new Uint8Array([80, 75, 6, 6]);
369
- var CD_RECORDS_NUMBER_OFFSET = 8n;
370
- var CD_START_OFFSET_OFFSET = 16n;
371
- var ZIP64_EOCD_START_OFFSET_OFFSET = 8n;
372
- var ZIP64_CD_RECORDS_NUMBER_OFFSET = 24n;
373
- var ZIP64_CD_START_OFFSET_OFFSET = 48n;
374
- var parseEoCDRecord = async (file) => {
375
- const zipEoCDOffset = await searchFromTheEnd(file, eoCDSignature);
376
- let cdRecordsNumber = BigInt(await file.getUint16(zipEoCDOffset + CD_RECORDS_NUMBER_OFFSET));
377
- let cdStartOffset = BigInt(await file.getUint32(zipEoCDOffset + CD_START_OFFSET_OFFSET));
378
- if (cdStartOffset === BigInt(4294967295) || cdRecordsNumber === BigInt(4294967295)) {
379
- const zip64EoCDLocatorOffset = zipEoCDOffset - 20n;
380
- const magicBytes = await file.slice(zip64EoCDLocatorOffset, zip64EoCDLocatorOffset + 4n);
381
- if (!(0, import_loader_utils.compareArrayBuffers)(magicBytes, zip64EoCDLocatorSignature)) {
382
- throw new Error("zip64 EoCD locator not found");
383
- }
384
- const zip64EoCDOffset = await file.getBigUint64(
385
- zip64EoCDLocatorOffset + ZIP64_EOCD_START_OFFSET_OFFSET
386
- );
387
- const endOfCDMagicBytes = await file.slice(zip64EoCDOffset, zip64EoCDOffset + 4n);
388
- if (!(0, import_loader_utils.compareArrayBuffers)(endOfCDMagicBytes, zip64EoCDSignature.buffer)) {
389
- throw new Error("zip64 EoCD not found");
390
- }
391
- cdRecordsNumber = await file.getBigUint64(zip64EoCDOffset + ZIP64_CD_RECORDS_NUMBER_OFFSET);
392
- cdStartOffset = await file.getBigUint64(zip64EoCDOffset + ZIP64_CD_START_OFFSET_OFFSET);
393
- }
394
- return {
395
- cdRecordsNumber,
396
- cdStartOffset
397
- };
398
- };
399
-
400
382
  // src/parse-zip/zip64-info-generation.ts
401
- var import_loader_utils2 = require("@loaders.gl/loader-utils");
383
+ var import_loader_utils = require("@loaders.gl/loader-utils");
402
384
  var signature = new Uint8Array([1, 0]);
403
385
  function createZip64Info(options) {
404
386
  const optionsToUse = {
@@ -414,14 +396,17 @@ function createZip64Info(options) {
414
396
  NUMBER_SETTERS[field.size](newValue, 0, optionsToUse[field.name ?? ""] ?? field.default);
415
397
  arraysToConcat.push(newValue.buffer);
416
398
  }
417
- return (0, import_loader_utils2.concatenateArrayBuffers)(...arraysToConcat);
399
+ return (0, import_loader_utils.concatenateArrayBuffers)(...arraysToConcat);
400
+ }
401
+ function setFieldToNumber(header, fieldSize, fieldOffset, value) {
402
+ NUMBER_SETTERS[fieldSize](header, Number(fieldOffset), value);
418
403
  }
419
404
  var NUMBER_SETTERS = {
420
405
  2: (header, offset, value) => {
421
- header.setUint16(offset, value, true);
406
+ header.setUint16(offset, Number(value), true);
422
407
  },
423
408
  4: (header, offset, value) => {
424
- header.setUint32(offset, value, true);
409
+ header.setUint32(offset, Number(value), true);
425
410
  },
426
411
  8: (header, offset, value) => {
427
412
  header.setBigUint64(offset, BigInt(value), true);
@@ -455,6 +440,83 @@ var ZIP64_FIELDS = [
455
440
  }
456
441
  ];
457
442
 
443
+ // src/parse-zip/end-of-central-directory.ts
444
+ var eoCDSignature = new Uint8Array([80, 75, 5, 6]);
445
+ var zip64EoCDLocatorSignature = new Uint8Array([80, 75, 6, 7]);
446
+ var zip64EoCDSignature = new Uint8Array([80, 75, 6, 6]);
447
+ var CD_RECORDS_NUMBER_OFFSET = 8n;
448
+ var CD_RECORDS_NUMBER_ON_DISC_OFFSET = 10n;
449
+ var CD_CD_BYTE_SIZE_OFFSET = 12n;
450
+ var CD_START_OFFSET_OFFSET = 16n;
451
+ var ZIP64_EOCD_START_OFFSET_OFFSET = 8n;
452
+ var ZIP64_CD_RECORDS_NUMBER_OFFSET = 24n;
453
+ var ZIP64_CD_RECORDS_NUMBER_ON_DISC_OFFSET = 32n;
454
+ var ZIP64_CD_CD_BYTE_SIZE_OFFSET = 40n;
455
+ var ZIP64_CD_START_OFFSET_OFFSET = 48n;
456
+ var parseEoCDRecord = async (file) => {
457
+ const zipEoCDOffset = await searchFromTheEnd(file, eoCDSignature);
458
+ let cdRecordsNumber = BigInt(await file.getUint16(zipEoCDOffset + CD_RECORDS_NUMBER_OFFSET));
459
+ let cdStartOffset = BigInt(await file.getUint32(zipEoCDOffset + CD_START_OFFSET_OFFSET));
460
+ let zip64EoCDLocatorOffset = zipEoCDOffset - 20n;
461
+ let zip64EoCDOffset = 0n;
462
+ const magicBytes = await file.slice(zip64EoCDLocatorOffset, zip64EoCDLocatorOffset + 4n);
463
+ if ((0, import_loader_utils2.compareArrayBuffers)(magicBytes, zip64EoCDLocatorSignature)) {
464
+ zip64EoCDOffset = await file.getBigUint64(
465
+ zip64EoCDLocatorOffset + ZIP64_EOCD_START_OFFSET_OFFSET
466
+ );
467
+ const endOfCDMagicBytes = await file.slice(zip64EoCDOffset, zip64EoCDOffset + 4n);
468
+ if (!(0, import_loader_utils2.compareArrayBuffers)(endOfCDMagicBytes, zip64EoCDSignature.buffer)) {
469
+ throw new Error("zip64 EoCD not found");
470
+ }
471
+ cdRecordsNumber = await file.getBigUint64(zip64EoCDOffset + ZIP64_CD_RECORDS_NUMBER_OFFSET);
472
+ cdStartOffset = await file.getBigUint64(zip64EoCDOffset + ZIP64_CD_START_OFFSET_OFFSET);
473
+ } else {
474
+ zip64EoCDLocatorOffset = 0n;
475
+ }
476
+ return {
477
+ cdRecordsNumber,
478
+ cdStartOffset,
479
+ offsets: {
480
+ zip64EoCDOffset,
481
+ zip64EoCDLocatorOffset,
482
+ zipEoCDOffset
483
+ }
484
+ };
485
+ };
486
+ async function updateEoCD(eocdBody, oldEoCDOffsets, newCDStartOffset, eocdStartOffset, newCDRecordsNumber) {
487
+ const eocd = new DataView(eocdBody);
488
+ const classicEoCDOffset = oldEoCDOffsets.zip64EoCDOffset ? oldEoCDOffsets.zipEoCDOffset - oldEoCDOffsets.zip64EoCDOffset : 0n;
489
+ if (Number(newCDRecordsNumber) <= 65535) {
490
+ setFieldToNumber(eocd, 2, classicEoCDOffset + CD_RECORDS_NUMBER_OFFSET, newCDRecordsNumber);
491
+ setFieldToNumber(
492
+ eocd,
493
+ 2,
494
+ classicEoCDOffset + CD_RECORDS_NUMBER_ON_DISC_OFFSET,
495
+ newCDRecordsNumber
496
+ );
497
+ }
498
+ if (eocdStartOffset - newCDStartOffset <= 4294967295) {
499
+ setFieldToNumber(
500
+ eocd,
501
+ 4,
502
+ classicEoCDOffset + CD_CD_BYTE_SIZE_OFFSET,
503
+ eocdStartOffset - newCDStartOffset
504
+ );
505
+ }
506
+ if (newCDStartOffset < 4294967295) {
507
+ setFieldToNumber(eocd, 4, classicEoCDOffset + CD_START_OFFSET_OFFSET, newCDStartOffset);
508
+ }
509
+ if (oldEoCDOffsets.zip64EoCDLocatorOffset && oldEoCDOffsets.zip64EoCDOffset) {
510
+ const locatorOffset = oldEoCDOffsets.zip64EoCDLocatorOffset - oldEoCDOffsets.zip64EoCDOffset;
511
+ setFieldToNumber(eocd, 8, locatorOffset + ZIP64_EOCD_START_OFFSET_OFFSET, eocdStartOffset);
512
+ setFieldToNumber(eocd, 8, ZIP64_CD_START_OFFSET_OFFSET, newCDStartOffset);
513
+ setFieldToNumber(eocd, 8, ZIP64_CD_RECORDS_NUMBER_OFFSET, newCDRecordsNumber);
514
+ setFieldToNumber(eocd, 8, ZIP64_CD_RECORDS_NUMBER_ON_DISC_OFFSET, newCDRecordsNumber);
515
+ setFieldToNumber(eocd, 8, ZIP64_CD_CD_BYTE_SIZE_OFFSET, eocdStartOffset - newCDStartOffset);
516
+ }
517
+ return new Uint8Array(eocd.buffer);
518
+ }
519
+
458
520
  // src/parse-zip/cd-file-header.ts
459
521
  var CD_COMPRESSED_SIZE_OFFSET = 20n;
460
522
  var CD_UNCOMPRESSED_SIZE_OFFSET = 24n;
@@ -558,7 +620,7 @@ function generateCDHeader(options) {
558
620
  const optionsToZip64 = {};
559
621
  if (optionsToUse.offset >= 4294967295) {
560
622
  optionsToZip64.offset = optionsToUse.offset;
561
- optionsToUse.offset = 4294967295;
623
+ optionsToUse.offset = BigInt(4294967295);
562
624
  }
563
625
  if (optionsToUse.length >= 4294967295) {
564
626
  optionsToZip64.size = optionsToUse.length;
@@ -568,10 +630,11 @@ function generateCDHeader(options) {
568
630
  zip64header = createZip64Info(optionsToZip64);
569
631
  optionsToUse.extraLength = zip64header.byteLength;
570
632
  }
571
- const header = new DataView(new ArrayBuffer(46));
633
+ const header = new DataView(new ArrayBuffer(Number(CD_FILE_NAME_OFFSET)));
572
634
  for (const field of ZIP_HEADER_FIELDS) {
573
- NUMBER_SETTERS[field.size](
635
+ setFieldToNumber(
574
636
  header,
637
+ field.size,
575
638
  field.offset,
576
639
  optionsToUse[field.name ?? ""] ?? field.default ?? 0
577
640
  );
@@ -734,9 +797,162 @@ var parseZipLocalFileHeader = async (headerOffset, buffer) => {
734
797
  compressionMethod
735
798
  };
736
799
  };
800
+ function generateLocalHeader(options) {
801
+ const optionsToUse = {
802
+ ...options,
803
+ extraLength: 0,
804
+ fnlength: options.fileName.length
805
+ };
806
+ let zip64header = new ArrayBuffer(0);
807
+ const optionsToZip64 = {};
808
+ if (optionsToUse.length >= 4294967295) {
809
+ optionsToZip64.size = optionsToUse.length;
810
+ optionsToUse.length = 4294967295;
811
+ }
812
+ if (Object.keys(optionsToZip64).length) {
813
+ zip64header = createZip64Info(optionsToZip64);
814
+ optionsToUse.extraLength = zip64header.byteLength;
815
+ }
816
+ const header = new DataView(new ArrayBuffer(Number(FILE_NAME_OFFSET)));
817
+ for (const field of ZIP_HEADER_FIELDS2) {
818
+ setFieldToNumber(
819
+ header,
820
+ field.size,
821
+ field.offset,
822
+ optionsToUse[field.name ?? ""] ?? field.default ?? 0
823
+ );
824
+ }
825
+ const encodedName = new TextEncoder().encode(optionsToUse.fileName);
826
+ const resHeader = (0, import_loader_utils4.concatenateArrayBuffers)(header.buffer, encodedName, zip64header);
827
+ return resHeader;
828
+ }
829
+ var ZIP_HEADER_FIELDS2 = [
830
+ // Local file header signature = 0x04034b50
831
+ {
832
+ offset: 0,
833
+ size: 4,
834
+ default: new DataView(signature3.buffer).getUint32(0, true)
835
+ },
836
+ // Version needed to extract (minimum)
837
+ {
838
+ offset: 4,
839
+ size: 2,
840
+ default: 45
841
+ },
842
+ // General purpose bit flag
843
+ {
844
+ offset: 6,
845
+ size: 2,
846
+ default: 0
847
+ },
848
+ // Compression method
849
+ {
850
+ offset: 8,
851
+ size: 2,
852
+ default: 0
853
+ },
854
+ // File last modification time
855
+ {
856
+ offset: 10,
857
+ size: 2,
858
+ default: 0
859
+ },
860
+ // File last modification date
861
+ {
862
+ offset: 12,
863
+ size: 2,
864
+ default: 0
865
+ },
866
+ // CRC-32 of uncompressed data
867
+ {
868
+ offset: 14,
869
+ size: 4,
870
+ name: "crc32"
871
+ },
872
+ // Compressed size (or 0xffffffff for ZIP64)
873
+ {
874
+ offset: 18,
875
+ size: 4,
876
+ name: "length"
877
+ },
878
+ // Uncompressed size (or 0xffffffff for ZIP64)
879
+ {
880
+ offset: 22,
881
+ size: 4,
882
+ name: "length"
883
+ },
884
+ // File name length (n)
885
+ {
886
+ offset: 26,
887
+ size: 2,
888
+ name: "fnlength"
889
+ },
890
+ // Extra field length (m)
891
+ {
892
+ offset: 28,
893
+ size: 2,
894
+ default: 0,
895
+ name: "extraLength"
896
+ }
897
+ ];
737
898
 
738
- // src/hash-file-utility.ts
899
+ // src/parse-zip/zip-compozition.ts
900
+ var import_loader_utils5 = require("@loaders.gl/loader-utils");
739
901
  var import_crypto = require("@loaders.gl/crypto");
902
+ async function cutTheTailOff(provider) {
903
+ const oldEoCDinfo = await parseEoCDRecord(provider);
904
+ const oldCDStartOffset = oldEoCDinfo.cdStartOffset;
905
+ const oldCDLength = Number(
906
+ oldEoCDinfo.offsets.zip64EoCDOffset ? oldEoCDinfo.offsets.zip64EoCDOffset - oldCDStartOffset : oldEoCDinfo.offsets.zipEoCDOffset - oldCDStartOffset
907
+ );
908
+ const zipEnding = await provider.slice(oldCDStartOffset, provider.length);
909
+ await provider.truncate(Number(oldCDStartOffset));
910
+ const oldCDBody = zipEnding.slice(0, oldCDLength);
911
+ const eocdBody = zipEnding.slice(oldCDLength, zipEnding.byteLength);
912
+ return [oldCDBody, eocdBody, oldEoCDinfo];
913
+ }
914
+ async function generateFileHeaders(fileName, fileToAdd, localFileHeaderOffset) {
915
+ const newFileCRC322 = parseInt(await new import_crypto.CRC32Hash().hash(fileToAdd, "hex"), 16);
916
+ const newFileLocalHeader = generateLocalHeader({
917
+ crc32: newFileCRC322,
918
+ fileName,
919
+ length: fileToAdd.byteLength
920
+ });
921
+ const newFileCDHeader = generateCDHeader({
922
+ crc32: newFileCRC322,
923
+ fileName,
924
+ offset: localFileHeaderOffset,
925
+ length: fileToAdd.byteLength
926
+ });
927
+ return [
928
+ new Uint8Array((0, import_loader_utils5.concatenateArrayBuffers)(newFileLocalHeader, fileToAdd)),
929
+ new Uint8Array(newFileCDHeader)
930
+ ];
931
+ }
932
+ async function addOneFile(zipUrl, fileToAdd, fileName) {
933
+ const provider = new import_loader_utils5.FileHandleFile(zipUrl, true);
934
+ const [oldCDBody, eocdBody, oldEoCDinfo] = await cutTheTailOff(provider);
935
+ const newFileOffset = provider.length;
936
+ const [localPart, cdHeaderPart] = await generateFileHeaders(fileName, fileToAdd, newFileOffset);
937
+ await provider.append(localPart);
938
+ const newCDBody = (0, import_loader_utils5.concatenateArrayBuffers)(oldCDBody, cdHeaderPart);
939
+ const newCDStartOffset = provider.length;
940
+ await provider.append(new Uint8Array(newCDBody));
941
+ const eocdOffset = provider.length;
942
+ await provider.append(
943
+ await updateEoCD(
944
+ eocdBody,
945
+ oldEoCDinfo.offsets,
946
+ newCDStartOffset,
947
+ eocdOffset,
948
+ oldEoCDinfo.cdRecordsNumber + 1n
949
+ )
950
+ );
951
+ }
952
+
953
+ // src/hash-file-utility.ts
954
+ var import_crypto2 = require("@loaders.gl/crypto");
955
+ var import_loader_utils6 = require("@loaders.gl/loader-utils");
740
956
  function parseHashTable(arrayBuffer) {
741
957
  const dataView = new DataView(arrayBuffer);
742
958
  const hashMap = {};
@@ -752,7 +968,7 @@ function bufferToHex(buffer, start, length) {
752
968
  }
753
969
  async function makeHashTableFromZipHeaders(fileProvider) {
754
970
  const zipCDIterator = makeZipCDHeaderIterator(fileProvider);
755
- const md5Hash = new import_crypto.MD5Hash();
971
+ const md5Hash = new import_crypto2.MD5Hash();
756
972
  const textEncoder = new TextEncoder();
757
973
  const hashTable = {};
758
974
  for await (const cdHeader of zipCDIterator) {
@@ -763,11 +979,29 @@ async function makeHashTableFromZipHeaders(fileProvider) {
763
979
  }
764
980
  return hashTable;
765
981
  }
982
+ async function composeHashFile(fileProvider) {
983
+ const hashArray = await makeHashTableFromZipHeaders(fileProvider);
984
+ const bufferArray = Object.entries(hashArray).map(([key, value]) => (0, import_loader_utils6.concatenateArrayBuffers)(hexStringToBuffer(key), bigintToBuffer(value))).sort(compareHashes);
985
+ return (0, import_loader_utils6.concatenateArrayBuffersFromArray)(bufferArray);
986
+ }
987
+ function compareHashes(arrA, arrB) {
988
+ const a = new BigUint64Array(arrA);
989
+ const b = new BigUint64Array(arrB);
990
+ return Number(a[0] === b[0] ? a[1] - b[1] : a[0] - b[0]);
991
+ }
992
+ function hexStringToBuffer(str) {
993
+ var _a;
994
+ const byteArray = (_a = str.match(/../g)) == null ? void 0 : _a.map((h) => parseInt(h, 16));
995
+ return new Uint8Array(byteArray ?? new Array(16)).buffer;
996
+ }
997
+ function bigintToBuffer(n) {
998
+ return new BigUint64Array([n]).buffer;
999
+ }
766
1000
 
767
1001
  // src/filesystems/zip-filesystem.ts
768
- var import_loader_utils5 = require("@loaders.gl/loader-utils");
769
- var import_loader_utils6 = require("@loaders.gl/loader-utils");
770
1002
  var import_loader_utils7 = require("@loaders.gl/loader-utils");
1003
+ var import_loader_utils8 = require("@loaders.gl/loader-utils");
1004
+ var import_loader_utils9 = require("@loaders.gl/loader-utils");
771
1005
  var import_compression = require("@loaders.gl/compression");
772
1006
  var COMPRESSION_METHODS = {
773
1007
  /** No compression */
@@ -789,12 +1023,12 @@ var ZipFileSystem = class {
789
1023
  this.fileProvider = null;
790
1024
  if (typeof file === "string") {
791
1025
  this.fileName = file;
792
- if (!import_loader_utils5.isBrowser) {
793
- this.fileProvider = new import_loader_utils7.FileHandleFile(file);
1026
+ if (!import_loader_utils7.isBrowser) {
1027
+ this.fileProvider = new import_loader_utils9.FileHandleFile(file);
794
1028
  } else {
795
1029
  throw new Error("Cannot open file for random access in a WEB browser");
796
1030
  }
797
- } else if ((0, import_loader_utils6.isFileProvider)(file)) {
1031
+ } else if ((0, import_loader_utils8.isFileProvider)(file)) {
798
1032
  this.fileProvider = file;
799
1033
  }
800
1034
  }
package/dist/index.d.ts CHANGED
@@ -2,9 +2,10 @@ 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
- export { parseHashTable, makeHashTableFromZipHeaders } from './hash-file-utility';
8
+ export { addOneFile } from './parse-zip/zip-compozition';
9
+ export { parseHashTable, makeHashTableFromZipHeaders, composeHashFile } from './hash-file-utility';
9
10
  export { ZipFileSystem } from './filesystems/zip-filesystem';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,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,EAClC,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"}
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;AACjE,OAAO,EAAC,UAAU,EAAC,MAAM,6BAA6B,CAAC;AAGvD,OAAO,EAAC,cAAc,EAAE,2BAA2B,EAAE,eAAe,EAAC,MAAM,qBAAqB,CAAC;AAEjG,OAAO,EAAC,aAAa,EAAC,MAAM,8BAA8B,CAAC"}
package/dist/index.js CHANGED
@@ -2,9 +2,10 @@ 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
- export { parseHashTable, makeHashTableFromZipHeaders } from "./hash-file-utility.js";
8
+ export { addOneFile } from "./parse-zip/zip-compozition.js";
9
+ export { parseHashTable, makeHashTableFromZipHeaders, composeHashFile } from "./hash-file-utility.js";
9
10
  export { ZipFileSystem } from "./filesystems/zip-filesystem.js";
10
11
  //# sourceMappingURL=index.js.map
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, MIT license\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} 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":"SAGQA,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;AAAA,SAE3BC,eAAe;AAAA,SACfC,gBAAgB;AAAA,SAGhBC,cAAc,EAAEC,2BAA2B;AAAA,SAE3CC,aAAa"}
1
+ {"version":3,"file":"index.js","names":["ZipLoader","ZipWriter","TarBuilder","parseZipCDFileHeader","makeZipCDHeaderIterator","signature","CD_HEADER_SIGNATURE","generateCDHeader","parseZipLocalFileHeader","localHeaderSignature","generateLocalHeader","parseEoCDRecord","searchFromTheEnd","addOneFile","parseHashTable","makeHashTableFromZipHeaders","composeHashFile","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';\nexport {addOneFile} from './parse-zip/zip-compozition';\n\n// export type {HashElement} from './hash-file-utility';\nexport {parseHashTable, makeHashTableFromZipHeaders, composeHashFile} 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,SAChBC,UAAU;AAAA,SAGVC,cAAc,EAAEC,2BAA2B,EAAEC,eAAe;AAAA,SAE5DC,aAAa"}
@@ -1 +1 @@
1
- {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../src/lib/tar/header.ts"],"names":[],"mappings":"AAWA,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
+ {"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, MIT license\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":"OAUO,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
+ {"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":"AAYA,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"}
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"}
@@ -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, MIT license\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
+ {"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":"AAGA;;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
+ {"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, MIT license\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
+ {"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":"AASA;;;;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"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["clean","length","i","buffer","Uint8Array","pad","num","bytes","base","numStr","toString","substr","stringToUint8","input","out","offset","charCodeAt"],"sources":["../../../src/lib/tar/utils.ts"],"sourcesContent":["// loaders.gl, MIT license\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/**\n * Returns the memory area specified by length\n * @param length\n * @returns {Uint8Array}\n */\nexport function clean(length: number): Uint8Array {\n let i: number;\n const buffer = new Uint8Array(length);\n for (i = 0; i < length; i += 1) {\n buffer[i] = 0;\n }\n return buffer;\n}\n/**\n * Converting data to a string\n * @param num\n * @param bytes\n * @param base\n * @returns string\n */\nexport function pad(num: number, bytes: number, base?: number): string {\n const numStr = num.toString(base || 8);\n return '000000000000'.substr(numStr.length + 12 - bytes) + numStr;\n}\n/**\n * Converting input to binary data\n * @param input\n * @param out\n * @param offset\n * @returns {Uint8Array}\n */\nexport function stringToUint8(input: string, out?: Uint8Array, offset?: number): Uint8Array {\n let i: number;\n let length: number;\n\n out = out || clean(input.length);\n\n offset = offset || 0;\n for (i = 0, length = input.length; i < length; i += 1) {\n out[offset] = input.charCodeAt(i);\n offset += 1;\n }\n\n return out;\n}\n"],"mappings":"AAcA,OAAO,SAASA,KAAKA,CAACC,MAAc,EAAc;EAChD,IAAIC,CAAS;EACb,MAAMC,MAAM,GAAG,IAAIC,UAAU,CAACH,MAAM,CAAC;EACrC,KAAKC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,MAAM,EAAEC,CAAC,IAAI,CAAC,EAAE;IAC9BC,MAAM,CAACD,CAAC,CAAC,GAAG,CAAC;EACf;EACA,OAAOC,MAAM;AACf;AAQA,OAAO,SAASE,GAAGA,CAACC,GAAW,EAAEC,KAAa,EAAEC,IAAa,EAAU;EACrE,MAAMC,MAAM,GAAGH,GAAG,CAACI,QAAQ,CAACF,IAAI,IAAI,CAAC,CAAC;EACtC,OAAO,cAAc,CAACG,MAAM,CAACF,MAAM,CAACR,MAAM,GAAG,EAAE,GAAGM,KAAK,CAAC,GAAGE,MAAM;AACnE;AAQA,OAAO,SAASG,aAAaA,CAACC,KAAa,EAAEC,GAAgB,EAAEC,MAAe,EAAc;EAC1F,IAAIb,CAAS;EACb,IAAID,MAAc;EAElBa,GAAG,GAAGA,GAAG,IAAId,KAAK,CAACa,KAAK,CAACZ,MAAM,CAAC;EAEhCc,MAAM,GAAGA,MAAM,IAAI,CAAC;EACpB,KAAKb,CAAC,GAAG,CAAC,EAAED,MAAM,GAAGY,KAAK,CAACZ,MAAM,EAAEC,CAAC,GAAGD,MAAM,EAAEC,CAAC,IAAI,CAAC,EAAE;IACrDY,GAAG,CAACC,MAAM,CAAC,GAAGF,KAAK,CAACG,UAAU,CAACd,CAAC,CAAC;IACjCa,MAAM,IAAI,CAAC;EACb;EAEA,OAAOD,GAAG;AACZ"}
1
+ {"version":3,"file":"utils.js","names":["clean","length","i","buffer","Uint8Array","pad","num","bytes","base","numStr","toString","substr","stringToUint8","input","out","offset","charCodeAt"],"sources":["../../../src/lib/tar/utils.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/**\n * Returns the memory area specified by length\n * @param length\n * @returns {Uint8Array}\n */\nexport function clean(length: number): Uint8Array {\n let i: number;\n const buffer = new Uint8Array(length);\n for (i = 0; i < length; i += 1) {\n buffer[i] = 0;\n }\n return buffer;\n}\n/**\n * Converting data to a string\n * @param num\n * @param bytes\n * @param base\n * @returns string\n */\nexport function pad(num: number, bytes: number, base?: number): string {\n const numStr = num.toString(base || 8);\n return '000000000000'.substr(numStr.length + 12 - bytes) + numStr;\n}\n/**\n * Converting input to binary data\n * @param input\n * @param out\n * @param offset\n * @returns {Uint8Array}\n */\nexport function stringToUint8(input: string, out?: Uint8Array, offset?: number): Uint8Array {\n let i: number;\n let length: number;\n\n out = out || clean(input.length);\n\n offset = offset || 0;\n for (i = 0, length = input.length; i < length; i += 1) {\n out[offset] = input.charCodeAt(i);\n offset += 1;\n }\n\n return out;\n}\n"],"mappings":"AAeA,OAAO,SAASA,KAAKA,CAACC,MAAc,EAAc;EAChD,IAAIC,CAAS;EACb,MAAMC,MAAM,GAAG,IAAIC,UAAU,CAACH,MAAM,CAAC;EACrC,KAAKC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,MAAM,EAAEC,CAAC,IAAI,CAAC,EAAE;IAC9BC,MAAM,CAACD,CAAC,CAAC,GAAG,CAAC;EACf;EACA,OAAOC,MAAM;AACf;AAQA,OAAO,SAASE,GAAGA,CAACC,GAAW,EAAEC,KAAa,EAAEC,IAAa,EAAU;EACrE,MAAMC,MAAM,GAAGH,GAAG,CAACI,QAAQ,CAACF,IAAI,IAAI,CAAC,CAAC;EACtC,OAAO,cAAc,CAACG,MAAM,CAACF,MAAM,CAACR,MAAM,GAAG,EAAE,GAAGM,KAAK,CAAC,GAAGE,MAAM;AACnE;AAQA,OAAO,SAASG,aAAaA,CAACC,KAAa,EAAEC,GAAgB,EAAEC,MAAe,EAAc;EAC1F,IAAIb,CAAS;EACb,IAAID,MAAc;EAElBa,GAAG,GAAGA,GAAG,IAAId,KAAK,CAACa,KAAK,CAACZ,MAAM,CAAC;EAEhCc,MAAM,GAAGA,MAAM,IAAI,CAAC;EACpB,KAAKb,CAAC,GAAG,CAAC,EAAED,MAAM,GAAGY,KAAK,CAACZ,MAAM,EAAEC,CAAC,GAAGD,MAAM,EAAEC,CAAC,IAAI,CAAC,EAAE;IACrDY,GAAG,CAACC,MAAM,CAAC,GAAGF,KAAK,CAACG,UAAU,CAACd,CAAC,CAAC;IACjCa,MAAM,IAAI,CAAC;EACb;EAEA,OAAOD,GAAG;AACZ"}
@@ -42,7 +42,7 @@ type GenerateCDOptions = {
42
42
  /** File size */
43
43
  length: number;
44
44
  /** Relative offset of local file header */
45
- offset: number;
45
+ offset: bigint;
46
46
  };
47
47
  /**
48
48
  * generates cd header for the file
@@ -1 +1 @@
1
- {"version":3,"file":"cd-file-header.d.ts","sourceRoot":"","sources":["../../src/parse-zip/cd-file-header.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,YAAY,EAA+C,MAAM,0BAA0B,CAAC;AAEpG,OAAO,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAC;AAGnD;;;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;AAyBF,eAAO,MAAM,SAAS,EAAE,YAAuD,CAAC;AAEhF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,iBACjB,MAAM,QACd,YAAY,KACjB,QAAQ,eAAe,GAAG,IAAI,CA2ChC,CAAC;AAEF;;;GAGG;AACH,wBAAuB,uBAAuB,CAC5C,YAAY,EAAE,YAAY,GACzB,aAAa,CAAC,eAAe,CAAC,CAUhC;AAoED,6CAA6C;AAC7C,KAAK,iBAAiB,GAAG;IACvB,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,WAAW,CAsCxE"}
1
+ {"version":3,"file":"cd-file-header.d.ts","sourceRoot":"","sources":["../../src/parse-zip/cd-file-header.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,YAAY,EAA+C,MAAM,0BAA0B,CAAC;AAEpG,OAAO,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAC;AAGnD;;;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;AAyBF,eAAO,MAAM,SAAS,EAAE,YAAuD,CAAC;AAEhF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,iBACjB,MAAM,QACd,YAAY,KACjB,QAAQ,eAAe,GAAG,IAAI,CA2ChC,CAAC;AAEF;;;GAGG;AACH,wBAAuB,uBAAuB,CAC5C,YAAY,EAAE,YAAY,GACzB,aAAa,CAAC,eAAe,CAAC,CAUhC;AAoED,6CAA6C;AAC7C,KAAK,iBAAiB,GAAG;IACvB,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,WAAW,CAuCxE"}