@loaders.gl/i3s 4.0.0-alpha.20 → 4.0.0-alpha.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/dist.min.js CHANGED
@@ -1789,7 +1789,7 @@
1789
1789
  isFunction = (x) => typeof x === "function";
1790
1790
  isObject = (x) => x !== null && typeof x === "object";
1791
1791
  isPureObject = (x) => isObject(x) && x.constructor === {}.constructor;
1792
- isIterable = (x) => x && typeof x[Symbol.iterator] === "function";
1792
+ isIterable = (x) => Boolean(x) && typeof x[Symbol.iterator] === "function";
1793
1793
  isAsyncIterable = (x) => x && typeof x[Symbol.asyncIterator] === "function";
1794
1794
  isResponse = (x) => typeof Response !== "undefined" && x instanceof Response || x && x.arrayBuffer && x.text && x.json;
1795
1795
  isBlob = (x) => typeof Blob !== "undefined" && x instanceof Blob;
@@ -3347,26 +3347,26 @@
3347
3347
  context.response = { headers, ok, redirected, status, statusText, type, url };
3348
3348
  }
3349
3349
  data = await getArrayBufferOrStringFromData(data, loader, options);
3350
- if (loader.parseTextSync && typeof data === "string") {
3351
- options.dataType = "text";
3352
- return loader.parseTextSync(data, options, context, loader);
3350
+ const loaderWithParser = loader;
3351
+ if (loaderWithParser.parseTextSync && typeof data === "string") {
3352
+ return loaderWithParser.parseTextSync(data, options, context);
3353
3353
  }
3354
3354
  if (canParseWithWorker(loader, options)) {
3355
3355
  return await parseWithWorker(loader, data, options, context, parse);
3356
3356
  }
3357
- if (loader.parseText && typeof data === "string") {
3358
- return await loader.parseText(data, options, context, loader);
3357
+ if (loaderWithParser.parseText && typeof data === "string") {
3358
+ return await loaderWithParser.parseText(data, options, context);
3359
3359
  }
3360
- if (loader.parse) {
3361
- return await loader.parse(data, options, context, loader);
3360
+ if (loaderWithParser.parse) {
3361
+ return await loaderWithParser.parse(data, options, context);
3362
3362
  }
3363
- assert2(!loader.parseSync);
3363
+ assert2(!loaderWithParser.parseSync);
3364
3364
  throw new Error(`${loader.id} loader - no parser found and worker is disabled`);
3365
3365
  }
3366
3366
  var init_parse = __esm({
3367
3367
  "../core/src/lib/api/parse.ts"() {
3368
- init_src();
3369
3368
  init_src2();
3369
+ init_src();
3370
3370
  init_normalize_loader();
3371
3371
  init_is_type();
3372
3372
  init_option_utils();
@@ -10532,99 +10532,40 @@
10532
10532
  }
10533
10533
  });
10534
10534
 
10535
- // ../zip/src/parse-zip/cd-file-header.ts
10536
- var offsets, signature, parseZipCDFileHeader;
10537
- var init_cd_file_header = __esm({
10538
- "../zip/src/parse-zip/cd-file-header.ts"() {
10539
- offsets = {
10540
- CD_COMPRESSED_SIZE_OFFSET: 20n,
10541
- CD_UNCOMPRESSED_SIZE_OFFSET: 24n,
10542
- CD_FILE_NAME_LENGTH_OFFSET: 28n,
10543
- CD_EXTRA_FIELD_LENGTH_OFFSET: 30n,
10544
- CD_LOCAL_HEADER_OFFSET_OFFSET: 42n,
10545
- CD_FILE_NAME_OFFSET: 46n
10535
+ // ../zip/src/file-provider/data-view-file.ts
10536
+ var toNumber, DataViewFile;
10537
+ var init_data_view_file = __esm({
10538
+ "../zip/src/file-provider/data-view-file.ts"() {
10539
+ toNumber = (bigint) => {
10540
+ if (bigint > Number.MAX_SAFE_INTEGER) {
10541
+ throw new Error("Offset is out of bounds");
10542
+ }
10543
+ return Number(bigint);
10546
10544
  };
10547
- signature = [80, 75, 1, 2];
10548
- parseZipCDFileHeader = async (headerOffset, buffer) => {
10549
- if (Buffer.from(await buffer.slice(headerOffset, headerOffset + 4n)).compare(Buffer.from(signature)) !== 0) {
10550
- return null;
10545
+ DataViewFile = class {
10546
+ constructor(file) {
10547
+ this.file = file;
10551
10548
  }
10552
- let compressedSize = BigInt(await buffer.getUint32(headerOffset + offsets.CD_COMPRESSED_SIZE_OFFSET));
10553
- let uncompressedSize = BigInt(await buffer.getUint32(headerOffset + offsets.CD_UNCOMPRESSED_SIZE_OFFSET));
10554
- const extraFieldLength = await buffer.getUint16(headerOffset + offsets.CD_EXTRA_FIELD_LENGTH_OFFSET);
10555
- const fileNameLength = await buffer.getUint16(headerOffset + offsets.CD_FILE_NAME_LENGTH_OFFSET);
10556
- const fileName = new TextDecoder().decode(await buffer.slice(headerOffset + offsets.CD_FILE_NAME_OFFSET, headerOffset + offsets.CD_FILE_NAME_OFFSET + BigInt(fileNameLength)));
10557
- const extraOffset = headerOffset + offsets.CD_FILE_NAME_OFFSET + BigInt(fileNameLength);
10558
- const oldFormatOffset = await buffer.getUint32(headerOffset + offsets.CD_LOCAL_HEADER_OFFSET_OFFSET);
10559
- let fileDataOffset = BigInt(oldFormatOffset);
10560
- let offsetInZip64Data = 4n;
10561
- if (uncompressedSize === BigInt(4294967295)) {
10562
- uncompressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10563
- offsetInZip64Data += 8n;
10549
+ async destroy() {
10564
10550
  }
10565
- if (compressedSize === BigInt(4294967295)) {
10566
- compressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10567
- offsetInZip64Data += 8n;
10551
+ async getUint8(offset) {
10552
+ return this.file.getUint8(toNumber(offset));
10568
10553
  }
10569
- if (fileDataOffset === BigInt(4294967295)) {
10570
- fileDataOffset = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10554
+ async getUint16(offset) {
10555
+ return this.file.getUint16(toNumber(offset), true);
10571
10556
  }
10572
- const localHeaderOffset = fileDataOffset;
10573
- return {
10574
- compressedSize,
10575
- uncompressedSize,
10576
- extraFieldLength,
10577
- fileNameLength,
10578
- fileName,
10579
- extraOffset,
10580
- localHeaderOffset
10581
- };
10582
- };
10583
- }
10584
- });
10585
-
10586
- // ../zip/src/parse-zip/local-file-header.ts
10587
- var offsets2, signature2, parseZipLocalFileHeader;
10588
- var init_local_file_header = __esm({
10589
- "../zip/src/parse-zip/local-file-header.ts"() {
10590
- offsets2 = {
10591
- COMPRESSED_SIZE_OFFSET: 18n,
10592
- UNCOMPRESSED_SIZE_OFFSET: 22n,
10593
- FILE_NAME_LENGTH_OFFSET: 26n,
10594
- EXTRA_FIELD_LENGTH_OFFSET: 28n,
10595
- FILE_NAME_OFFSET: 30n
10596
- };
10597
- signature2 = Buffer.from([80, 75, 3, 4]);
10598
- parseZipLocalFileHeader = async (headerOffset, buffer) => {
10599
- if (Buffer.from(await buffer.slice(headerOffset, headerOffset + 4n)).compare(signature2) !== 0) {
10600
- return null;
10557
+ async getUint32(offset) {
10558
+ return this.file.getUint32(toNumber(offset), true);
10601
10559
  }
10602
- const fileNameLength = await buffer.getUint16(headerOffset + offsets2.FILE_NAME_LENGTH_OFFSET);
10603
- const fileName = new TextDecoder().decode(await buffer.slice(headerOffset + offsets2.FILE_NAME_OFFSET, headerOffset + offsets2.FILE_NAME_OFFSET + BigInt(fileNameLength))).split("\\").join("/");
10604
- const extraFieldLength = await buffer.getUint16(headerOffset + offsets2.EXTRA_FIELD_LENGTH_OFFSET);
10605
- let fileDataOffset = headerOffset + offsets2.FILE_NAME_OFFSET + BigInt(fileNameLength + extraFieldLength);
10606
- let compressedSize = BigInt(await buffer.getUint32(headerOffset + offsets2.COMPRESSED_SIZE_OFFSET));
10607
- let uncompressedSize = BigInt(await buffer.getUint32(headerOffset + offsets2.UNCOMPRESSED_SIZE_OFFSET));
10608
- const extraOffset = headerOffset + offsets2.FILE_NAME_OFFSET + BigInt(fileNameLength);
10609
- let offsetInZip64Data = 4n;
10610
- if (uncompressedSize === BigInt(4294967295)) {
10611
- uncompressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10612
- offsetInZip64Data += 8n;
10560
+ async getBigUint64(offset) {
10561
+ return this.file.getBigUint64(toNumber(offset), true);
10613
10562
  }
10614
- if (compressedSize === BigInt(4294967295)) {
10615
- compressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10616
- offsetInZip64Data += 8n;
10563
+ async slice(startOffset, endOffset) {
10564
+ return this.file.buffer.slice(toNumber(startOffset), toNumber(endOffset));
10617
10565
  }
10618
- if (fileDataOffset === BigInt(4294967295)) {
10619
- fileDataOffset = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10566
+ get length() {
10567
+ return BigInt(this.file.byteLength);
10620
10568
  }
10621
- return {
10622
- fileNameLength,
10623
- fileName,
10624
- extraFieldLength,
10625
- fileDataOffset,
10626
- compressedSize
10627
- };
10628
10569
  };
10629
10570
  }
10630
10571
  });
@@ -10657,35 +10598,33 @@
10657
10598
  });
10658
10599
 
10659
10600
  // ../zip/src/parse-zip/end-of-central-directory.ts
10660
- var eoCDSignature, zip64EoCDLocatorSignature, zip64EoCDSignature, offsets3, parseEoCDRecord;
10601
+ var eoCDSignature, zip64EoCDLocatorSignature, zip64EoCDSignature, CD_RECORDS_NUMBER_OFFSET, CD_START_OFFSET_OFFSET, ZIP64_EOCD_START_OFFSET_OFFSET, ZIP64_CD_RECORDS_NUMBER_OFFSET, ZIP64_CD_START_OFFSET_OFFSET, parseEoCDRecord;
10661
10602
  var init_end_of_central_directory = __esm({
10662
10603
  "../zip/src/parse-zip/end-of-central-directory.ts"() {
10663
10604
  init_search_from_the_end();
10664
10605
  eoCDSignature = [80, 75, 5, 6];
10665
10606
  zip64EoCDLocatorSignature = Buffer.from([80, 75, 6, 7]);
10666
10607
  zip64EoCDSignature = Buffer.from([80, 75, 6, 6]);
10667
- offsets3 = {
10668
- CD_RECORDS_NUMBER_OFFSET: 8n,
10669
- CD_START_OFFSET_OFFSET: 16n,
10670
- ZIP64_EOCD_START_OFFSET_OFFSET: 8n,
10671
- ZIP64_CD_RECORDS_NUMBER_OFFSET: 24n,
10672
- ZIP64_CD_START_OFFSET_OFFSET: 48n
10673
- };
10608
+ CD_RECORDS_NUMBER_OFFSET = 8n;
10609
+ CD_START_OFFSET_OFFSET = 16n;
10610
+ ZIP64_EOCD_START_OFFSET_OFFSET = 8n;
10611
+ ZIP64_CD_RECORDS_NUMBER_OFFSET = 24n;
10612
+ ZIP64_CD_START_OFFSET_OFFSET = 48n;
10674
10613
  parseEoCDRecord = async (fileProvider) => {
10675
10614
  const zipEoCDOffset = await searchFromTheEnd(fileProvider, eoCDSignature);
10676
- let cdRecordsNumber = BigInt(await fileProvider.getUint16(zipEoCDOffset + offsets3.CD_RECORDS_NUMBER_OFFSET));
10677
- let cdStartOffset = BigInt(await fileProvider.getUint32(zipEoCDOffset + offsets3.CD_START_OFFSET_OFFSET));
10615
+ let cdRecordsNumber = BigInt(await fileProvider.getUint16(zipEoCDOffset + CD_RECORDS_NUMBER_OFFSET));
10616
+ let cdStartOffset = BigInt(await fileProvider.getUint32(zipEoCDOffset + CD_START_OFFSET_OFFSET));
10678
10617
  if (cdStartOffset === BigInt(4294967295) || cdRecordsNumber === BigInt(4294967295)) {
10679
10618
  const zip64EoCDLocatorOffset = zipEoCDOffset - 20n;
10680
10619
  if (Buffer.from(await fileProvider.slice(zip64EoCDLocatorOffset, zip64EoCDLocatorOffset + 4n)).compare(zip64EoCDLocatorSignature) !== 0) {
10681
10620
  throw new Error("zip64 EoCD locator not found");
10682
10621
  }
10683
- const zip64EoCDOffset = await fileProvider.getBigUint64(zip64EoCDLocatorOffset + offsets3.ZIP64_EOCD_START_OFFSET_OFFSET);
10622
+ const zip64EoCDOffset = await fileProvider.getBigUint64(zip64EoCDLocatorOffset + ZIP64_EOCD_START_OFFSET_OFFSET);
10684
10623
  if (Buffer.from(await fileProvider.slice(zip64EoCDOffset, zip64EoCDOffset + 4n)).compare(zip64EoCDSignature) !== 0) {
10685
10624
  throw new Error("zip64 EoCD not found");
10686
10625
  }
10687
- cdRecordsNumber = await fileProvider.getBigUint64(zip64EoCDOffset + offsets3.ZIP64_CD_RECORDS_NUMBER_OFFSET);
10688
- cdStartOffset = await fileProvider.getBigUint64(zip64EoCDOffset + offsets3.ZIP64_CD_START_OFFSET_OFFSET);
10626
+ cdRecordsNumber = await fileProvider.getBigUint64(zip64EoCDOffset + ZIP64_CD_RECORDS_NUMBER_OFFSET);
10627
+ cdStartOffset = await fileProvider.getBigUint64(zip64EoCDOffset + ZIP64_CD_START_OFFSET_OFFSET);
10689
10628
  }
10690
10629
  return {
10691
10630
  cdRecordsNumber,
@@ -10695,101 +10634,111 @@
10695
10634
  }
10696
10635
  });
10697
10636
 
10698
- // ../zip/src/parse-zip/data-view-file.ts
10699
- var toNumber, DataViewFile;
10700
- var init_data_view_file = __esm({
10701
- "../zip/src/parse-zip/data-view-file.ts"() {
10702
- toNumber = (bigint) => {
10703
- if (bigint > Number.MAX_SAFE_INTEGER) {
10704
- throw new Error("Offset is out of bounds");
10705
- }
10706
- return Number(bigint);
10707
- };
10708
- DataViewFile = class {
10709
- constructor(file) {
10710
- this.file = file;
10711
- }
10712
- async getUint8(offset) {
10713
- return this.file.getUint8(toNumber(offset));
10714
- }
10715
- async getUint16(offset) {
10716
- return this.file.getUint16(toNumber(offset), true);
10717
- }
10718
- async getUint32(offset) {
10719
- return this.file.getUint32(toNumber(offset), true);
10637
+ // ../zip/src/parse-zip/cd-file-header.ts
10638
+ async function* zipCDFileHeaderGenerator(fileProvider) {
10639
+ const { cdStartOffset } = await parseEoCDRecord(fileProvider);
10640
+ let cdHeader = await parseZipCDFileHeader(cdStartOffset, fileProvider);
10641
+ while (cdHeader) {
10642
+ yield cdHeader;
10643
+ cdHeader = await parseZipCDFileHeader(cdHeader.extraOffset + BigInt(cdHeader.extraFieldLength), fileProvider);
10644
+ }
10645
+ }
10646
+ var CD_COMPRESSED_SIZE_OFFSET, CD_UNCOMPRESSED_SIZE_OFFSET, CD_FILE_NAME_LENGTH_OFFSET, CD_EXTRA_FIELD_LENGTH_OFFSET, CD_LOCAL_HEADER_OFFSET_OFFSET, CD_FILE_NAME_OFFSET, signature, parseZipCDFileHeader;
10647
+ var init_cd_file_header = __esm({
10648
+ "../zip/src/parse-zip/cd-file-header.ts"() {
10649
+ init_end_of_central_directory();
10650
+ CD_COMPRESSED_SIZE_OFFSET = 20n;
10651
+ CD_UNCOMPRESSED_SIZE_OFFSET = 24n;
10652
+ CD_FILE_NAME_LENGTH_OFFSET = 28n;
10653
+ CD_EXTRA_FIELD_LENGTH_OFFSET = 30n;
10654
+ CD_LOCAL_HEADER_OFFSET_OFFSET = 42n;
10655
+ CD_FILE_NAME_OFFSET = 46n;
10656
+ signature = [80, 75, 1, 2];
10657
+ parseZipCDFileHeader = async (headerOffset, buffer) => {
10658
+ if (Buffer.from(await buffer.slice(headerOffset, headerOffset + 4n)).compare(Buffer.from(signature)) !== 0) {
10659
+ return null;
10720
10660
  }
10721
- async getBigUint64(offset) {
10722
- return this.file.getBigUint64(toNumber(offset), true);
10661
+ let compressedSize = BigInt(await buffer.getUint32(headerOffset + CD_COMPRESSED_SIZE_OFFSET));
10662
+ let uncompressedSize = BigInt(await buffer.getUint32(headerOffset + CD_UNCOMPRESSED_SIZE_OFFSET));
10663
+ const extraFieldLength = await buffer.getUint16(headerOffset + CD_EXTRA_FIELD_LENGTH_OFFSET);
10664
+ const fileNameLength = await buffer.getUint16(headerOffset + CD_FILE_NAME_LENGTH_OFFSET);
10665
+ const fileName = new TextDecoder().decode(await buffer.slice(headerOffset + CD_FILE_NAME_OFFSET, headerOffset + CD_FILE_NAME_OFFSET + BigInt(fileNameLength)));
10666
+ const extraOffset = headerOffset + CD_FILE_NAME_OFFSET + BigInt(fileNameLength);
10667
+ const oldFormatOffset = await buffer.getUint32(headerOffset + CD_LOCAL_HEADER_OFFSET_OFFSET);
10668
+ let fileDataOffset = BigInt(oldFormatOffset);
10669
+ let offsetInZip64Data = 4n;
10670
+ if (uncompressedSize === BigInt(4294967295)) {
10671
+ uncompressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10672
+ offsetInZip64Data += 8n;
10723
10673
  }
10724
- async slice(startOffset, endOffset) {
10725
- return this.file.buffer.slice(toNumber(startOffset), toNumber(endOffset));
10674
+ if (compressedSize === BigInt(4294967295)) {
10675
+ compressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10676
+ offsetInZip64Data += 8n;
10726
10677
  }
10727
- get length() {
10728
- return BigInt(this.file.byteLength);
10678
+ if (fileDataOffset === BigInt(4294967295)) {
10679
+ fileDataOffset = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10729
10680
  }
10681
+ const localHeaderOffset = fileDataOffset;
10682
+ return {
10683
+ compressedSize,
10684
+ uncompressedSize,
10685
+ extraFieldLength,
10686
+ fileNameLength,
10687
+ fileName,
10688
+ extraOffset,
10689
+ localHeaderOffset
10690
+ };
10730
10691
  };
10731
10692
  }
10732
10693
  });
10733
10694
 
10734
- // ../zip/src/hash-file-utility.ts
10735
- var compareHashes, parseHashFile, findBin;
10736
- var init_hash_file_utility = __esm({
10737
- "../zip/src/hash-file-utility.ts"() {
10738
- compareHashes = (hash1, hash2) => {
10739
- const h1 = new BigUint64Array(hash1.buffer, hash1.byteOffset, 2);
10740
- const h2 = new BigUint64Array(hash2.buffer, hash2.byteOffset, 2);
10741
- const diff = h1[0] === h2[0] ? h1[1] - h2[1] : h1[0] - h2[0];
10742
- if (diff < 0n) {
10743
- return -1;
10744
- } else if (diff === 0n) {
10745
- return 0;
10695
+ // ../zip/src/parse-zip/local-file-header.ts
10696
+ var COMPRESSION_METHOD_OFFSET, COMPRESSED_SIZE_OFFSET, UNCOMPRESSED_SIZE_OFFSET, FILE_NAME_LENGTH_OFFSET, EXTRA_FIELD_LENGTH_OFFSET, FILE_NAME_OFFSET, signature2, parseZipLocalFileHeader;
10697
+ var init_local_file_header = __esm({
10698
+ "../zip/src/parse-zip/local-file-header.ts"() {
10699
+ COMPRESSION_METHOD_OFFSET = 8n;
10700
+ COMPRESSED_SIZE_OFFSET = 18n;
10701
+ UNCOMPRESSED_SIZE_OFFSET = 22n;
10702
+ FILE_NAME_LENGTH_OFFSET = 26n;
10703
+ EXTRA_FIELD_LENGTH_OFFSET = 28n;
10704
+ FILE_NAME_OFFSET = 30n;
10705
+ signature2 = Buffer.from([80, 75, 3, 4]);
10706
+ parseZipLocalFileHeader = async (headerOffset, buffer) => {
10707
+ if (Buffer.from(await buffer.slice(headerOffset, headerOffset + 4n)).compare(signature2) !== 0) {
10708
+ return null;
10746
10709
  }
10747
- return 1;
10748
- };
10749
- parseHashFile = (hashFile) => {
10750
- const hashFileBuffer = Buffer.from(hashFile);
10751
- const hashArray = [];
10752
- for (let i2 = 0; i2 < hashFileBuffer.buffer.byteLength; i2 = i2 + 24) {
10753
- const offsetBuffer = new DataView(hashFileBuffer.buffer.slice(hashFileBuffer.byteOffset + i2 + 16, hashFileBuffer.byteOffset + i2 + 24));
10754
- const offset = offsetBuffer.getBigUint64(offsetBuffer.byteOffset, true);
10755
- hashArray.push({
10756
- hash: Buffer.from(hashFileBuffer.subarray(hashFileBuffer.byteOffset + i2, hashFileBuffer.byteOffset + i2 + 16)),
10757
- offset
10758
- });
10710
+ const fileNameLength = await buffer.getUint16(headerOffset + FILE_NAME_LENGTH_OFFSET);
10711
+ const fileName = new TextDecoder().decode(await buffer.slice(headerOffset + FILE_NAME_OFFSET, headerOffset + FILE_NAME_OFFSET + BigInt(fileNameLength))).split("\\").join("/");
10712
+ const extraFieldLength = await buffer.getUint16(headerOffset + EXTRA_FIELD_LENGTH_OFFSET);
10713
+ let fileDataOffset = headerOffset + FILE_NAME_OFFSET + BigInt(fileNameLength + extraFieldLength);
10714
+ const compressionMethod = await buffer.getUint16(headerOffset + COMPRESSION_METHOD_OFFSET);
10715
+ let compressedSize = BigInt(await buffer.getUint32(headerOffset + COMPRESSED_SIZE_OFFSET));
10716
+ let uncompressedSize = BigInt(await buffer.getUint32(headerOffset + UNCOMPRESSED_SIZE_OFFSET));
10717
+ const extraOffset = headerOffset + FILE_NAME_OFFSET + BigInt(fileNameLength);
10718
+ let offsetInZip64Data = 4n;
10719
+ if (uncompressedSize === BigInt(4294967295)) {
10720
+ uncompressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10721
+ offsetInZip64Data += 8n;
10759
10722
  }
10760
- return hashArray;
10761
- };
10762
- findBin = (hashToSearch, hashArray) => {
10763
- let lowerBorder = 0;
10764
- let upperBorder = hashArray.length;
10765
- while (upperBorder - lowerBorder > 1) {
10766
- const middle = lowerBorder + Math.floor((upperBorder - lowerBorder) / 2);
10767
- const value = compareHashes(hashArray[middle].hash, hashToSearch);
10768
- if (value === 0) {
10769
- return hashArray[middle];
10770
- } else if (value < 0) {
10771
- lowerBorder = middle;
10772
- } else {
10773
- upperBorder = middle;
10774
- }
10723
+ if (compressedSize === BigInt(4294967295)) {
10724
+ compressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10725
+ offsetInZip64Data += 8n;
10775
10726
  }
10776
- return void 0;
10727
+ if (fileDataOffset === BigInt(4294967295)) {
10728
+ fileDataOffset = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10729
+ }
10730
+ return {
10731
+ fileNameLength,
10732
+ fileName,
10733
+ extraFieldLength,
10734
+ fileDataOffset,
10735
+ compressedSize,
10736
+ compressionMethod
10737
+ };
10777
10738
  };
10778
10739
  }
10779
10740
  });
10780
10741
 
10781
- // ../zip/src/index.ts
10782
- var init_src9 = __esm({
10783
- "../zip/src/index.ts"() {
10784
- init_cd_file_header();
10785
- init_local_file_header();
10786
- init_end_of_central_directory();
10787
- init_search_from_the_end();
10788
- init_data_view_file();
10789
- init_hash_file_utility();
10790
- }
10791
- });
10792
-
10793
10742
  // ../../node_modules/crypt/crypt.js
10794
10743
  var require_crypt = __commonJS({
10795
10744
  "../../node_modules/crypt/crypt.js"(exports, module) {
@@ -11028,6 +10977,78 @@
11028
10977
  }
11029
10978
  });
11030
10979
 
10980
+ // ../zip/src/hash-file-utility.ts
10981
+ var import_md5, compareHashes, parseHashFile, findBin, generateHashInfo;
10982
+ var init_hash_file_utility = __esm({
10983
+ "../zip/src/hash-file-utility.ts"() {
10984
+ import_md5 = __toModule(require_md5());
10985
+ init_cd_file_header();
10986
+ compareHashes = (hash1, hash2) => {
10987
+ const h1 = new BigUint64Array(hash1.buffer, hash1.byteOffset, 2);
10988
+ const h2 = new BigUint64Array(hash2.buffer, hash2.byteOffset, 2);
10989
+ const diff = h1[0] === h2[0] ? h1[1] - h2[1] : h1[0] - h2[0];
10990
+ if (diff < 0n) {
10991
+ return -1;
10992
+ } else if (diff === 0n) {
10993
+ return 0;
10994
+ }
10995
+ return 1;
10996
+ };
10997
+ parseHashFile = (hashFile) => {
10998
+ const hashFileBuffer = Buffer.from(hashFile);
10999
+ const hashArray = [];
11000
+ for (let i2 = 0; i2 < hashFileBuffer.buffer.byteLength; i2 = i2 + 24) {
11001
+ const offsetBuffer = new DataView(hashFileBuffer.buffer.slice(hashFileBuffer.byteOffset + i2 + 16, hashFileBuffer.byteOffset + i2 + 24));
11002
+ const offset = offsetBuffer.getBigUint64(offsetBuffer.byteOffset, true);
11003
+ hashArray.push({
11004
+ hash: Buffer.from(hashFileBuffer.subarray(hashFileBuffer.byteOffset + i2, hashFileBuffer.byteOffset + i2 + 16)),
11005
+ offset
11006
+ });
11007
+ }
11008
+ return hashArray;
11009
+ };
11010
+ findBin = (hashToSearch, hashArray) => {
11011
+ let lowerBorder = 0;
11012
+ let upperBorder = hashArray.length;
11013
+ while (upperBorder - lowerBorder > 1) {
11014
+ const middle = lowerBorder + Math.floor((upperBorder - lowerBorder) / 2);
11015
+ const value = compareHashes(hashArray[middle].hash, hashToSearch);
11016
+ if (value === 0) {
11017
+ return hashArray[middle];
11018
+ } else if (value < 0) {
11019
+ lowerBorder = middle;
11020
+ } else {
11021
+ upperBorder = middle;
11022
+ }
11023
+ }
11024
+ return void 0;
11025
+ };
11026
+ generateHashInfo = async (fileProvider) => {
11027
+ const zipCDIterator = zipCDFileHeaderGenerator(fileProvider);
11028
+ const hashInfo = [];
11029
+ for await (const cdHeader of zipCDIterator) {
11030
+ hashInfo.push({
11031
+ hash: Buffer.from((0, import_md5.default)(cdHeader.fileName.split("\\").join("/").toLocaleLowerCase()), "hex"),
11032
+ offset: cdHeader.localHeaderOffset
11033
+ });
11034
+ }
11035
+ hashInfo.sort((a2, b) => compareHashes(a2.hash, b.hash));
11036
+ return hashInfo;
11037
+ };
11038
+ }
11039
+ });
11040
+
11041
+ // ../zip/src/index.ts
11042
+ var init_src9 = __esm({
11043
+ "../zip/src/index.ts"() {
11044
+ init_data_view_file();
11045
+ init_cd_file_header();
11046
+ init_local_file_header();
11047
+ init_search_from_the_end();
11048
+ init_hash_file_utility();
11049
+ }
11050
+ });
11051
+
11031
11052
  // ../compression/src/lib/compression.ts
11032
11053
  var Compression;
11033
11054
  var init_compression = __esm({
@@ -15220,7 +15241,8 @@
15220
15241
  }
15221
15242
  const pakoOptions = this.options?.deflate || {};
15222
15243
  const inputArray = new Uint8Array(input);
15223
- return import_pako.default.deflate(inputArray, pakoOptions).buffer;
15244
+ const deflate = this.options?.raw ? import_pako.default.deflateRaw : import_pako.default.deflate;
15245
+ return deflate(inputArray, pakoOptions).buffer;
15224
15246
  }
15225
15247
  decompressSync(input) {
15226
15248
  if (!isBrowser && this.options.deflate?.useZlib) {
@@ -15229,7 +15251,8 @@
15229
15251
  }
15230
15252
  const pakoOptions = this.options?.deflate || {};
15231
15253
  const inputArray = new Uint8Array(input);
15232
- return import_pako.default.inflate(inputArray, pakoOptions).buffer;
15254
+ const inflate = this.options?.raw ? import_pako.default.inflateRaw : import_pako.default.inflate;
15255
+ return inflate(inputArray, pakoOptions).buffer;
15233
15256
  }
15234
15257
  async *compressBatches(asyncIterator) {
15235
15258
  const pakoOptions = this.options?.deflate || {};
@@ -15316,10 +15339,10 @@
15316
15339
  });
15317
15340
 
15318
15341
  // src/lib/parsers/parse-slpk/slpk-archieve.ts
15319
- var import_md5, PATH_DESCRIPTIONS, SLPKArchive;
15342
+ var import_md52, PATH_DESCRIPTIONS, SLPKArchive;
15320
15343
  var init_slpk_archieve = __esm({
15321
15344
  "src/lib/parsers/parse-slpk/slpk-archieve.ts"() {
15322
- import_md5 = __toModule(require_md5());
15345
+ import_md52 = __toModule(require_md5());
15323
15346
  init_src9();
15324
15347
  init_src10();
15325
15348
  PATH_DESCRIPTIONS = [
@@ -15405,7 +15428,7 @@
15405
15428
  return Buffer.from(data);
15406
15429
  }
15407
15430
  async getFileBytes(path) {
15408
- const nameHash = Buffer.from((0, import_md5.default)(path), "hex");
15431
+ const nameHash = Buffer.from((0, import_md52.default)(path), "hex");
15409
15432
  const fileInfo = findBin(nameHash, this.hashArray);
15410
15433
  if (!fileInfo) {
15411
15434
  return void 0;
@@ -15425,10 +15448,9 @@
15425
15448
  });
15426
15449
 
15427
15450
  // src/lib/parsers/parse-slpk/parse-slpk.ts
15428
- var import_md52, parseSLPK, generateHashInfo;
15451
+ var parseSLPK;
15429
15452
  var init_parse_slpk = __esm({
15430
15453
  "src/lib/parsers/parse-slpk/parse-slpk.ts"() {
15431
- import_md52 = __toModule(require_md5());
15432
15454
  init_src9();
15433
15455
  init_slpk_archieve();
15434
15456
  parseSLPK = async (fileProvider, cb) => {
@@ -15451,20 +15473,6 @@
15451
15473
  }
15452
15474
  return new SLPKArchive(fileProvider, hashData);
15453
15475
  };
15454
- generateHashInfo = async (fileProvider) => {
15455
- const { cdStartOffset } = await parseEoCDRecord(fileProvider);
15456
- let cdHeader = await parseZipCDFileHeader(cdStartOffset, fileProvider);
15457
- const hashInfo = [];
15458
- while (cdHeader) {
15459
- hashInfo.push({
15460
- hash: Buffer.from((0, import_md52.default)(cdHeader.fileName.split("\\").join("/").toLocaleLowerCase()), "hex"),
15461
- offset: cdHeader.localHeaderOffset
15462
- });
15463
- cdHeader = await parseZipCDFileHeader(cdHeader.extraOffset + BigInt(cdHeader.extraFieldLength), fileProvider);
15464
- }
15465
- hashInfo.sort((a2, b) => compareHashes(a2.hash, b.hash));
15466
- return hashInfo;
15467
- };
15468
15476
  }
15469
15477
  });
15470
15478
 
@@ -8,7 +8,7 @@ exports.ArcGisWebSceneLoader = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _parseArcgisWebscene = require("./lib/parsers/parse-arcgis-webscene");
11
- var VERSION = typeof "4.0.0-alpha.20" !== 'undefined' ? "4.0.0-alpha.20" : 'beta';
11
+ var VERSION = typeof "4.0.0-alpha.21" !== 'undefined' ? "4.0.0-alpha.21" : 'beta';
12
12
  var ArcGisWebSceneLoader = {
13
13
  name: 'ArcGIS Web Scene Loader',
14
14
  id: 'arcgis-web-scene',
@@ -15,7 +15,7 @@ var _parseI3sAttribute = require("./lib/parsers/parse-i3s-attribute");
15
15
  var _urlUtils = require("./lib/utils/url-utils");
16
16
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
17
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
18
- var VERSION = typeof "4.0.0-alpha.20" !== 'undefined' ? "4.0.0-alpha.20" : 'latest';
18
+ var VERSION = typeof "4.0.0-alpha.21" !== 'undefined' ? "4.0.0-alpha.21" : 'latest';
19
19
  var EMPTY_VALUE = '';
20
20
  var REJECTED_STATUS = 'rejected';
21
21
  var I3SAttributeLoader = {
@@ -8,7 +8,7 @@ exports.I3SBuildingSceneLayerLoader = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _parseI3sBuildingSceneLayer = require("./lib/parsers/parse-i3s-building-scene-layer");
11
- var VERSION = typeof "4.0.0-alpha.20" !== 'undefined' ? "4.0.0-alpha.20" : 'beta';
11
+ var VERSION = typeof "4.0.0-alpha.21" !== 'undefined' ? "4.0.0-alpha.21" : 'beta';
12
12
  var I3SBuildingSceneLayerLoader = {
13
13
  name: 'I3S Building Scene Layer',
14
14
  id: 'i3s-building-scene-layer',
@@ -8,7 +8,7 @@ exports.I3SContentLoader = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _parseI3sTileContent = require("./lib/parsers/parse-i3s-tile-content");
11
- var VERSION = typeof "4.0.0-alpha.20" !== 'undefined' ? "4.0.0-alpha.20" : 'beta';
11
+ var VERSION = typeof "4.0.0-alpha.21" !== 'undefined' ? "4.0.0-alpha.21" : 'beta';
12
12
  var I3SContentLoader = {
13
13
  name: 'I3S Content (Indexed Scene Layers)',
14
14
  id: 'i3s-content',
@@ -12,7 +12,7 @@ var _core = require("@loaders.gl/core");
12
12
  var _i3sContentLoader = require("./i3s-content-loader");
13
13
  var _parseI3s = require("./lib/parsers/parse-i3s");
14
14
  var _constants = require("./lib/parsers/constants");
15
- var VERSION = typeof "4.0.0-alpha.20" !== 'undefined' ? "4.0.0-alpha.20" : 'latest';
15
+ var VERSION = typeof "4.0.0-alpha.21" !== 'undefined' ? "4.0.0-alpha.21" : 'latest';
16
16
  var TILESET_REGEX = /layers\/[0-9]+$/;
17
17
  var TILE_HEADER_REGEX = /nodes\/([0-9-]+|root)$/;
18
18
  var SLPK_HEX = '504b0304';
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.I3SNodePageLoader = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
- var VERSION = typeof "4.0.0-alpha.20" !== 'undefined' ? "4.0.0-alpha.20" : 'latest';
10
+ var VERSION = typeof "4.0.0-alpha.21" !== 'undefined' ? "4.0.0-alpha.21" : 'latest';
11
11
  function parseNodePage(_x, _x2) {
12
12
  return _parseNodePage.apply(this, arguments);
13
13
  }
@@ -9,7 +9,7 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _zip = require("@loaders.gl/zip");
11
11
  var _parseSlpk = require("./lib/parsers/parse-slpk/parse-slpk");
12
- var VERSION = typeof "4.0.0-alpha.20" !== 'undefined' ? "4.0.0-alpha.20" : 'latest';
12
+ var VERSION = typeof "4.0.0-alpha.21" !== 'undefined' ? "4.0.0-alpha.21" : 'latest';
13
13
  var SLPKLoader = {
14
14
  name: 'I3S SLPK (Scene Layer Package)',
15
15
  id: 'slpk',