@loaders.gl/i3s 4.0.0-alpha.15 → 4.0.0-alpha.17
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 +282 -205
- 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/index.js.map +1 -1
- package/dist/es5/lib/parsers/constants.js +14 -15
- package/dist/es5/lib/parsers/constants.js.map +1 -1
- package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js +93 -29
- package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js.map +1 -1
- package/dist/es5/lib/parsers/parse-slpk/slpk-archieve.js +51 -30
- package/dist/es5/lib/parsers/parse-slpk/slpk-archieve.js.map +1 -1
- package/dist/es5/lib/parsers/parse-zip/cd-file-header.js +61 -42
- package/dist/es5/lib/parsers/parse-zip/cd-file-header.js.map +1 -1
- package/dist/es5/lib/parsers/parse-zip/end-of-central-directory.js +100 -0
- package/dist/es5/lib/parsers/parse-zip/end-of-central-directory.js.map +1 -0
- package/dist/es5/lib/parsers/parse-zip/local-file-header.js +1 -1
- package/dist/es5/lib/parsers/parse-zip/local-file-header.js.map +1 -1
- package/dist/es5/lib/parsers/parse-zip/search-from-the-end.js.map +1 -0
- package/dist/es5/types.js +1 -14
- package/dist/es5/types.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/index.js.map +1 -1
- package/dist/esm/lib/parsers/constants.js +14 -15
- package/dist/esm/lib/parsers/constants.js.map +1 -1
- package/dist/esm/lib/parsers/parse-slpk/parse-slpk.js +49 -16
- package/dist/esm/lib/parsers/parse-slpk/parse-slpk.js.map +1 -1
- package/dist/esm/lib/parsers/parse-slpk/slpk-archieve.js +35 -18
- package/dist/esm/lib/parsers/parse-slpk/slpk-archieve.js.map +1 -1
- package/dist/esm/lib/parsers/parse-zip/cd-file-header.js +14 -8
- package/dist/esm/lib/parsers/parse-zip/cd-file-header.js.map +1 -1
- package/dist/esm/lib/parsers/parse-zip/end-of-central-directory.js +33 -0
- package/dist/esm/lib/parsers/parse-zip/end-of-central-directory.js.map +1 -0
- package/dist/esm/lib/parsers/parse-zip/local-file-header.js +1 -1
- package/dist/esm/lib/parsers/parse-zip/local-file-header.js.map +1 -1
- package/dist/esm/lib/parsers/parse-zip/search-from-the-end.js.map +1 -0
- package/dist/esm/types.js +0 -12
- package/dist/esm/types.js.map +1 -1
- package/dist/i3s-content-worker-node.js +47 -47
- package/dist/i3s-content-worker-node.js.map +2 -2
- package/dist/i3s-content-worker.js +26 -42
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/parsers/constants.d.ts.map +1 -1
- package/dist/lib/parsers/constants.js +14 -15
- package/dist/lib/parsers/parse-slpk/parse-slpk.d.ts +2 -1
- package/dist/lib/parsers/parse-slpk/parse-slpk.d.ts.map +1 -1
- package/dist/lib/parsers/parse-slpk/parse-slpk.js +61 -15
- package/dist/lib/parsers/parse-slpk/slpk-archieve.d.ts +21 -10
- package/dist/lib/parsers/parse-slpk/slpk-archieve.d.ts.map +1 -1
- package/dist/lib/parsers/parse-slpk/slpk-archieve.js +53 -24
- package/dist/lib/parsers/parse-zip/cd-file-header.d.ts +5 -1
- package/dist/lib/parsers/parse-zip/cd-file-header.d.ts.map +1 -1
- package/dist/lib/parsers/parse-zip/cd-file-header.js +15 -9
- package/dist/lib/parsers/parse-zip/end-of-central-directory.d.ts +18 -0
- package/dist/lib/parsers/parse-zip/end-of-central-directory.d.ts.map +1 -0
- package/dist/lib/parsers/parse-zip/end-of-central-directory.js +41 -0
- package/dist/lib/parsers/parse-zip/local-file-header.d.ts +1 -1
- package/dist/lib/parsers/parse-zip/local-file-header.d.ts.map +1 -1
- package/dist/lib/parsers/parse-zip/local-file-header.js +1 -1
- package/dist/lib/parsers/parse-zip/search-from-the-end.d.ts.map +1 -0
- package/dist/types.d.ts +17 -24
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -13
- package/package.json +9 -9
- package/src/index.ts +0 -1
- package/src/lib/parsers/constants.ts +14 -15
- package/src/lib/parsers/parse-slpk/parse-slpk.ts +79 -25
- package/src/lib/parsers/parse-slpk/slpk-archieve.ts +55 -37
- package/src/lib/parsers/parse-zip/cd-file-header.ts +27 -9
- package/src/lib/parsers/parse-zip/end-of-central-directory.ts +78 -0
- package/src/lib/parsers/parse-zip/local-file-header.ts +2 -2
- package/src/types.ts +25 -40
- package/dist/es5/lib/parsers/parse-slpk/search-from-the-end.js.map +0 -1
- package/dist/esm/lib/parsers/parse-slpk/search-from-the-end.js.map +0 -1
- package/dist/lib/parsers/parse-slpk/search-from-the-end.d.ts.map +0 -1
- /package/dist/es5/lib/parsers/{parse-slpk → parse-zip}/search-from-the-end.js +0 -0
- /package/dist/esm/lib/parsers/{parse-slpk → parse-zip}/search-from-the-end.js +0 -0
- /package/dist/lib/parsers/{parse-slpk → parse-zip}/search-from-the-end.d.ts +0 -0
- /package/dist/lib/parsers/{parse-slpk → parse-zip}/search-from-the-end.js +0 -0
- /package/src/lib/parsers/{parse-slpk → parse-zip}/search-from-the-end.ts +0 -0
package/dist/dist.min.js
CHANGED
|
@@ -652,40 +652,18 @@
|
|
|
652
652
|
}
|
|
653
653
|
});
|
|
654
654
|
|
|
655
|
-
// src/types.ts
|
|
656
|
-
var DATA_TYPE, HeaderAttributeProperty;
|
|
657
|
-
var init_types = __esm({
|
|
658
|
-
"src/types.ts"() {
|
|
659
|
-
(function(DATA_TYPE2) {
|
|
660
|
-
DATA_TYPE2["UInt8"] = "UInt8";
|
|
661
|
-
DATA_TYPE2["UInt16"] = "UInt16";
|
|
662
|
-
DATA_TYPE2["UInt32"] = "UInt32";
|
|
663
|
-
DATA_TYPE2["UInt64"] = "UInt64";
|
|
664
|
-
DATA_TYPE2["Int16"] = "Int16";
|
|
665
|
-
DATA_TYPE2["Int32"] = "Int32";
|
|
666
|
-
DATA_TYPE2["Int64"] = "Int64";
|
|
667
|
-
DATA_TYPE2["Float32"] = "Float32";
|
|
668
|
-
DATA_TYPE2["Float64"] = "Float64";
|
|
669
|
-
})(DATA_TYPE || (DATA_TYPE = {}));
|
|
670
|
-
(function(HeaderAttributeProperty2) {
|
|
671
|
-
HeaderAttributeProperty2["vertexCount"] = "vertexCount";
|
|
672
|
-
HeaderAttributeProperty2["featureCount"] = "featureCount";
|
|
673
|
-
})(HeaderAttributeProperty || (HeaderAttributeProperty = {}));
|
|
674
|
-
}
|
|
675
|
-
});
|
|
676
|
-
|
|
677
655
|
// src/lib/parsers/constants.ts
|
|
678
656
|
function getConstructorForDataFormat(dataType) {
|
|
679
657
|
switch (dataType) {
|
|
680
|
-
case
|
|
658
|
+
case "UInt8":
|
|
681
659
|
return Uint8Array;
|
|
682
|
-
case
|
|
660
|
+
case "UInt16":
|
|
683
661
|
return Uint16Array;
|
|
684
|
-
case
|
|
662
|
+
case "UInt32":
|
|
685
663
|
return Uint32Array;
|
|
686
|
-
case
|
|
664
|
+
case "Float32":
|
|
687
665
|
return Float32Array;
|
|
688
|
-
case
|
|
666
|
+
case "UInt64":
|
|
689
667
|
return Float64Array;
|
|
690
668
|
default:
|
|
691
669
|
throw new Error(`parse i3s tile content: unknown type of data: ${dataType}`);
|
|
@@ -693,18 +671,18 @@
|
|
|
693
671
|
}
|
|
694
672
|
function sizeOf(dataType) {
|
|
695
673
|
switch (dataType) {
|
|
696
|
-
case
|
|
674
|
+
case "UInt8":
|
|
697
675
|
return 1;
|
|
698
|
-
case
|
|
699
|
-
case
|
|
676
|
+
case "UInt16":
|
|
677
|
+
case "Int16":
|
|
700
678
|
return 2;
|
|
701
|
-
case
|
|
702
|
-
case
|
|
703
|
-
case
|
|
679
|
+
case "UInt32":
|
|
680
|
+
case "Int32":
|
|
681
|
+
case "Float32":
|
|
704
682
|
return 4;
|
|
705
|
-
case
|
|
706
|
-
case
|
|
707
|
-
case
|
|
683
|
+
case "UInt64":
|
|
684
|
+
case "Int64":
|
|
685
|
+
case "Float64":
|
|
708
686
|
return 8;
|
|
709
687
|
default:
|
|
710
688
|
throw new Error(`parse i3s tile content: unknown size of data: ${dataType}`);
|
|
@@ -714,7 +692,6 @@
|
|
|
714
692
|
var init_constants = __esm({
|
|
715
693
|
"src/lib/parsers/constants.ts"() {
|
|
716
694
|
init_esm();
|
|
717
|
-
init_types();
|
|
718
695
|
GL_TYPE_MAP = {
|
|
719
696
|
UInt8: esm_default.UNSIGNED_BYTE,
|
|
720
697
|
UInt16: esm_default.UNSIGNED_SHORT,
|
|
@@ -1989,16 +1966,12 @@
|
|
|
1989
1966
|
});
|
|
1990
1967
|
|
|
1991
1968
|
// ../core/src/lib/fetch/fetch-file.ts
|
|
1992
|
-
async function fetchFile(
|
|
1993
|
-
if (typeof
|
|
1994
|
-
url = resolvePath(
|
|
1995
|
-
let fetchOptions = options;
|
|
1996
|
-
if (options?.fetch && typeof options?.fetch !== "function") {
|
|
1997
|
-
fetchOptions = options.fetch;
|
|
1998
|
-
}
|
|
1969
|
+
async function fetchFile(urlOrData, fetchOptions) {
|
|
1970
|
+
if (typeof urlOrData === "string") {
|
|
1971
|
+
const url = resolvePath(urlOrData);
|
|
1999
1972
|
return await fetch(url, fetchOptions);
|
|
2000
1973
|
}
|
|
2001
|
-
return await makeResponse(
|
|
1974
|
+
return await makeResponse(urlOrData);
|
|
2002
1975
|
}
|
|
2003
1976
|
var init_fetch_file = __esm({
|
|
2004
1977
|
"../core/src/lib/fetch/fetch-file.ts"() {
|
|
@@ -8833,6 +8806,17 @@
|
|
|
8833
8806
|
}
|
|
8834
8807
|
});
|
|
8835
8808
|
|
|
8809
|
+
// src/types.ts
|
|
8810
|
+
var HeaderAttributeProperty;
|
|
8811
|
+
var init_types = __esm({
|
|
8812
|
+
"src/types.ts"() {
|
|
8813
|
+
(function(HeaderAttributeProperty2) {
|
|
8814
|
+
HeaderAttributeProperty2["vertexCount"] = "vertexCount";
|
|
8815
|
+
HeaderAttributeProperty2["featureCount"] = "featureCount";
|
|
8816
|
+
})(HeaderAttributeProperty || (HeaderAttributeProperty = {}));
|
|
8817
|
+
}
|
|
8818
|
+
});
|
|
8819
|
+
|
|
8836
8820
|
// src/lib/utils/url-utils.ts
|
|
8837
8821
|
function getUrlWithToken(url, token = null) {
|
|
8838
8822
|
return token ? `${url}?token=${token}` : url;
|
|
@@ -10491,124 +10475,6 @@
|
|
|
10491
10475
|
}
|
|
10492
10476
|
});
|
|
10493
10477
|
|
|
10494
|
-
// src/lib/parsers/parse-zip/cd-file-header.ts
|
|
10495
|
-
var parseZipCDFileHeader;
|
|
10496
|
-
var init_cd_file_header = __esm({
|
|
10497
|
-
"src/lib/parsers/parse-zip/cd-file-header.ts"() {
|
|
10498
|
-
parseZipCDFileHeader = async (headerOffset, buffer) => {
|
|
10499
|
-
const offsets2 = {
|
|
10500
|
-
CD_COMPRESSED_SIZE_OFFSET: 20n,
|
|
10501
|
-
CD_UNCOMPRESSED_SIZE_OFFSET: 24n,
|
|
10502
|
-
CD_FILE_NAME_LENGTH_OFFSET: 28n,
|
|
10503
|
-
CD_EXTRA_FIELD_LENGTH_OFFSET: 30n,
|
|
10504
|
-
CD_LOCAL_HEADER_OFFSET_OFFSET: 42n,
|
|
10505
|
-
CD_FILE_NAME_OFFSET: 46n
|
|
10506
|
-
};
|
|
10507
|
-
let compressedSize = BigInt(await buffer.getUint32(headerOffset + offsets2.CD_COMPRESSED_SIZE_OFFSET));
|
|
10508
|
-
let uncompressedSize = BigInt(await buffer.getUint32(headerOffset + offsets2.CD_UNCOMPRESSED_SIZE_OFFSET));
|
|
10509
|
-
const fileNameLength = await buffer.getUint16(headerOffset + offsets2.CD_FILE_NAME_LENGTH_OFFSET);
|
|
10510
|
-
const fileName = new TextDecoder().decode(await buffer.slice(headerOffset + offsets2.CD_FILE_NAME_OFFSET, headerOffset + offsets2.CD_FILE_NAME_OFFSET + BigInt(fileNameLength)));
|
|
10511
|
-
const extraOffset = headerOffset + offsets2.CD_FILE_NAME_OFFSET + BigInt(fileNameLength);
|
|
10512
|
-
const oldFormatOffset = await buffer.getUint32(headerOffset + offsets2.CD_LOCAL_HEADER_OFFSET_OFFSET);
|
|
10513
|
-
let fileDataOffset = BigInt(oldFormatOffset);
|
|
10514
|
-
let offsetInZip64Data = 4n;
|
|
10515
|
-
if (uncompressedSize === BigInt(4294967295)) {
|
|
10516
|
-
uncompressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
|
|
10517
|
-
offsetInZip64Data += 8n;
|
|
10518
|
-
}
|
|
10519
|
-
if (compressedSize === BigInt(4294967295)) {
|
|
10520
|
-
compressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
|
|
10521
|
-
offsetInZip64Data += 8n;
|
|
10522
|
-
}
|
|
10523
|
-
if (fileDataOffset === BigInt(4294967295)) {
|
|
10524
|
-
fileDataOffset = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
|
|
10525
|
-
}
|
|
10526
|
-
const localHeaderOffset = fileDataOffset;
|
|
10527
|
-
return {
|
|
10528
|
-
compressedSize,
|
|
10529
|
-
uncompressedSize,
|
|
10530
|
-
fileNameLength,
|
|
10531
|
-
fileName,
|
|
10532
|
-
extraOffset,
|
|
10533
|
-
localHeaderOffset
|
|
10534
|
-
};
|
|
10535
|
-
};
|
|
10536
|
-
}
|
|
10537
|
-
});
|
|
10538
|
-
|
|
10539
|
-
// src/lib/parsers/parse-zip/local-file-header.ts
|
|
10540
|
-
var offsets, signature, parseZipLocalFileHeader;
|
|
10541
|
-
var init_local_file_header = __esm({
|
|
10542
|
-
"src/lib/parsers/parse-zip/local-file-header.ts"() {
|
|
10543
|
-
offsets = {
|
|
10544
|
-
COMPRESSED_SIZE_OFFSET: 18n,
|
|
10545
|
-
UNCOMPRESSED_SIZE_OFFSET: 22n,
|
|
10546
|
-
FILE_NAME_LENGTH_OFFSET: 26n,
|
|
10547
|
-
EXTRA_FIELD_LENGTH_OFFSET: 28n,
|
|
10548
|
-
FILE_NAME_OFFSET: 30n
|
|
10549
|
-
};
|
|
10550
|
-
signature = Buffer.from([80, 75, 3, 4]);
|
|
10551
|
-
parseZipLocalFileHeader = async (headerOffset, buffer) => {
|
|
10552
|
-
if (Buffer.from(await buffer.slice(headerOffset, headerOffset + 4n)).compare(signature) !== 0) {
|
|
10553
|
-
return Promise.resolve(void 0);
|
|
10554
|
-
}
|
|
10555
|
-
const fileNameLength = await buffer.getUint16(headerOffset + offsets.FILE_NAME_LENGTH_OFFSET);
|
|
10556
|
-
const fileName = new TextDecoder().decode(await buffer.slice(headerOffset + offsets.FILE_NAME_OFFSET, headerOffset + offsets.FILE_NAME_OFFSET + BigInt(fileNameLength))).split("\\").join("/");
|
|
10557
|
-
const extraFieldLength = await buffer.getUint16(headerOffset + offsets.EXTRA_FIELD_LENGTH_OFFSET);
|
|
10558
|
-
let fileDataOffset = headerOffset + offsets.FILE_NAME_OFFSET + BigInt(fileNameLength + extraFieldLength);
|
|
10559
|
-
let compressedSize = BigInt(await buffer.getUint32(headerOffset + offsets.COMPRESSED_SIZE_OFFSET));
|
|
10560
|
-
let uncompressedSize = BigInt(await buffer.getUint32(headerOffset + offsets.UNCOMPRESSED_SIZE_OFFSET));
|
|
10561
|
-
const extraOffset = headerOffset + offsets.FILE_NAME_OFFSET + BigInt(fileNameLength);
|
|
10562
|
-
let offsetInZip64Data = 4n;
|
|
10563
|
-
if (uncompressedSize === BigInt(4294967295)) {
|
|
10564
|
-
uncompressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
|
|
10565
|
-
offsetInZip64Data += 8n;
|
|
10566
|
-
}
|
|
10567
|
-
if (compressedSize === BigInt(4294967295)) {
|
|
10568
|
-
compressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
|
|
10569
|
-
offsetInZip64Data += 8n;
|
|
10570
|
-
}
|
|
10571
|
-
if (fileDataOffset === BigInt(4294967295)) {
|
|
10572
|
-
fileDataOffset = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
|
|
10573
|
-
}
|
|
10574
|
-
return {
|
|
10575
|
-
fileNameLength,
|
|
10576
|
-
fileName,
|
|
10577
|
-
extraFieldLength,
|
|
10578
|
-
fileDataOffset,
|
|
10579
|
-
compressedSize
|
|
10580
|
-
};
|
|
10581
|
-
};
|
|
10582
|
-
}
|
|
10583
|
-
});
|
|
10584
|
-
|
|
10585
|
-
// src/lib/parsers/parse-slpk/search-from-the-end.ts
|
|
10586
|
-
var searchFromTheEnd;
|
|
10587
|
-
var init_search_from_the_end = __esm({
|
|
10588
|
-
"src/lib/parsers/parse-slpk/search-from-the-end.ts"() {
|
|
10589
|
-
searchFromTheEnd = async (file, target) => {
|
|
10590
|
-
const searchWindow = [
|
|
10591
|
-
await file.getUint8(file.length - 1n),
|
|
10592
|
-
await file.getUint8(file.length - 2n),
|
|
10593
|
-
await file.getUint8(file.length - 3n),
|
|
10594
|
-
void 0
|
|
10595
|
-
];
|
|
10596
|
-
let targetOffset = 0n;
|
|
10597
|
-
for (let i2 = file.length - 4n; i2 > -1; i2--) {
|
|
10598
|
-
searchWindow[3] = searchWindow[2];
|
|
10599
|
-
searchWindow[2] = searchWindow[1];
|
|
10600
|
-
searchWindow[1] = searchWindow[0];
|
|
10601
|
-
searchWindow[0] = await file.getUint8(i2);
|
|
10602
|
-
if (searchWindow.every((val, index) => val === target[index])) {
|
|
10603
|
-
targetOffset = i2;
|
|
10604
|
-
break;
|
|
10605
|
-
}
|
|
10606
|
-
}
|
|
10607
|
-
return targetOffset;
|
|
10608
|
-
};
|
|
10609
|
-
}
|
|
10610
|
-
});
|
|
10611
|
-
|
|
10612
10478
|
// ../../node_modules/crypt/crypt.js
|
|
10613
10479
|
var require_crypt = __commonJS({
|
|
10614
10480
|
"../../node_modules/crypt/crypt.js"(exports, module) {
|
|
@@ -10729,7 +10595,7 @@
|
|
|
10729
10595
|
var require_md5 = __commonJS({
|
|
10730
10596
|
"../../node_modules/md5/md5.js"(exports, module) {
|
|
10731
10597
|
(function() {
|
|
10732
|
-
var crypt = require_crypt(), utf8 = require_charenc().utf8, isBuffer3 = require_is_buffer(), bin = require_charenc().bin,
|
|
10598
|
+
var crypt = require_crypt(), utf8 = require_charenc().utf8, isBuffer3 = require_is_buffer(), bin = require_charenc().bin, md53 = function(message, options) {
|
|
10733
10599
|
if (message.constructor == String)
|
|
10734
10600
|
if (options && options.encoding === "binary")
|
|
10735
10601
|
message = bin.stringToBytes(message);
|
|
@@ -10745,7 +10611,7 @@
|
|
|
10745
10611
|
}
|
|
10746
10612
|
m[l2 >>> 5] |= 128 << l2 % 32;
|
|
10747
10613
|
m[(l2 + 64 >>> 9 << 4) + 14] = l2;
|
|
10748
|
-
var FF =
|
|
10614
|
+
var FF = md53._ff, GG = md53._gg, HH = md53._hh, II = md53._ii;
|
|
10749
10615
|
for (var i2 = 0; i2 < m.length; i2 += 16) {
|
|
10750
10616
|
var aa = a2, bb = b, cc = c2, dd = d;
|
|
10751
10617
|
a2 = FF(a2, b, c2, d, m[i2 + 0], 7, -680876936);
|
|
@@ -10819,34 +10685,197 @@
|
|
|
10819
10685
|
}
|
|
10820
10686
|
return crypt.endian([a2, b, c2, d]);
|
|
10821
10687
|
};
|
|
10822
|
-
|
|
10688
|
+
md53._ff = function(a2, b, c2, d, x, s2, t2) {
|
|
10823
10689
|
var n2 = a2 + (b & c2 | ~b & d) + (x >>> 0) + t2;
|
|
10824
10690
|
return (n2 << s2 | n2 >>> 32 - s2) + b;
|
|
10825
10691
|
};
|
|
10826
|
-
|
|
10692
|
+
md53._gg = function(a2, b, c2, d, x, s2, t2) {
|
|
10827
10693
|
var n2 = a2 + (b & d | c2 & ~d) + (x >>> 0) + t2;
|
|
10828
10694
|
return (n2 << s2 | n2 >>> 32 - s2) + b;
|
|
10829
10695
|
};
|
|
10830
|
-
|
|
10696
|
+
md53._hh = function(a2, b, c2, d, x, s2, t2) {
|
|
10831
10697
|
var n2 = a2 + (b ^ c2 ^ d) + (x >>> 0) + t2;
|
|
10832
10698
|
return (n2 << s2 | n2 >>> 32 - s2) + b;
|
|
10833
10699
|
};
|
|
10834
|
-
|
|
10700
|
+
md53._ii = function(a2, b, c2, d, x, s2, t2) {
|
|
10835
10701
|
var n2 = a2 + (c2 ^ (b | ~d)) + (x >>> 0) + t2;
|
|
10836
10702
|
return (n2 << s2 | n2 >>> 32 - s2) + b;
|
|
10837
10703
|
};
|
|
10838
|
-
|
|
10839
|
-
|
|
10704
|
+
md53._blocksize = 16;
|
|
10705
|
+
md53._digestsize = 16;
|
|
10840
10706
|
module.exports = function(message, options) {
|
|
10841
10707
|
if (message === void 0 || message === null)
|
|
10842
10708
|
throw new Error("Illegal argument " + message);
|
|
10843
|
-
var digestbytes = crypt.wordsToBytes(
|
|
10709
|
+
var digestbytes = crypt.wordsToBytes(md53(message, options));
|
|
10844
10710
|
return options && options.asBytes ? digestbytes : options && options.asString ? bin.bytesToString(digestbytes) : crypt.bytesToHex(digestbytes);
|
|
10845
10711
|
};
|
|
10846
10712
|
})();
|
|
10847
10713
|
}
|
|
10848
10714
|
});
|
|
10849
10715
|
|
|
10716
|
+
// src/lib/parsers/parse-zip/cd-file-header.ts
|
|
10717
|
+
var offsets, signature, parseZipCDFileHeader;
|
|
10718
|
+
var init_cd_file_header = __esm({
|
|
10719
|
+
"src/lib/parsers/parse-zip/cd-file-header.ts"() {
|
|
10720
|
+
offsets = {
|
|
10721
|
+
CD_COMPRESSED_SIZE_OFFSET: 20n,
|
|
10722
|
+
CD_UNCOMPRESSED_SIZE_OFFSET: 24n,
|
|
10723
|
+
CD_FILE_NAME_LENGTH_OFFSET: 28n,
|
|
10724
|
+
CD_EXTRA_FIELD_LENGTH_OFFSET: 30n,
|
|
10725
|
+
CD_LOCAL_HEADER_OFFSET_OFFSET: 42n,
|
|
10726
|
+
CD_FILE_NAME_OFFSET: 46n
|
|
10727
|
+
};
|
|
10728
|
+
signature = [80, 75, 1, 2];
|
|
10729
|
+
parseZipCDFileHeader = async (headerOffset, buffer) => {
|
|
10730
|
+
if (Buffer.from(await buffer.slice(headerOffset, headerOffset + 4n)).compare(Buffer.from(signature)) !== 0) {
|
|
10731
|
+
return null;
|
|
10732
|
+
}
|
|
10733
|
+
let compressedSize = BigInt(await buffer.getUint32(headerOffset + offsets.CD_COMPRESSED_SIZE_OFFSET));
|
|
10734
|
+
let uncompressedSize = BigInt(await buffer.getUint32(headerOffset + offsets.CD_UNCOMPRESSED_SIZE_OFFSET));
|
|
10735
|
+
const extraFieldLength = await buffer.getUint16(headerOffset + offsets.CD_EXTRA_FIELD_LENGTH_OFFSET);
|
|
10736
|
+
const fileNameLength = await buffer.getUint16(headerOffset + offsets.CD_FILE_NAME_LENGTH_OFFSET);
|
|
10737
|
+
const fileName = new TextDecoder().decode(await buffer.slice(headerOffset + offsets.CD_FILE_NAME_OFFSET, headerOffset + offsets.CD_FILE_NAME_OFFSET + BigInt(fileNameLength)));
|
|
10738
|
+
const extraOffset = headerOffset + offsets.CD_FILE_NAME_OFFSET + BigInt(fileNameLength);
|
|
10739
|
+
const oldFormatOffset = await buffer.getUint32(headerOffset + offsets.CD_LOCAL_HEADER_OFFSET_OFFSET);
|
|
10740
|
+
let fileDataOffset = BigInt(oldFormatOffset);
|
|
10741
|
+
let offsetInZip64Data = 4n;
|
|
10742
|
+
if (uncompressedSize === BigInt(4294967295)) {
|
|
10743
|
+
uncompressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
|
|
10744
|
+
offsetInZip64Data += 8n;
|
|
10745
|
+
}
|
|
10746
|
+
if (compressedSize === BigInt(4294967295)) {
|
|
10747
|
+
compressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
|
|
10748
|
+
offsetInZip64Data += 8n;
|
|
10749
|
+
}
|
|
10750
|
+
if (fileDataOffset === BigInt(4294967295)) {
|
|
10751
|
+
fileDataOffset = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
|
|
10752
|
+
}
|
|
10753
|
+
const localHeaderOffset = fileDataOffset;
|
|
10754
|
+
return {
|
|
10755
|
+
compressedSize,
|
|
10756
|
+
uncompressedSize,
|
|
10757
|
+
extraFieldLength,
|
|
10758
|
+
fileNameLength,
|
|
10759
|
+
fileName,
|
|
10760
|
+
extraOffset,
|
|
10761
|
+
localHeaderOffset
|
|
10762
|
+
};
|
|
10763
|
+
};
|
|
10764
|
+
}
|
|
10765
|
+
});
|
|
10766
|
+
|
|
10767
|
+
// src/lib/parsers/parse-zip/search-from-the-end.ts
|
|
10768
|
+
var searchFromTheEnd;
|
|
10769
|
+
var init_search_from_the_end = __esm({
|
|
10770
|
+
"src/lib/parsers/parse-zip/search-from-the-end.ts"() {
|
|
10771
|
+
searchFromTheEnd = async (file, target) => {
|
|
10772
|
+
const searchWindow = [
|
|
10773
|
+
await file.getUint8(file.length - 1n),
|
|
10774
|
+
await file.getUint8(file.length - 2n),
|
|
10775
|
+
await file.getUint8(file.length - 3n),
|
|
10776
|
+
void 0
|
|
10777
|
+
];
|
|
10778
|
+
let targetOffset = 0n;
|
|
10779
|
+
for (let i2 = file.length - 4n; i2 > -1; i2--) {
|
|
10780
|
+
searchWindow[3] = searchWindow[2];
|
|
10781
|
+
searchWindow[2] = searchWindow[1];
|
|
10782
|
+
searchWindow[1] = searchWindow[0];
|
|
10783
|
+
searchWindow[0] = await file.getUint8(i2);
|
|
10784
|
+
if (searchWindow.every((val, index) => val === target[index])) {
|
|
10785
|
+
targetOffset = i2;
|
|
10786
|
+
break;
|
|
10787
|
+
}
|
|
10788
|
+
}
|
|
10789
|
+
return targetOffset;
|
|
10790
|
+
};
|
|
10791
|
+
}
|
|
10792
|
+
});
|
|
10793
|
+
|
|
10794
|
+
// src/lib/parsers/parse-zip/end-of-central-directory.ts
|
|
10795
|
+
var eoCDSignature, zip64EoCDLocatorSignature, zip64EoCDSignature, offsets2, parseEoCDRecord;
|
|
10796
|
+
var init_end_of_central_directory = __esm({
|
|
10797
|
+
"src/lib/parsers/parse-zip/end-of-central-directory.ts"() {
|
|
10798
|
+
init_search_from_the_end();
|
|
10799
|
+
eoCDSignature = [80, 75, 5, 6];
|
|
10800
|
+
zip64EoCDLocatorSignature = Buffer.from([80, 75, 6, 7]);
|
|
10801
|
+
zip64EoCDSignature = Buffer.from([80, 75, 6, 6]);
|
|
10802
|
+
offsets2 = {
|
|
10803
|
+
CD_RECORDS_NUMBER_OFFSET: 8n,
|
|
10804
|
+
CD_START_OFFSET_OFFSET: 16n,
|
|
10805
|
+
ZIP64_EOCD_START_OFFSET_OFFSET: 8n,
|
|
10806
|
+
ZIP64_CD_RECORDS_NUMBER_OFFSET: 24n,
|
|
10807
|
+
ZIP64_CD_START_OFFSET_OFFSET: 48n
|
|
10808
|
+
};
|
|
10809
|
+
parseEoCDRecord = async (fileProvider) => {
|
|
10810
|
+
const zipEoCDOffset = await searchFromTheEnd(fileProvider, eoCDSignature);
|
|
10811
|
+
let cdRecordsNumber = BigInt(await fileProvider.getUint16(zipEoCDOffset + offsets2.CD_RECORDS_NUMBER_OFFSET));
|
|
10812
|
+
let cdStartOffset = BigInt(await fileProvider.getUint32(zipEoCDOffset + offsets2.CD_START_OFFSET_OFFSET));
|
|
10813
|
+
if (cdStartOffset === BigInt(4294967295) || cdRecordsNumber === BigInt(4294967295)) {
|
|
10814
|
+
const zip64EoCDLocatorOffset = zipEoCDOffset - 20n;
|
|
10815
|
+
if (Buffer.from(await fileProvider.slice(zip64EoCDLocatorOffset, zip64EoCDLocatorOffset + 4n)).compare(zip64EoCDLocatorSignature) !== 0) {
|
|
10816
|
+
throw new Error("zip64 EoCD locator not found");
|
|
10817
|
+
}
|
|
10818
|
+
const zip64EoCDOffset = await fileProvider.getBigUint64(zip64EoCDLocatorOffset + offsets2.ZIP64_EOCD_START_OFFSET_OFFSET);
|
|
10819
|
+
if (Buffer.from(await fileProvider.slice(zip64EoCDOffset, zip64EoCDOffset + 4n)).compare(zip64EoCDSignature) !== 0) {
|
|
10820
|
+
throw new Error("zip64 EoCD not found");
|
|
10821
|
+
}
|
|
10822
|
+
cdRecordsNumber = await fileProvider.getBigUint64(zip64EoCDOffset + offsets2.ZIP64_CD_RECORDS_NUMBER_OFFSET);
|
|
10823
|
+
cdStartOffset = await fileProvider.getBigUint64(zip64EoCDOffset + offsets2.ZIP64_CD_START_OFFSET_OFFSET);
|
|
10824
|
+
}
|
|
10825
|
+
return {
|
|
10826
|
+
cdRecordsNumber,
|
|
10827
|
+
cdStartOffset
|
|
10828
|
+
};
|
|
10829
|
+
};
|
|
10830
|
+
}
|
|
10831
|
+
});
|
|
10832
|
+
|
|
10833
|
+
// src/lib/parsers/parse-zip/local-file-header.ts
|
|
10834
|
+
var offsets3, signature2, parseZipLocalFileHeader;
|
|
10835
|
+
var init_local_file_header = __esm({
|
|
10836
|
+
"src/lib/parsers/parse-zip/local-file-header.ts"() {
|
|
10837
|
+
offsets3 = {
|
|
10838
|
+
COMPRESSED_SIZE_OFFSET: 18n,
|
|
10839
|
+
UNCOMPRESSED_SIZE_OFFSET: 22n,
|
|
10840
|
+
FILE_NAME_LENGTH_OFFSET: 26n,
|
|
10841
|
+
EXTRA_FIELD_LENGTH_OFFSET: 28n,
|
|
10842
|
+
FILE_NAME_OFFSET: 30n
|
|
10843
|
+
};
|
|
10844
|
+
signature2 = Buffer.from([80, 75, 3, 4]);
|
|
10845
|
+
parseZipLocalFileHeader = async (headerOffset, buffer) => {
|
|
10846
|
+
if (Buffer.from(await buffer.slice(headerOffset, headerOffset + 4n)).compare(signature2) !== 0) {
|
|
10847
|
+
return null;
|
|
10848
|
+
}
|
|
10849
|
+
const fileNameLength = await buffer.getUint16(headerOffset + offsets3.FILE_NAME_LENGTH_OFFSET);
|
|
10850
|
+
const fileName = new TextDecoder().decode(await buffer.slice(headerOffset + offsets3.FILE_NAME_OFFSET, headerOffset + offsets3.FILE_NAME_OFFSET + BigInt(fileNameLength))).split("\\").join("/");
|
|
10851
|
+
const extraFieldLength = await buffer.getUint16(headerOffset + offsets3.EXTRA_FIELD_LENGTH_OFFSET);
|
|
10852
|
+
let fileDataOffset = headerOffset + offsets3.FILE_NAME_OFFSET + BigInt(fileNameLength + extraFieldLength);
|
|
10853
|
+
let compressedSize = BigInt(await buffer.getUint32(headerOffset + offsets3.COMPRESSED_SIZE_OFFSET));
|
|
10854
|
+
let uncompressedSize = BigInt(await buffer.getUint32(headerOffset + offsets3.UNCOMPRESSED_SIZE_OFFSET));
|
|
10855
|
+
const extraOffset = headerOffset + offsets3.FILE_NAME_OFFSET + BigInt(fileNameLength);
|
|
10856
|
+
let offsetInZip64Data = 4n;
|
|
10857
|
+
if (uncompressedSize === BigInt(4294967295)) {
|
|
10858
|
+
uncompressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
|
|
10859
|
+
offsetInZip64Data += 8n;
|
|
10860
|
+
}
|
|
10861
|
+
if (compressedSize === BigInt(4294967295)) {
|
|
10862
|
+
compressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
|
|
10863
|
+
offsetInZip64Data += 8n;
|
|
10864
|
+
}
|
|
10865
|
+
if (fileDataOffset === BigInt(4294967295)) {
|
|
10866
|
+
fileDataOffset = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
|
|
10867
|
+
}
|
|
10868
|
+
return {
|
|
10869
|
+
fileNameLength,
|
|
10870
|
+
fileName,
|
|
10871
|
+
extraFieldLength,
|
|
10872
|
+
fileDataOffset,
|
|
10873
|
+
compressedSize
|
|
10874
|
+
};
|
|
10875
|
+
};
|
|
10876
|
+
}
|
|
10877
|
+
});
|
|
10878
|
+
|
|
10850
10879
|
// ../compression/src/lib/compression.ts
|
|
10851
10880
|
var Compression;
|
|
10852
10881
|
var init_compression = __esm({
|
|
@@ -15135,12 +15164,23 @@
|
|
|
15135
15164
|
});
|
|
15136
15165
|
|
|
15137
15166
|
// src/lib/parsers/parse-slpk/slpk-archieve.ts
|
|
15138
|
-
var import_md5, PATH_DESCRIPTIONS, SLPKArchive;
|
|
15167
|
+
var import_md5, compareHashes, PATH_DESCRIPTIONS, SLPKArchive;
|
|
15139
15168
|
var init_slpk_archieve = __esm({
|
|
15140
15169
|
"src/lib/parsers/parse-slpk/slpk-archieve.ts"() {
|
|
15141
15170
|
import_md5 = __toModule(require_md5());
|
|
15142
15171
|
init_local_file_header();
|
|
15143
15172
|
init_src9();
|
|
15173
|
+
compareHashes = (hash1, hash2) => {
|
|
15174
|
+
const h1 = new BigUint64Array(hash1.buffer, hash1.byteOffset, 2);
|
|
15175
|
+
const h2 = new BigUint64Array(hash2.buffer, hash2.byteOffset, 2);
|
|
15176
|
+
const diff = h1[0] === h2[0] ? h1[1] - h2[1] : h1[0] - h2[0];
|
|
15177
|
+
if (diff < 0n) {
|
|
15178
|
+
return -1;
|
|
15179
|
+
} else if (diff === 0n) {
|
|
15180
|
+
return 0;
|
|
15181
|
+
}
|
|
15182
|
+
return 1;
|
|
15183
|
+
};
|
|
15144
15184
|
PATH_DESCRIPTIONS = [
|
|
15145
15185
|
{
|
|
15146
15186
|
test: /^$/,
|
|
@@ -15151,7 +15191,7 @@
|
|
|
15151
15191
|
extensions: [".json.gz"]
|
|
15152
15192
|
},
|
|
15153
15193
|
{
|
|
15154
|
-
test: /^nodes
|
|
15194
|
+
test: /^nodes\/(\d+|root)$/,
|
|
15155
15195
|
extensions: ["/3dNodeIndexDocument.json.gz"]
|
|
15156
15196
|
},
|
|
15157
15197
|
{
|
|
@@ -15177,21 +15217,24 @@
|
|
|
15177
15217
|
];
|
|
15178
15218
|
SLPKArchive = class {
|
|
15179
15219
|
constructor(slpkArchive, hashFile) {
|
|
15220
|
+
this.findBin = (hashToSearch) => {
|
|
15221
|
+
let lowerBorder = 0;
|
|
15222
|
+
let upperBorder = this.hashArray.length;
|
|
15223
|
+
while (upperBorder - lowerBorder > 1) {
|
|
15224
|
+
const middle = lowerBorder + Math.floor((upperBorder - lowerBorder) / 2);
|
|
15225
|
+
const value = compareHashes(this.hashArray[middle].hash, hashToSearch);
|
|
15226
|
+
if (value === 0) {
|
|
15227
|
+
return this.hashArray[middle];
|
|
15228
|
+
} else if (value < 0) {
|
|
15229
|
+
lowerBorder = middle;
|
|
15230
|
+
} else {
|
|
15231
|
+
upperBorder = middle;
|
|
15232
|
+
}
|
|
15233
|
+
}
|
|
15234
|
+
return void 0;
|
|
15235
|
+
};
|
|
15180
15236
|
this.slpkArchive = slpkArchive;
|
|
15181
|
-
this.hashArray =
|
|
15182
|
-
}
|
|
15183
|
-
parseHashFile(hashFile) {
|
|
15184
|
-
const hashFileBuffer = Buffer.from(hashFile);
|
|
15185
|
-
const hashArray = [];
|
|
15186
|
-
for (let i2 = 0; i2 < hashFileBuffer.buffer.byteLength; i2 = i2 + 24) {
|
|
15187
|
-
const offsetBuffer = new DataView(hashFileBuffer.buffer.slice(hashFileBuffer.byteOffset + i2 + 16, hashFileBuffer.byteOffset + i2 + 24));
|
|
15188
|
-
const offset = offsetBuffer.getBigUint64(offsetBuffer.byteOffset, true);
|
|
15189
|
-
hashArray.push({
|
|
15190
|
-
hash: Buffer.from(hashFileBuffer.subarray(hashFileBuffer.byteOffset + i2, hashFileBuffer.byteOffset + i2 + 16)),
|
|
15191
|
-
offset
|
|
15192
|
-
});
|
|
15193
|
-
}
|
|
15194
|
-
return hashArray;
|
|
15237
|
+
this.hashArray = hashFile;
|
|
15195
15238
|
}
|
|
15196
15239
|
async getFile(path, mode = "raw") {
|
|
15197
15240
|
if (mode === "http") {
|
|
@@ -15222,7 +15265,10 @@
|
|
|
15222
15265
|
throw new Error("No such file in the archieve");
|
|
15223
15266
|
}
|
|
15224
15267
|
async getDataByPath(path) {
|
|
15225
|
-
|
|
15268
|
+
let data = await this.getFileBytes(path.toLocaleLowerCase());
|
|
15269
|
+
if (!data) {
|
|
15270
|
+
data = await this.getFileBytes(path);
|
|
15271
|
+
}
|
|
15226
15272
|
if (!data) {
|
|
15227
15273
|
return void 0;
|
|
15228
15274
|
}
|
|
@@ -15235,11 +15281,11 @@
|
|
|
15235
15281
|
}
|
|
15236
15282
|
async getFileBytes(path) {
|
|
15237
15283
|
const nameHash = Buffer.from((0, import_md5.default)(path), "hex");
|
|
15238
|
-
const fileInfo = this.
|
|
15284
|
+
const fileInfo = this.findBin(nameHash);
|
|
15239
15285
|
if (!fileInfo) {
|
|
15240
15286
|
return void 0;
|
|
15241
15287
|
}
|
|
15242
|
-
const localFileHeader = await parseZipLocalFileHeader(fileInfo
|
|
15288
|
+
const localFileHeader = await parseZipLocalFileHeader(fileInfo.offset, this.slpkArchive);
|
|
15243
15289
|
if (!localFileHeader) {
|
|
15244
15290
|
return void 0;
|
|
15245
15291
|
}
|
|
@@ -15251,30 +15297,61 @@
|
|
|
15251
15297
|
});
|
|
15252
15298
|
|
|
15253
15299
|
// src/lib/parsers/parse-slpk/parse-slpk.ts
|
|
15254
|
-
var parseSLPK;
|
|
15300
|
+
var import_md52, parseSLPK, generateHashInfo, parseHashFile;
|
|
15255
15301
|
var init_parse_slpk = __esm({
|
|
15256
15302
|
"src/lib/parsers/parse-slpk/parse-slpk.ts"() {
|
|
15303
|
+
import_md52 = __toModule(require_md5());
|
|
15257
15304
|
init_cd_file_header();
|
|
15305
|
+
init_end_of_central_directory();
|
|
15258
15306
|
init_local_file_header();
|
|
15259
15307
|
init_search_from_the_end();
|
|
15260
15308
|
init_slpk_archieve();
|
|
15261
|
-
parseSLPK = async (fileProvider) => {
|
|
15262
|
-
const
|
|
15263
|
-
const hashCDOffset = await searchFromTheEnd(fileProvider, cdFileHeaderSignature);
|
|
15309
|
+
parseSLPK = async (fileProvider, cb) => {
|
|
15310
|
+
const hashCDOffset = await searchFromTheEnd(fileProvider, signature);
|
|
15264
15311
|
const cdFileHeader = await parseZipCDFileHeader(hashCDOffset, fileProvider);
|
|
15265
|
-
|
|
15266
|
-
|
|
15312
|
+
let hashData;
|
|
15313
|
+
if (cdFileHeader?.fileName !== "@specialIndexFileHASH128@") {
|
|
15314
|
+
cb?.("SLPK doesnt contain hash file");
|
|
15315
|
+
hashData = await generateHashInfo(fileProvider);
|
|
15316
|
+
cb?.("hash info has been composed according to central directory records");
|
|
15317
|
+
} else {
|
|
15318
|
+
cb?.("SLPK contains hash file");
|
|
15319
|
+
const localFileHeader = await parseZipLocalFileHeader(cdFileHeader.localHeaderOffset, fileProvider);
|
|
15320
|
+
if (!localFileHeader) {
|
|
15321
|
+
throw new Error("corrupted SLPK");
|
|
15322
|
+
}
|
|
15323
|
+
const fileDataOffset = localFileHeader.fileDataOffset;
|
|
15324
|
+
const hashFile = await fileProvider.slice(fileDataOffset, fileDataOffset + localFileHeader.compressedSize);
|
|
15325
|
+
hashData = parseHashFile(hashFile);
|
|
15267
15326
|
}
|
|
15268
|
-
|
|
15269
|
-
|
|
15270
|
-
|
|
15327
|
+
return new SLPKArchive(fileProvider, hashData);
|
|
15328
|
+
};
|
|
15329
|
+
generateHashInfo = async (fileProvider) => {
|
|
15330
|
+
const { cdStartOffset } = await parseEoCDRecord(fileProvider);
|
|
15331
|
+
let cdHeader = await parseZipCDFileHeader(cdStartOffset, fileProvider);
|
|
15332
|
+
const hashInfo = [];
|
|
15333
|
+
while (cdHeader) {
|
|
15334
|
+
hashInfo.push({
|
|
15335
|
+
hash: Buffer.from((0, import_md52.default)(cdHeader.fileName.split("\\").join("/").toLocaleLowerCase()), "hex"),
|
|
15336
|
+
offset: cdHeader.localHeaderOffset
|
|
15337
|
+
});
|
|
15338
|
+
cdHeader = await parseZipCDFileHeader(cdHeader.extraOffset + BigInt(cdHeader.extraFieldLength), fileProvider);
|
|
15271
15339
|
}
|
|
15272
|
-
|
|
15273
|
-
|
|
15274
|
-
|
|
15275
|
-
|
|
15340
|
+
hashInfo.sort((a2, b) => compareHashes(a2.hash, b.hash));
|
|
15341
|
+
return hashInfo;
|
|
15342
|
+
};
|
|
15343
|
+
parseHashFile = (hashFile) => {
|
|
15344
|
+
const hashFileBuffer = Buffer.from(hashFile);
|
|
15345
|
+
const hashArray = [];
|
|
15346
|
+
for (let i2 = 0; i2 < hashFileBuffer.buffer.byteLength; i2 = i2 + 24) {
|
|
15347
|
+
const offsetBuffer = new DataView(hashFileBuffer.buffer.slice(hashFileBuffer.byteOffset + i2 + 16, hashFileBuffer.byteOffset + i2 + 24));
|
|
15348
|
+
const offset = offsetBuffer.getBigUint64(offsetBuffer.byteOffset, true);
|
|
15349
|
+
hashArray.push({
|
|
15350
|
+
hash: Buffer.from(hashFileBuffer.subarray(hashFileBuffer.byteOffset + i2, hashFileBuffer.byteOffset + i2 + 16)),
|
|
15351
|
+
offset
|
|
15352
|
+
});
|
|
15276
15353
|
}
|
|
15277
|
-
return
|
|
15354
|
+
return hashArray;
|
|
15278
15355
|
};
|
|
15279
15356
|
}
|
|
15280
15357
|
});
|
|
@@ -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.17" !== 'undefined' ? "4.0.0-alpha.17" : '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.17" !== 'undefined' ? "4.0.0-alpha.17" : '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.17" !== 'undefined' ? "4.0.0-alpha.17" : 'beta';
|
|
12
12
|
var I3SBuildingSceneLayerLoader = {
|
|
13
13
|
name: 'I3S Building Scene Layer',
|
|
14
14
|
id: 'i3s-building-scene-layer',
|