@loaders.gl/i3s 4.0.0-alpha.18 → 4.0.0-alpha.20
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 +338 -307
- 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 +3 -3
- package/dist/es5/i3s-slpk-loader.js.map +1 -1
- package/dist/es5/index.js +0 -7
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/parsers/parse-i3s.js +1 -0
- package/dist/es5/lib/parsers/parse-i3s.js.map +1 -1
- package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js +9 -25
- package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js.map +1 -1
- package/dist/es5/lib/parsers/parse-slpk/slpk-archieve.js +9 -33
- package/dist/es5/lib/parsers/parse-slpk/slpk-archieve.js.map +1 -1
- 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 +3 -3
- package/dist/esm/i3s-slpk-loader.js.map +1 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/parsers/parse-i3s.js +1 -0
- package/dist/esm/lib/parsers/parse-i3s.js.map +1 -1
- package/dist/esm/lib/parsers/parse-slpk/parse-slpk.js +2 -18
- package/dist/esm/lib/parsers/parse-slpk/parse-slpk.js.map +1 -1
- package/dist/esm/lib/parsers/parse-slpk/slpk-archieve.js +5 -29
- package/dist/esm/lib/parsers/parse-slpk/slpk-archieve.js.map +1 -1
- 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 +51 -38
- package/dist/i3s-slpk-loader.js +2 -2
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -3
- package/dist/lib/parsers/parse-i3s.d.ts.map +1 -1
- package/dist/lib/parsers/parse-i3s.js +1 -0
- package/dist/lib/parsers/parse-slpk/parse-slpk.d.ts +1 -1
- package/dist/lib/parsers/parse-slpk/parse-slpk.d.ts.map +1 -1
- package/dist/lib/parsers/parse-slpk/parse-slpk.js +9 -30
- package/dist/lib/parsers/parse-slpk/slpk-archieve.d.ts +2 -21
- package/dist/lib/parsers/parse-slpk/slpk-archieve.d.ts.map +1 -1
- package/dist/lib/parsers/parse-slpk/slpk-archieve.js +7 -46
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +9 -9
- package/src/i3s-slpk-loader.ts +2 -2
- package/src/index.ts +0 -2
- package/src/lib/parsers/parse-i3s.ts +1 -0
- package/src/lib/parsers/parse-slpk/parse-slpk.ts +12 -32
- package/src/lib/parsers/parse-slpk/slpk-archieve.ts +5 -54
- package/src/types.ts +3 -0
- package/dist/es5/lib/parsers/parse-zip/cd-file-header.js +0 -121
- package/dist/es5/lib/parsers/parse-zip/cd-file-header.js.map +0 -1
- package/dist/es5/lib/parsers/parse-zip/data-view-file-provider.js +0 -129
- package/dist/es5/lib/parsers/parse-zip/data-view-file-provider.js.map +0 -1
- package/dist/es5/lib/parsers/parse-zip/end-of-central-directory.js +0 -100
- package/dist/es5/lib/parsers/parse-zip/end-of-central-directory.js.map +0 -1
- package/dist/es5/lib/parsers/parse-zip/file-provider.js +0 -2
- package/dist/es5/lib/parsers/parse-zip/file-provider.js.map +0 -1
- package/dist/es5/lib/parsers/parse-zip/local-file-header.js +0 -113
- package/dist/es5/lib/parsers/parse-zip/local-file-header.js.map +0 -1
- package/dist/es5/lib/parsers/parse-zip/search-from-the-end.js +0 -69
- package/dist/es5/lib/parsers/parse-zip/search-from-the-end.js.map +0 -1
- package/dist/esm/lib/parsers/parse-zip/cd-file-header.js +0 -45
- package/dist/esm/lib/parsers/parse-zip/cd-file-header.js.map +0 -1
- package/dist/esm/lib/parsers/parse-zip/data-view-file-provider.js +0 -32
- package/dist/esm/lib/parsers/parse-zip/data-view-file-provider.js.map +0 -1
- package/dist/esm/lib/parsers/parse-zip/end-of-central-directory.js +0 -33
- package/dist/esm/lib/parsers/parse-zip/end-of-central-directory.js.map +0 -1
- package/dist/esm/lib/parsers/parse-zip/file-provider.js +0 -2
- package/dist/esm/lib/parsers/parse-zip/file-provider.js.map +0 -1
- package/dist/esm/lib/parsers/parse-zip/local-file-header.js +0 -40
- package/dist/esm/lib/parsers/parse-zip/local-file-header.js.map +0 -1
- package/dist/esm/lib/parsers/parse-zip/search-from-the-end.js +0 -16
- package/dist/esm/lib/parsers/parse-zip/search-from-the-end.js.map +0 -1
- package/dist/lib/parsers/parse-zip/cd-file-header.d.ts +0 -31
- package/dist/lib/parsers/parse-zip/cd-file-header.d.ts.map +0 -1
- package/dist/lib/parsers/parse-zip/cd-file-header.js +0 -55
- package/dist/lib/parsers/parse-zip/data-view-file-provider.d.ts +0 -36
- package/dist/lib/parsers/parse-zip/data-view-file-provider.d.ts.map +0 -1
- package/dist/lib/parsers/parse-zip/data-view-file-provider.js +0 -61
- package/dist/lib/parsers/parse-zip/end-of-central-directory.d.ts +0 -18
- package/dist/lib/parsers/parse-zip/end-of-central-directory.d.ts.map +0 -1
- package/dist/lib/parsers/parse-zip/end-of-central-directory.js +0 -41
- package/dist/lib/parsers/parse-zip/file-provider.d.ts +0 -36
- package/dist/lib/parsers/parse-zip/file-provider.d.ts.map +0 -1
- package/dist/lib/parsers/parse-zip/file-provider.js +0 -2
- package/dist/lib/parsers/parse-zip/local-file-header.d.ts +0 -27
- package/dist/lib/parsers/parse-zip/local-file-header.d.ts.map +0 -1
- package/dist/lib/parsers/parse-zip/local-file-header.js +0 -53
- package/dist/lib/parsers/parse-zip/search-from-the-end.d.ts +0 -11
- package/dist/lib/parsers/parse-zip/search-from-the-end.d.ts.map +0 -1
- package/dist/lib/parsers/parse-zip/search-from-the-end.js +0 -31
- package/src/lib/parsers/parse-zip/cd-file-header.ts +0 -106
- package/src/lib/parsers/parse-zip/data-view-file-provider.ts +0 -69
- package/src/lib/parsers/parse-zip/end-of-central-directory.ts +0 -78
- package/src/lib/parsers/parse-zip/file-provider.ts +0 -40
- package/src/lib/parsers/parse-zip/local-file-header.ts +0 -91
- package/src/lib/parsers/parse-zip/search-from-the-end.ts +0 -38
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
var nodeVersion = matches && parseFloat(matches[1]) || 0;
|
|
62
62
|
|
|
63
63
|
// ../worker-utils/src/lib/env-utils/version.ts
|
|
64
|
-
var VERSION = true ? "4.0.0-alpha.
|
|
64
|
+
var VERSION = true ? "4.0.0-alpha.20" : DEFAULT_VERSION;
|
|
65
65
|
if (false) {
|
|
66
66
|
console.error("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
|
|
67
67
|
}
|
|
@@ -564,32 +564,33 @@
|
|
|
564
564
|
var LATEST = "beta";
|
|
565
565
|
var VERSION2 = typeof VERSION !== "undefined" ? VERSION : LATEST;
|
|
566
566
|
var loadLibraryPromises = {};
|
|
567
|
-
async function loadLibrary(libraryUrl, moduleName = null, options = {}) {
|
|
567
|
+
async function loadLibrary(libraryUrl, moduleName = null, options = {}, libraryName = null) {
|
|
568
568
|
if (moduleName) {
|
|
569
|
-
libraryUrl = getLibraryUrl(libraryUrl, moduleName, options);
|
|
569
|
+
libraryUrl = getLibraryUrl(libraryUrl, moduleName, options, libraryName);
|
|
570
570
|
}
|
|
571
571
|
loadLibraryPromises[libraryUrl] = loadLibraryPromises[libraryUrl] || loadLibraryFromFile(libraryUrl);
|
|
572
572
|
return await loadLibraryPromises[libraryUrl];
|
|
573
573
|
}
|
|
574
|
-
function getLibraryUrl(library, moduleName, options) {
|
|
575
|
-
if (library.startsWith("http")) {
|
|
574
|
+
function getLibraryUrl(library, moduleName, options = {}, libraryName = null) {
|
|
575
|
+
if (!options.useLocalLibraries && library.startsWith("http")) {
|
|
576
576
|
return library;
|
|
577
577
|
}
|
|
578
|
+
libraryName = libraryName || library;
|
|
578
579
|
const modules = options.modules || {};
|
|
579
|
-
if (modules[
|
|
580
|
-
return modules[
|
|
580
|
+
if (modules[libraryName]) {
|
|
581
|
+
return modules[libraryName];
|
|
581
582
|
}
|
|
582
583
|
if (!isBrowser2) {
|
|
583
|
-
return `modules/${moduleName}/dist/libs/${
|
|
584
|
+
return `modules/${moduleName}/dist/libs/${libraryName}`;
|
|
584
585
|
}
|
|
585
586
|
if (options.CDN) {
|
|
586
587
|
assert2(options.CDN.startsWith("http"));
|
|
587
|
-
return `${options.CDN}/${moduleName}@${VERSION2}/dist/libs/${
|
|
588
|
+
return `${options.CDN}/${moduleName}@${VERSION2}/dist/libs/${libraryName}`;
|
|
588
589
|
}
|
|
589
590
|
if (isWorker) {
|
|
590
|
-
return `../src/libs/${
|
|
591
|
+
return `../src/libs/${libraryName}`;
|
|
591
592
|
}
|
|
592
|
-
return `modules/${moduleName}/src/libs/${
|
|
593
|
+
return `modules/${moduleName}/src/libs/${libraryName}`;
|
|
593
594
|
}
|
|
594
595
|
async function loadLibraryFromFile(libraryUrl) {
|
|
595
596
|
if (libraryUrl.endsWith("wasm")) {
|
|
@@ -1261,7 +1262,7 @@
|
|
|
1261
1262
|
var navigator_ = globalThis.navigator || {};
|
|
1262
1263
|
|
|
1263
1264
|
// ../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/utils/globals.js
|
|
1264
|
-
var VERSION3 = true ? "4.0.0-alpha.
|
|
1265
|
+
var VERSION3 = true ? "4.0.0-alpha.20" : "untranspiled source";
|
|
1265
1266
|
var isBrowser4 = isBrowser3();
|
|
1266
1267
|
|
|
1267
1268
|
// ../../node_modules/@probe.gl/log/dist/utils/local-storage.js
|
|
@@ -1802,6 +1803,7 @@
|
|
|
1802
1803
|
mimeType: void 0,
|
|
1803
1804
|
nothrow: false,
|
|
1804
1805
|
log: new ConsoleLog(),
|
|
1806
|
+
useLocalLibraries: false,
|
|
1805
1807
|
CDN: "https://unpkg.com/@loaders.gl",
|
|
1806
1808
|
worker: true,
|
|
1807
1809
|
maxConcurrency: 3,
|
|
@@ -2305,12 +2307,12 @@
|
|
|
2305
2307
|
// ../core/src/lib/loader-utils/get-fetch-function.ts
|
|
2306
2308
|
function getFetchFunction(options, context) {
|
|
2307
2309
|
const globalOptions = getGlobalLoaderOptions();
|
|
2308
|
-
const
|
|
2309
|
-
if (typeof
|
|
2310
|
-
return
|
|
2310
|
+
const loaderOptions = options || globalOptions;
|
|
2311
|
+
if (typeof loaderOptions.fetch === "function") {
|
|
2312
|
+
return loaderOptions.fetch;
|
|
2311
2313
|
}
|
|
2312
|
-
if (isObject(
|
|
2313
|
-
return (url) => fetchFile(url,
|
|
2314
|
+
if (isObject(loaderOptions.fetch)) {
|
|
2315
|
+
return (url) => fetchFile(url, loaderOptions.fetch);
|
|
2314
2316
|
}
|
|
2315
2317
|
if (context?.fetch) {
|
|
2316
2318
|
return context?.fetch;
|
|
@@ -4609,7 +4611,7 @@
|
|
|
4609
4611
|
_defineProperty(Ellipsoid, "WGS84", new Ellipsoid(WGS84_RADIUS_X, WGS84_RADIUS_Y, WGS84_RADIUS_Z));
|
|
4610
4612
|
|
|
4611
4613
|
// ../images/src/lib/utils/version.ts
|
|
4612
|
-
var VERSION4 = true ? "4.0.0-alpha.
|
|
4614
|
+
var VERSION4 = true ? "4.0.0-alpha.20" : "latest";
|
|
4613
4615
|
|
|
4614
4616
|
// ../images/src/lib/category-api/image-type.ts
|
|
4615
4617
|
var { _parseImageNode } = globalThis;
|
|
@@ -5006,7 +5008,7 @@
|
|
|
5006
5008
|
};
|
|
5007
5009
|
|
|
5008
5010
|
// ../draco/src/lib/utils/version.ts
|
|
5009
|
-
var VERSION5 = true ? "4.0.0-alpha.
|
|
5011
|
+
var VERSION5 = true ? "4.0.0-alpha.20" : "latest";
|
|
5010
5012
|
|
|
5011
5013
|
// ../draco/src/draco-loader.ts
|
|
5012
5014
|
var DEFAULT_DRACO_OPTIONS = {
|
|
@@ -5489,10 +5491,18 @@
|
|
|
5489
5491
|
var DRACO_DECODER_VERSION = "1.5.5";
|
|
5490
5492
|
var DRACO_ENCODER_VERSION = "1.4.1";
|
|
5491
5493
|
var STATIC_DECODER_URL = `https://www.gstatic.com/draco/versioned/decoders/${DRACO_DECODER_VERSION}`;
|
|
5492
|
-
var
|
|
5493
|
-
|
|
5494
|
-
|
|
5495
|
-
|
|
5494
|
+
var DRACO_EXTERNAL_LIBRARIES = {
|
|
5495
|
+
DECODER: "draco_wasm_wrapper.js",
|
|
5496
|
+
DECODER_WASM: "draco_decoder.wasm",
|
|
5497
|
+
FALLBACK_DECODER: "draco_decoder.js",
|
|
5498
|
+
ENCODER: "draco_encoder.js"
|
|
5499
|
+
};
|
|
5500
|
+
var DRACO_EXTERNAL_LIBRARY_URLS = {
|
|
5501
|
+
[DRACO_EXTERNAL_LIBRARIES.DECODER]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.DECODER}`,
|
|
5502
|
+
[DRACO_EXTERNAL_LIBRARIES.DECODER_WASM]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.DECODER_WASM}`,
|
|
5503
|
+
[DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER}`,
|
|
5504
|
+
[DRACO_EXTERNAL_LIBRARIES.ENCODER]: `https://raw.githubusercontent.com/google/draco/${DRACO_ENCODER_VERSION}/javascript/${DRACO_EXTERNAL_LIBRARIES.ENCODER}`
|
|
5505
|
+
};
|
|
5496
5506
|
var loadDecoderPromise;
|
|
5497
5507
|
async function loadDracoDecoderModule(options) {
|
|
5498
5508
|
const modules = options.modules || {};
|
|
@@ -5510,13 +5520,13 @@
|
|
|
5510
5520
|
let wasmBinary;
|
|
5511
5521
|
switch (options.draco && options.draco.decoderType) {
|
|
5512
5522
|
case "js":
|
|
5513
|
-
DracoDecoderModule = await loadLibrary(
|
|
5523
|
+
DracoDecoderModule = await loadLibrary(DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER], "draco", options, DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER);
|
|
5514
5524
|
break;
|
|
5515
5525
|
case "wasm":
|
|
5516
5526
|
default:
|
|
5517
5527
|
[DracoDecoderModule, wasmBinary] = await Promise.all([
|
|
5518
|
-
await loadLibrary(
|
|
5519
|
-
await loadLibrary(
|
|
5528
|
+
await loadLibrary(DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER], "draco", options, DRACO_EXTERNAL_LIBRARIES.DECODER),
|
|
5529
|
+
await loadLibrary(DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER_WASM], "draco", options, DRACO_EXTERNAL_LIBRARIES.DECODER_WASM)
|
|
5520
5530
|
]);
|
|
5521
5531
|
}
|
|
5522
5532
|
DracoDecoderModule = DracoDecoderModule || globalThis.DracoDecoderModule;
|
|
@@ -5551,12 +5561,15 @@
|
|
|
5551
5561
|
}
|
|
5552
5562
|
|
|
5553
5563
|
// ../textures/src/lib/utils/version.ts
|
|
5554
|
-
var VERSION6 = true ? "4.0.0-alpha.
|
|
5564
|
+
var VERSION6 = true ? "4.0.0-alpha.20" : "beta";
|
|
5555
5565
|
|
|
5556
5566
|
// ../textures/src/lib/parsers/basis-module-loader.ts
|
|
5557
|
-
var
|
|
5558
|
-
|
|
5559
|
-
|
|
5567
|
+
var BASIS_EXTERNAL_LIBRARIES = {
|
|
5568
|
+
TRANSCODER: "basis_transcoder.js",
|
|
5569
|
+
TRANSCODER_WASM: "basis_transcoder.wasm",
|
|
5570
|
+
ENCODER: "basis_encoder.js",
|
|
5571
|
+
ENCODER_WASM: "basis_encoder.wasm"
|
|
5572
|
+
};
|
|
5560
5573
|
var loadBasisTranscoderPromise;
|
|
5561
5574
|
async function loadBasisTranscoderModule(options) {
|
|
5562
5575
|
const modules = options.modules || {};
|
|
@@ -5570,8 +5583,8 @@
|
|
|
5570
5583
|
let BASIS = null;
|
|
5571
5584
|
let wasmBinary = null;
|
|
5572
5585
|
[BASIS, wasmBinary] = await Promise.all([
|
|
5573
|
-
await loadLibrary(
|
|
5574
|
-
await loadLibrary(
|
|
5586
|
+
await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER, "textures", options),
|
|
5587
|
+
await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER_WASM, "textures", options)
|
|
5575
5588
|
]);
|
|
5576
5589
|
BASIS = BASIS || globalThis.BASIS;
|
|
5577
5590
|
return await initializeBasisTranscoderModule(BASIS, wasmBinary);
|
|
@@ -5602,8 +5615,8 @@
|
|
|
5602
5615
|
let BASIS_ENCODER = null;
|
|
5603
5616
|
let wasmBinary = null;
|
|
5604
5617
|
[BASIS_ENCODER, wasmBinary] = await Promise.all([
|
|
5605
|
-
await loadLibrary(
|
|
5606
|
-
await loadLibrary(
|
|
5618
|
+
await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER, "textures", options),
|
|
5619
|
+
await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER_WASM, "textures", options)
|
|
5607
5620
|
]);
|
|
5608
5621
|
BASIS_ENCODER = BASIS_ENCODER || globalThis.BASIS;
|
|
5609
5622
|
return await initializeBasisEncoderModule(BASIS_ENCODER, wasmBinary);
|
|
@@ -7240,12 +7253,12 @@
|
|
|
7240
7253
|
}
|
|
7241
7254
|
|
|
7242
7255
|
// src/i3s-attribute-loader.ts
|
|
7243
|
-
var
|
|
7256
|
+
var VERSION7 = true ? "4.0.0-alpha.20" : "latest";
|
|
7244
7257
|
var I3SAttributeLoader = {
|
|
7245
7258
|
name: "I3S Attribute",
|
|
7246
7259
|
id: "i3s-attribute",
|
|
7247
7260
|
module: "i3s",
|
|
7248
|
-
version:
|
|
7261
|
+
version: VERSION7,
|
|
7249
7262
|
mimeTypes: ["application/binary"],
|
|
7250
7263
|
parse: async (arrayBuffer, options) => parseI3STileAttribute(arrayBuffer, options),
|
|
7251
7264
|
extensions: ["bin"],
|
|
@@ -7703,13 +7716,13 @@
|
|
|
7703
7716
|
}
|
|
7704
7717
|
|
|
7705
7718
|
// src/i3s-content-loader.ts
|
|
7706
|
-
var
|
|
7719
|
+
var VERSION8 = true ? "4.0.0-alpha.20" : "beta";
|
|
7707
7720
|
var I3SContentLoader = {
|
|
7708
7721
|
name: "I3S Content (Indexed Scene Layers)",
|
|
7709
7722
|
id: "i3s-content",
|
|
7710
7723
|
module: "i3s",
|
|
7711
7724
|
worker: true,
|
|
7712
|
-
version:
|
|
7725
|
+
version: VERSION8,
|
|
7713
7726
|
mimeTypes: ["application/octet-stream"],
|
|
7714
7727
|
parse: parse3,
|
|
7715
7728
|
extensions: ["bin"],
|
package/dist/i3s-slpk-loader.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SLPKLoader = void 0;
|
|
4
|
+
const zip_1 = require("@loaders.gl/zip");
|
|
4
5
|
const parse_slpk_1 = require("./lib/parsers/parse-slpk/parse-slpk");
|
|
5
|
-
const data_view_file_provider_1 = require("./lib/parsers/parse-zip/data-view-file-provider");
|
|
6
6
|
// __VERSION__ is injected by babel-plugin-version-inline
|
|
7
7
|
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
|
8
8
|
const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
|
|
@@ -26,5 +26,5 @@ exports.SLPKLoader = {
|
|
|
26
26
|
* @returns requested file
|
|
27
27
|
*/
|
|
28
28
|
async function parseSLPK(data, options = {}) {
|
|
29
|
-
return (await (0, parse_slpk_1.parseSLPK)(new
|
|
29
|
+
return (await (0, parse_slpk_1.parseSLPK)(new zip_1.DataViewFile(new DataView(data)))).getFile(options.slpk?.path ?? '', options.slpk?.pathMode);
|
|
30
30
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export type { BoundingVolumes, Mbs, Obb, I3STilesetHeader, I3STileContent, I3STileHeader, SceneLayer3D, AttributeStorageInfo, Field, ESRIField, PopupInfo, Node3DIndexDocument, LodSelection, NodeReference, Resource, MaxScreenThresholdSQ, NodeInPage, SharedResources, Attribute, Extent, FeatureAttribute, FieldInfo, I3SMaterialDefinition, TextureDefinitionInfo, MaterialDefinitionInfo, FullExtent, StatisticsInfo, StatsInfo, Histogram, ValueCount, BuildingSceneSublayer, OperationalLayer, TextureSetDefinitionFormats } from './types';
|
|
2
|
-
export type { FileProvider } from './lib/parsers/parse-zip/file-provider';
|
|
3
2
|
export type { I3SLoaderOptions } from './i3s-loader';
|
|
4
3
|
export { COORDINATE_SYSTEM } from './lib/parsers/constants';
|
|
5
4
|
export { I3SLoader } from './i3s-loader';
|
|
@@ -9,6 +8,5 @@ export { I3SAttributeLoader, loadFeatureAttributes } from './i3s-attribute-loade
|
|
|
9
8
|
export { I3SBuildingSceneLayerLoader } from './i3s-building-scene-layer-loader';
|
|
10
9
|
export { I3SNodePageLoader } from './i3s-node-page-loader';
|
|
11
10
|
export { ArcGisWebSceneLoader } from './arcgis-webscene-loader';
|
|
12
|
-
export { parseZipLocalFileHeader } from './lib/parsers/parse-zip/local-file-header';
|
|
13
11
|
export { parseSLPK } from './lib/parsers/parse-slpk/parse-slpk';
|
|
14
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,YAAY,EACV,eAAe,EACf,GAAG,EACH,GAAG,EACH,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,KAAK,EACL,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,oBAAoB,EACpB,UAAU,EACV,eAAe,EACf,SAAS,EACT,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,UAAU,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACT,UAAU,EACV,qBAAqB,EACrB,gBAAgB,EAChB,2BAA2B,EAC5B,MAAM,SAAS,CAAC;AACjB,YAAY,EAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,YAAY,EACV,eAAe,EACf,GAAG,EACH,GAAG,EACH,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,KAAK,EACL,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,oBAAoB,EACpB,UAAU,EACV,eAAe,EACf,SAAS,EACT,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,UAAU,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACT,UAAU,EACV,qBAAqB,EACrB,gBAAgB,EAChB,2BAA2B,EAC5B,MAAM,SAAS,CAAC;AACjB,YAAY,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AACvC,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAC,kBAAkB,EAAE,qBAAqB,EAAC,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAC,2BAA2B,EAAC,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAC,oBAAoB,EAAC,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAC,SAAS,EAAC,MAAM,qCAAqC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// loaders.gl, MIT license
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.parseSLPK = exports.
|
|
4
|
+
exports.parseSLPK = exports.ArcGisWebSceneLoader = exports.I3SNodePageLoader = exports.I3SBuildingSceneLayerLoader = exports.loadFeatureAttributes = exports.I3SAttributeLoader = exports.I3SContentLoader = exports.SLPKLoader = exports.I3SLoader = exports.COORDINATE_SYSTEM = void 0;
|
|
5
5
|
var constants_1 = require("./lib/parsers/constants");
|
|
6
6
|
Object.defineProperty(exports, "COORDINATE_SYSTEM", { enumerable: true, get: function () { return constants_1.COORDINATE_SYSTEM; } });
|
|
7
7
|
var i3s_loader_1 = require("./i3s-loader");
|
|
@@ -19,7 +19,5 @@ var i3s_node_page_loader_1 = require("./i3s-node-page-loader");
|
|
|
19
19
|
Object.defineProperty(exports, "I3SNodePageLoader", { enumerable: true, get: function () { return i3s_node_page_loader_1.I3SNodePageLoader; } });
|
|
20
20
|
var arcgis_webscene_loader_1 = require("./arcgis-webscene-loader");
|
|
21
21
|
Object.defineProperty(exports, "ArcGisWebSceneLoader", { enumerable: true, get: function () { return arcgis_webscene_loader_1.ArcGisWebSceneLoader; } });
|
|
22
|
-
var local_file_header_1 = require("./lib/parsers/parse-zip/local-file-header");
|
|
23
|
-
Object.defineProperty(exports, "parseZipLocalFileHeader", { enumerable: true, get: function () { return local_file_header_1.parseZipLocalFileHeader; } });
|
|
24
22
|
var parse_slpk_1 = require("./lib/parsers/parse-slpk/parse-slpk");
|
|
25
23
|
Object.defineProperty(exports, "parseSLPK", { enumerable: true, get: function () { return parse_slpk_1.parseSLPK; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-i3s.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-i3s.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,gBAAgB,EAChB,aAAa,EAEb,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAC,aAAa,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAG3E,wBAAgB,iBAAiB,CAAC,IAAI,EAAG,mBAAmB,EAAE,OAAO,EAAE,aAAa,GAAG,aAAa,CA6BnG;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAG,kBAAkB,GAAG,aAAa,CAkChF;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAG,YAAY,EAAE,OAAO,EAAG,aAAa,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"parse-i3s.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-i3s.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,gBAAgB,EAChB,aAAa,EAEb,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAC,aAAa,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAG3E,wBAAgB,iBAAiB,CAAC,IAAI,EAAG,mBAAmB,EAAE,OAAO,EAAE,aAAa,GAAG,aAAa,CA6BnG;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAG,kBAAkB,GAAG,aAAa,CAkChF;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAG,YAAY,EAAE,OAAO,EAAG,aAAa,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA+B7I"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-slpk.d.ts","sourceRoot":"","sources":["../../../../src/lib/parsers/parse-slpk/parse-slpk.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parse-slpk.d.ts","sourceRoot":"","sources":["../../../../src/lib/parsers/parse-slpk/parse-slpk.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,YAAY,EAMb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAE5C;;;;;GAKG;AACH,eAAO,MAAM,SAAS,iBACN,YAAY,cACf,MAAM,KAAK,IAAI,kBACzB,QAAQ,WAAW,CA8BrB,CAAC"}
|
|
@@ -5,10 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.parseSLPK = void 0;
|
|
7
7
|
const md5_1 = __importDefault(require("md5"));
|
|
8
|
-
const
|
|
9
|
-
const end_of_central_directory_1 = require("../parse-zip/end-of-central-directory");
|
|
10
|
-
const local_file_header_1 = require("../parse-zip/local-file-header");
|
|
11
|
-
const search_from_the_end_1 = require("../parse-zip/search-from-the-end");
|
|
8
|
+
const zip_1 = require("@loaders.gl/zip");
|
|
12
9
|
const slpk_archieve_1 = require("./slpk-archieve");
|
|
13
10
|
/**
|
|
14
11
|
* Creates slpk file handler from raw file
|
|
@@ -17,8 +14,8 @@ const slpk_archieve_1 = require("./slpk-archieve");
|
|
|
17
14
|
* @returns slpk file handler
|
|
18
15
|
*/
|
|
19
16
|
const parseSLPK = async (fileProvider, cb) => {
|
|
20
|
-
const hashCDOffset = await (0,
|
|
21
|
-
const cdFileHeader = await (0,
|
|
17
|
+
const hashCDOffset = await (0, zip_1.searchFromTheEnd)(fileProvider, zip_1.cdSignature);
|
|
18
|
+
const cdFileHeader = await (0, zip_1.parseZipCDFileHeader)(hashCDOffset, fileProvider);
|
|
22
19
|
let hashData;
|
|
23
20
|
if (cdFileHeader?.fileName !== '@specialIndexFileHASH128@') {
|
|
24
21
|
cb?.('SLPK doesnt contain hash file');
|
|
@@ -27,13 +24,13 @@ const parseSLPK = async (fileProvider, cb) => {
|
|
|
27
24
|
}
|
|
28
25
|
else {
|
|
29
26
|
cb?.('SLPK contains hash file');
|
|
30
|
-
const localFileHeader = await (0,
|
|
27
|
+
const localFileHeader = await (0, zip_1.parseZipLocalFileHeader)(cdFileHeader.localHeaderOffset, fileProvider);
|
|
31
28
|
if (!localFileHeader) {
|
|
32
29
|
throw new Error('corrupted SLPK');
|
|
33
30
|
}
|
|
34
31
|
const fileDataOffset = localFileHeader.fileDataOffset;
|
|
35
32
|
const hashFile = await fileProvider.slice(fileDataOffset, fileDataOffset + localFileHeader.compressedSize);
|
|
36
|
-
hashData = parseHashFile(hashFile);
|
|
33
|
+
hashData = (0, zip_1.parseHashFile)(hashFile);
|
|
37
34
|
}
|
|
38
35
|
return new slpk_archieve_1.SLPKArchive(fileProvider, hashData);
|
|
39
36
|
};
|
|
@@ -44,34 +41,16 @@ exports.parseSLPK = parseSLPK;
|
|
|
44
41
|
* @returns ready to use hash info
|
|
45
42
|
*/
|
|
46
43
|
const generateHashInfo = async (fileProvider) => {
|
|
47
|
-
const { cdStartOffset } = await (0,
|
|
48
|
-
let cdHeader = await (0,
|
|
44
|
+
const { cdStartOffset } = await (0, zip_1.parseEoCDRecord)(fileProvider);
|
|
45
|
+
let cdHeader = await (0, zip_1.parseZipCDFileHeader)(cdStartOffset, fileProvider);
|
|
49
46
|
const hashInfo = [];
|
|
50
47
|
while (cdHeader) {
|
|
51
48
|
hashInfo.push({
|
|
52
49
|
hash: Buffer.from((0, md5_1.default)(cdHeader.fileName.split('\\').join('/').toLocaleLowerCase()), 'hex'),
|
|
53
50
|
offset: cdHeader.localHeaderOffset
|
|
54
51
|
});
|
|
55
|
-
cdHeader = await (0,
|
|
52
|
+
cdHeader = await (0, zip_1.parseZipCDFileHeader)(cdHeader.extraOffset + BigInt(cdHeader.extraFieldLength), fileProvider);
|
|
56
53
|
}
|
|
57
|
-
hashInfo.sort((a, b) => (0,
|
|
54
|
+
hashInfo.sort((a, b) => (0, zip_1.compareHashes)(a.hash, b.hash));
|
|
58
55
|
return hashInfo;
|
|
59
56
|
};
|
|
60
|
-
/**
|
|
61
|
-
* Reads hash file from buffer and returns it in ready-to-use form
|
|
62
|
-
* @param hashFile - bufer containing hash file
|
|
63
|
-
* @returns Array containing file info
|
|
64
|
-
*/
|
|
65
|
-
const parseHashFile = (hashFile) => {
|
|
66
|
-
const hashFileBuffer = Buffer.from(hashFile);
|
|
67
|
-
const hashArray = [];
|
|
68
|
-
for (let i = 0; i < hashFileBuffer.buffer.byteLength; i = i + 24) {
|
|
69
|
-
const offsetBuffer = new DataView(hashFileBuffer.buffer.slice(hashFileBuffer.byteOffset + i + 16, hashFileBuffer.byteOffset + i + 24));
|
|
70
|
-
const offset = offsetBuffer.getBigUint64(offsetBuffer.byteOffset, true);
|
|
71
|
-
hashArray.push({
|
|
72
|
-
hash: Buffer.from(hashFileBuffer.subarray(hashFileBuffer.byteOffset + i, hashFileBuffer.byteOffset + i + 16)),
|
|
73
|
-
offset
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
return hashArray;
|
|
77
|
-
};
|
|
@@ -1,19 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { FileProvider } from '
|
|
3
|
-
/** Element of hash array */
|
|
4
|
-
export type HashElement = {
|
|
5
|
-
/** File name hash */
|
|
6
|
-
hash: Buffer;
|
|
7
|
-
/** File offset in the archive */
|
|
8
|
-
offset: bigint;
|
|
9
|
-
};
|
|
10
|
-
/**
|
|
11
|
-
* Comparing md5 hashes according to https://github.com/Esri/i3s-spec/blob/master/docs/2.0/slpk_hashtable.pcsl.md step 5
|
|
12
|
-
* @param hash1 hash to compare
|
|
13
|
-
* @param hash2 hash to compare
|
|
14
|
-
* @returns -1 if hash1 < hash2, 0 of hash1 === hash2, 1 if hash1 > hash2
|
|
15
|
-
*/
|
|
16
|
-
export declare const compareHashes: (hash1: Buffer, hash2: Buffer) => number;
|
|
2
|
+
import { FileProvider, HashElement } from '@loaders.gl/zip';
|
|
17
3
|
/**
|
|
18
4
|
* Class for handling information about slpk file
|
|
19
5
|
*/
|
|
@@ -21,12 +7,6 @@ export declare class SLPKArchive {
|
|
|
21
7
|
private slpkArchive;
|
|
22
8
|
private hashArray;
|
|
23
9
|
constructor(slpkArchive: FileProvider, hashFile: HashElement[]);
|
|
24
|
-
/**
|
|
25
|
-
* Binary search in the hash info
|
|
26
|
-
* @param hashToSearch hash that we need to find
|
|
27
|
-
* @returns required hash element or undefined if not found
|
|
28
|
-
*/
|
|
29
|
-
private findBin;
|
|
30
10
|
/**
|
|
31
11
|
* Returns file with the given path from slpk archive
|
|
32
12
|
* @param path - path inside the slpk
|
|
@@ -46,5 +26,6 @@ export declare class SLPKArchive {
|
|
|
46
26
|
* @returns buffer with the raw file data
|
|
47
27
|
*/
|
|
48
28
|
private getFileBytes;
|
|
29
|
+
findBin(nameHash: Buffer): void;
|
|
49
30
|
}
|
|
50
31
|
//# sourceMappingURL=slpk-archieve.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slpk-archieve.d.ts","sourceRoot":"","sources":["../../../../src/lib/parsers/parse-slpk/slpk-archieve.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"slpk-archieve.d.ts","sourceRoot":"","sources":["../../../../src/lib/parsers/parse-slpk/slpk-archieve.ts"],"names":[],"mappings":";AACA,OAAO,EAAC,YAAY,EAA2B,WAAW,EAAU,MAAM,iBAAiB,CAAC;AAuC5F;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,SAAS,CAAgB;gBACrB,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE;IAK9D;;;;;OAKG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,GAAG,KAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IA8B1E;;;;OAIG;YACW,aAAa;IAmB3B;;;;OAIG;YACW,YAAY;IAmB1B,OAAO,CAAC,QAAQ,EAAE,MAAM;CAGzB"}
|
|
@@ -3,29 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.SLPKArchive =
|
|
6
|
+
exports.SLPKArchive = void 0;
|
|
7
7
|
const md5_1 = __importDefault(require("md5"));
|
|
8
|
-
const
|
|
8
|
+
const zip_1 = require("@loaders.gl/zip");
|
|
9
9
|
const compression_1 = require("@loaders.gl/compression");
|
|
10
|
-
/**
|
|
11
|
-
* Comparing md5 hashes according to https://github.com/Esri/i3s-spec/blob/master/docs/2.0/slpk_hashtable.pcsl.md step 5
|
|
12
|
-
* @param hash1 hash to compare
|
|
13
|
-
* @param hash2 hash to compare
|
|
14
|
-
* @returns -1 if hash1 < hash2, 0 of hash1 === hash2, 1 if hash1 > hash2
|
|
15
|
-
*/
|
|
16
|
-
const compareHashes = (hash1, hash2) => {
|
|
17
|
-
const h1 = new BigUint64Array(hash1.buffer, hash1.byteOffset, 2);
|
|
18
|
-
const h2 = new BigUint64Array(hash2.buffer, hash2.byteOffset, 2);
|
|
19
|
-
const diff = h1[0] === h2[0] ? h1[1] - h2[1] : h1[0] - h2[0];
|
|
20
|
-
if (diff < 0n) {
|
|
21
|
-
return -1;
|
|
22
|
-
}
|
|
23
|
-
else if (diff === 0n) {
|
|
24
|
-
return 0;
|
|
25
|
-
}
|
|
26
|
-
return 1;
|
|
27
|
-
};
|
|
28
|
-
exports.compareHashes = compareHashes;
|
|
29
10
|
/** Description of real paths for different file types */
|
|
30
11
|
const PATH_DESCRIPTIONS = [
|
|
31
12
|
{
|
|
@@ -66,29 +47,6 @@ const PATH_DESCRIPTIONS = [
|
|
|
66
47
|
*/
|
|
67
48
|
class SLPKArchive {
|
|
68
49
|
constructor(slpkArchive, hashFile) {
|
|
69
|
-
/**
|
|
70
|
-
* Binary search in the hash info
|
|
71
|
-
* @param hashToSearch hash that we need to find
|
|
72
|
-
* @returns required hash element or undefined if not found
|
|
73
|
-
*/
|
|
74
|
-
this.findBin = (hashToSearch) => {
|
|
75
|
-
let lowerBorder = 0;
|
|
76
|
-
let upperBorder = this.hashArray.length;
|
|
77
|
-
while (upperBorder - lowerBorder > 1) {
|
|
78
|
-
const middle = lowerBorder + Math.floor((upperBorder - lowerBorder) / 2);
|
|
79
|
-
const value = (0, exports.compareHashes)(this.hashArray[middle].hash, hashToSearch);
|
|
80
|
-
if (value === 0) {
|
|
81
|
-
return this.hashArray[middle];
|
|
82
|
-
}
|
|
83
|
-
else if (value < 0) {
|
|
84
|
-
lowerBorder = middle;
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
upperBorder = middle;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
return undefined;
|
|
91
|
-
};
|
|
92
50
|
this.slpkArchive = slpkArchive;
|
|
93
51
|
this.hashArray = hashFile;
|
|
94
52
|
}
|
|
@@ -155,16 +113,19 @@ class SLPKArchive {
|
|
|
155
113
|
*/
|
|
156
114
|
async getFileBytes(path) {
|
|
157
115
|
const nameHash = Buffer.from((0, md5_1.default)(path), 'hex');
|
|
158
|
-
const fileInfo =
|
|
116
|
+
const fileInfo = (0, zip_1.findBin)(nameHash, this.hashArray); // implement binary search
|
|
159
117
|
if (!fileInfo) {
|
|
160
118
|
return undefined;
|
|
161
119
|
}
|
|
162
|
-
const localFileHeader = await (0,
|
|
120
|
+
const localFileHeader = await (0, zip_1.parseZipLocalFileHeader)(fileInfo.offset, this.slpkArchive);
|
|
163
121
|
if (!localFileHeader) {
|
|
164
122
|
return undefined;
|
|
165
123
|
}
|
|
166
124
|
const compressedFile = this.slpkArchive.slice(localFileHeader.fileDataOffset, localFileHeader.fileDataOffset + localFileHeader.compressedSize);
|
|
167
125
|
return compressedFile;
|
|
168
126
|
}
|
|
127
|
+
findBin(nameHash) {
|
|
128
|
+
throw new Error('Method not implemented.');
|
|
129
|
+
}
|
|
169
130
|
}
|
|
170
131
|
exports.SLPKArchive = SLPKArchive;
|
package/dist/types.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { Matrix4, Quaternion, Vector3 } from '@math.gl/core';
|
|
|
2
2
|
import type { TypedArray, MeshAttribute, TextureLevel } from '@loaders.gl/schema';
|
|
3
3
|
import { TILESET_TYPE, TILE_REFINEMENT, TILE_TYPE, Tile3D, Tileset3D } from '@loaders.gl/tiles';
|
|
4
4
|
import I3SNodePagesTiles from './lib/helpers/i3s-nodepages-tiles';
|
|
5
|
+
import { LoaderWithParser } from '@loaders.gl/loader-utils';
|
|
5
6
|
export type COLOR = [number, number, number, number];
|
|
6
7
|
/**
|
|
7
8
|
* Extension of SceneLayer3D JSON with postprocessed loader data
|
|
@@ -21,6 +22,8 @@ export interface I3STilesetHeader extends SceneLayer3D {
|
|
|
21
22
|
lodMetricType?: string;
|
|
22
23
|
/** LOD metric value */
|
|
23
24
|
lodMetricValue?: number;
|
|
25
|
+
/** Loader that has to be used to load content */
|
|
26
|
+
loader: LoaderWithParser;
|
|
24
27
|
}
|
|
25
28
|
/** https://github.com/Esri/i3s-spec/blob/master/docs/1.8/nodePage.cmn.md */
|
|
26
29
|
export type NodePage = {
|