@loaders.gl/3d-tiles 4.3.0-alpha.1 → 4.3.0-alpha.2
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/3d-tiles-archive-loader.js +1 -1
- package/dist/dist.dev.js +81 -55
- package/dist/dist.min.js +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +2 -2
- package/dist/lib/utils/version.js +1 -1
- package/package.json +11 -11
|
@@ -5,7 +5,7 @@ import { DataViewFile } from '@loaders.gl/loader-utils';
|
|
|
5
5
|
import { parse3DTilesArchive as parse3DTilesArchiveFromProvider } from "./3d-tiles-archive/3d-tiles-archive-parser.js";
|
|
6
6
|
// __VERSION__ is injected by babel-plugin-version-inline
|
|
7
7
|
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
|
8
|
-
const VERSION = typeof "4.
|
|
8
|
+
const VERSION = typeof "4.3.0-alpha.1" !== 'undefined' ? "4.3.0-alpha.1" : 'latest';
|
|
9
9
|
/**
|
|
10
10
|
* Loader for 3tz packages
|
|
11
11
|
*/
|
package/dist/dist.dev.js
CHANGED
|
@@ -20501,6 +20501,7 @@ var __exports__ = (() => {
|
|
|
20501
20501
|
};
|
|
20502
20502
|
|
|
20503
20503
|
// ../zip/src/parse-zip/search-from-the-end.ts
|
|
20504
|
+
var buffLength = 1024;
|
|
20504
20505
|
var searchFromTheEnd = async (file, target) => {
|
|
20505
20506
|
const searchWindow = [
|
|
20506
20507
|
await file.getUint8(file.length - 1n),
|
|
@@ -20508,18 +20509,25 @@ var __exports__ = (() => {
|
|
|
20508
20509
|
await file.getUint8(file.length - 3n),
|
|
20509
20510
|
void 0
|
|
20510
20511
|
];
|
|
20511
|
-
let targetOffset =
|
|
20512
|
-
|
|
20513
|
-
|
|
20514
|
-
|
|
20515
|
-
|
|
20516
|
-
|
|
20517
|
-
|
|
20518
|
-
|
|
20519
|
-
|
|
20512
|
+
let targetOffset = -1;
|
|
20513
|
+
let point = file.length - 4n;
|
|
20514
|
+
do {
|
|
20515
|
+
const prevPoint = point;
|
|
20516
|
+
point -= BigInt(buffLength);
|
|
20517
|
+
point = point >= 0n ? point : 0n;
|
|
20518
|
+
const buff = new Uint8Array(await file.slice(point, prevPoint));
|
|
20519
|
+
for (let i2 = buff.length - 1; i2 > -1; i2--) {
|
|
20520
|
+
searchWindow[3] = searchWindow[2];
|
|
20521
|
+
searchWindow[2] = searchWindow[1];
|
|
20522
|
+
searchWindow[1] = searchWindow[0];
|
|
20523
|
+
searchWindow[0] = buff[i2];
|
|
20524
|
+
if (searchWindow.every((val, index) => val === target[index])) {
|
|
20525
|
+
targetOffset = i2;
|
|
20526
|
+
break;
|
|
20527
|
+
}
|
|
20520
20528
|
}
|
|
20521
|
-
}
|
|
20522
|
-
return targetOffset;
|
|
20529
|
+
} while (targetOffset === -1 && point > 0n);
|
|
20530
|
+
return point + BigInt(targetOffset);
|
|
20523
20531
|
};
|
|
20524
20532
|
|
|
20525
20533
|
// ../zip/src/parse-zip/end-of-central-directory.ts
|
|
@@ -20527,13 +20535,16 @@ var __exports__ = (() => {
|
|
|
20527
20535
|
var zip64EoCDLocatorSignature = new Uint8Array([80, 75, 6, 7]);
|
|
20528
20536
|
var zip64EoCDSignature = new Uint8Array([80, 75, 6, 6]);
|
|
20529
20537
|
var CD_RECORDS_NUMBER_OFFSET = 8n;
|
|
20538
|
+
var CD_CD_BYTE_SIZE_OFFSET = 12n;
|
|
20530
20539
|
var CD_START_OFFSET_OFFSET = 16n;
|
|
20531
20540
|
var ZIP64_EOCD_START_OFFSET_OFFSET = 8n;
|
|
20532
20541
|
var ZIP64_CD_RECORDS_NUMBER_OFFSET = 24n;
|
|
20542
|
+
var ZIP64_CD_CD_BYTE_SIZE_OFFSET = 40n;
|
|
20533
20543
|
var ZIP64_CD_START_OFFSET_OFFSET = 48n;
|
|
20534
20544
|
var parseEoCDRecord = async (file) => {
|
|
20535
20545
|
const zipEoCDOffset = await searchFromTheEnd(file, eoCDSignature);
|
|
20536
20546
|
let cdRecordsNumber = BigInt(await file.getUint16(zipEoCDOffset + CD_RECORDS_NUMBER_OFFSET));
|
|
20547
|
+
let cdByteSize = BigInt(await file.getUint32(zipEoCDOffset + CD_CD_BYTE_SIZE_OFFSET));
|
|
20537
20548
|
let cdStartOffset = BigInt(await file.getUint32(zipEoCDOffset + CD_START_OFFSET_OFFSET));
|
|
20538
20549
|
let zip64EoCDLocatorOffset = zipEoCDOffset - 20n;
|
|
20539
20550
|
let zip64EoCDOffset = 0n;
|
|
@@ -20547,6 +20558,7 @@ var __exports__ = (() => {
|
|
|
20547
20558
|
throw new Error("zip64 EoCD not found");
|
|
20548
20559
|
}
|
|
20549
20560
|
cdRecordsNumber = await file.getBigUint64(zip64EoCDOffset + ZIP64_CD_RECORDS_NUMBER_OFFSET);
|
|
20561
|
+
cdByteSize = await file.getBigUint64(zip64EoCDOffset + ZIP64_CD_CD_BYTE_SIZE_OFFSET);
|
|
20550
20562
|
cdStartOffset = await file.getBigUint64(zip64EoCDOffset + ZIP64_CD_START_OFFSET_OFFSET);
|
|
20551
20563
|
} else {
|
|
20552
20564
|
zip64EoCDLocatorOffset = 0n;
|
|
@@ -20554,6 +20566,7 @@ var __exports__ = (() => {
|
|
|
20554
20566
|
return {
|
|
20555
20567
|
cdRecordsNumber,
|
|
20556
20568
|
cdStartOffset,
|
|
20569
|
+
cdByteSize,
|
|
20557
20570
|
offsets: {
|
|
20558
20571
|
zip64EoCDOffset,
|
|
20559
20572
|
zip64EoCDLocatorOffset,
|
|
@@ -20701,34 +20714,41 @@ var __exports__ = (() => {
|
|
|
20701
20714
|
];
|
|
20702
20715
|
|
|
20703
20716
|
// ../zip/src/parse-zip/cd-file-header.ts
|
|
20704
|
-
var CD_COMPRESSED_SIZE_OFFSET =
|
|
20705
|
-
var CD_UNCOMPRESSED_SIZE_OFFSET =
|
|
20706
|
-
var CD_FILE_NAME_LENGTH_OFFSET =
|
|
20707
|
-
var CD_EXTRA_FIELD_LENGTH_OFFSET =
|
|
20708
|
-
var CD_START_DISK_OFFSET =
|
|
20709
|
-
var CD_LOCAL_HEADER_OFFSET_OFFSET =
|
|
20717
|
+
var CD_COMPRESSED_SIZE_OFFSET = 20;
|
|
20718
|
+
var CD_UNCOMPRESSED_SIZE_OFFSET = 24;
|
|
20719
|
+
var CD_FILE_NAME_LENGTH_OFFSET = 28;
|
|
20720
|
+
var CD_EXTRA_FIELD_LENGTH_OFFSET = 30;
|
|
20721
|
+
var CD_START_DISK_OFFSET = 32;
|
|
20722
|
+
var CD_LOCAL_HEADER_OFFSET_OFFSET = 42;
|
|
20710
20723
|
var CD_FILE_NAME_OFFSET = 46n;
|
|
20711
20724
|
var signature = new Uint8Array([80, 75, 1, 2]);
|
|
20712
20725
|
var parseZipCDFileHeader = async (headerOffset, file) => {
|
|
20713
|
-
|
|
20726
|
+
if (headerOffset >= file.length) {
|
|
20727
|
+
return null;
|
|
20728
|
+
}
|
|
20729
|
+
const mainHeader = new DataView(
|
|
20730
|
+
await file.slice(headerOffset, headerOffset + CD_FILE_NAME_OFFSET)
|
|
20731
|
+
);
|
|
20732
|
+
const magicBytes = mainHeader.buffer.slice(0, 4);
|
|
20714
20733
|
if (!compareArrayBuffers(magicBytes, signature.buffer)) {
|
|
20715
20734
|
return null;
|
|
20716
20735
|
}
|
|
20717
|
-
const compressedSize = BigInt(
|
|
20718
|
-
const uncompressedSize = BigInt(
|
|
20719
|
-
const extraFieldLength =
|
|
20720
|
-
const startDisk = BigInt(
|
|
20721
|
-
const fileNameLength =
|
|
20722
|
-
const
|
|
20736
|
+
const compressedSize = BigInt(mainHeader.getUint32(CD_COMPRESSED_SIZE_OFFSET, true));
|
|
20737
|
+
const uncompressedSize = BigInt(mainHeader.getUint32(CD_UNCOMPRESSED_SIZE_OFFSET, true));
|
|
20738
|
+
const extraFieldLength = mainHeader.getUint16(CD_EXTRA_FIELD_LENGTH_OFFSET, true);
|
|
20739
|
+
const startDisk = BigInt(mainHeader.getUint16(CD_START_DISK_OFFSET, true));
|
|
20740
|
+
const fileNameLength = mainHeader.getUint16(CD_FILE_NAME_LENGTH_OFFSET, true);
|
|
20741
|
+
const additionalHeader = await file.slice(
|
|
20723
20742
|
headerOffset + CD_FILE_NAME_OFFSET,
|
|
20724
|
-
headerOffset + CD_FILE_NAME_OFFSET + BigInt(fileNameLength)
|
|
20743
|
+
headerOffset + CD_FILE_NAME_OFFSET + BigInt(fileNameLength + extraFieldLength)
|
|
20725
20744
|
);
|
|
20745
|
+
const filenameBytes = additionalHeader.slice(0, fileNameLength);
|
|
20726
20746
|
const fileName = new TextDecoder().decode(filenameBytes);
|
|
20727
20747
|
const extraOffset = headerOffset + CD_FILE_NAME_OFFSET + BigInt(fileNameLength);
|
|
20728
|
-
const oldFormatOffset =
|
|
20748
|
+
const oldFormatOffset = mainHeader.getUint32(CD_LOCAL_HEADER_OFFSET_OFFSET, true);
|
|
20729
20749
|
const localHeaderOffset = BigInt(oldFormatOffset);
|
|
20730
20750
|
const extraField = new DataView(
|
|
20731
|
-
|
|
20751
|
+
additionalHeader.slice(fileNameLength, additionalHeader.byteLength)
|
|
20732
20752
|
);
|
|
20733
20753
|
const zip64data = {
|
|
20734
20754
|
uncompressedSize,
|
|
@@ -20747,13 +20767,16 @@ var __exports__ = (() => {
|
|
|
20747
20767
|
};
|
|
20748
20768
|
};
|
|
20749
20769
|
async function* makeZipCDHeaderIterator(fileProvider) {
|
|
20750
|
-
const { cdStartOffset } = await parseEoCDRecord(fileProvider);
|
|
20751
|
-
|
|
20770
|
+
const { cdStartOffset, cdByteSize } = await parseEoCDRecord(fileProvider);
|
|
20771
|
+
const centralDirectory = new DataViewFile(
|
|
20772
|
+
new DataView(await fileProvider.slice(cdStartOffset, cdStartOffset + cdByteSize))
|
|
20773
|
+
);
|
|
20774
|
+
let cdHeader = await parseZipCDFileHeader(0n, centralDirectory);
|
|
20752
20775
|
while (cdHeader) {
|
|
20753
20776
|
yield cdHeader;
|
|
20754
20777
|
cdHeader = await parseZipCDFileHeader(
|
|
20755
20778
|
cdHeader.extraOffset + BigInt(cdHeader.extraFieldLength),
|
|
20756
|
-
|
|
20779
|
+
centralDirectory
|
|
20757
20780
|
);
|
|
20758
20781
|
}
|
|
20759
20782
|
}
|
|
@@ -20900,42 +20923,45 @@ var __exports__ = (() => {
|
|
|
20900
20923
|
];
|
|
20901
20924
|
|
|
20902
20925
|
// ../zip/src/parse-zip/local-file-header.ts
|
|
20903
|
-
var COMPRESSION_METHOD_OFFSET =
|
|
20904
|
-
var COMPRESSED_SIZE_OFFSET =
|
|
20905
|
-
var UNCOMPRESSED_SIZE_OFFSET =
|
|
20906
|
-
var FILE_NAME_LENGTH_OFFSET =
|
|
20907
|
-
var EXTRA_FIELD_LENGTH_OFFSET =
|
|
20926
|
+
var COMPRESSION_METHOD_OFFSET = 8;
|
|
20927
|
+
var COMPRESSED_SIZE_OFFSET = 18;
|
|
20928
|
+
var UNCOMPRESSED_SIZE_OFFSET = 22;
|
|
20929
|
+
var FILE_NAME_LENGTH_OFFSET = 26;
|
|
20930
|
+
var EXTRA_FIELD_LENGTH_OFFSET = 28;
|
|
20908
20931
|
var FILE_NAME_OFFSET = 30n;
|
|
20909
20932
|
var signature2 = new Uint8Array([80, 75, 3, 4]);
|
|
20910
|
-
var parseZipLocalFileHeader = async (headerOffset,
|
|
20911
|
-
const
|
|
20933
|
+
var parseZipLocalFileHeader = async (headerOffset, file) => {
|
|
20934
|
+
const mainHeader = new DataView(await file.slice(headerOffset, headerOffset + FILE_NAME_OFFSET));
|
|
20935
|
+
const magicBytes = mainHeader.buffer.slice(0, 4);
|
|
20912
20936
|
if (!compareArrayBuffers(magicBytes, signature2)) {
|
|
20913
20937
|
return null;
|
|
20914
20938
|
}
|
|
20915
|
-
const fileNameLength =
|
|
20916
|
-
const
|
|
20917
|
-
|
|
20918
|
-
|
|
20919
|
-
|
|
20920
|
-
|
|
20921
|
-
|
|
20922
|
-
const
|
|
20939
|
+
const fileNameLength = mainHeader.getUint16(FILE_NAME_LENGTH_OFFSET, true);
|
|
20940
|
+
const extraFieldLength = mainHeader.getUint16(EXTRA_FIELD_LENGTH_OFFSET, true);
|
|
20941
|
+
const additionalHeader = await file.slice(
|
|
20942
|
+
headerOffset + FILE_NAME_OFFSET,
|
|
20943
|
+
headerOffset + FILE_NAME_OFFSET + BigInt(fileNameLength + extraFieldLength)
|
|
20944
|
+
);
|
|
20945
|
+
const fileNameBuffer = additionalHeader.slice(0, fileNameLength);
|
|
20946
|
+
const extraDataBuffer = new DataView(
|
|
20947
|
+
additionalHeader.slice(fileNameLength, additionalHeader.byteLength)
|
|
20948
|
+
);
|
|
20949
|
+
const fileName = new TextDecoder().decode(fileNameBuffer).split("\\").join("/");
|
|
20923
20950
|
let fileDataOffset = headerOffset + FILE_NAME_OFFSET + BigInt(fileNameLength + extraFieldLength);
|
|
20924
|
-
const compressionMethod =
|
|
20925
|
-
let compressedSize = BigInt(
|
|
20926
|
-
let uncompressedSize = BigInt(
|
|
20927
|
-
|
|
20928
|
-
let offsetInZip64Data = 4n;
|
|
20951
|
+
const compressionMethod = mainHeader.getUint16(COMPRESSION_METHOD_OFFSET, true);
|
|
20952
|
+
let compressedSize = BigInt(mainHeader.getUint32(COMPRESSED_SIZE_OFFSET, true));
|
|
20953
|
+
let uncompressedSize = BigInt(mainHeader.getUint32(UNCOMPRESSED_SIZE_OFFSET, true));
|
|
20954
|
+
let offsetInZip64Data = 4;
|
|
20929
20955
|
if (uncompressedSize === BigInt(4294967295)) {
|
|
20930
|
-
uncompressedSize =
|
|
20931
|
-
offsetInZip64Data +=
|
|
20956
|
+
uncompressedSize = extraDataBuffer.getBigUint64(offsetInZip64Data, true);
|
|
20957
|
+
offsetInZip64Data += 8;
|
|
20932
20958
|
}
|
|
20933
20959
|
if (compressedSize === BigInt(4294967295)) {
|
|
20934
|
-
compressedSize =
|
|
20935
|
-
offsetInZip64Data +=
|
|
20960
|
+
compressedSize = extraDataBuffer.getBigUint64(offsetInZip64Data, true);
|
|
20961
|
+
offsetInZip64Data += 8;
|
|
20936
20962
|
}
|
|
20937
20963
|
if (fileDataOffset === BigInt(4294967295)) {
|
|
20938
|
-
fileDataOffset =
|
|
20964
|
+
fileDataOffset = extraDataBuffer.getBigUint64(offsetInZip64Data, true);
|
|
20939
20965
|
}
|
|
20940
20966
|
return {
|
|
20941
20967
|
fileNameLength,
|