@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 +216 -208
- package/dist/es5/arcgis-webscene-loader.js +1 -1
- package/dist/es5/i3s-attribute-loader.js +1 -1
- package/dist/es5/i3s-building-scene-layer-loader.js +1 -1
- package/dist/es5/i3s-content-loader.js +1 -1
- package/dist/es5/i3s-loader.js +1 -1
- package/dist/es5/i3s-node-page-loader.js +1 -1
- package/dist/es5/i3s-slpk-loader.js +1 -1
- package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js +1 -48
- package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js.map +1 -1
- package/dist/esm/arcgis-webscene-loader.js +1 -1
- package/dist/esm/i3s-attribute-loader.js +1 -1
- package/dist/esm/i3s-building-scene-layer-loader.js +1 -1
- package/dist/esm/i3s-content-loader.js +1 -1
- package/dist/esm/i3s-loader.js +1 -1
- package/dist/esm/i3s-node-page-loader.js +1 -1
- package/dist/esm/i3s-slpk-loader.js +1 -1
- package/dist/esm/lib/parsers/parse-slpk/parse-slpk.js +1 -18
- package/dist/esm/lib/parsers/parse-slpk/parse-slpk.js.map +1 -1
- package/dist/i3s-content-worker-node.js +2 -2
- package/dist/i3s-content-worker-node.js.map +2 -2
- package/dist/i3s-content-worker.js +16 -16
- package/dist/lib/parsers/parse-slpk/parse-slpk.d.ts.map +1 -1
- package/dist/lib/parsers/parse-slpk/parse-slpk.js +1 -24
- package/package.json +9 -9
- package/src/lib/parsers/parse-slpk/parse-slpk.ts +2 -27
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
|
-
|
|
3351
|
-
|
|
3352
|
-
return
|
|
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 (
|
|
3358
|
-
return await
|
|
3357
|
+
if (loaderWithParser.parseText && typeof data === "string") {
|
|
3358
|
+
return await loaderWithParser.parseText(data, options, context);
|
|
3359
3359
|
}
|
|
3360
|
-
if (
|
|
3361
|
-
return await
|
|
3360
|
+
if (loaderWithParser.parse) {
|
|
3361
|
+
return await loaderWithParser.parse(data, options, context);
|
|
3362
3362
|
}
|
|
3363
|
-
assert2(!
|
|
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/
|
|
10536
|
-
var
|
|
10537
|
-
var
|
|
10538
|
-
"../zip/src/
|
|
10539
|
-
|
|
10540
|
-
|
|
10541
|
-
|
|
10542
|
-
|
|
10543
|
-
|
|
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
|
-
|
|
10548
|
-
|
|
10549
|
-
|
|
10550
|
-
return null;
|
|
10545
|
+
DataViewFile = class {
|
|
10546
|
+
constructor(file) {
|
|
10547
|
+
this.file = file;
|
|
10551
10548
|
}
|
|
10552
|
-
|
|
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
|
-
|
|
10566
|
-
|
|
10567
|
-
offsetInZip64Data += 8n;
|
|
10551
|
+
async getUint8(offset) {
|
|
10552
|
+
return this.file.getUint8(toNumber(offset));
|
|
10568
10553
|
}
|
|
10569
|
-
|
|
10570
|
-
|
|
10554
|
+
async getUint16(offset) {
|
|
10555
|
+
return this.file.getUint16(toNumber(offset), true);
|
|
10571
10556
|
}
|
|
10572
|
-
|
|
10573
|
-
|
|
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
|
-
|
|
10603
|
-
|
|
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
|
-
|
|
10615
|
-
|
|
10616
|
-
offsetInZip64Data += 8n;
|
|
10563
|
+
async slice(startOffset, endOffset) {
|
|
10564
|
+
return this.file.buffer.slice(toNumber(startOffset), toNumber(endOffset));
|
|
10617
10565
|
}
|
|
10618
|
-
|
|
10619
|
-
|
|
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,
|
|
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
|
-
|
|
10668
|
-
|
|
10669
|
-
|
|
10670
|
-
|
|
10671
|
-
|
|
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 +
|
|
10677
|
-
let cdStartOffset = BigInt(await fileProvider.getUint32(zipEoCDOffset +
|
|
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 +
|
|
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 +
|
|
10688
|
-
cdStartOffset = await fileProvider.getBigUint64(zip64EoCDOffset +
|
|
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/
|
|
10699
|
-
|
|
10700
|
-
|
|
10701
|
-
|
|
10702
|
-
|
|
10703
|
-
|
|
10704
|
-
|
|
10705
|
-
|
|
10706
|
-
|
|
10707
|
-
|
|
10708
|
-
|
|
10709
|
-
|
|
10710
|
-
|
|
10711
|
-
|
|
10712
|
-
|
|
10713
|
-
|
|
10714
|
-
|
|
10715
|
-
|
|
10716
|
-
|
|
10717
|
-
|
|
10718
|
-
|
|
10719
|
-
|
|
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
|
-
|
|
10722
|
-
|
|
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
|
-
|
|
10725
|
-
|
|
10674
|
+
if (compressedSize === BigInt(4294967295)) {
|
|
10675
|
+
compressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
|
|
10676
|
+
offsetInZip64Data += 8n;
|
|
10726
10677
|
}
|
|
10727
|
-
|
|
10728
|
-
|
|
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/
|
|
10735
|
-
var
|
|
10736
|
-
var
|
|
10737
|
-
"../zip/src/
|
|
10738
|
-
|
|
10739
|
-
|
|
10740
|
-
|
|
10741
|
-
|
|
10742
|
-
|
|
10743
|
-
|
|
10744
|
-
|
|
10745
|
-
|
|
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
|
-
|
|
10748
|
-
|
|
10749
|
-
|
|
10750
|
-
|
|
10751
|
-
const
|
|
10752
|
-
|
|
10753
|
-
|
|
10754
|
-
|
|
10755
|
-
|
|
10756
|
-
|
|
10757
|
-
|
|
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
|
-
|
|
10761
|
-
|
|
10762
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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,
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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',
|
package/dist/es5/i3s-loader.js
CHANGED
|
@@ -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.
|
|
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.
|
|
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.
|
|
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',
|