@loaders.gl/i3s 4.2.0-alpha.3 → 4.2.0-alpha.5
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/arcgis-webscene-loader.d.ts +1 -1
- package/dist/arcgis-webscene-loader.d.ts.map +1 -1
- package/dist/arcgis-webscene-loader.js +20 -11
- package/dist/dist.dev.js +1244 -731
- package/dist/dist.min.js +9 -0
- package/dist/i3s-attribute-loader.d.ts +2 -2
- package/dist/i3s-attribute-loader.d.ts.map +1 -1
- package/dist/i3s-attribute-loader.js +146 -95
- package/dist/i3s-building-scene-layer-loader.d.ts +2 -2
- package/dist/i3s-building-scene-layer-loader.d.ts.map +1 -1
- package/dist/i3s-building-scene-layer-loader.js +18 -14
- package/dist/i3s-content-loader.d.ts +2 -2
- package/dist/i3s-content-loader.d.ts.map +1 -1
- package/dist/i3s-content-loader.js +24 -25
- 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 +9 -7
- package/dist/i3s-loader.d.ts +2 -2
- package/dist/i3s-loader.d.ts.map +1 -1
- package/dist/i3s-loader.js +77 -66
- package/dist/i3s-node-page-loader.d.ts +2 -2
- package/dist/i3s-node-page-loader.d.ts.map +1 -1
- package/dist/i3s-node-page-loader.js +17 -13
- package/dist/i3s-slpk-loader.js +19 -15
- package/dist/index.cjs +73 -138
- package/dist/index.cjs.map +7 -0
- package/dist/index.d.ts +14 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/lib/helpers/i3s-nodepages-tiles.d.ts +1 -1
- package/dist/lib/helpers/i3s-nodepages-tiles.d.ts.map +1 -1
- package/dist/lib/helpers/i3s-nodepages-tiles.js +226 -184
- package/dist/lib/parsers/constants.js +72 -45
- package/dist/lib/parsers/parse-arcgis-webscene.d.ts +1 -1
- package/dist/lib/parsers/parse-arcgis-webscene.d.ts.map +1 -1
- package/dist/lib/parsers/parse-arcgis-webscene.js +79 -59
- package/dist/lib/parsers/parse-i3s-attribute.js +83 -46
- package/dist/lib/parsers/parse-i3s-building-scene-layer.d.ts +1 -1
- package/dist/lib/parsers/parse-i3s-building-scene-layer.d.ts.map +1 -1
- package/dist/lib/parsers/parse-i3s-building-scene-layer.js +36 -33
- package/dist/lib/parsers/parse-i3s-tile-content.d.ts +1 -1
- package/dist/lib/parsers/parse-i3s-tile-content.d.ts.map +1 -1
- package/dist/lib/parsers/parse-i3s-tile-content.js +460 -394
- package/dist/lib/parsers/parse-i3s.d.ts +1 -1
- package/dist/lib/parsers/parse-i3s.d.ts.map +1 -1
- package/dist/lib/parsers/parse-i3s.js +84 -81
- 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 +23 -16
- package/dist/lib/parsers/parse-slpk/slpk-archieve.js +132 -97
- package/dist/lib/utils/convert-i3s-obb-to-mbs.js +12 -5
- package/dist/lib/utils/customize-colors.d.ts +1 -1
- package/dist/lib/utils/customize-colors.d.ts.map +1 -1
- package/dist/lib/utils/customize-colors.js +95 -81
- package/dist/lib/utils/url-utils.d.ts +1 -1
- package/dist/lib/utils/url-utils.d.ts.map +1 -1
- package/dist/lib/utils/url-utils.js +48 -28
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +5 -6
- package/dist/workers/i3s-content-worker-node.js +1 -1
- package/dist/workers/i3s-content-worker.js +0 -1
- package/package.json +13 -12
- package/dist/arcgis-webscene-loader.js.map +0 -1
- package/dist/i3s-attribute-loader.js.map +0 -1
- package/dist/i3s-building-scene-layer-loader.js.map +0 -1
- package/dist/i3s-content-loader.js.map +0 -1
- package/dist/i3s-loader.js.map +0 -1
- package/dist/i3s-node-page-loader.js.map +0 -1
- package/dist/i3s-slpk-loader.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/helpers/i3s-nodepages-tiles.js.map +0 -1
- package/dist/lib/parsers/constants.js.map +0 -1
- package/dist/lib/parsers/parse-arcgis-webscene.js.map +0 -1
- package/dist/lib/parsers/parse-i3s-attribute.js.map +0 -1
- package/dist/lib/parsers/parse-i3s-building-scene-layer.js.map +0 -1
- package/dist/lib/parsers/parse-i3s-tile-content.js.map +0 -1
- package/dist/lib/parsers/parse-i3s.js.map +0 -1
- package/dist/lib/parsers/parse-slpk/parse-slpk.js.map +0 -1
- package/dist/lib/parsers/parse-slpk/slpk-archieve.js.map +0 -1
- package/dist/lib/utils/convert-i3s-obb-to-mbs.js.map +0 -1
- package/dist/lib/utils/customize-colors.js.map +0 -1
- package/dist/lib/utils/url-utils.js.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/workers/i3s-content-worker-node.js.map +0 -1
- package/dist/workers/i3s-content-worker.js.map +0 -1
package/dist/dist.dev.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
if (typeof exports === 'object' && typeof module === 'object')
|
|
3
3
|
module.exports = factory();
|
|
4
4
|
else if (typeof define === 'function' && define.amd) define([], factory);
|
|
5
|
-
else if (typeof exports === 'object') exports['
|
|
6
|
-
else root['
|
|
5
|
+
else if (typeof exports === 'object') exports['loaders'] = factory();
|
|
6
|
+
else root['loaders'] = factory();})(globalThis, function () {
|
|
7
7
|
"use strict";
|
|
8
8
|
var __exports__ = (() => {
|
|
9
9
|
var __create = Object.create;
|
|
@@ -27,6 +27,7 @@ var __exports__ = (() => {
|
|
|
27
27
|
}
|
|
28
28
|
return to;
|
|
29
29
|
};
|
|
30
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
30
31
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
31
32
|
// If the importer is in node compatibility mode or this is not an ESM
|
|
32
33
|
// file that has been converted to a CommonJS file using a Babel-
|
|
@@ -37,13 +38,6 @@ var __exports__ = (() => {
|
|
|
37
38
|
));
|
|
38
39
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
39
40
|
|
|
40
|
-
// (disabled):../worker-utils/src/lib/node/require-utils.node
|
|
41
|
-
var require_require_utils = __commonJS({
|
|
42
|
-
"(disabled):../worker-utils/src/lib/node/require-utils.node"() {
|
|
43
|
-
"use strict";
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
|
|
47
41
|
// external-global-plugin:@loaders.gl/core
|
|
48
42
|
var require_core = __commonJS({
|
|
49
43
|
"external-global-plugin:@loaders.gl/core"(exports, module) {
|
|
@@ -51,6 +45,13 @@ var __exports__ = (() => {
|
|
|
51
45
|
}
|
|
52
46
|
});
|
|
53
47
|
|
|
48
|
+
// (disabled):../worker-utils/src/lib/node/require-utils.node
|
|
49
|
+
var require_require_utils = __commonJS({
|
|
50
|
+
"(disabled):../worker-utils/src/lib/node/require-utils.node"() {
|
|
51
|
+
"use strict";
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
|
|
54
55
|
// ../../node_modules/pako/lib/utils/common.js
|
|
55
56
|
var require_common = __commonJS({
|
|
56
57
|
"../../node_modules/pako/lib/utils/common.js"(exports) {
|
|
@@ -4259,9 +4260,9 @@ var __exports__ = (() => {
|
|
|
4259
4260
|
}
|
|
4260
4261
|
});
|
|
4261
4262
|
|
|
4262
|
-
//
|
|
4263
|
-
var
|
|
4264
|
-
__export(
|
|
4263
|
+
// bundle.ts
|
|
4264
|
+
var bundle_exports = {};
|
|
4265
|
+
__export(bundle_exports, {
|
|
4265
4266
|
ArcGISWebSceneLoader: () => ArcGISWebSceneLoader,
|
|
4266
4267
|
COORDINATE_SYSTEM: () => COORDINATE_SYSTEM,
|
|
4267
4268
|
I3SAttributeLoader: () => I3SAttributeLoader,
|
|
@@ -4276,16 +4277,25 @@ var __exports__ = (() => {
|
|
|
4276
4277
|
loadFeatureAttributes: () => loadFeatureAttributes,
|
|
4277
4278
|
parseSLPKArchive: () => parseSLPKArchive
|
|
4278
4279
|
});
|
|
4280
|
+
__reExport(bundle_exports, __toESM(require_core(), 1));
|
|
4279
4281
|
|
|
4280
4282
|
// ../math/src/geometry/constants.ts
|
|
4281
4283
|
var GL_PRIMITIVE_MODE = {
|
|
4282
4284
|
POINTS: 0,
|
|
4285
|
+
// Points. single points.
|
|
4283
4286
|
LINES: 1,
|
|
4287
|
+
// Lines. Each vertex connects to the one after it.
|
|
4284
4288
|
LINE_LOOP: 2,
|
|
4289
|
+
// Lines. Each set of two vertices is treated as a separate line segment.
|
|
4285
4290
|
LINE_STRIP: 3,
|
|
4291
|
+
// Lines/ a connected group of line segments from the first vertex to the last
|
|
4286
4292
|
TRIANGLES: 4,
|
|
4293
|
+
// Triangles. Each set of three vertices creates a separate triangle.
|
|
4287
4294
|
TRIANGLE_STRIP: 5,
|
|
4295
|
+
// Triangles. A connected group of triangles.
|
|
4288
4296
|
TRIANGLE_FAN: 6
|
|
4297
|
+
// Triangles. A connected group of triangles.
|
|
4298
|
+
// Each vertex connects to the previous and the first vertex in the fan.
|
|
4289
4299
|
};
|
|
4290
4300
|
var GL_TYPE = {
|
|
4291
4301
|
BYTE: 5120,
|
|
@@ -4325,19 +4335,25 @@ var __exports__ = (() => {
|
|
|
4325
4335
|
var window_ = globals.window || globals.self || globals.global || {};
|
|
4326
4336
|
var global_ = globals.global || globals.self || globals.window || {};
|
|
4327
4337
|
var document_ = globals.document || {};
|
|
4328
|
-
var isBrowser =
|
|
4338
|
+
var isBrowser = (
|
|
4339
|
+
// @ts-ignore process does not exist on browser
|
|
4340
|
+
Boolean(typeof process !== "object" || String(process) !== "[object process]" || process.browser)
|
|
4341
|
+
);
|
|
4329
4342
|
var matches = typeof process !== "undefined" && process.version && /v([0-9]*)/.exec(process.version);
|
|
4330
4343
|
var nodeVersion = matches && parseFloat(matches[1]) || 0;
|
|
4331
4344
|
|
|
4332
4345
|
// ../worker-utils/src/lib/env-utils/version.ts
|
|
4346
|
+
var NPM_TAG = "latest";
|
|
4333
4347
|
function getVersion() {
|
|
4334
4348
|
if (!globalThis._loadersgl_?.version) {
|
|
4335
4349
|
globalThis._loadersgl_ = globalThis._loadersgl_ || {};
|
|
4336
|
-
if (
|
|
4337
|
-
console.warn(
|
|
4350
|
+
if (typeof __VERSION__ === "undefined") {
|
|
4351
|
+
console.warn(
|
|
4352
|
+
"loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN."
|
|
4353
|
+
);
|
|
4338
4354
|
globalThis._loadersgl_.version = NPM_TAG;
|
|
4339
4355
|
} else {
|
|
4340
|
-
globalThis._loadersgl_.version =
|
|
4356
|
+
globalThis._loadersgl_.version = __VERSION__;
|
|
4341
4357
|
}
|
|
4342
4358
|
}
|
|
4343
4359
|
return globalThis._loadersgl_.version;
|
|
@@ -4362,7 +4378,10 @@ var __exports__ = (() => {
|
|
|
4362
4378
|
var window_2 = globals2.window || globals2.self || globals2.global || {};
|
|
4363
4379
|
var global_2 = globals2.global || globals2.self || globals2.window || {};
|
|
4364
4380
|
var document_2 = globals2.document || {};
|
|
4365
|
-
var isBrowser2 =
|
|
4381
|
+
var isBrowser2 = (
|
|
4382
|
+
// @ts-ignore process.browser
|
|
4383
|
+
typeof process !== "object" || String(process) !== "[object process]" || process.browser
|
|
4384
|
+
);
|
|
4366
4385
|
var isWorker = typeof importScripts === "function";
|
|
4367
4386
|
var isMobile = typeof window !== "undefined" && typeof window.orientation !== "undefined";
|
|
4368
4387
|
var matches2 = typeof process !== "undefined" && process.version && /v([0-9]*)/.exec(process.version);
|
|
@@ -4375,7 +4394,8 @@ var __exports__ = (() => {
|
|
|
4375
4394
|
if (moduleName) {
|
|
4376
4395
|
libraryUrl = getLibraryUrl(libraryUrl, moduleName, options, libraryName);
|
|
4377
4396
|
}
|
|
4378
|
-
loadLibraryPromises[libraryUrl] =
|
|
4397
|
+
loadLibraryPromises[libraryUrl] = // eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
4398
|
+
loadLibraryPromises[libraryUrl] || loadLibraryFromFile(libraryUrl);
|
|
4379
4399
|
return await loadLibraryPromises[libraryUrl];
|
|
4380
4400
|
}
|
|
4381
4401
|
function getLibraryUrl(library, moduleName, options = {}, libraryName = null) {
|
|
@@ -4469,7 +4489,9 @@ var __exports__ = (() => {
|
|
|
4469
4489
|
return concatenateArrayBuffersFromArray(sources);
|
|
4470
4490
|
}
|
|
4471
4491
|
function concatenateArrayBuffersFromArray(sources) {
|
|
4472
|
-
const sourceArrays = sources.map(
|
|
4492
|
+
const sourceArrays = sources.map(
|
|
4493
|
+
(source2) => source2 instanceof ArrayBuffer ? new Uint8Array(source2) : source2
|
|
4494
|
+
);
|
|
4473
4495
|
const byteLength = sourceArrays.reduce((length4, typedArray) => length4 + typedArray.byteLength, 0);
|
|
4474
4496
|
const result = new Uint8Array(byteLength);
|
|
4475
4497
|
let offset = 0;
|
|
@@ -4570,16 +4592,18 @@ var __exports__ = (() => {
|
|
|
4570
4592
|
|
|
4571
4593
|
// ../loader-utils/src/lib/node/promisify.ts
|
|
4572
4594
|
function promisify1(fn) {
|
|
4573
|
-
return (args) => new Promise(
|
|
4595
|
+
return (args) => new Promise(
|
|
4596
|
+
(resolve, reject) => fn(args, (error, callbackArgs) => error ? reject(error) : resolve(callbackArgs))
|
|
4597
|
+
);
|
|
4574
4598
|
}
|
|
4575
4599
|
|
|
4576
4600
|
// ../loader-utils/src/lib/files/node-file-facade.ts
|
|
4577
4601
|
var NOT_IMPLEMENTED = new Error("Not implemented");
|
|
4578
4602
|
var NodeFileFacade = class {
|
|
4579
|
-
size = 0;
|
|
4580
|
-
bigsize = 0n;
|
|
4581
|
-
url = "";
|
|
4582
4603
|
constructor(url, flags, mode) {
|
|
4604
|
+
this.size = 0;
|
|
4605
|
+
this.bigsize = 0n;
|
|
4606
|
+
this.url = "";
|
|
4583
4607
|
if (globalThis.loaders?.NodeFile) {
|
|
4584
4608
|
return new globalThis.loaders.NodeFile(url, flags, mode);
|
|
4585
4609
|
}
|
|
@@ -4588,21 +4612,27 @@ var __exports__ = (() => {
|
|
|
4588
4612
|
}
|
|
4589
4613
|
throw new Error("Can't instantiate NodeFile. Make sure to import @loaders.gl/polyfills first.");
|
|
4590
4614
|
}
|
|
4615
|
+
/** Read data */
|
|
4591
4616
|
async read(start, end) {
|
|
4592
4617
|
throw NOT_IMPLEMENTED;
|
|
4593
4618
|
}
|
|
4619
|
+
/** Write to file. The number of bytes written will be returned */
|
|
4594
4620
|
async write(arrayBuffer, offset, length4) {
|
|
4595
4621
|
throw NOT_IMPLEMENTED;
|
|
4596
4622
|
}
|
|
4623
|
+
/** Get information about file */
|
|
4597
4624
|
async stat() {
|
|
4598
4625
|
throw NOT_IMPLEMENTED;
|
|
4599
4626
|
}
|
|
4627
|
+
/** Truncates the file descriptor. Only available on NodeFile. */
|
|
4600
4628
|
async truncate(length4) {
|
|
4601
4629
|
throw NOT_IMPLEMENTED;
|
|
4602
4630
|
}
|
|
4631
|
+
/** Append data to a file. Only available on NodeFile. */
|
|
4603
4632
|
async append(data) {
|
|
4604
4633
|
throw NOT_IMPLEMENTED;
|
|
4605
4634
|
}
|
|
4635
|
+
/** Close the file */
|
|
4606
4636
|
async close() {
|
|
4607
4637
|
}
|
|
4608
4638
|
};
|
|
@@ -4614,18 +4644,32 @@ var __exports__ = (() => {
|
|
|
4614
4644
|
|
|
4615
4645
|
// ../loader-utils/src/lib/file-provider/file-handle-file.ts
|
|
4616
4646
|
var FileHandleFile = class {
|
|
4647
|
+
/** Create a new FileHandleFile */
|
|
4617
4648
|
constructor(path, append = false) {
|
|
4618
4649
|
this.file = new NodeFileFacade(path, append ? "a+" : "r");
|
|
4619
4650
|
}
|
|
4651
|
+
/**
|
|
4652
|
+
* Truncates the file descriptor.
|
|
4653
|
+
* @param length desired file lenght
|
|
4654
|
+
*/
|
|
4620
4655
|
async truncate(length4) {
|
|
4621
4656
|
await this.file.truncate(length4);
|
|
4622
4657
|
}
|
|
4658
|
+
/**
|
|
4659
|
+
* Append data to a file.
|
|
4660
|
+
* @param buffer data to append
|
|
4661
|
+
*/
|
|
4623
4662
|
async append(buffer) {
|
|
4624
4663
|
await this.file.append(buffer);
|
|
4625
4664
|
}
|
|
4665
|
+
/** Close file */
|
|
4626
4666
|
async destroy() {
|
|
4627
4667
|
await this.file.close();
|
|
4628
4668
|
}
|
|
4669
|
+
/**
|
|
4670
|
+
* Gets an unsigned 8-bit integer at the specified byte offset from the start of the file.
|
|
4671
|
+
* @param offset The offset, in bytes, from the start of the file where to read the data.
|
|
4672
|
+
*/
|
|
4629
4673
|
async getUint8(offset) {
|
|
4630
4674
|
const arrayBuffer = await this.file.read(offset, 1);
|
|
4631
4675
|
const val = new Uint8Array(arrayBuffer).at(0);
|
|
@@ -4634,6 +4678,10 @@ var __exports__ = (() => {
|
|
|
4634
4678
|
}
|
|
4635
4679
|
return val;
|
|
4636
4680
|
}
|
|
4681
|
+
/**
|
|
4682
|
+
* Gets an unsigned 16-bit integer at the specified byte offset from the start of the file.
|
|
4683
|
+
* @param offset The offset, in bytes, from the start of the file where to read the data.
|
|
4684
|
+
*/
|
|
4637
4685
|
async getUint16(offset) {
|
|
4638
4686
|
const arrayBuffer = await this.file.read(offset, 2);
|
|
4639
4687
|
const val = new Uint16Array(arrayBuffer).at(0);
|
|
@@ -4642,6 +4690,10 @@ var __exports__ = (() => {
|
|
|
4642
4690
|
}
|
|
4643
4691
|
return val;
|
|
4644
4692
|
}
|
|
4693
|
+
/**
|
|
4694
|
+
* Gets an unsigned 32-bit integer at the specified byte offset from the start of the file.
|
|
4695
|
+
* @param offset The offset, in bytes, from the start of the file where to read the data.
|
|
4696
|
+
*/
|
|
4645
4697
|
async getUint32(offset) {
|
|
4646
4698
|
const arrayBuffer = await this.file.read(offset, 4);
|
|
4647
4699
|
const val = new Uint32Array(arrayBuffer).at(0);
|
|
@@ -4650,6 +4702,10 @@ var __exports__ = (() => {
|
|
|
4650
4702
|
}
|
|
4651
4703
|
return val;
|
|
4652
4704
|
}
|
|
4705
|
+
/**
|
|
4706
|
+
* Gets an unsigned 32-bit integer at the specified byte offset from the start of the file.
|
|
4707
|
+
* @param offset The offset, in bytes, from the start of the file where to read the data.
|
|
4708
|
+
*/
|
|
4653
4709
|
async getBigUint64(offset) {
|
|
4654
4710
|
const arrayBuffer = await this.file.read(offset, 8);
|
|
4655
4711
|
const val = new BigInt64Array(arrayBuffer).at(0);
|
|
@@ -4658,6 +4714,11 @@ var __exports__ = (() => {
|
|
|
4658
4714
|
}
|
|
4659
4715
|
return val;
|
|
4660
4716
|
}
|
|
4717
|
+
/**
|
|
4718
|
+
* returns an ArrayBuffer whose contents are a copy of this file bytes from startOffset, inclusive, up to endOffset, exclusive.
|
|
4719
|
+
* @param startOffset The offset, in byte, from the start of the file where to start reading the data.
|
|
4720
|
+
* @param endOffset The offset, in bytes, from the start of the file where to end reading the data.
|
|
4721
|
+
*/
|
|
4661
4722
|
async slice(startOffset, endOffset) {
|
|
4662
4723
|
const bigLength = endOffset - startOffset;
|
|
4663
4724
|
if (bigLength > Number.MAX_SAFE_INTEGER) {
|
|
@@ -4666,6 +4727,9 @@ var __exports__ = (() => {
|
|
|
4666
4727
|
const length4 = Number(bigLength);
|
|
4667
4728
|
return await this.file.read(startOffset, length4);
|
|
4668
4729
|
}
|
|
4730
|
+
/**
|
|
4731
|
+
* the length (in bytes) of the data.
|
|
4732
|
+
*/
|
|
4669
4733
|
get length() {
|
|
4670
4734
|
return this.file.bigsize;
|
|
4671
4735
|
}
|
|
@@ -4684,21 +4748,43 @@ var __exports__ = (() => {
|
|
|
4684
4748
|
}
|
|
4685
4749
|
async destroy() {
|
|
4686
4750
|
}
|
|
4751
|
+
/**
|
|
4752
|
+
* Gets an unsigned 8-bit integer at the specified byte offset from the start of the file.
|
|
4753
|
+
* @param offset The offset, in bytes, from the start of the file where to read the data.
|
|
4754
|
+
*/
|
|
4687
4755
|
async getUint8(offset) {
|
|
4688
4756
|
return this.file.getUint8(toNumber(offset));
|
|
4689
4757
|
}
|
|
4758
|
+
/**
|
|
4759
|
+
* Gets an unsigned 16-bit intege at the specified byte offset from the start of the file.
|
|
4760
|
+
* @param offset The offset, in bytes, from the start of the file where to read the data.
|
|
4761
|
+
*/
|
|
4690
4762
|
async getUint16(offset) {
|
|
4691
4763
|
return this.file.getUint16(toNumber(offset), true);
|
|
4692
4764
|
}
|
|
4765
|
+
/**
|
|
4766
|
+
* Gets an unsigned 32-bit integer at the specified byte offset from the start of the file.
|
|
4767
|
+
* @param offset The offset, in bytes, from the start of the file where to read the data.
|
|
4768
|
+
*/
|
|
4693
4769
|
async getUint32(offset) {
|
|
4694
4770
|
return this.file.getUint32(toNumber(offset), true);
|
|
4695
4771
|
}
|
|
4772
|
+
/**
|
|
4773
|
+
* Gets an unsigned 64-bit integer at the specified byte offset from the start of the file.
|
|
4774
|
+
* @param offset The offset, in bytes, from the start of the file where to read the data.
|
|
4775
|
+
*/
|
|
4696
4776
|
async getBigUint64(offset) {
|
|
4697
4777
|
return this.file.getBigUint64(toNumber(offset), true);
|
|
4698
4778
|
}
|
|
4779
|
+
/**
|
|
4780
|
+
* returns an ArrayBuffer whose contents are a copy of this file bytes from startOffset, inclusive, up to endOffset, exclusive.
|
|
4781
|
+
* @param startOffset The offset, in bytes, from the start of the file where to start reading the data.
|
|
4782
|
+
* @param endOffset The offset, in bytes, from the start of the file where to end reading the data.
|
|
4783
|
+
*/
|
|
4699
4784
|
async slice(startOffset, endOffset) {
|
|
4700
4785
|
return this.file.buffer.slice(toNumber(startOffset), toNumber(endOffset));
|
|
4701
4786
|
}
|
|
4787
|
+
/** the length (in bytes) of the data. */
|
|
4702
4788
|
get length() {
|
|
4703
4789
|
return BigInt(this.file.byteLength);
|
|
4704
4790
|
}
|
|
@@ -8840,14 +8926,14 @@ var __exports__ = (() => {
|
|
|
8840
8926
|
var OBJECT_ID_ATTRIBUTE_TYPE = "Oid32";
|
|
8841
8927
|
var FLOAT_64_TYPE = "Float64";
|
|
8842
8928
|
var INT_16_ATTRIBUTE_TYPE = "Int16";
|
|
8843
|
-
var COORDINATE_SYSTEM =
|
|
8929
|
+
var COORDINATE_SYSTEM = /* @__PURE__ */ ((COORDINATE_SYSTEM2) => {
|
|
8844
8930
|
COORDINATE_SYSTEM2[COORDINATE_SYSTEM2["DEFAULT"] = -1] = "DEFAULT";
|
|
8845
8931
|
COORDINATE_SYSTEM2[COORDINATE_SYSTEM2["LNGLAT"] = 1] = "LNGLAT";
|
|
8846
8932
|
COORDINATE_SYSTEM2[COORDINATE_SYSTEM2["METER_OFFSETS"] = 2] = "METER_OFFSETS";
|
|
8847
8933
|
COORDINATE_SYSTEM2[COORDINATE_SYSTEM2["LNGLAT_OFFSETS"] = 3] = "LNGLAT_OFFSETS";
|
|
8848
8934
|
COORDINATE_SYSTEM2[COORDINATE_SYSTEM2["CARTESIAN"] = 0] = "CARTESIAN";
|
|
8849
8935
|
return COORDINATE_SYSTEM2;
|
|
8850
|
-
}({});
|
|
8936
|
+
})(COORDINATE_SYSTEM || {});
|
|
8851
8937
|
|
|
8852
8938
|
// src/i3s-loader.ts
|
|
8853
8939
|
var import_core18 = __toESM(require_core(), 1);
|
|
@@ -9211,7 +9297,7 @@ var __exports__ = (() => {
|
|
|
9211
9297
|
_defineProperty(Ellipsoid, "WGS84", new Ellipsoid(WGS84_RADIUS_X, WGS84_RADIUS_Y, WGS84_RADIUS_Z));
|
|
9212
9298
|
|
|
9213
9299
|
// ../images/src/lib/utils/version.ts
|
|
9214
|
-
var VERSION2 =
|
|
9300
|
+
var VERSION2 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
9215
9301
|
|
|
9216
9302
|
// ../images/src/lib/category-api/image-type.ts
|
|
9217
9303
|
var parseImageNode = globalThis.loaders?.parseImageNode;
|
|
@@ -9398,10 +9484,7 @@ var __exports__ = (() => {
|
|
|
9398
9484
|
switch (brandMajor) {
|
|
9399
9485
|
case "avif":
|
|
9400
9486
|
case "avis":
|
|
9401
|
-
return {
|
|
9402
|
-
extension: "avif",
|
|
9403
|
-
mimeType: "image/avif"
|
|
9404
|
-
};
|
|
9487
|
+
return { extension: "avif", mimeType: "image/avif" };
|
|
9405
9488
|
default:
|
|
9406
9489
|
return null;
|
|
9407
9490
|
}
|
|
@@ -9437,6 +9520,7 @@ var __exports__ = (() => {
|
|
|
9437
9520
|
}
|
|
9438
9521
|
return {
|
|
9439
9522
|
mimeType: mediaType.mimeType,
|
|
9523
|
+
// TODO - decode width and height
|
|
9440
9524
|
width: 0,
|
|
9441
9525
|
height: 0
|
|
9442
9526
|
};
|
|
@@ -9483,10 +9567,7 @@ var __exports__ = (() => {
|
|
|
9483
9567
|
if (!isJpeg) {
|
|
9484
9568
|
return null;
|
|
9485
9569
|
}
|
|
9486
|
-
const {
|
|
9487
|
-
tableMarkers,
|
|
9488
|
-
sofMarkers
|
|
9489
|
-
} = getJpegMarkers();
|
|
9570
|
+
const { tableMarkers, sofMarkers } = getJpegMarkers();
|
|
9490
9571
|
let i2 = 2;
|
|
9491
9572
|
while (i2 + 9 < dataView.byteLength) {
|
|
9492
9573
|
const marker = dataView.getUint16(i2, BIG_ENDIAN);
|
|
@@ -9494,7 +9575,9 @@ var __exports__ = (() => {
|
|
|
9494
9575
|
return {
|
|
9495
9576
|
mimeType: "image/jpeg",
|
|
9496
9577
|
height: dataView.getUint16(i2 + 5, BIG_ENDIAN),
|
|
9578
|
+
// Number of lines
|
|
9497
9579
|
width: dataView.getUint16(i2 + 7, BIG_ENDIAN)
|
|
9580
|
+
// Number of pixels per line
|
|
9498
9581
|
};
|
|
9499
9582
|
}
|
|
9500
9583
|
if (!tableMarkers.has(marker)) {
|
|
@@ -9510,11 +9593,23 @@ var __exports__ = (() => {
|
|
|
9510
9593
|
for (let i2 = 65504; i2 < 65520; ++i2) {
|
|
9511
9594
|
tableMarkers.add(i2);
|
|
9512
9595
|
}
|
|
9513
|
-
const sofMarkers = /* @__PURE__ */ new Set([
|
|
9514
|
-
|
|
9515
|
-
|
|
9516
|
-
|
|
9517
|
-
|
|
9596
|
+
const sofMarkers = /* @__PURE__ */ new Set([
|
|
9597
|
+
65472,
|
|
9598
|
+
65473,
|
|
9599
|
+
65474,
|
|
9600
|
+
65475,
|
|
9601
|
+
65477,
|
|
9602
|
+
65478,
|
|
9603
|
+
65479,
|
|
9604
|
+
65481,
|
|
9605
|
+
65482,
|
|
9606
|
+
65483,
|
|
9607
|
+
65485,
|
|
9608
|
+
65486,
|
|
9609
|
+
65487,
|
|
9610
|
+
65502
|
|
9611
|
+
]);
|
|
9612
|
+
return { tableMarkers, sofMarkers };
|
|
9518
9613
|
}
|
|
9519
9614
|
function toDataView(data) {
|
|
9520
9615
|
if (data instanceof DataView) {
|
|
@@ -9531,9 +9626,7 @@ var __exports__ = (() => {
|
|
|
9531
9626
|
|
|
9532
9627
|
// ../images/src/lib/parsers/parse-to-node-image.ts
|
|
9533
9628
|
async function parseToNodeImage(arrayBuffer, options) {
|
|
9534
|
-
const {
|
|
9535
|
-
mimeType
|
|
9536
|
-
} = getBinaryImageMetadata(arrayBuffer) || {};
|
|
9629
|
+
const { mimeType } = getBinaryImageMetadata(arrayBuffer) || {};
|
|
9537
9630
|
const parseImageNode2 = globalThis.loaders?.parseImageNode;
|
|
9538
9631
|
assert(parseImageNode2);
|
|
9539
9632
|
return await parseImageNode2(arrayBuffer, mimeType);
|
|
@@ -9544,9 +9637,7 @@ var __exports__ = (() => {
|
|
|
9544
9637
|
options = options || {};
|
|
9545
9638
|
const imageOptions = options.image || {};
|
|
9546
9639
|
const imageType = imageOptions.type || "auto";
|
|
9547
|
-
const {
|
|
9548
|
-
url
|
|
9549
|
-
} = context || {};
|
|
9640
|
+
const { url } = context || {};
|
|
9550
9641
|
const loadType = getLoadableImageType(imageType);
|
|
9551
9642
|
let image;
|
|
9552
9643
|
switch (loadType) {
|
|
@@ -9580,12 +9671,23 @@ var __exports__ = (() => {
|
|
|
9580
9671
|
|
|
9581
9672
|
// ../images/src/image-loader.ts
|
|
9582
9673
|
var EXTENSIONS = ["png", "jpg", "jpeg", "gif", "webp", "bmp", "ico", "svg", "avif"];
|
|
9583
|
-
var MIME_TYPES = [
|
|
9674
|
+
var MIME_TYPES = [
|
|
9675
|
+
"image/png",
|
|
9676
|
+
"image/jpeg",
|
|
9677
|
+
"image/gif",
|
|
9678
|
+
"image/webp",
|
|
9679
|
+
"image/avif",
|
|
9680
|
+
"image/bmp",
|
|
9681
|
+
"image/vnd.microsoft.icon",
|
|
9682
|
+
"image/svg+xml"
|
|
9683
|
+
];
|
|
9584
9684
|
var DEFAULT_IMAGE_LOADER_OPTIONS = {
|
|
9585
9685
|
image: {
|
|
9586
9686
|
type: "auto",
|
|
9587
9687
|
decode: true
|
|
9688
|
+
// if format is HTML
|
|
9588
9689
|
}
|
|
9690
|
+
// imagebitmap: {} - passes (platform dependent) parameters to ImageBitmap constructor
|
|
9589
9691
|
};
|
|
9590
9692
|
var ImageLoader = {
|
|
9591
9693
|
id: "image",
|
|
@@ -9595,18 +9697,20 @@ var __exports__ = (() => {
|
|
|
9595
9697
|
mimeTypes: MIME_TYPES,
|
|
9596
9698
|
extensions: EXTENSIONS,
|
|
9597
9699
|
parse: parseImage,
|
|
9700
|
+
// TODO: byteOffset, byteLength;
|
|
9598
9701
|
tests: [(arrayBuffer) => Boolean(getBinaryImageMetadata(new DataView(arrayBuffer)))],
|
|
9599
9702
|
options: DEFAULT_IMAGE_LOADER_OPTIONS
|
|
9600
9703
|
};
|
|
9601
9704
|
|
|
9602
9705
|
// ../draco/src/lib/utils/version.ts
|
|
9603
|
-
var VERSION3 =
|
|
9706
|
+
var VERSION3 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
9604
9707
|
|
|
9605
9708
|
// ../draco/src/draco-loader.ts
|
|
9606
9709
|
var DracoLoader = {
|
|
9607
9710
|
name: "Draco",
|
|
9608
9711
|
id: "draco",
|
|
9609
9712
|
module: "draco",
|
|
9713
|
+
// shapes: ['mesh'],
|
|
9610
9714
|
version: VERSION3,
|
|
9611
9715
|
worker: true,
|
|
9612
9716
|
extensions: ["drc"],
|
|
@@ -9616,6 +9720,7 @@ var __exports__ = (() => {
|
|
|
9616
9720
|
options: {
|
|
9617
9721
|
draco: {
|
|
9618
9722
|
decoderType: typeof WebAssembly === "object" ? "wasm" : "js",
|
|
9723
|
+
// 'js' for IE11
|
|
9619
9724
|
libraryPath: "libs/",
|
|
9620
9725
|
extraAttributes: {},
|
|
9621
9726
|
attributeNameEntry: void 0
|
|
@@ -9669,7 +9774,10 @@ var __exports__ = (() => {
|
|
|
9669
9774
|
maxY = y > maxY ? y : maxY;
|
|
9670
9775
|
maxZ = z > maxZ ? z : maxZ;
|
|
9671
9776
|
}
|
|
9672
|
-
return [
|
|
9777
|
+
return [
|
|
9778
|
+
[minX, minY, minZ],
|
|
9779
|
+
[maxX, maxY, maxZ]
|
|
9780
|
+
];
|
|
9673
9781
|
}
|
|
9674
9782
|
|
|
9675
9783
|
// ../schema/src/lib/mesh/deduce-mesh-schema.ts
|
|
@@ -9678,14 +9786,7 @@ var __exports__ = (() => {
|
|
|
9678
9786
|
const metadata = optionalMetadata ? optionalMetadata : makeMeshAttributeMetadata(attribute);
|
|
9679
9787
|
return {
|
|
9680
9788
|
name,
|
|
9681
|
-
type: {
|
|
9682
|
-
type: "fixed-size-list",
|
|
9683
|
-
listSize: attribute.size,
|
|
9684
|
-
children: [{
|
|
9685
|
-
name: "value",
|
|
9686
|
-
type
|
|
9687
|
-
}]
|
|
9688
|
-
},
|
|
9789
|
+
type: { type: "fixed-size-list", listSize: attribute.size, children: [{ name: "value", type }] },
|
|
9689
9790
|
nullable: false,
|
|
9690
9791
|
metadata
|
|
9691
9792
|
};
|
|
@@ -9711,17 +9812,18 @@ var __exports__ = (() => {
|
|
|
9711
9812
|
const namedLoaderDataAttributes = transformAttributesLoaderData(loaderData.attributes);
|
|
9712
9813
|
for (const attributeName in attributes) {
|
|
9713
9814
|
const attribute = attributes[attributeName];
|
|
9714
|
-
const field = getArrowFieldFromAttribute(
|
|
9815
|
+
const field = getArrowFieldFromAttribute(
|
|
9816
|
+
attributeName,
|
|
9817
|
+
attribute,
|
|
9818
|
+
namedLoaderDataAttributes[attributeName]
|
|
9819
|
+
);
|
|
9715
9820
|
fields.push(field);
|
|
9716
9821
|
}
|
|
9717
9822
|
if (indices) {
|
|
9718
9823
|
const indicesField = getArrowFieldFromAttribute("indices", indices);
|
|
9719
9824
|
fields.push(indicesField);
|
|
9720
9825
|
}
|
|
9721
|
-
return {
|
|
9722
|
-
fields,
|
|
9723
|
-
metadata
|
|
9724
|
-
};
|
|
9826
|
+
return { fields, metadata };
|
|
9725
9827
|
}
|
|
9726
9828
|
function transformAttributesLoaderData(loaderData) {
|
|
9727
9829
|
const result = {};
|
|
@@ -9763,15 +9865,24 @@ var __exports__ = (() => {
|
|
|
9763
9865
|
};
|
|
9764
9866
|
var INDEX_ITEM_SIZE = 4;
|
|
9765
9867
|
var DracoParser = class {
|
|
9868
|
+
// draco - the draco decoder, either import `draco3d` or load dynamically
|
|
9766
9869
|
constructor(draco) {
|
|
9767
9870
|
this.draco = draco;
|
|
9768
9871
|
this.decoder = new this.draco.Decoder();
|
|
9769
9872
|
this.metadataQuerier = new this.draco.MetadataQuerier();
|
|
9770
9873
|
}
|
|
9874
|
+
/**
|
|
9875
|
+
* Destroy draco resources
|
|
9876
|
+
*/
|
|
9771
9877
|
destroy() {
|
|
9772
9878
|
this.draco.destroy(this.decoder);
|
|
9773
9879
|
this.draco.destroy(this.metadataQuerier);
|
|
9774
9880
|
}
|
|
9881
|
+
/**
|
|
9882
|
+
* NOTE: caller must call `destroyGeometry` on the return value after using it
|
|
9883
|
+
* @param arrayBuffer
|
|
9884
|
+
* @param options
|
|
9885
|
+
*/
|
|
9775
9886
|
parseSync(arrayBuffer, options = {}) {
|
|
9776
9887
|
const buffer = new this.draco.DecoderBuffer();
|
|
9777
9888
|
buffer.Init(new Int8Array(arrayBuffer), arrayBuffer.byteLength);
|
|
@@ -9816,6 +9927,14 @@ var __exports__ = (() => {
|
|
|
9816
9927
|
}
|
|
9817
9928
|
}
|
|
9818
9929
|
}
|
|
9930
|
+
// Draco specific "loader data"
|
|
9931
|
+
/**
|
|
9932
|
+
* Extract
|
|
9933
|
+
* @param dracoGeometry
|
|
9934
|
+
* @param geometry_type
|
|
9935
|
+
* @param options
|
|
9936
|
+
* @returns
|
|
9937
|
+
*/
|
|
9819
9938
|
_getDracoLoaderData(dracoGeometry, geometry_type, options) {
|
|
9820
9939
|
const metadata = this._getTopLevelMetadata(dracoGeometry);
|
|
9821
9940
|
const attributes = this._getDracoAttributes(dracoGeometry, options);
|
|
@@ -9828,6 +9947,12 @@ var __exports__ = (() => {
|
|
|
9828
9947
|
attributes
|
|
9829
9948
|
};
|
|
9830
9949
|
}
|
|
9950
|
+
/**
|
|
9951
|
+
* Extract all draco provided information and metadata for each attribute
|
|
9952
|
+
* @param dracoGeometry
|
|
9953
|
+
* @param options
|
|
9954
|
+
* @returns
|
|
9955
|
+
*/
|
|
9831
9956
|
_getDracoAttributes(dracoGeometry, options) {
|
|
9832
9957
|
const dracoAttributes = {};
|
|
9833
9958
|
for (let attributeId = 0; attributeId < dracoGeometry.num_attributes(); attributeId++) {
|
|
@@ -9855,6 +9980,12 @@ var __exports__ = (() => {
|
|
|
9855
9980
|
}
|
|
9856
9981
|
return dracoAttributes;
|
|
9857
9982
|
}
|
|
9983
|
+
/**
|
|
9984
|
+
* Get standard loaders.gl mesh category data
|
|
9985
|
+
* Extracts the geometry from draco
|
|
9986
|
+
* @param dracoGeometry
|
|
9987
|
+
* @param options
|
|
9988
|
+
*/
|
|
9858
9989
|
_getMeshData(dracoGeometry, loaderData, options) {
|
|
9859
9990
|
const attributes = this._getMeshAttributes(loaderData, dracoGeometry, options);
|
|
9860
9991
|
const positionAttribute = attributes.POSITION;
|
|
@@ -9867,6 +9998,7 @@ var __exports__ = (() => {
|
|
|
9867
9998
|
return {
|
|
9868
9999
|
topology: "triangle-strip",
|
|
9869
10000
|
mode: 4,
|
|
10001
|
+
// GL.TRIANGLES
|
|
9870
10002
|
attributes,
|
|
9871
10003
|
indices: {
|
|
9872
10004
|
value: this._getTriangleStripIndices(dracoGeometry),
|
|
@@ -9878,6 +10010,7 @@ var __exports__ = (() => {
|
|
|
9878
10010
|
return {
|
|
9879
10011
|
topology: "triangle-list",
|
|
9880
10012
|
mode: 5,
|
|
10013
|
+
// GL.TRIANGLE_STRIP
|
|
9881
10014
|
attributes,
|
|
9882
10015
|
indices: {
|
|
9883
10016
|
value: this._getTriangleListIndices(dracoGeometry),
|
|
@@ -9889,6 +10022,7 @@ var __exports__ = (() => {
|
|
|
9889
10022
|
return {
|
|
9890
10023
|
topology: "point-list",
|
|
9891
10024
|
mode: 0,
|
|
10025
|
+
// GL.POINTS
|
|
9892
10026
|
attributes
|
|
9893
10027
|
};
|
|
9894
10028
|
}
|
|
@@ -9897,10 +10031,7 @@ var __exports__ = (() => {
|
|
|
9897
10031
|
for (const loaderAttribute of Object.values(loaderData.attributes)) {
|
|
9898
10032
|
const attributeName = this._deduceAttributeName(loaderAttribute, options);
|
|
9899
10033
|
loaderAttribute.name = attributeName;
|
|
9900
|
-
const {
|
|
9901
|
-
value,
|
|
9902
|
-
size
|
|
9903
|
-
} = this._getAttributeValues(dracoGeometry, loaderAttribute);
|
|
10034
|
+
const { value, size } = this._getAttributeValues(dracoGeometry, loaderAttribute);
|
|
9904
10035
|
attributes[attributeName] = {
|
|
9905
10036
|
value,
|
|
9906
10037
|
size,
|
|
@@ -9911,6 +10042,11 @@ var __exports__ = (() => {
|
|
|
9911
10042
|
}
|
|
9912
10043
|
return attributes;
|
|
9913
10044
|
}
|
|
10045
|
+
// MESH INDICES EXTRACTION
|
|
10046
|
+
/**
|
|
10047
|
+
* For meshes, we need indices to define the faces.
|
|
10048
|
+
* @param dracoGeometry
|
|
10049
|
+
*/
|
|
9914
10050
|
_getTriangleListIndices(dracoGeometry) {
|
|
9915
10051
|
const numFaces = dracoGeometry.num_faces();
|
|
9916
10052
|
const numIndices = numFaces * 3;
|
|
@@ -9923,6 +10059,10 @@ var __exports__ = (() => {
|
|
|
9923
10059
|
this.draco._free(ptr);
|
|
9924
10060
|
}
|
|
9925
10061
|
}
|
|
10062
|
+
/**
|
|
10063
|
+
* For meshes, we need indices to define the faces.
|
|
10064
|
+
* @param dracoGeometry
|
|
10065
|
+
*/
|
|
9926
10066
|
_getTriangleStripIndices(dracoGeometry) {
|
|
9927
10067
|
const dracoArray = new this.draco.DracoInt32Array();
|
|
9928
10068
|
try {
|
|
@@ -9932,6 +10072,12 @@ var __exports__ = (() => {
|
|
|
9932
10072
|
this.draco.destroy(dracoArray);
|
|
9933
10073
|
}
|
|
9934
10074
|
}
|
|
10075
|
+
/**
|
|
10076
|
+
*
|
|
10077
|
+
* @param dracoGeometry
|
|
10078
|
+
* @param dracoAttribute
|
|
10079
|
+
* @param attributeName
|
|
10080
|
+
*/
|
|
9935
10081
|
_getAttributeValues(dracoGeometry, attribute) {
|
|
9936
10082
|
const TypedArrayCtor = DRACO_DATA_TYPE_TO_TYPED_ARRAY_MAP[attribute.data_type];
|
|
9937
10083
|
const numComponents = attribute.num_components;
|
|
@@ -9943,19 +10089,48 @@ var __exports__ = (() => {
|
|
|
9943
10089
|
const ptr = this.draco._malloc(byteLength);
|
|
9944
10090
|
try {
|
|
9945
10091
|
const dracoAttribute = this.decoder.GetAttribute(dracoGeometry, attribute.attribute_index);
|
|
9946
|
-
this.decoder.GetAttributeDataArrayForAllPoints(
|
|
10092
|
+
this.decoder.GetAttributeDataArrayForAllPoints(
|
|
10093
|
+
dracoGeometry,
|
|
10094
|
+
dracoAttribute,
|
|
10095
|
+
dataType,
|
|
10096
|
+
byteLength,
|
|
10097
|
+
ptr
|
|
10098
|
+
);
|
|
9947
10099
|
value = new TypedArrayCtor(this.draco.HEAPF32.buffer, ptr, numValues).slice();
|
|
9948
10100
|
} finally {
|
|
9949
10101
|
this.draco._free(ptr);
|
|
9950
10102
|
}
|
|
9951
|
-
return {
|
|
9952
|
-
|
|
9953
|
-
|
|
9954
|
-
|
|
9955
|
-
|
|
10103
|
+
return { value, size: numComponents };
|
|
10104
|
+
}
|
|
10105
|
+
// Attribute names
|
|
10106
|
+
/**
|
|
10107
|
+
* DRACO does not store attribute names - We need to deduce an attribute name
|
|
10108
|
+
* for each attribute
|
|
10109
|
+
_getAttributeNames(
|
|
10110
|
+
dracoGeometry: Mesh | PointCloud,
|
|
10111
|
+
options: DracoParseOptions
|
|
10112
|
+
): {[unique_id: number]: string} {
|
|
10113
|
+
const attributeNames: {[unique_id: number]: string} = {};
|
|
10114
|
+
for (let attributeId = 0; attributeId < dracoGeometry.num_attributes(); attributeId++) {
|
|
10115
|
+
const dracoAttribute = this.decoder.GetAttribute(dracoGeometry, attributeId);
|
|
10116
|
+
const attributeName = this._deduceAttributeName(dracoAttribute, options);
|
|
10117
|
+
attributeNames[attributeName] = attributeName;
|
|
10118
|
+
}
|
|
10119
|
+
return attributeNames;
|
|
10120
|
+
}
|
|
10121
|
+
*/
|
|
10122
|
+
/**
|
|
10123
|
+
* Deduce an attribute name.
|
|
10124
|
+
* @note DRACO does not save attribute names, just general type (POSITION, COLOR)
|
|
10125
|
+
* to help optimize compression. We generate GLTF compatible names for the Draco-recognized
|
|
10126
|
+
* types
|
|
10127
|
+
* @param attributeData
|
|
10128
|
+
*/
|
|
9956
10129
|
_deduceAttributeName(attribute, options) {
|
|
9957
10130
|
const uniqueId = attribute.unique_id;
|
|
9958
|
-
for (const [attributeName, attributeUniqueId] of Object.entries(
|
|
10131
|
+
for (const [attributeName, attributeUniqueId] of Object.entries(
|
|
10132
|
+
options.extraAttributes || {}
|
|
10133
|
+
)) {
|
|
9959
10134
|
if (attributeUniqueId === uniqueId) {
|
|
9960
10135
|
return attributeName;
|
|
9961
10136
|
}
|
|
@@ -9973,14 +10148,22 @@ var __exports__ = (() => {
|
|
|
9973
10148
|
}
|
|
9974
10149
|
return `CUSTOM_ATTRIBUTE_${uniqueId}`;
|
|
9975
10150
|
}
|
|
10151
|
+
// METADATA EXTRACTION
|
|
10152
|
+
/** Get top level metadata */
|
|
9976
10153
|
_getTopLevelMetadata(dracoGeometry) {
|
|
9977
10154
|
const dracoMetadata = this.decoder.GetMetadata(dracoGeometry);
|
|
9978
10155
|
return this._getDracoMetadata(dracoMetadata);
|
|
9979
10156
|
}
|
|
10157
|
+
/** Get per attribute metadata */
|
|
9980
10158
|
_getAttributeMetadata(dracoGeometry, attributeId) {
|
|
9981
10159
|
const dracoMetadata = this.decoder.GetAttributeMetadata(dracoGeometry, attributeId);
|
|
9982
10160
|
return this._getDracoMetadata(dracoMetadata);
|
|
9983
10161
|
}
|
|
10162
|
+
/**
|
|
10163
|
+
* Extract metadata field values
|
|
10164
|
+
* @param dracoMetadata
|
|
10165
|
+
* @returns
|
|
10166
|
+
*/
|
|
9984
10167
|
_getDracoMetadata(dracoMetadata) {
|
|
9985
10168
|
if (!dracoMetadata || !dracoMetadata.ptr) {
|
|
9986
10169
|
return {};
|
|
@@ -9993,6 +10176,11 @@ var __exports__ = (() => {
|
|
|
9993
10176
|
}
|
|
9994
10177
|
return result;
|
|
9995
10178
|
}
|
|
10179
|
+
/**
|
|
10180
|
+
* Extracts possible values for one metadata entry by name
|
|
10181
|
+
* @param dracoMetadata
|
|
10182
|
+
* @param entryName
|
|
10183
|
+
*/
|
|
9996
10184
|
_getDracoMetadataField(dracoMetadata, entryName) {
|
|
9997
10185
|
const dracoArray = new this.draco.DracoInt32Array();
|
|
9998
10186
|
try {
|
|
@@ -10008,20 +10196,21 @@ var __exports__ = (() => {
|
|
|
10008
10196
|
this.draco.destroy(dracoArray);
|
|
10009
10197
|
}
|
|
10010
10198
|
}
|
|
10199
|
+
// QUANTIZED ATTRIBUTE SUPPORT (NO DECOMPRESSION)
|
|
10200
|
+
/** Skip transforms for specific attribute types */
|
|
10011
10201
|
_disableAttributeTransforms(options) {
|
|
10012
|
-
const {
|
|
10013
|
-
quantizedAttributes = [],
|
|
10014
|
-
octahedronAttributes = []
|
|
10015
|
-
} = options;
|
|
10202
|
+
const { quantizedAttributes = [], octahedronAttributes = [] } = options;
|
|
10016
10203
|
const skipAttributes = [...quantizedAttributes, ...octahedronAttributes];
|
|
10017
10204
|
for (const dracoAttributeName of skipAttributes) {
|
|
10018
10205
|
this.decoder.SkipAttributeTransform(this.draco[dracoAttributeName]);
|
|
10019
10206
|
}
|
|
10020
10207
|
}
|
|
10208
|
+
/**
|
|
10209
|
+
* Extract (and apply?) Position Transform
|
|
10210
|
+
* @todo not used
|
|
10211
|
+
*/
|
|
10021
10212
|
_getQuantizationTransform(dracoAttribute, options) {
|
|
10022
|
-
const {
|
|
10023
|
-
quantizedAttributes = []
|
|
10024
|
-
} = options;
|
|
10213
|
+
const { quantizedAttributes = [] } = options;
|
|
10025
10214
|
const attribute_type = dracoAttribute.attribute_type();
|
|
10026
10215
|
const skip = quantizedAttributes.map((type) => this.decoder[type]).includes(attribute_type);
|
|
10027
10216
|
if (skip) {
|
|
@@ -10041,9 +10230,7 @@ var __exports__ = (() => {
|
|
|
10041
10230
|
return null;
|
|
10042
10231
|
}
|
|
10043
10232
|
_getOctahedronTransform(dracoAttribute, options) {
|
|
10044
|
-
const {
|
|
10045
|
-
octahedronAttributes = []
|
|
10046
|
-
} = options;
|
|
10233
|
+
const { octahedronAttributes = [] } = options;
|
|
10047
10234
|
const attribute_type = dracoAttribute.attribute_type();
|
|
10048
10235
|
const octahedron = octahedronAttributes.map((type) => this.decoder[type]).includes(attribute_type);
|
|
10049
10236
|
if (octahedron) {
|
|
@@ -10060,6 +10247,7 @@ var __exports__ = (() => {
|
|
|
10060
10247
|
}
|
|
10061
10248
|
return null;
|
|
10062
10249
|
}
|
|
10250
|
+
// HELPERS
|
|
10063
10251
|
};
|
|
10064
10252
|
function getDracoDataType(draco, attributeType) {
|
|
10065
10253
|
switch (attributeType) {
|
|
@@ -10103,9 +10291,13 @@ var __exports__ = (() => {
|
|
|
10103
10291
|
var DRACO_ENCODER_VERSION = "1.4.1";
|
|
10104
10292
|
var STATIC_DECODER_URL = `https://www.gstatic.com/draco/versioned/decoders/${DRACO_DECODER_VERSION}`;
|
|
10105
10293
|
var DRACO_EXTERNAL_LIBRARIES = {
|
|
10294
|
+
/** The primary Draco3D encoder, javascript wrapper part */
|
|
10106
10295
|
DECODER: "draco_wasm_wrapper.js",
|
|
10296
|
+
/** The primary draco decoder, compiled web assembly part */
|
|
10107
10297
|
DECODER_WASM: "draco_decoder.wasm",
|
|
10298
|
+
/** Fallback decoder for non-webassebly environments. Very big bundle, lower performance */
|
|
10108
10299
|
FALLBACK_DECODER: "draco_decoder.js",
|
|
10300
|
+
/** Draco encoder */
|
|
10109
10301
|
ENCODER: "draco_encoder.js"
|
|
10110
10302
|
};
|
|
10111
10303
|
var DRACO_EXTERNAL_LIBRARY_URLS = {
|
|
@@ -10119,9 +10311,7 @@ var __exports__ = (() => {
|
|
|
10119
10311
|
const modules = options.modules || {};
|
|
10120
10312
|
if (modules.draco3d) {
|
|
10121
10313
|
loadDecoderPromise = loadDecoderPromise || modules.draco3d.createDecoderModule({}).then((draco) => {
|
|
10122
|
-
return {
|
|
10123
|
-
draco
|
|
10124
|
-
};
|
|
10314
|
+
return { draco };
|
|
10125
10315
|
});
|
|
10126
10316
|
} else {
|
|
10127
10317
|
loadDecoderPromise = loadDecoderPromise || loadDracoDecoder(options);
|
|
@@ -10133,11 +10323,29 @@ var __exports__ = (() => {
|
|
|
10133
10323
|
let wasmBinary;
|
|
10134
10324
|
switch (options.draco && options.draco.decoderType) {
|
|
10135
10325
|
case "js":
|
|
10136
|
-
DracoDecoderModule = await loadLibrary(
|
|
10326
|
+
DracoDecoderModule = await loadLibrary(
|
|
10327
|
+
DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER],
|
|
10328
|
+
"draco",
|
|
10329
|
+
options,
|
|
10330
|
+
DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER
|
|
10331
|
+
);
|
|
10137
10332
|
break;
|
|
10138
10333
|
case "wasm":
|
|
10139
10334
|
default:
|
|
10140
|
-
[DracoDecoderModule, wasmBinary] = await Promise.all([
|
|
10335
|
+
[DracoDecoderModule, wasmBinary] = await Promise.all([
|
|
10336
|
+
await loadLibrary(
|
|
10337
|
+
DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER],
|
|
10338
|
+
"draco",
|
|
10339
|
+
options,
|
|
10340
|
+
DRACO_EXTERNAL_LIBRARIES.DECODER
|
|
10341
|
+
),
|
|
10342
|
+
await loadLibrary(
|
|
10343
|
+
DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER_WASM],
|
|
10344
|
+
"draco",
|
|
10345
|
+
options,
|
|
10346
|
+
DRACO_EXTERNAL_LIBRARIES.DECODER_WASM
|
|
10347
|
+
)
|
|
10348
|
+
]);
|
|
10141
10349
|
}
|
|
10142
10350
|
DracoDecoderModule = DracoDecoderModule || globalThis.DracoDecoderModule;
|
|
10143
10351
|
return await initializeDracoDecoder(DracoDecoderModule, wasmBinary);
|
|
@@ -10150,9 +10358,8 @@ var __exports__ = (() => {
|
|
|
10150
10358
|
return new Promise((resolve) => {
|
|
10151
10359
|
DracoDecoderModule({
|
|
10152
10360
|
...options,
|
|
10153
|
-
onModuleLoaded: (draco) => resolve({
|
|
10154
|
-
|
|
10155
|
-
})
|
|
10361
|
+
onModuleLoaded: (draco) => resolve({ draco })
|
|
10362
|
+
// Module is Promise-like. Wrap in object to avoid loop.
|
|
10156
10363
|
});
|
|
10157
10364
|
});
|
|
10158
10365
|
}
|
|
@@ -10163,9 +10370,7 @@ var __exports__ = (() => {
|
|
|
10163
10370
|
parse
|
|
10164
10371
|
};
|
|
10165
10372
|
async function parse(arrayBuffer, options) {
|
|
10166
|
-
const {
|
|
10167
|
-
draco
|
|
10168
|
-
} = await loadDracoDecoderModule(options);
|
|
10373
|
+
const { draco } = await loadDracoDecoderModule(options);
|
|
10169
10374
|
const dracoParser = new DracoParser(draco);
|
|
10170
10375
|
try {
|
|
10171
10376
|
return dracoParser.parseSync(arrayBuffer, options?.draco);
|
|
@@ -10175,13 +10380,17 @@ var __exports__ = (() => {
|
|
|
10175
10380
|
}
|
|
10176
10381
|
|
|
10177
10382
|
// ../textures/src/lib/utils/version.ts
|
|
10178
|
-
var VERSION4 =
|
|
10383
|
+
var VERSION4 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
10179
10384
|
|
|
10180
10385
|
// ../textures/src/lib/parsers/basis-module-loader.ts
|
|
10181
10386
|
var BASIS_EXTERNAL_LIBRARIES = {
|
|
10387
|
+
/** Basis transcoder, javascript wrapper part */
|
|
10182
10388
|
TRANSCODER: "basis_transcoder.js",
|
|
10389
|
+
/** Basis transcoder, compiled web assembly part */
|
|
10183
10390
|
TRANSCODER_WASM: "basis_transcoder.wasm",
|
|
10391
|
+
/** Basis encoder, javascript wrapper part */
|
|
10184
10392
|
ENCODER: "basis_encoder.js",
|
|
10393
|
+
/** Basis encoder, compiled web assembly part */
|
|
10185
10394
|
ENCODER_WASM: "basis_encoder.wasm"
|
|
10186
10395
|
};
|
|
10187
10396
|
var loadBasisTranscoderPromise;
|
|
@@ -10196,7 +10405,10 @@ var __exports__ = (() => {
|
|
|
10196
10405
|
async function loadBasisTranscoder(options) {
|
|
10197
10406
|
let BASIS = null;
|
|
10198
10407
|
let wasmBinary = null;
|
|
10199
|
-
[BASIS, wasmBinary] = await Promise.all([
|
|
10408
|
+
[BASIS, wasmBinary] = await Promise.all([
|
|
10409
|
+
await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER, "textures", options),
|
|
10410
|
+
await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER_WASM, "textures", options)
|
|
10411
|
+
]);
|
|
10200
10412
|
BASIS = BASIS || globalThis.BASIS;
|
|
10201
10413
|
return await initializeBasisTranscoderModule(BASIS, wasmBinary);
|
|
10202
10414
|
}
|
|
@@ -10207,14 +10419,9 @@ var __exports__ = (() => {
|
|
|
10207
10419
|
}
|
|
10208
10420
|
return new Promise((resolve) => {
|
|
10209
10421
|
BasisModule(options).then((module) => {
|
|
10210
|
-
const {
|
|
10211
|
-
BasisFile,
|
|
10212
|
-
initializeBasis
|
|
10213
|
-
} = module;
|
|
10422
|
+
const { BasisFile, initializeBasis } = module;
|
|
10214
10423
|
initializeBasis();
|
|
10215
|
-
resolve({
|
|
10216
|
-
BasisFile
|
|
10217
|
-
});
|
|
10424
|
+
resolve({ BasisFile });
|
|
10218
10425
|
});
|
|
10219
10426
|
});
|
|
10220
10427
|
}
|
|
@@ -10230,7 +10437,10 @@ var __exports__ = (() => {
|
|
|
10230
10437
|
async function loadBasisEncoder(options) {
|
|
10231
10438
|
let BASIS_ENCODER = null;
|
|
10232
10439
|
let wasmBinary = null;
|
|
10233
|
-
[BASIS_ENCODER, wasmBinary] = await Promise.all([
|
|
10440
|
+
[BASIS_ENCODER, wasmBinary] = await Promise.all([
|
|
10441
|
+
await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER, "textures", options),
|
|
10442
|
+
await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER_WASM, "textures", options)
|
|
10443
|
+
]);
|
|
10234
10444
|
BASIS_ENCODER = BASIS_ENCODER || globalThis.BASIS;
|
|
10235
10445
|
return await initializeBasisEncoderModule(BASIS_ENCODER, wasmBinary);
|
|
10236
10446
|
}
|
|
@@ -10241,28 +10451,21 @@ var __exports__ = (() => {
|
|
|
10241
10451
|
}
|
|
10242
10452
|
return new Promise((resolve) => {
|
|
10243
10453
|
BasisEncoderModule(options).then((module) => {
|
|
10244
|
-
const {
|
|
10245
|
-
BasisFile,
|
|
10246
|
-
KTX2File,
|
|
10247
|
-
initializeBasis,
|
|
10248
|
-
BasisEncoder
|
|
10249
|
-
} = module;
|
|
10454
|
+
const { BasisFile, KTX2File, initializeBasis, BasisEncoder } = module;
|
|
10250
10455
|
initializeBasis();
|
|
10251
|
-
resolve({
|
|
10252
|
-
BasisFile,
|
|
10253
|
-
KTX2File,
|
|
10254
|
-
BasisEncoder
|
|
10255
|
-
});
|
|
10456
|
+
resolve({ BasisFile, KTX2File, BasisEncoder });
|
|
10256
10457
|
});
|
|
10257
10458
|
});
|
|
10258
10459
|
}
|
|
10259
10460
|
|
|
10260
10461
|
// ../textures/src/lib/gl-extensions.ts
|
|
10261
10462
|
var GL_EXTENSIONS_CONSTANTS = {
|
|
10463
|
+
// WEBGL_compressed_texture_s3tc
|
|
10262
10464
|
COMPRESSED_RGB_S3TC_DXT1_EXT: 33776,
|
|
10263
10465
|
COMPRESSED_RGBA_S3TC_DXT1_EXT: 33777,
|
|
10264
10466
|
COMPRESSED_RGBA_S3TC_DXT3_EXT: 33778,
|
|
10265
10467
|
COMPRESSED_RGBA_S3TC_DXT5_EXT: 33779,
|
|
10468
|
+
// WEBGL_compressed_texture_es3
|
|
10266
10469
|
COMPRESSED_R11_EAC: 37488,
|
|
10267
10470
|
COMPRESSED_SIGNED_R11_EAC: 37489,
|
|
10268
10471
|
COMPRESSED_RG11_EAC: 37490,
|
|
@@ -10273,14 +10476,18 @@ var __exports__ = (() => {
|
|
|
10273
10476
|
COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: 37495,
|
|
10274
10477
|
COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: 37496,
|
|
10275
10478
|
COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: 37497,
|
|
10479
|
+
// WEBGL_compressed_texture_pvrtc
|
|
10276
10480
|
COMPRESSED_RGB_PVRTC_4BPPV1_IMG: 35840,
|
|
10277
10481
|
COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: 35842,
|
|
10278
10482
|
COMPRESSED_RGB_PVRTC_2BPPV1_IMG: 35841,
|
|
10279
10483
|
COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: 35843,
|
|
10484
|
+
// WEBGL_compressed_texture_etc1
|
|
10280
10485
|
COMPRESSED_RGB_ETC1_WEBGL: 36196,
|
|
10486
|
+
// WEBGL_compressed_texture_atc
|
|
10281
10487
|
COMPRESSED_RGB_ATC_WEBGL: 35986,
|
|
10282
10488
|
COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL: 35987,
|
|
10283
10489
|
COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL: 34798,
|
|
10490
|
+
// WEBGL_compressed_texture_astc
|
|
10284
10491
|
COMPRESSED_RGBA_ASTC_4X4_KHR: 37808,
|
|
10285
10492
|
COMPRESSED_RGBA_ASTC_5X4_KHR: 37809,
|
|
10286
10493
|
COMPRESSED_RGBA_ASTC_5X5_KHR: 37810,
|
|
@@ -10309,10 +10516,12 @@ var __exports__ = (() => {
|
|
|
10309
10516
|
COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR: 37851,
|
|
10310
10517
|
COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR: 37852,
|
|
10311
10518
|
COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR: 37853,
|
|
10519
|
+
// EXT_texture_compression_rgtc
|
|
10312
10520
|
COMPRESSED_RED_RGTC1_EXT: 36283,
|
|
10313
10521
|
COMPRESSED_SIGNED_RED_RGTC1_EXT: 36284,
|
|
10314
10522
|
COMPRESSED_RED_GREEN_RGTC2_EXT: 36285,
|
|
10315
10523
|
COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: 36286,
|
|
10524
|
+
// WEBGL_compressed_texture_s3tc_srgb
|
|
10316
10525
|
COMPRESSED_SRGB_S3TC_DXT1_EXT: 35916,
|
|
10317
10526
|
COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: 35917,
|
|
10318
10527
|
COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: 35918,
|
|
@@ -10322,6 +10531,7 @@ var __exports__ = (() => {
|
|
|
10322
10531
|
// ../textures/src/lib/utils/texture-formats.ts
|
|
10323
10532
|
var BROWSER_PREFIXES = ["", "WEBKIT_", "MOZ_"];
|
|
10324
10533
|
var WEBGL_EXTENSIONS = {
|
|
10534
|
+
/* eslint-disable camelcase */
|
|
10325
10535
|
WEBGL_compressed_texture_s3tc: "dxt",
|
|
10326
10536
|
WEBGL_compressed_texture_s3tc_srgb: "dxt-srgb",
|
|
10327
10537
|
WEBGL_compressed_texture_etc1: "etc1",
|
|
@@ -10330,6 +10540,7 @@ var __exports__ = (() => {
|
|
|
10330
10540
|
WEBGL_compressed_texture_atc: "atc",
|
|
10331
10541
|
WEBGL_compressed_texture_astc: "astc",
|
|
10332
10542
|
EXT_texture_compression_rgtc: "rgtc"
|
|
10543
|
+
/* eslint-enable camelcase */
|
|
10333
10544
|
};
|
|
10334
10545
|
var formats = null;
|
|
10335
10546
|
function getSupportedGPUTextureFormats(gl) {
|
|
@@ -10512,49 +10723,91 @@ var __exports__ = (() => {
|
|
|
10512
10723
|
154: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_R11_EAC,
|
|
10513
10724
|
155: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RG11_EAC,
|
|
10514
10725
|
156: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_RG11_EAC,
|
|
10726
|
+
// @ts-ignore
|
|
10515
10727
|
157: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4x4_KHR,
|
|
10728
|
+
// @ts-ignore
|
|
10516
10729
|
158: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,
|
|
10730
|
+
// @ts-ignore
|
|
10517
10731
|
159: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x4_KHR,
|
|
10732
|
+
// @ts-ignore
|
|
10518
10733
|
160: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR,
|
|
10734
|
+
// @ts-ignore
|
|
10519
10735
|
161: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x5_KHR,
|
|
10736
|
+
// @ts-ignore
|
|
10520
10737
|
162: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,
|
|
10738
|
+
// @ts-ignore
|
|
10521
10739
|
163: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x5_KHR,
|
|
10740
|
+
// @ts-ignore
|
|
10522
10741
|
164: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,
|
|
10742
|
+
// @ts-ignore
|
|
10523
10743
|
165: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x6_KHR,
|
|
10744
|
+
// @ts-ignore
|
|
10524
10745
|
166: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,
|
|
10746
|
+
// @ts-ignore
|
|
10525
10747
|
167: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x5_KHR,
|
|
10748
|
+
// @ts-ignore
|
|
10526
10749
|
168: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,
|
|
10750
|
+
// @ts-ignore
|
|
10527
10751
|
169: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x6_KHR,
|
|
10752
|
+
// @ts-ignore
|
|
10528
10753
|
170: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,
|
|
10754
|
+
// @ts-ignore
|
|
10529
10755
|
171: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x8_KHR,
|
|
10756
|
+
// @ts-ignore
|
|
10530
10757
|
172: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,
|
|
10758
|
+
// @ts-ignore
|
|
10531
10759
|
173: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x5_KHR,
|
|
10760
|
+
// @ts-ignore
|
|
10532
10761
|
174: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,
|
|
10762
|
+
// @ts-ignore
|
|
10533
10763
|
175: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x6_KHR,
|
|
10764
|
+
// @ts-ignore
|
|
10534
10765
|
176: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,
|
|
10766
|
+
// @ts-ignore
|
|
10535
10767
|
177: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x8_KHR,
|
|
10768
|
+
// @ts-ignore
|
|
10536
10769
|
178: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,
|
|
10770
|
+
// @ts-ignore
|
|
10537
10771
|
179: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x10_KHR,
|
|
10772
|
+
// @ts-ignore
|
|
10538
10773
|
180: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,
|
|
10774
|
+
// @ts-ignore
|
|
10539
10775
|
181: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x10_KHR,
|
|
10776
|
+
// @ts-ignore
|
|
10540
10777
|
182: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,
|
|
10778
|
+
// @ts-ignore
|
|
10541
10779
|
183: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x12_KHR,
|
|
10780
|
+
// @ts-ignore
|
|
10542
10781
|
184: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,
|
|
10543
10782
|
1000054e3: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,
|
|
10544
10783
|
1000054001: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,
|
|
10784
|
+
// @ts-ignore
|
|
10545
10785
|
1000066e3: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4x4_KHR,
|
|
10786
|
+
// @ts-ignore
|
|
10546
10787
|
1000066001: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x4_KHR,
|
|
10788
|
+
// @ts-ignore
|
|
10547
10789
|
1000066002: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x5_KHR,
|
|
10790
|
+
// @ts-ignore
|
|
10548
10791
|
1000066003: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x5_KHR,
|
|
10792
|
+
// @ts-ignore
|
|
10549
10793
|
1000066004: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x6_KHR,
|
|
10794
|
+
// @ts-ignore
|
|
10550
10795
|
1000066005: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x5_KHR,
|
|
10796
|
+
// @ts-ignore
|
|
10551
10797
|
1000066006: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x6_KHR,
|
|
10798
|
+
// @ts-ignore
|
|
10552
10799
|
1000066007: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x8_KHR,
|
|
10800
|
+
// @ts-ignore
|
|
10553
10801
|
1000066008: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x5_KHR,
|
|
10802
|
+
// @ts-ignore
|
|
10554
10803
|
1000066009: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x6_KHR,
|
|
10804
|
+
// @ts-ignore
|
|
10555
10805
|
1000066010: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x8_KHR,
|
|
10806
|
+
// @ts-ignore
|
|
10556
10807
|
1000066011: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x10_KHR,
|
|
10808
|
+
// @ts-ignore
|
|
10557
10809
|
1000066012: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x10_KHR,
|
|
10810
|
+
// @ts-ignore
|
|
10558
10811
|
1000066013: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x12_KHR
|
|
10559
10812
|
};
|
|
10560
10813
|
function mapVkFormatToWebGL(vkFormat) {
|
|
@@ -10562,10 +10815,35 @@ var __exports__ = (() => {
|
|
|
10562
10815
|
}
|
|
10563
10816
|
|
|
10564
10817
|
// ../textures/src/lib/parsers/parse-ktx.ts
|
|
10565
|
-
var KTX2_ID = [
|
|
10818
|
+
var KTX2_ID = [
|
|
10819
|
+
// '´', 'K', 'T', 'X', '2', '0', 'ª', '\r', '\n', '\x1A', '\n'
|
|
10820
|
+
171,
|
|
10821
|
+
75,
|
|
10822
|
+
84,
|
|
10823
|
+
88,
|
|
10824
|
+
32,
|
|
10825
|
+
50,
|
|
10826
|
+
48,
|
|
10827
|
+
187,
|
|
10828
|
+
13,
|
|
10829
|
+
10,
|
|
10830
|
+
26,
|
|
10831
|
+
10
|
|
10832
|
+
];
|
|
10566
10833
|
function isKTX(data) {
|
|
10567
10834
|
const id = new Uint8Array(data);
|
|
10568
|
-
const notKTX = id.byteLength < KTX2_ID.length || id[0] !== KTX2_ID[0] ||
|
|
10835
|
+
const notKTX = id.byteLength < KTX2_ID.length || id[0] !== KTX2_ID[0] || // '´'
|
|
10836
|
+
id[1] !== KTX2_ID[1] || // 'K'
|
|
10837
|
+
id[2] !== KTX2_ID[2] || // 'T'
|
|
10838
|
+
id[3] !== KTX2_ID[3] || // 'X'
|
|
10839
|
+
id[4] !== KTX2_ID[4] || // ' '
|
|
10840
|
+
id[5] !== KTX2_ID[5] || // '2'
|
|
10841
|
+
id[6] !== KTX2_ID[6] || // '0'
|
|
10842
|
+
id[7] !== KTX2_ID[7] || // 'ª'
|
|
10843
|
+
id[8] !== KTX2_ID[8] || // '\r'
|
|
10844
|
+
id[9] !== KTX2_ID[9] || // '\n'
|
|
10845
|
+
id[10] !== KTX2_ID[10] || // '\x1A'
|
|
10846
|
+
id[11] !== KTX2_ID[11];
|
|
10569
10847
|
return !notKTX;
|
|
10570
10848
|
}
|
|
10571
10849
|
function parseKTX(arrayBuffer) {
|
|
@@ -10591,10 +10869,7 @@ var __exports__ = (() => {
|
|
|
10591
10869
|
compressed: true,
|
|
10592
10870
|
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL
|
|
10593
10871
|
},
|
|
10594
|
-
etc2: {
|
|
10595
|
-
basisFormat: 1,
|
|
10596
|
-
compressed: true
|
|
10597
|
-
},
|
|
10872
|
+
etc2: { basisFormat: 1, compressed: true },
|
|
10598
10873
|
bc1: {
|
|
10599
10874
|
basisFormat: 2,
|
|
10600
10875
|
compressed: true,
|
|
@@ -10605,22 +10880,10 @@ var __exports__ = (() => {
|
|
|
10605
10880
|
compressed: true,
|
|
10606
10881
|
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT
|
|
10607
10882
|
},
|
|
10608
|
-
bc4: {
|
|
10609
|
-
|
|
10610
|
-
|
|
10611
|
-
},
|
|
10612
|
-
bc5: {
|
|
10613
|
-
basisFormat: 5,
|
|
10614
|
-
compressed: true
|
|
10615
|
-
},
|
|
10616
|
-
"bc7-m6-opaque-only": {
|
|
10617
|
-
basisFormat: 6,
|
|
10618
|
-
compressed: true
|
|
10619
|
-
},
|
|
10620
|
-
"bc7-m5": {
|
|
10621
|
-
basisFormat: 7,
|
|
10622
|
-
compressed: true
|
|
10623
|
-
},
|
|
10883
|
+
bc4: { basisFormat: 4, compressed: true },
|
|
10884
|
+
bc5: { basisFormat: 5, compressed: true },
|
|
10885
|
+
"bc7-m6-opaque-only": { basisFormat: 6, compressed: true },
|
|
10886
|
+
"bc7-m5": { basisFormat: 7, compressed: true },
|
|
10624
10887
|
"pvrtc1-4-rgb": {
|
|
10625
10888
|
basisFormat: 8,
|
|
10626
10889
|
compressed: true,
|
|
@@ -10636,30 +10899,12 @@ var __exports__ = (() => {
|
|
|
10636
10899
|
compressed: true,
|
|
10637
10900
|
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR
|
|
10638
10901
|
},
|
|
10639
|
-
"atc-rgb": {
|
|
10640
|
-
|
|
10641
|
-
|
|
10642
|
-
},
|
|
10643
|
-
|
|
10644
|
-
|
|
10645
|
-
compressed: true
|
|
10646
|
-
},
|
|
10647
|
-
rgba32: {
|
|
10648
|
-
basisFormat: 13,
|
|
10649
|
-
compressed: false
|
|
10650
|
-
},
|
|
10651
|
-
rgb565: {
|
|
10652
|
-
basisFormat: 14,
|
|
10653
|
-
compressed: false
|
|
10654
|
-
},
|
|
10655
|
-
bgr565: {
|
|
10656
|
-
basisFormat: 15,
|
|
10657
|
-
compressed: false
|
|
10658
|
-
},
|
|
10659
|
-
rgba4444: {
|
|
10660
|
-
basisFormat: 16,
|
|
10661
|
-
compressed: false
|
|
10662
|
-
}
|
|
10902
|
+
"atc-rgb": { basisFormat: 11, compressed: true },
|
|
10903
|
+
"atc-rgba-interpolated-alpha": { basisFormat: 12, compressed: true },
|
|
10904
|
+
rgba32: { basisFormat: 13, compressed: false },
|
|
10905
|
+
rgb565: { basisFormat: 14, compressed: false },
|
|
10906
|
+
bgr565: { basisFormat: 15, compressed: false },
|
|
10907
|
+
rgba4444: { basisFormat: 16, compressed: false }
|
|
10663
10908
|
};
|
|
10664
10909
|
async function parseBasis(data, options) {
|
|
10665
10910
|
if (options.basis.containerFormat === "auto") {
|
|
@@ -10667,9 +10912,7 @@ var __exports__ = (() => {
|
|
|
10667
10912
|
const fileConstructors = await loadBasisEncoderModule(options);
|
|
10668
10913
|
return parseKTX2File(fileConstructors.KTX2File, data, options);
|
|
10669
10914
|
}
|
|
10670
|
-
const {
|
|
10671
|
-
BasisFile
|
|
10672
|
-
} = await loadBasisTranscoderModule(options);
|
|
10915
|
+
const { BasisFile } = await loadBasisTranscoderModule(options);
|
|
10673
10916
|
return parseBasisFile(BasisFile, data, options);
|
|
10674
10917
|
}
|
|
10675
10918
|
switch (options.basis.module) {
|
|
@@ -10684,9 +10927,7 @@ var __exports__ = (() => {
|
|
|
10684
10927
|
}
|
|
10685
10928
|
case "transcoder":
|
|
10686
10929
|
default:
|
|
10687
|
-
const {
|
|
10688
|
-
BasisFile
|
|
10689
|
-
} = await loadBasisTranscoderModule(options);
|
|
10930
|
+
const { BasisFile } = await loadBasisTranscoderModule(options);
|
|
10690
10931
|
return parseBasisFile(BasisFile, data, options);
|
|
10691
10932
|
}
|
|
10692
10933
|
}
|
|
@@ -10715,23 +10956,24 @@ var __exports__ = (() => {
|
|
|
10715
10956
|
function transcodeImage(basisFile, imageIndex, levelIndex, options) {
|
|
10716
10957
|
const width = basisFile.getImageWidth(imageIndex, levelIndex);
|
|
10717
10958
|
const height = basisFile.getImageHeight(imageIndex, levelIndex);
|
|
10718
|
-
const hasAlpha = basisFile.getHasAlpha(
|
|
10719
|
-
|
|
10720
|
-
|
|
10721
|
-
|
|
10722
|
-
basisFormat
|
|
10723
|
-
} = getBasisOptions(options, hasAlpha);
|
|
10959
|
+
const hasAlpha = basisFile.getHasAlpha(
|
|
10960
|
+
/* imageIndex, levelIndex */
|
|
10961
|
+
);
|
|
10962
|
+
const { compressed, format, basisFormat } = getBasisOptions(options, hasAlpha);
|
|
10724
10963
|
const decodedSize = basisFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, basisFormat);
|
|
10725
10964
|
const decodedData = new Uint8Array(decodedSize);
|
|
10726
10965
|
if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {
|
|
10727
10966
|
throw new Error("failed to start Basis transcoding");
|
|
10728
10967
|
}
|
|
10729
10968
|
return {
|
|
10969
|
+
// standard loaders.gl image category payload
|
|
10730
10970
|
width,
|
|
10731
10971
|
height,
|
|
10732
10972
|
data: decodedData,
|
|
10733
10973
|
compressed,
|
|
10734
10974
|
format,
|
|
10975
|
+
// Additional fields
|
|
10976
|
+
// Add levelSize field.
|
|
10735
10977
|
hasAlpha
|
|
10736
10978
|
};
|
|
10737
10979
|
}
|
|
@@ -10754,26 +10996,35 @@ var __exports__ = (() => {
|
|
|
10754
10996
|
}
|
|
10755
10997
|
}
|
|
10756
10998
|
function transcodeKTX2Image(ktx2File, levelIndex, options) {
|
|
10757
|
-
const {
|
|
10758
|
-
|
|
10759
|
-
|
|
10760
|
-
|
|
10761
|
-
|
|
10762
|
-
|
|
10763
|
-
compressed,
|
|
10764
|
-
format,
|
|
10999
|
+
const { alphaFlag, height, width } = ktx2File.getImageLevelInfo(levelIndex, 0, 0);
|
|
11000
|
+
const { compressed, format, basisFormat } = getBasisOptions(options, alphaFlag);
|
|
11001
|
+
const decodedSize = ktx2File.getImageTranscodedSizeInBytes(
|
|
11002
|
+
levelIndex,
|
|
11003
|
+
0,
|
|
11004
|
+
0,
|
|
10765
11005
|
basisFormat
|
|
10766
|
-
|
|
10767
|
-
const decodedSize = ktx2File.getImageTranscodedSizeInBytes(levelIndex, 0, 0, basisFormat);
|
|
11006
|
+
);
|
|
10768
11007
|
const decodedData = new Uint8Array(decodedSize);
|
|
10769
|
-
if (!ktx2File.transcodeImage(
|
|
11008
|
+
if (!ktx2File.transcodeImage(
|
|
11009
|
+
decodedData,
|
|
11010
|
+
levelIndex,
|
|
11011
|
+
0,
|
|
11012
|
+
0,
|
|
11013
|
+
basisFormat,
|
|
11014
|
+
0,
|
|
11015
|
+
-1,
|
|
11016
|
+
-1
|
|
11017
|
+
/* channel1 */
|
|
11018
|
+
)) {
|
|
10770
11019
|
throw new Error("Failed to transcode KTX2 image");
|
|
10771
11020
|
}
|
|
10772
11021
|
return {
|
|
11022
|
+
// standard loaders.gl image category payload
|
|
10773
11023
|
width,
|
|
10774
11024
|
height,
|
|
10775
11025
|
data: decodedData,
|
|
10776
11026
|
compressed,
|
|
11027
|
+
// Additional fields
|
|
10777
11028
|
levelSize: decodedSize,
|
|
10778
11029
|
hasAlpha: alphaFlag,
|
|
10779
11030
|
format
|
|
@@ -10826,9 +11077,12 @@ var __exports__ = (() => {
|
|
|
10826
11077
|
options: {
|
|
10827
11078
|
basis: {
|
|
10828
11079
|
format: "auto",
|
|
11080
|
+
// gl context doesn't exist on a worker thread
|
|
10829
11081
|
libraryPath: "libs/",
|
|
10830
11082
|
containerFormat: "auto",
|
|
11083
|
+
// 'basis' || 'ktx2' || 'auto'
|
|
10831
11084
|
module: "transcoder"
|
|
11085
|
+
// 'transcoder' || 'encoder'
|
|
10832
11086
|
}
|
|
10833
11087
|
}
|
|
10834
11088
|
};
|
|
@@ -10879,7 +11133,10 @@ var __exports__ = (() => {
|
|
|
10879
11133
|
function parseDDS(data) {
|
|
10880
11134
|
const header = new Int32Array(data, 0, DDS_CONSTANTS.HEADER_LENGTH);
|
|
10881
11135
|
const pixelFormatNumber = header[DDS_CONSTANTS.HEADER_PF_FOURCC_INDEX];
|
|
10882
|
-
assert(
|
|
11136
|
+
assert(
|
|
11137
|
+
Boolean(header[DDS_CONSTANTS.HEADER_PF_FLAGS_INDEX] & DDS_CONSTANTS.DDPF_FOURCC),
|
|
11138
|
+
"DDS: Unsupported format, must contain a FourCC code"
|
|
11139
|
+
);
|
|
10883
11140
|
const fourCC = int32ToFourCC(pixelFormatNumber);
|
|
10884
11141
|
const internalFormat = DDS_PIXEL_FORMATS[fourCC];
|
|
10885
11142
|
const sizeFunction = DDS_SIZE_FUNCTIONS[fourCC];
|
|
@@ -10907,7 +11164,12 @@ var __exports__ = (() => {
|
|
|
10907
11164
|
return (width + 3 >> 2) * (height + 3 >> 2) * 16;
|
|
10908
11165
|
}
|
|
10909
11166
|
function int32ToFourCC(value) {
|
|
10910
|
-
return String.fromCharCode(
|
|
11167
|
+
return String.fromCharCode(
|
|
11168
|
+
value & 255,
|
|
11169
|
+
value >> 8 & 255,
|
|
11170
|
+
value >> 16 & 255,
|
|
11171
|
+
value >> 24 & 255
|
|
11172
|
+
);
|
|
10911
11173
|
}
|
|
10912
11174
|
|
|
10913
11175
|
// ../textures/src/lib/parsers/parse-pvr.ts
|
|
@@ -10938,20 +11200,62 @@ var __exports__ = (() => {
|
|
|
10938
11200
|
24: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2],
|
|
10939
11201
|
25: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_R11_EAC],
|
|
10940
11202
|
26: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RG11_EAC],
|
|
10941
|
-
27: [
|
|
10942
|
-
|
|
10943
|
-
|
|
10944
|
-
|
|
10945
|
-
|
|
10946
|
-
|
|
10947
|
-
|
|
10948
|
-
|
|
10949
|
-
|
|
10950
|
-
|
|
10951
|
-
|
|
10952
|
-
|
|
10953
|
-
|
|
10954
|
-
|
|
11203
|
+
27: [
|
|
11204
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR,
|
|
11205
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR
|
|
11206
|
+
],
|
|
11207
|
+
28: [
|
|
11208
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5X4_KHR,
|
|
11209
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR
|
|
11210
|
+
],
|
|
11211
|
+
29: [
|
|
11212
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5X5_KHR,
|
|
11213
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR
|
|
11214
|
+
],
|
|
11215
|
+
30: [
|
|
11216
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6X5_KHR,
|
|
11217
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR
|
|
11218
|
+
],
|
|
11219
|
+
31: [
|
|
11220
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6X6_KHR,
|
|
11221
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR
|
|
11222
|
+
],
|
|
11223
|
+
32: [
|
|
11224
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X5_KHR,
|
|
11225
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR
|
|
11226
|
+
],
|
|
11227
|
+
33: [
|
|
11228
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X6_KHR,
|
|
11229
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR
|
|
11230
|
+
],
|
|
11231
|
+
34: [
|
|
11232
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X8_KHR,
|
|
11233
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR
|
|
11234
|
+
],
|
|
11235
|
+
35: [
|
|
11236
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X5_KHR,
|
|
11237
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR
|
|
11238
|
+
],
|
|
11239
|
+
36: [
|
|
11240
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X6_KHR,
|
|
11241
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR
|
|
11242
|
+
],
|
|
11243
|
+
37: [
|
|
11244
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X8_KHR,
|
|
11245
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR
|
|
11246
|
+
],
|
|
11247
|
+
38: [
|
|
11248
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X10_KHR,
|
|
11249
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR
|
|
11250
|
+
],
|
|
11251
|
+
39: [
|
|
11252
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12X10_KHR,
|
|
11253
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR
|
|
11254
|
+
],
|
|
11255
|
+
40: [
|
|
11256
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12X12_KHR,
|
|
11257
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR
|
|
11258
|
+
]
|
|
10955
11259
|
};
|
|
10956
11260
|
var PVR_SIZE_FUNCTIONS = {
|
|
10957
11261
|
0: pvrtc2bppSize,
|
|
@@ -11084,8 +11388,21 @@ var __exports__ = (() => {
|
|
|
11084
11388
|
module: "textures",
|
|
11085
11389
|
version: VERSION4,
|
|
11086
11390
|
worker: true,
|
|
11087
|
-
extensions: [
|
|
11088
|
-
|
|
11391
|
+
extensions: [
|
|
11392
|
+
"ktx",
|
|
11393
|
+
"ktx2",
|
|
11394
|
+
"dds",
|
|
11395
|
+
// WEBGL_compressed_texture_s3tc, WEBGL_compressed_texture_atc
|
|
11396
|
+
"pvr"
|
|
11397
|
+
// WEBGL_compressed_texture_pvrtc
|
|
11398
|
+
],
|
|
11399
|
+
mimeTypes: [
|
|
11400
|
+
"image/ktx2",
|
|
11401
|
+
"image/ktx",
|
|
11402
|
+
"image/vnd-ms.dds",
|
|
11403
|
+
"image/x-dds",
|
|
11404
|
+
"application/octet-stream"
|
|
11405
|
+
],
|
|
11089
11406
|
binary: true,
|
|
11090
11407
|
options: {
|
|
11091
11408
|
"compressed-texture": {
|
|
@@ -11103,6 +11420,7 @@ var __exports__ = (() => {
|
|
|
11103
11420
|
alpha: "BC3",
|
|
11104
11421
|
noAlpha: "BC1"
|
|
11105
11422
|
},
|
|
11423
|
+
// @ts-expect-error TODO not allowed to modify inputs
|
|
11106
11424
|
...options.basis,
|
|
11107
11425
|
containerFormat: "ktx2",
|
|
11108
11426
|
module: "encoder"
|
|
@@ -11114,13 +11432,6 @@ var __exports__ = (() => {
|
|
|
11114
11432
|
}
|
|
11115
11433
|
};
|
|
11116
11434
|
|
|
11117
|
-
// src/types.ts
|
|
11118
|
-
var HeaderAttributeProperty = function(HeaderAttributeProperty2) {
|
|
11119
|
-
HeaderAttributeProperty2["vertexCount"] = "vertexCount";
|
|
11120
|
-
HeaderAttributeProperty2["featureCount"] = "featureCount";
|
|
11121
|
-
return HeaderAttributeProperty2;
|
|
11122
|
-
}({});
|
|
11123
|
-
|
|
11124
11435
|
// src/lib/utils/url-utils.ts
|
|
11125
11436
|
function getUrlWithoutParams(url) {
|
|
11126
11437
|
let urlWithoutParams;
|
|
@@ -11135,9 +11446,7 @@ var __exports__ = (() => {
|
|
|
11135
11446
|
return token ? `${url}?token=${token}` : url;
|
|
11136
11447
|
}
|
|
11137
11448
|
function generateTileAttributeUrls(url, tile) {
|
|
11138
|
-
const {
|
|
11139
|
-
attributeData = []
|
|
11140
|
-
} = tile;
|
|
11449
|
+
const { attributeData = [] } = tile;
|
|
11141
11450
|
const attributeUrls = [];
|
|
11142
11451
|
for (let index = 0; index < attributeData.length; index++) {
|
|
11143
11452
|
const attributeUrl = attributeData[index].href.replace("./", "");
|
|
@@ -11147,9 +11456,7 @@ var __exports__ = (() => {
|
|
|
11147
11456
|
}
|
|
11148
11457
|
function generateTilesetAttributeUrls(tileset, url, resource) {
|
|
11149
11458
|
const attributeUrls = [];
|
|
11150
|
-
const {
|
|
11151
|
-
attributeStorageInfo = []
|
|
11152
|
-
} = tileset;
|
|
11459
|
+
const { attributeStorageInfo = [] } = tileset;
|
|
11153
11460
|
for (let index = 0; index < attributeStorageInfo.length; index++) {
|
|
11154
11461
|
const fileName = attributeStorageInfo[index].key;
|
|
11155
11462
|
attributeUrls.push(`${url}/nodes/${resource}/attributes/${fileName}/0`);
|
|
@@ -11185,19 +11492,18 @@ var __exports__ = (() => {
|
|
|
11185
11492
|
texture: null
|
|
11186
11493
|
};
|
|
11187
11494
|
if (tileOptions.textureUrl) {
|
|
11188
|
-
const url = getUrlWithToken(
|
|
11495
|
+
const url = getUrlWithToken(
|
|
11496
|
+
getInternalPathFromUrl(tileOptions.textureUrl),
|
|
11497
|
+
// @ts-expect-error options is not properly typed
|
|
11498
|
+
options?.i3s?.token
|
|
11499
|
+
);
|
|
11189
11500
|
const loader = getLoaderForTextureFormat(tileOptions.textureFormat);
|
|
11190
11501
|
const fetchFunc = context?.fetch || fetch;
|
|
11191
11502
|
const response = await fetchFunc(url);
|
|
11192
11503
|
const arrayBuffer2 = await response.arrayBuffer();
|
|
11193
11504
|
if (options?.i3s.decodeTextures) {
|
|
11194
11505
|
if (loader === ImageLoader) {
|
|
11195
|
-
const options2 = {
|
|
11196
|
-
...tileOptions.textureLoaderOptions,
|
|
11197
|
-
image: {
|
|
11198
|
-
type: "data"
|
|
11199
|
-
}
|
|
11200
|
-
};
|
|
11506
|
+
const options2 = { ...tileOptions.textureLoaderOptions, image: { type: "data" } };
|
|
11201
11507
|
try {
|
|
11202
11508
|
const texture = await parseFromContext(arrayBuffer2, [], options2, context);
|
|
11203
11509
|
content.texture = texture;
|
|
@@ -11287,30 +11593,40 @@ var __exports__ = (() => {
|
|
|
11287
11593
|
byteOffset = headers.byteOffset;
|
|
11288
11594
|
vertexCount = headers.vertexCount;
|
|
11289
11595
|
featureCount = headers.featureCount;
|
|
11290
|
-
const {
|
|
11291
|
-
|
|
11292
|
-
byteOffset
|
|
11293
|
-
|
|
11294
|
-
|
|
11295
|
-
|
|
11296
|
-
|
|
11596
|
+
const { attributes: normalizedVertexAttributes, byteOffset: offset } = normalizeAttributes(
|
|
11597
|
+
arrayBuffer,
|
|
11598
|
+
byteOffset,
|
|
11599
|
+
vertexAttributes,
|
|
11600
|
+
vertexCount,
|
|
11601
|
+
attributesOrder
|
|
11602
|
+
);
|
|
11603
|
+
const { attributes: normalizedFeatureAttributes } = normalizeAttributes(
|
|
11604
|
+
arrayBuffer,
|
|
11605
|
+
offset,
|
|
11606
|
+
featureAttributes,
|
|
11607
|
+
featureCount,
|
|
11608
|
+
featureAttributeOrder
|
|
11609
|
+
);
|
|
11297
11610
|
flattenFeatureIdsByFaceRanges(normalizedFeatureAttributes);
|
|
11298
11611
|
attributes = concatAttributes(normalizedVertexAttributes, normalizedFeatureAttributes);
|
|
11299
11612
|
}
|
|
11300
|
-
if (!options?.i3s?.coordinateSystem ||
|
|
11613
|
+
if (!options?.i3s?.coordinateSystem || // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
11614
|
+
options.i3s.coordinateSystem === 2 /* METER_OFFSETS */) {
|
|
11301
11615
|
const enuMatrix = parsePositions(attributes.position, tileOptions);
|
|
11302
11616
|
content.modelMatrix = enuMatrix.invert();
|
|
11303
|
-
content.coordinateSystem =
|
|
11617
|
+
content.coordinateSystem = 2 /* METER_OFFSETS */;
|
|
11304
11618
|
} else {
|
|
11305
11619
|
content.modelMatrix = getModelMatrix(attributes.position);
|
|
11306
|
-
content.coordinateSystem =
|
|
11620
|
+
content.coordinateSystem = 3 /* LNGLAT_OFFSETS */;
|
|
11307
11621
|
}
|
|
11308
11622
|
content.attributes = {
|
|
11309
11623
|
positions: attributes.position,
|
|
11310
11624
|
normals: attributes.normal,
|
|
11311
11625
|
colors: normalizeAttribute(attributes.color),
|
|
11626
|
+
// Normalize from UInt8
|
|
11312
11627
|
texCoords: attributes.uv0,
|
|
11313
11628
|
uvRegions: normalizeAttribute(attributes.uvRegion || attributes.region)
|
|
11629
|
+
// Normalize from UInt16
|
|
11314
11630
|
};
|
|
11315
11631
|
content.indices = indices || null;
|
|
11316
11632
|
if (attributes.id && attributes.id.value) {
|
|
@@ -11341,10 +11657,7 @@ var __exports__ = (() => {
|
|
|
11341
11657
|
}
|
|
11342
11658
|
}
|
|
11343
11659
|
function concatAttributes(normalizedVertexAttributes, normalizedFeatureAttributes) {
|
|
11344
|
-
return {
|
|
11345
|
-
...normalizedVertexAttributes,
|
|
11346
|
-
...normalizedFeatureAttributes
|
|
11347
|
-
};
|
|
11660
|
+
return { ...normalizedVertexAttributes, ...normalizedFeatureAttributes };
|
|
11348
11661
|
}
|
|
11349
11662
|
function normalizeAttribute(attribute) {
|
|
11350
11663
|
if (!attribute) {
|
|
@@ -11357,17 +11670,14 @@ var __exports__ = (() => {
|
|
|
11357
11670
|
let byteOffset = 0;
|
|
11358
11671
|
let vertexCount = 0;
|
|
11359
11672
|
let featureCount = 0;
|
|
11360
|
-
for (const {
|
|
11361
|
-
property,
|
|
11362
|
-
type
|
|
11363
|
-
} of options.store.defaultGeometrySchema.header) {
|
|
11673
|
+
for (const { property, type } of options.store.defaultGeometrySchema.header) {
|
|
11364
11674
|
const TypedArrayTypeHeader = getConstructorForDataFormat(type);
|
|
11365
11675
|
switch (property) {
|
|
11366
|
-
case
|
|
11676
|
+
case "vertexCount" /* vertexCount */:
|
|
11367
11677
|
vertexCount = new TypedArrayTypeHeader(arrayBuffer, 0, 4)[0];
|
|
11368
11678
|
byteOffset += sizeOf(type);
|
|
11369
11679
|
break;
|
|
11370
|
-
case
|
|
11680
|
+
case "featureCount" /* featureCount */:
|
|
11371
11681
|
featureCount = new TypedArrayTypeHeader(arrayBuffer, 4, 4)[0];
|
|
11372
11682
|
byteOffset += sizeOf(type);
|
|
11373
11683
|
break;
|
|
@@ -11385,10 +11695,7 @@ var __exports__ = (() => {
|
|
|
11385
11695
|
const attributes = {};
|
|
11386
11696
|
for (const attribute of attributesOrder) {
|
|
11387
11697
|
if (vertexAttributes[attribute]) {
|
|
11388
|
-
const {
|
|
11389
|
-
valueType,
|
|
11390
|
-
valuesPerElement
|
|
11391
|
-
} = vertexAttributes[attribute];
|
|
11698
|
+
const { valueType, valuesPerElement } = vertexAttributes[attribute];
|
|
11392
11699
|
if (byteOffset + attributeCount * valuesPerElement * sizeOf(valueType) <= arrayBuffer.byteLength) {
|
|
11393
11700
|
const buffer = arrayBuffer.slice(byteOffset);
|
|
11394
11701
|
let value;
|
|
@@ -11418,10 +11725,7 @@ var __exports__ = (() => {
|
|
|
11418
11725
|
}
|
|
11419
11726
|
}
|
|
11420
11727
|
}
|
|
11421
|
-
return {
|
|
11422
|
-
attributes,
|
|
11423
|
-
byteOffset
|
|
11424
|
-
};
|
|
11728
|
+
return { attributes, byteOffset };
|
|
11425
11729
|
}
|
|
11426
11730
|
function parseUint64Values(buffer, elementsCount, attributeSize) {
|
|
11427
11731
|
const values = [];
|
|
@@ -11479,20 +11783,14 @@ var __exports__ = (() => {
|
|
|
11479
11783
|
if (materialDefinition) {
|
|
11480
11784
|
pbrMaterial = {
|
|
11481
11785
|
...materialDefinition,
|
|
11482
|
-
pbrMetallicRoughness: materialDefinition.pbrMetallicRoughness ? {
|
|
11483
|
-
...materialDefinition.pbrMetallicRoughness
|
|
11484
|
-
} : {
|
|
11485
|
-
baseColorFactor: [255, 255, 255, 255]
|
|
11486
|
-
}
|
|
11786
|
+
pbrMetallicRoughness: materialDefinition.pbrMetallicRoughness ? { ...materialDefinition.pbrMetallicRoughness } : { baseColorFactor: [255, 255, 255, 255] }
|
|
11487
11787
|
};
|
|
11488
11788
|
} else {
|
|
11489
11789
|
pbrMaterial = {
|
|
11490
11790
|
pbrMetallicRoughness: {}
|
|
11491
11791
|
};
|
|
11492
11792
|
if (texture) {
|
|
11493
|
-
pbrMaterial.pbrMetallicRoughness.baseColorTexture = {
|
|
11494
|
-
texCoord: 0
|
|
11495
|
-
};
|
|
11793
|
+
pbrMaterial.pbrMetallicRoughness.baseColorTexture = { texCoord: 0 };
|
|
11496
11794
|
} else {
|
|
11497
11795
|
pbrMaterial.pbrMetallicRoughness.baseColorFactor = [255, 255, 255, 255];
|
|
11498
11796
|
}
|
|
@@ -11505,7 +11803,9 @@ var __exports__ = (() => {
|
|
|
11505
11803
|
pbrMaterial.emissiveFactor = convertColorFormat(pbrMaterial.emissiveFactor);
|
|
11506
11804
|
}
|
|
11507
11805
|
if (pbrMaterial.pbrMetallicRoughness && pbrMaterial.pbrMetallicRoughness.baseColorFactor) {
|
|
11508
|
-
pbrMaterial.pbrMetallicRoughness.baseColorFactor = convertColorFormat(
|
|
11806
|
+
pbrMaterial.pbrMetallicRoughness.baseColorFactor = convertColorFormat(
|
|
11807
|
+
pbrMaterial.pbrMetallicRoughness.baseColorFactor
|
|
11808
|
+
);
|
|
11509
11809
|
}
|
|
11510
11810
|
if (texture) {
|
|
11511
11811
|
setMaterialTexture(pbrMaterial, texture);
|
|
@@ -11520,43 +11820,27 @@ var __exports__ = (() => {
|
|
|
11520
11820
|
return normalizedColor;
|
|
11521
11821
|
}
|
|
11522
11822
|
function setMaterialTexture(material, image) {
|
|
11523
|
-
const texture = {
|
|
11524
|
-
source: {
|
|
11525
|
-
image
|
|
11526
|
-
}
|
|
11527
|
-
};
|
|
11823
|
+
const texture = { source: { image } };
|
|
11528
11824
|
if (material.pbrMetallicRoughness && material.pbrMetallicRoughness.baseColorTexture) {
|
|
11529
11825
|
material.pbrMetallicRoughness.baseColorTexture = {
|
|
11530
11826
|
...material.pbrMetallicRoughness.baseColorTexture,
|
|
11531
11827
|
texture
|
|
11532
11828
|
};
|
|
11533
11829
|
} else if (material.emissiveTexture) {
|
|
11534
|
-
material.emissiveTexture = {
|
|
11535
|
-
...material.emissiveTexture,
|
|
11536
|
-
texture
|
|
11537
|
-
};
|
|
11830
|
+
material.emissiveTexture = { ...material.emissiveTexture, texture };
|
|
11538
11831
|
} else if (material.pbrMetallicRoughness && material.pbrMetallicRoughness.metallicRoughnessTexture) {
|
|
11539
11832
|
material.pbrMetallicRoughness.metallicRoughnessTexture = {
|
|
11540
11833
|
...material.pbrMetallicRoughness.metallicRoughnessTexture,
|
|
11541
11834
|
texture
|
|
11542
11835
|
};
|
|
11543
11836
|
} else if (material.normalTexture) {
|
|
11544
|
-
material.normalTexture = {
|
|
11545
|
-
...material.normalTexture,
|
|
11546
|
-
texture
|
|
11547
|
-
};
|
|
11837
|
+
material.normalTexture = { ...material.normalTexture, texture };
|
|
11548
11838
|
} else if (material.occlusionTexture) {
|
|
11549
|
-
material.occlusionTexture = {
|
|
11550
|
-
...material.occlusionTexture,
|
|
11551
|
-
texture
|
|
11552
|
-
};
|
|
11839
|
+
material.occlusionTexture = { ...material.occlusionTexture, texture };
|
|
11553
11840
|
}
|
|
11554
11841
|
}
|
|
11555
11842
|
function flattenFeatureIdsByFaceRanges(normalizedFeatureAttributes) {
|
|
11556
|
-
const {
|
|
11557
|
-
id,
|
|
11558
|
-
faceRange
|
|
11559
|
-
} = normalizedFeatureAttributes;
|
|
11843
|
+
const { id, faceRange } = normalizedFeatureAttributes;
|
|
11560
11844
|
if (!id || !faceRange) {
|
|
11561
11845
|
return;
|
|
11562
11846
|
}
|
|
@@ -11591,7 +11875,7 @@ var __exports__ = (() => {
|
|
|
11591
11875
|
}
|
|
11592
11876
|
|
|
11593
11877
|
// src/i3s-content-loader.ts
|
|
11594
|
-
var VERSION5 =
|
|
11878
|
+
var VERSION5 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
11595
11879
|
var I3SContentLoader = {
|
|
11596
11880
|
name: "I3S Content (Indexed Scene Layers)",
|
|
11597
11881
|
id: "i3s-content",
|
|
@@ -11606,18 +11890,19 @@ var __exports__ = (() => {
|
|
|
11606
11890
|
}
|
|
11607
11891
|
};
|
|
11608
11892
|
async function parse3(data, options, context) {
|
|
11609
|
-
const {
|
|
11610
|
-
tile,
|
|
11611
|
-
_tileOptions,
|
|
11612
|
-
tileset,
|
|
11613
|
-
_tilesetOptions
|
|
11614
|
-
} = options?.i3s || {};
|
|
11893
|
+
const { tile, _tileOptions, tileset, _tilesetOptions } = options?.i3s || {};
|
|
11615
11894
|
const tileOptions = _tileOptions || tile;
|
|
11616
11895
|
const tilesetOptions = _tilesetOptions || tileset;
|
|
11617
11896
|
if (!tileOptions || !tilesetOptions) {
|
|
11618
11897
|
return null;
|
|
11619
11898
|
}
|
|
11620
|
-
return await parseI3STileContent(
|
|
11899
|
+
return await parseI3STileContent(
|
|
11900
|
+
data,
|
|
11901
|
+
tileOptions,
|
|
11902
|
+
tilesetOptions,
|
|
11903
|
+
options,
|
|
11904
|
+
context
|
|
11905
|
+
);
|
|
11621
11906
|
}
|
|
11622
11907
|
|
|
11623
11908
|
// ../../node_modules/@math.gl/culling/dist/constants.js
|
|
@@ -12073,35 +12358,11 @@ var __exports__ = (() => {
|
|
|
12073
12358
|
// src/lib/parsers/parse-i3s.ts
|
|
12074
12359
|
var import_core17 = __toESM(require_core(), 1);
|
|
12075
12360
|
|
|
12076
|
-
// ../tiles/src/constants.ts
|
|
12077
|
-
var TILE_REFINEMENT = function(TILE_REFINEMENT2) {
|
|
12078
|
-
TILE_REFINEMENT2[TILE_REFINEMENT2["ADD"] = 1] = "ADD";
|
|
12079
|
-
TILE_REFINEMENT2[TILE_REFINEMENT2["REPLACE"] = 2] = "REPLACE";
|
|
12080
|
-
return TILE_REFINEMENT2;
|
|
12081
|
-
}({});
|
|
12082
|
-
var TILE_TYPE = function(TILE_TYPE2) {
|
|
12083
|
-
TILE_TYPE2["EMPTY"] = "empty";
|
|
12084
|
-
TILE_TYPE2["SCENEGRAPH"] = "scenegraph";
|
|
12085
|
-
TILE_TYPE2["POINTCLOUD"] = "pointcloud";
|
|
12086
|
-
TILE_TYPE2["MESH"] = "mesh";
|
|
12087
|
-
return TILE_TYPE2;
|
|
12088
|
-
}({});
|
|
12089
|
-
var TILESET_TYPE = function(TILESET_TYPE2) {
|
|
12090
|
-
TILESET_TYPE2["I3S"] = "I3S";
|
|
12091
|
-
TILESET_TYPE2["TILES3D"] = "TILES3D";
|
|
12092
|
-
return TILESET_TYPE2;
|
|
12093
|
-
}({});
|
|
12094
|
-
var LOD_METRIC_TYPE = function(LOD_METRIC_TYPE2) {
|
|
12095
|
-
LOD_METRIC_TYPE2["GEOMETRIC_ERROR"] = "geometricError";
|
|
12096
|
-
LOD_METRIC_TYPE2["MAX_SCREEN_THRESHOLD"] = "maxScreenThreshold";
|
|
12097
|
-
return LOD_METRIC_TYPE2;
|
|
12098
|
-
}({});
|
|
12099
|
-
|
|
12100
12361
|
// src/lib/helpers/i3s-nodepages-tiles.ts
|
|
12101
12362
|
var import_core16 = __toESM(require_core(), 1);
|
|
12102
12363
|
|
|
12103
12364
|
// src/i3s-node-page-loader.ts
|
|
12104
|
-
var VERSION6 =
|
|
12365
|
+
var VERSION6 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
12105
12366
|
var I3SNodePageLoader = {
|
|
12106
12367
|
name: "I3S Node Page",
|
|
12107
12368
|
id: "i3s-node-page",
|
|
@@ -12120,14 +12381,19 @@ var __exports__ = (() => {
|
|
|
12120
12381
|
|
|
12121
12382
|
// src/lib/helpers/i3s-nodepages-tiles.ts
|
|
12122
12383
|
var I3SNodePagesTiles = class {
|
|
12123
|
-
|
|
12124
|
-
|
|
12125
|
-
|
|
12126
|
-
|
|
12384
|
+
/**
|
|
12385
|
+
* @constructs
|
|
12386
|
+
* Create a I3SNodePagesTiles instance.
|
|
12387
|
+
* @param tileset - i3s tileset header ('layers/0')
|
|
12388
|
+
* @param url - tileset url
|
|
12389
|
+
* @param options - i3s loader options
|
|
12390
|
+
*/
|
|
12127
12391
|
constructor(tileset, url = "", options) {
|
|
12128
|
-
this.
|
|
12129
|
-
|
|
12130
|
-
|
|
12392
|
+
this.nodePages = [];
|
|
12393
|
+
this.pendingNodePages = [];
|
|
12394
|
+
this.textureDefinitionsSelectedFormats = [];
|
|
12395
|
+
this.textureLoaderOptions = {};
|
|
12396
|
+
this.tileset = { ...tileset };
|
|
12131
12397
|
this.url = url;
|
|
12132
12398
|
this.nodesPerPage = tileset.nodePages?.nodesPerPage || 64;
|
|
12133
12399
|
this.lodSelectionMetricType = tileset.nodePages?.lodSelectionMetricType;
|
|
@@ -12135,10 +12401,18 @@ var __exports__ = (() => {
|
|
|
12135
12401
|
this.nodesInNodePages = 0;
|
|
12136
12402
|
this.initSelectedFormatsForTextureDefinitions(tileset);
|
|
12137
12403
|
}
|
|
12404
|
+
/**
|
|
12405
|
+
* Loads some nodePage and return a particular node from it
|
|
12406
|
+
* @param id - id of node through all node pages
|
|
12407
|
+
*/
|
|
12138
12408
|
async getNodeById(id) {
|
|
12139
12409
|
const pageIndex = Math.floor(id / this.nodesPerPage);
|
|
12140
12410
|
if (!this.nodePages[pageIndex] && !this.pendingNodePages[pageIndex]) {
|
|
12141
|
-
const nodePageUrl = getUrlWithToken(
|
|
12411
|
+
const nodePageUrl = getUrlWithToken(
|
|
12412
|
+
this.url.indexOf(".slpk") !== -1 ? `nodepages/${pageIndex}` : `${this.url}/nodepages/${pageIndex}`,
|
|
12413
|
+
// @ts-expect-error this.options is not properly typed
|
|
12414
|
+
this.options.i3s?.token
|
|
12415
|
+
);
|
|
12142
12416
|
this.pendingNodePages[pageIndex] = {
|
|
12143
12417
|
status: "Pending",
|
|
12144
12418
|
promise: (0, import_core16.load)(nodePageUrl, I3SNodePageLoader, this.options)
|
|
@@ -12153,6 +12427,11 @@ var __exports__ = (() => {
|
|
|
12153
12427
|
const nodeIndex = id % this.nodesPerPage;
|
|
12154
12428
|
return this.nodePages[pageIndex].nodes[nodeIndex];
|
|
12155
12429
|
}
|
|
12430
|
+
/**
|
|
12431
|
+
* Forms tile header using node and tileset data
|
|
12432
|
+
* @param id - id of node through all node pages
|
|
12433
|
+
*/
|
|
12434
|
+
// eslint-disable-next-line complexity, max-statements
|
|
12156
12435
|
async formTileFromNodePages(id) {
|
|
12157
12436
|
const node2 = await this.getNodeById(id);
|
|
12158
12437
|
const children = [];
|
|
@@ -12174,25 +12453,21 @@ var __exports__ = (() => {
|
|
|
12174
12453
|
let attributeUrls = [];
|
|
12175
12454
|
let isDracoGeometry = false;
|
|
12176
12455
|
if (node2 && node2.mesh) {
|
|
12177
|
-
const {
|
|
12178
|
-
url,
|
|
12179
|
-
isDracoGeometry: isDracoGeometryResult
|
|
12180
|
-
} = node2.mesh.geometry && this.getContentUrl(node2.mesh.geometry) || {
|
|
12181
|
-
isDracoGeometry: false
|
|
12182
|
-
};
|
|
12456
|
+
const { url, isDracoGeometry: isDracoGeometryResult } = node2.mesh.geometry && this.getContentUrl(node2.mesh.geometry) || { isDracoGeometry: false };
|
|
12183
12457
|
contentUrl = url;
|
|
12184
12458
|
isDracoGeometry = isDracoGeometryResult;
|
|
12185
|
-
const {
|
|
12186
|
-
textureData,
|
|
12187
|
-
materialDefinition: nodeMaterialDefinition
|
|
12188
|
-
} = this.getInformationFromMaterial(node2.mesh.material);
|
|
12459
|
+
const { textureData, materialDefinition: nodeMaterialDefinition } = this.getInformationFromMaterial(node2.mesh.material);
|
|
12189
12460
|
materialDefinition = nodeMaterialDefinition;
|
|
12190
12461
|
textureFormat = textureData.format || textureFormat;
|
|
12191
12462
|
if (textureData.name) {
|
|
12192
12463
|
textureUrl = `${this.url}/nodes/${node2.mesh.material.resource}/textures/${textureData.name}`;
|
|
12193
12464
|
}
|
|
12194
12465
|
if (this.tileset.attributeStorageInfo) {
|
|
12195
|
-
attributeUrls = generateTilesetAttributeUrls(
|
|
12466
|
+
attributeUrls = generateTilesetAttributeUrls(
|
|
12467
|
+
this.tileset,
|
|
12468
|
+
this.url,
|
|
12469
|
+
node2.mesh.attribute.resource
|
|
12470
|
+
);
|
|
12196
12471
|
}
|
|
12197
12472
|
}
|
|
12198
12473
|
const lodSelection = this.getLodSelection(node2);
|
|
@@ -12210,18 +12485,31 @@ var __exports__ = (() => {
|
|
|
12210
12485
|
isDracoGeometry
|
|
12211
12486
|
});
|
|
12212
12487
|
}
|
|
12488
|
+
/**
|
|
12489
|
+
* Forms url and type of geometry resource by nodepage's data and `geometryDefinitions` in the tileset
|
|
12490
|
+
* @param - data about the node's mesh from the nodepage
|
|
12491
|
+
* @returns -
|
|
12492
|
+
* {string} url - url to the geometry resource
|
|
12493
|
+
* {boolean} isDracoGeometry - whether the geometry resource contain DRACO compressed geometry
|
|
12494
|
+
*/
|
|
12213
12495
|
getContentUrl(meshGeometryData) {
|
|
12214
12496
|
let result = null;
|
|
12215
12497
|
const geometryDefinition = this.tileset.geometryDefinitions[meshGeometryData.definition];
|
|
12216
12498
|
let geometryIndex = -1;
|
|
12217
12499
|
if (this.options.i3s && this.options.i3s.useDracoGeometry) {
|
|
12218
|
-
geometryIndex = geometryDefinition.geometryBuffers.findIndex(
|
|
12500
|
+
geometryIndex = geometryDefinition.geometryBuffers.findIndex(
|
|
12501
|
+
(buffer) => buffer.compressedAttributes && buffer.compressedAttributes.encoding === "draco"
|
|
12502
|
+
);
|
|
12219
12503
|
}
|
|
12220
12504
|
if (geometryIndex === -1) {
|
|
12221
|
-
geometryIndex = geometryDefinition.geometryBuffers.findIndex(
|
|
12505
|
+
geometryIndex = geometryDefinition.geometryBuffers.findIndex(
|
|
12506
|
+
(buffer) => !buffer.compressedAttributes
|
|
12507
|
+
);
|
|
12222
12508
|
}
|
|
12223
12509
|
if (geometryIndex !== -1) {
|
|
12224
|
-
const isDracoGeometry = Boolean(
|
|
12510
|
+
const isDracoGeometry = Boolean(
|
|
12511
|
+
geometryDefinition.geometryBuffers[geometryIndex].compressedAttributes
|
|
12512
|
+
);
|
|
12225
12513
|
result = {
|
|
12226
12514
|
url: `${this.url}/nodes/${meshGeometryData.resource}/geometries/${geometryIndex}`,
|
|
12227
12515
|
isDracoGeometry
|
|
@@ -12229,26 +12517,37 @@ var __exports__ = (() => {
|
|
|
12229
12517
|
}
|
|
12230
12518
|
return result;
|
|
12231
12519
|
}
|
|
12520
|
+
/**
|
|
12521
|
+
* Forms 1.6 compatible LOD selection object from a nodepage's node data
|
|
12522
|
+
* @param node - a node from nodepage
|
|
12523
|
+
* @returns- Array of LodSelection
|
|
12524
|
+
*/
|
|
12232
12525
|
getLodSelection(node2) {
|
|
12233
12526
|
const lodSelection = [];
|
|
12234
12527
|
if (this.lodSelectionMetricType === "maxScreenThresholdSQ") {
|
|
12235
12528
|
lodSelection.push({
|
|
12236
12529
|
metricType: "maxScreenThreshold",
|
|
12530
|
+
// @ts-ignore
|
|
12237
12531
|
maxError: Math.sqrt(node2.lodThreshold / (Math.PI * 0.25))
|
|
12238
12532
|
});
|
|
12239
12533
|
}
|
|
12240
12534
|
lodSelection.push({
|
|
12241
12535
|
metricType: this.lodSelectionMetricType,
|
|
12536
|
+
// @ts-ignore
|
|
12242
12537
|
maxError: node2.lodThreshold
|
|
12243
12538
|
});
|
|
12244
12539
|
return lodSelection;
|
|
12245
12540
|
}
|
|
12541
|
+
/**
|
|
12542
|
+
* Returns information about texture and material from `materialDefinitions`
|
|
12543
|
+
* @param material - material data from nodepage
|
|
12544
|
+
* @returns - Couple {textureData, materialDefinition}
|
|
12545
|
+
* {string} textureData.name - path name of the texture
|
|
12546
|
+
* {string} textureData.format - format of the texture
|
|
12547
|
+
* materialDefinition - PBR-like material definition from `materialDefinitions`
|
|
12548
|
+
*/
|
|
12246
12549
|
getInformationFromMaterial(material) {
|
|
12247
|
-
const informationFromMaterial = {
|
|
12248
|
-
textureData: {
|
|
12249
|
-
name: null
|
|
12250
|
-
}
|
|
12251
|
-
};
|
|
12550
|
+
const informationFromMaterial = { textureData: { name: null } };
|
|
12252
12551
|
if (material) {
|
|
12253
12552
|
const materialDefinition = this.tileset.materialDefinitions?.[material.definition];
|
|
12254
12553
|
if (materialDefinition) {
|
|
@@ -12261,6 +12560,11 @@ var __exports__ = (() => {
|
|
|
12261
12560
|
}
|
|
12262
12561
|
return informationFromMaterial;
|
|
12263
12562
|
}
|
|
12563
|
+
/**
|
|
12564
|
+
* Sets preferable and supported format for each textureDefinition of the tileset
|
|
12565
|
+
* @param tileset - I3S layer data
|
|
12566
|
+
* @returns
|
|
12567
|
+
*/
|
|
12264
12568
|
initSelectedFormatsForTextureDefinitions(tileset) {
|
|
12265
12569
|
this.textureDefinitionsSelectedFormats = [];
|
|
12266
12570
|
const possibleI3sFormats = this.getSupportedTextureFormats();
|
|
@@ -12285,6 +12589,10 @@ var __exports__ = (() => {
|
|
|
12285
12589
|
this.textureDefinitionsSelectedFormats.push(selectedFormat);
|
|
12286
12590
|
}
|
|
12287
12591
|
}
|
|
12592
|
+
/**
|
|
12593
|
+
* Returns the array of supported texture format
|
|
12594
|
+
* @returns list of format strings
|
|
12595
|
+
*/
|
|
12288
12596
|
getSupportedTextureFormats() {
|
|
12289
12597
|
const formats2 = [];
|
|
12290
12598
|
if (!this.options.i3s || this.options.i3s.useCompressedTextures) {
|
|
@@ -12326,6 +12634,7 @@ var __exports__ = (() => {
|
|
|
12326
12634
|
contentUrl,
|
|
12327
12635
|
textureUrl,
|
|
12328
12636
|
textureFormat: "jpg",
|
|
12637
|
+
// `jpg` format will cause `ImageLoader` usage that will be able to handle `png` as well
|
|
12329
12638
|
attributeUrls,
|
|
12330
12639
|
isDracoGeometry: false
|
|
12331
12640
|
});
|
|
@@ -12335,27 +12644,35 @@ var __exports__ = (() => {
|
|
|
12335
12644
|
let mbs = [0, 0, 0, 1];
|
|
12336
12645
|
if (tile.mbs) {
|
|
12337
12646
|
mbs = tile.mbs;
|
|
12338
|
-
boundingVolume.sphere = [
|
|
12647
|
+
boundingVolume.sphere = [
|
|
12648
|
+
...Ellipsoid.WGS84.cartographicToCartesian(tile.mbs.slice(0, 3)),
|
|
12649
|
+
// cartesian center of sphere
|
|
12650
|
+
tile.mbs[3]
|
|
12651
|
+
// radius of sphere
|
|
12652
|
+
];
|
|
12339
12653
|
} else if (tile.obb) {
|
|
12340
|
-
boundingVolume.box = [
|
|
12341
|
-
|
|
12654
|
+
boundingVolume.box = [
|
|
12655
|
+
...Ellipsoid.WGS84.cartographicToCartesian(tile.obb.center),
|
|
12656
|
+
// cartesian center of box
|
|
12657
|
+
...tile.obb.halfSize,
|
|
12658
|
+
// halfSize
|
|
12659
|
+
...tile.obb.quaternion
|
|
12660
|
+
// quaternion
|
|
12661
|
+
];
|
|
12662
|
+
const obb = new OrientedBoundingBox().fromCenterHalfSizeQuaternion(
|
|
12663
|
+
boundingVolume.box.slice(0, 3),
|
|
12664
|
+
tile.obb.halfSize,
|
|
12665
|
+
tile.obb.quaternion
|
|
12666
|
+
);
|
|
12342
12667
|
const boundingSphere = obb.getBoundingSphere();
|
|
12343
12668
|
boundingVolume.sphere = [...boundingSphere.center, boundingSphere.radius];
|
|
12344
12669
|
mbs = [...tile.obb.center, boundingSphere.radius];
|
|
12345
12670
|
}
|
|
12346
12671
|
const lodMetricType = tile.lodSelection?.[0].metricType;
|
|
12347
12672
|
const lodMetricValue = tile.lodSelection?.[0].maxError;
|
|
12348
|
-
const type =
|
|
12349
|
-
const refine =
|
|
12350
|
-
return {
|
|
12351
|
-
...tile,
|
|
12352
|
-
mbs,
|
|
12353
|
-
boundingVolume,
|
|
12354
|
-
lodMetricType,
|
|
12355
|
-
lodMetricValue,
|
|
12356
|
-
type,
|
|
12357
|
-
refine
|
|
12358
|
-
};
|
|
12673
|
+
const type = "mesh" /* MESH */;
|
|
12674
|
+
const refine = 2 /* REPLACE */;
|
|
12675
|
+
return { ...tile, mbs, boundingVolume, lodMetricType, lodMetricValue, type, refine };
|
|
12359
12676
|
}
|
|
12360
12677
|
async function normalizeTilesetData(tileset, options, context) {
|
|
12361
12678
|
const url = getUrlWithoutParams(context.url || "");
|
|
@@ -12370,6 +12687,7 @@ var __exports__ = (() => {
|
|
|
12370
12687
|
root = await (0, import_core17.load)(rootNodeUrl, I3SLoader, {
|
|
12371
12688
|
...options,
|
|
12372
12689
|
i3s: {
|
|
12690
|
+
// @ts-expect-error options is not properly typed
|
|
12373
12691
|
...options.i3s,
|
|
12374
12692
|
loadContent: false,
|
|
12375
12693
|
isTileHeader: true,
|
|
@@ -12382,8 +12700,9 @@ var __exports__ = (() => {
|
|
|
12382
12700
|
loader: I3SLoader,
|
|
12383
12701
|
url,
|
|
12384
12702
|
basePath: url,
|
|
12385
|
-
type:
|
|
12703
|
+
type: "I3S" /* I3S */,
|
|
12386
12704
|
nodePagesTile,
|
|
12705
|
+
// @ts-expect-error
|
|
12387
12706
|
root,
|
|
12388
12707
|
lodMetricType: root.lodMetricType,
|
|
12389
12708
|
lodMetricValue: root.lodMetricValue
|
|
@@ -12391,7 +12710,7 @@ var __exports__ = (() => {
|
|
|
12391
12710
|
}
|
|
12392
12711
|
|
|
12393
12712
|
// src/i3s-loader.ts
|
|
12394
|
-
var VERSION7 =
|
|
12713
|
+
var VERSION7 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
12395
12714
|
var TILESET_REGEX = /layers\/[0-9]+$/;
|
|
12396
12715
|
var TILE_HEADER_REGEX = /nodes\/([0-9-]+|root)$/;
|
|
12397
12716
|
var SLPK_HEX = "504b0304";
|
|
@@ -12416,7 +12735,7 @@ var __exports__ = (() => {
|
|
|
12416
12735
|
useDracoGeometry: true,
|
|
12417
12736
|
useCompressedTextures: true,
|
|
12418
12737
|
decodeTextures: true,
|
|
12419
|
-
coordinateSystem:
|
|
12738
|
+
coordinateSystem: 2 /* METER_OFFSETS */
|
|
12420
12739
|
}
|
|
12421
12740
|
}
|
|
12422
12741
|
};
|
|
@@ -12473,7 +12792,12 @@ var __exports__ = (() => {
|
|
|
12473
12792
|
|
|
12474
12793
|
// ../zip/src/parse-zip/search-from-the-end.ts
|
|
12475
12794
|
var searchFromTheEnd = async (file, target) => {
|
|
12476
|
-
const searchWindow = [
|
|
12795
|
+
const searchWindow = [
|
|
12796
|
+
await file.getUint8(file.length - 1n),
|
|
12797
|
+
await file.getUint8(file.length - 2n),
|
|
12798
|
+
await file.getUint8(file.length - 3n),
|
|
12799
|
+
void 0
|
|
12800
|
+
];
|
|
12477
12801
|
let targetOffset = 0n;
|
|
12478
12802
|
for (let i2 = file.length - 4n; i2 > -1; i2--) {
|
|
12479
12803
|
searchWindow[3] = searchWindow[2];
|
|
@@ -12505,7 +12829,9 @@ var __exports__ = (() => {
|
|
|
12505
12829
|
let zip64EoCDOffset = 0n;
|
|
12506
12830
|
const magicBytes = await file.slice(zip64EoCDLocatorOffset, zip64EoCDLocatorOffset + 4n);
|
|
12507
12831
|
if (compareArrayBuffers(magicBytes, zip64EoCDLocatorSignature)) {
|
|
12508
|
-
zip64EoCDOffset = await file.getBigUint64(
|
|
12832
|
+
zip64EoCDOffset = await file.getBigUint64(
|
|
12833
|
+
zip64EoCDLocatorOffset + ZIP64_EOCD_START_OFFSET_OFFSET
|
|
12834
|
+
);
|
|
12509
12835
|
const endOfCDMagicBytes = await file.slice(zip64EoCDOffset, zip64EoCDOffset + 4n);
|
|
12510
12836
|
if (!compareArrayBuffers(endOfCDMagicBytes, zip64EoCDSignature.buffer)) {
|
|
12511
12837
|
throw new Error("zip64 EoCD not found");
|
|
@@ -12525,97 +12851,144 @@ var __exports__ = (() => {
|
|
|
12525
12851
|
}
|
|
12526
12852
|
};
|
|
12527
12853
|
};
|
|
12528
|
-
var EOCD_FIELDS = [
|
|
12529
|
-
|
|
12530
|
-
|
|
12531
|
-
|
|
12532
|
-
|
|
12533
|
-
|
|
12534
|
-
|
|
12535
|
-
|
|
12536
|
-
|
|
12537
|
-
|
|
12538
|
-
|
|
12539
|
-
|
|
12540
|
-
|
|
12541
|
-
|
|
12542
|
-
|
|
12543
|
-
|
|
12544
|
-
|
|
12545
|
-
|
|
12546
|
-
|
|
12547
|
-
|
|
12548
|
-
|
|
12549
|
-
|
|
12550
|
-
|
|
12551
|
-
|
|
12552
|
-
|
|
12553
|
-
|
|
12554
|
-
|
|
12555
|
-
|
|
12556
|
-
|
|
12557
|
-
|
|
12558
|
-
|
|
12559
|
-
|
|
12560
|
-
|
|
12561
|
-
|
|
12562
|
-
|
|
12563
|
-
|
|
12564
|
-
|
|
12565
|
-
|
|
12566
|
-
|
|
12567
|
-
|
|
12568
|
-
|
|
12569
|
-
|
|
12570
|
-
|
|
12571
|
-
|
|
12572
|
-
|
|
12573
|
-
|
|
12574
|
-
|
|
12575
|
-
|
|
12576
|
-
|
|
12577
|
-
|
|
12578
|
-
var
|
|
12579
|
-
|
|
12580
|
-
|
|
12581
|
-
|
|
12582
|
-
|
|
12583
|
-
|
|
12584
|
-
|
|
12585
|
-
|
|
12586
|
-
|
|
12587
|
-
|
|
12588
|
-
|
|
12589
|
-
|
|
12590
|
-
|
|
12591
|
-
|
|
12592
|
-
|
|
12593
|
-
|
|
12594
|
-
|
|
12595
|
-
|
|
12596
|
-
|
|
12597
|
-
|
|
12598
|
-
|
|
12599
|
-
|
|
12600
|
-
|
|
12601
|
-
|
|
12602
|
-
|
|
12603
|
-
|
|
12604
|
-
|
|
12605
|
-
|
|
12606
|
-
|
|
12607
|
-
|
|
12608
|
-
|
|
12609
|
-
|
|
12610
|
-
|
|
12611
|
-
|
|
12612
|
-
|
|
12613
|
-
|
|
12614
|
-
|
|
12615
|
-
|
|
12616
|
-
|
|
12617
|
-
|
|
12618
|
-
|
|
12854
|
+
var EOCD_FIELDS = [
|
|
12855
|
+
// End of central directory signature = 0x06054b50
|
|
12856
|
+
{
|
|
12857
|
+
offset: 0,
|
|
12858
|
+
size: 4,
|
|
12859
|
+
default: new DataView(eoCDSignature.buffer).getUint32(0, true)
|
|
12860
|
+
},
|
|
12861
|
+
// Number of this disk (or 0xffff for ZIP64)
|
|
12862
|
+
{
|
|
12863
|
+
offset: 4,
|
|
12864
|
+
size: 2,
|
|
12865
|
+
default: 0
|
|
12866
|
+
},
|
|
12867
|
+
// Disk where central directory starts (or 0xffff for ZIP64)
|
|
12868
|
+
{
|
|
12869
|
+
offset: 6,
|
|
12870
|
+
size: 2,
|
|
12871
|
+
default: 0
|
|
12872
|
+
},
|
|
12873
|
+
// Number of central directory records on this disk (or 0xffff for ZIP64)
|
|
12874
|
+
{
|
|
12875
|
+
offset: 8,
|
|
12876
|
+
size: 2,
|
|
12877
|
+
name: "recordsNumber"
|
|
12878
|
+
},
|
|
12879
|
+
// Total number of central directory records (or 0xffff for ZIP64)
|
|
12880
|
+
{
|
|
12881
|
+
offset: 10,
|
|
12882
|
+
size: 2,
|
|
12883
|
+
name: "recordsNumber"
|
|
12884
|
+
},
|
|
12885
|
+
// Size of central directory (bytes) (or 0xffffffff for ZIP64)
|
|
12886
|
+
{
|
|
12887
|
+
offset: 12,
|
|
12888
|
+
size: 4,
|
|
12889
|
+
name: "cdSize"
|
|
12890
|
+
},
|
|
12891
|
+
// Offset of start of central directory, relative to start of archive (or 0xffffffff for ZIP64)
|
|
12892
|
+
{
|
|
12893
|
+
offset: 16,
|
|
12894
|
+
size: 4,
|
|
12895
|
+
name: "cdOffset"
|
|
12896
|
+
},
|
|
12897
|
+
// Comment length (n)
|
|
12898
|
+
{
|
|
12899
|
+
offset: 20,
|
|
12900
|
+
size: 2,
|
|
12901
|
+
default: 0
|
|
12902
|
+
}
|
|
12903
|
+
];
|
|
12904
|
+
var ZIP64_EOCD_LOCATOR_FIELDS = [
|
|
12905
|
+
// zip64 end of central dir locator signature
|
|
12906
|
+
{
|
|
12907
|
+
offset: 0,
|
|
12908
|
+
size: 4,
|
|
12909
|
+
default: new DataView(zip64EoCDLocatorSignature.buffer).getUint32(0, true)
|
|
12910
|
+
},
|
|
12911
|
+
// number of the disk with the start of the zip64 end of
|
|
12912
|
+
{
|
|
12913
|
+
offset: 4,
|
|
12914
|
+
size: 4,
|
|
12915
|
+
default: 0
|
|
12916
|
+
},
|
|
12917
|
+
// start of the zip64 end of central directory
|
|
12918
|
+
{
|
|
12919
|
+
offset: 8,
|
|
12920
|
+
size: 8,
|
|
12921
|
+
name: "eoCDStart"
|
|
12922
|
+
},
|
|
12923
|
+
// total number of disks
|
|
12924
|
+
{
|
|
12925
|
+
offset: 16,
|
|
12926
|
+
size: 4,
|
|
12927
|
+
default: 1
|
|
12928
|
+
}
|
|
12929
|
+
];
|
|
12930
|
+
var ZIP64_EOCD_FIELDS = [
|
|
12931
|
+
// End of central directory signature = 0x06064b50
|
|
12932
|
+
{
|
|
12933
|
+
offset: 0,
|
|
12934
|
+
size: 4,
|
|
12935
|
+
default: new DataView(zip64EoCDSignature.buffer).getUint32(0, true)
|
|
12936
|
+
},
|
|
12937
|
+
// Size of the EOCD64 minus 12
|
|
12938
|
+
{
|
|
12939
|
+
offset: 4,
|
|
12940
|
+
size: 8,
|
|
12941
|
+
default: 44
|
|
12942
|
+
},
|
|
12943
|
+
// Version made by
|
|
12944
|
+
{
|
|
12945
|
+
offset: 12,
|
|
12946
|
+
size: 2,
|
|
12947
|
+
default: 45
|
|
12948
|
+
},
|
|
12949
|
+
// Version needed to extract (minimum)
|
|
12950
|
+
{
|
|
12951
|
+
offset: 14,
|
|
12952
|
+
size: 2,
|
|
12953
|
+
default: 45
|
|
12954
|
+
},
|
|
12955
|
+
// Number of this disk
|
|
12956
|
+
{
|
|
12957
|
+
offset: 16,
|
|
12958
|
+
size: 4,
|
|
12959
|
+
default: 0
|
|
12960
|
+
},
|
|
12961
|
+
// Disk where central directory starts
|
|
12962
|
+
{
|
|
12963
|
+
offset: 20,
|
|
12964
|
+
size: 4,
|
|
12965
|
+
default: 0
|
|
12966
|
+
},
|
|
12967
|
+
// Number of central directory records on this disk
|
|
12968
|
+
{
|
|
12969
|
+
offset: 24,
|
|
12970
|
+
size: 8,
|
|
12971
|
+
name: "recordsNumber"
|
|
12972
|
+
},
|
|
12973
|
+
// Total number of central directory records
|
|
12974
|
+
{
|
|
12975
|
+
offset: 32,
|
|
12976
|
+
size: 8,
|
|
12977
|
+
name: "recordsNumber"
|
|
12978
|
+
},
|
|
12979
|
+
// Size of central directory (bytes)
|
|
12980
|
+
{
|
|
12981
|
+
offset: 40,
|
|
12982
|
+
size: 8,
|
|
12983
|
+
name: "cdSize"
|
|
12984
|
+
},
|
|
12985
|
+
// Offset of start of central directory, relative to start of archive
|
|
12986
|
+
{
|
|
12987
|
+
offset: 48,
|
|
12988
|
+
size: 8,
|
|
12989
|
+
name: "cdOffset"
|
|
12990
|
+
}
|
|
12991
|
+
];
|
|
12619
12992
|
|
|
12620
12993
|
// ../zip/src/parse-zip/cd-file-header.ts
|
|
12621
12994
|
var CD_COMPRESSED_SIZE_OFFSET = 20n;
|
|
@@ -12636,12 +13009,17 @@ var __exports__ = (() => {
|
|
|
12636
13009
|
const extraFieldLength = await file.getUint16(headerOffset + CD_EXTRA_FIELD_LENGTH_OFFSET);
|
|
12637
13010
|
const startDisk = BigInt(await file.getUint16(headerOffset + CD_START_DISK_OFFSET));
|
|
12638
13011
|
const fileNameLength = await file.getUint16(headerOffset + CD_FILE_NAME_LENGTH_OFFSET);
|
|
12639
|
-
const filenameBytes = await file.slice(
|
|
13012
|
+
const filenameBytes = await file.slice(
|
|
13013
|
+
headerOffset + CD_FILE_NAME_OFFSET,
|
|
13014
|
+
headerOffset + CD_FILE_NAME_OFFSET + BigInt(fileNameLength)
|
|
13015
|
+
);
|
|
12640
13016
|
const fileName = new TextDecoder().decode(filenameBytes);
|
|
12641
13017
|
const extraOffset = headerOffset + CD_FILE_NAME_OFFSET + BigInt(fileNameLength);
|
|
12642
13018
|
const oldFormatOffset = await file.getUint32(headerOffset + CD_LOCAL_HEADER_OFFSET_OFFSET);
|
|
12643
13019
|
const localHeaderOffset = BigInt(oldFormatOffset);
|
|
12644
|
-
const extraField = new DataView(
|
|
13020
|
+
const extraField = new DataView(
|
|
13021
|
+
await file.slice(extraOffset, extraOffset + BigInt(extraFieldLength))
|
|
13022
|
+
);
|
|
12645
13023
|
const zip64data = {
|
|
12646
13024
|
uncompressedSize,
|
|
12647
13025
|
compressedSize,
|
|
@@ -12659,13 +13037,14 @@ var __exports__ = (() => {
|
|
|
12659
13037
|
};
|
|
12660
13038
|
};
|
|
12661
13039
|
async function* makeZipCDHeaderIterator(fileProvider) {
|
|
12662
|
-
const {
|
|
12663
|
-
cdStartOffset
|
|
12664
|
-
} = await parseEoCDRecord(fileProvider);
|
|
13040
|
+
const { cdStartOffset } = await parseEoCDRecord(fileProvider);
|
|
12665
13041
|
let cdHeader = await parseZipCDFileHeader(cdStartOffset, fileProvider);
|
|
12666
13042
|
while (cdHeader) {
|
|
12667
13043
|
yield cdHeader;
|
|
12668
|
-
cdHeader = await parseZipCDFileHeader(
|
|
13044
|
+
cdHeader = await parseZipCDFileHeader(
|
|
13045
|
+
cdHeader.extraOffset + BigInt(cdHeader.extraFieldLength),
|
|
13046
|
+
fileProvider
|
|
13047
|
+
);
|
|
12669
13048
|
}
|
|
12670
13049
|
}
|
|
12671
13050
|
var getUint16 = (...bytes) => {
|
|
@@ -12676,7 +13055,9 @@ var __exports__ = (() => {
|
|
|
12676
13055
|
const zip64DataRes = {};
|
|
12677
13056
|
if (zip64dataList.length > 0) {
|
|
12678
13057
|
const zip64chunkSize = zip64dataList.reduce((sum, curr) => sum + curr.length, 0);
|
|
12679
|
-
const offsetInExtraData = new Uint8Array(extraField.buffer).findIndex(
|
|
13058
|
+
const offsetInExtraData = new Uint8Array(extraField.buffer).findIndex(
|
|
13059
|
+
(_val, i2, arr) => getUint16(arr[i2], arr[i2 + 1]) === 1 && getUint16(arr[i2 + 2], arr[i2 + 3]) === zip64chunkSize
|
|
13060
|
+
);
|
|
12680
13061
|
let bytesRead = 0;
|
|
12681
13062
|
for (const note of zip64dataList) {
|
|
12682
13063
|
const offset = bytesRead;
|
|
@@ -12689,101 +13070,124 @@ var __exports__ = (() => {
|
|
|
12689
13070
|
var findExpectedData = (zip64data) => {
|
|
12690
13071
|
const zip64dataList = [];
|
|
12691
13072
|
if (zip64data.uncompressedSize === BigInt(4294967295)) {
|
|
12692
|
-
zip64dataList.push({
|
|
12693
|
-
name: "uncompressedSize",
|
|
12694
|
-
length: 8
|
|
12695
|
-
});
|
|
13073
|
+
zip64dataList.push({ name: "uncompressedSize", length: 8 });
|
|
12696
13074
|
}
|
|
12697
13075
|
if (zip64data.compressedSize === BigInt(4294967295)) {
|
|
12698
|
-
zip64dataList.push({
|
|
12699
|
-
name: "compressedSize",
|
|
12700
|
-
length: 8
|
|
12701
|
-
});
|
|
13076
|
+
zip64dataList.push({ name: "compressedSize", length: 8 });
|
|
12702
13077
|
}
|
|
12703
13078
|
if (zip64data.localHeaderOffset === BigInt(4294967295)) {
|
|
12704
|
-
zip64dataList.push({
|
|
12705
|
-
name: "localHeaderOffset",
|
|
12706
|
-
length: 8
|
|
12707
|
-
});
|
|
13079
|
+
zip64dataList.push({ name: "localHeaderOffset", length: 8 });
|
|
12708
13080
|
}
|
|
12709
13081
|
if (zip64data.startDisk === BigInt(4294967295)) {
|
|
12710
|
-
zip64dataList.push({
|
|
12711
|
-
name: "startDisk",
|
|
12712
|
-
length: 4
|
|
12713
|
-
});
|
|
13082
|
+
zip64dataList.push({ name: "startDisk", length: 4 });
|
|
12714
13083
|
}
|
|
12715
13084
|
return zip64dataList;
|
|
12716
13085
|
};
|
|
12717
|
-
var ZIP_HEADER_FIELDS = [
|
|
12718
|
-
|
|
12719
|
-
|
|
12720
|
-
|
|
12721
|
-
|
|
12722
|
-
|
|
12723
|
-
|
|
12724
|
-
|
|
12725
|
-
|
|
12726
|
-
|
|
12727
|
-
|
|
12728
|
-
|
|
12729
|
-
|
|
12730
|
-
|
|
12731
|
-
|
|
12732
|
-
|
|
12733
|
-
|
|
12734
|
-
|
|
12735
|
-
|
|
12736
|
-
|
|
12737
|
-
|
|
12738
|
-
|
|
12739
|
-
|
|
12740
|
-
|
|
12741
|
-
|
|
12742
|
-
|
|
12743
|
-
|
|
12744
|
-
|
|
12745
|
-
|
|
12746
|
-
|
|
12747
|
-
|
|
12748
|
-
|
|
12749
|
-
|
|
12750
|
-
|
|
12751
|
-
|
|
12752
|
-
|
|
12753
|
-
|
|
12754
|
-
|
|
12755
|
-
|
|
12756
|
-
|
|
12757
|
-
|
|
12758
|
-
|
|
12759
|
-
|
|
12760
|
-
|
|
12761
|
-
|
|
12762
|
-
|
|
12763
|
-
|
|
12764
|
-
|
|
12765
|
-
|
|
12766
|
-
|
|
12767
|
-
|
|
12768
|
-
|
|
12769
|
-
|
|
12770
|
-
|
|
12771
|
-
|
|
12772
|
-
size
|
|
12773
|
-
|
|
12774
|
-
|
|
12775
|
-
|
|
12776
|
-
|
|
12777
|
-
|
|
12778
|
-
|
|
12779
|
-
|
|
12780
|
-
|
|
12781
|
-
|
|
12782
|
-
|
|
12783
|
-
|
|
12784
|
-
|
|
12785
|
-
|
|
12786
|
-
|
|
13086
|
+
var ZIP_HEADER_FIELDS = [
|
|
13087
|
+
// Central directory file header signature = 0x02014b50
|
|
13088
|
+
{
|
|
13089
|
+
offset: 0,
|
|
13090
|
+
size: 4,
|
|
13091
|
+
default: new DataView(signature.buffer).getUint32(0, true)
|
|
13092
|
+
},
|
|
13093
|
+
// Version made by
|
|
13094
|
+
{
|
|
13095
|
+
offset: 4,
|
|
13096
|
+
size: 2,
|
|
13097
|
+
default: 45
|
|
13098
|
+
},
|
|
13099
|
+
// Version needed to extract (minimum)
|
|
13100
|
+
{
|
|
13101
|
+
offset: 6,
|
|
13102
|
+
size: 2,
|
|
13103
|
+
default: 45
|
|
13104
|
+
},
|
|
13105
|
+
// General purpose bit flag
|
|
13106
|
+
{
|
|
13107
|
+
offset: 8,
|
|
13108
|
+
size: 2,
|
|
13109
|
+
default: 0
|
|
13110
|
+
},
|
|
13111
|
+
// Compression method
|
|
13112
|
+
{
|
|
13113
|
+
offset: 10,
|
|
13114
|
+
size: 2,
|
|
13115
|
+
default: 0
|
|
13116
|
+
},
|
|
13117
|
+
// File last modification time
|
|
13118
|
+
{
|
|
13119
|
+
offset: 12,
|
|
13120
|
+
size: 2,
|
|
13121
|
+
default: 0
|
|
13122
|
+
},
|
|
13123
|
+
// File last modification date
|
|
13124
|
+
{
|
|
13125
|
+
offset: 14,
|
|
13126
|
+
size: 2,
|
|
13127
|
+
default: 0
|
|
13128
|
+
},
|
|
13129
|
+
// CRC-32 of uncompressed data
|
|
13130
|
+
{
|
|
13131
|
+
offset: 16,
|
|
13132
|
+
size: 4,
|
|
13133
|
+
name: "crc32"
|
|
13134
|
+
},
|
|
13135
|
+
// Compressed size (or 0xffffffff for ZIP64)
|
|
13136
|
+
{
|
|
13137
|
+
offset: 20,
|
|
13138
|
+
size: 4,
|
|
13139
|
+
name: "length"
|
|
13140
|
+
},
|
|
13141
|
+
// Uncompressed size (or 0xffffffff for ZIP64)
|
|
13142
|
+
{
|
|
13143
|
+
offset: 24,
|
|
13144
|
+
size: 4,
|
|
13145
|
+
name: "length"
|
|
13146
|
+
},
|
|
13147
|
+
// File name length (n)
|
|
13148
|
+
{
|
|
13149
|
+
offset: 28,
|
|
13150
|
+
size: 2,
|
|
13151
|
+
name: "fnlength"
|
|
13152
|
+
},
|
|
13153
|
+
// Extra field length (m)
|
|
13154
|
+
{
|
|
13155
|
+
offset: 30,
|
|
13156
|
+
size: 2,
|
|
13157
|
+
default: 0,
|
|
13158
|
+
name: "extraLength"
|
|
13159
|
+
},
|
|
13160
|
+
// File comment length (k)
|
|
13161
|
+
{
|
|
13162
|
+
offset: 32,
|
|
13163
|
+
size: 2,
|
|
13164
|
+
default: 0
|
|
13165
|
+
},
|
|
13166
|
+
// Disk number where file starts (or 0xffff for ZIP64)
|
|
13167
|
+
{
|
|
13168
|
+
offset: 34,
|
|
13169
|
+
size: 2,
|
|
13170
|
+
default: 0
|
|
13171
|
+
},
|
|
13172
|
+
// Internal file attributes
|
|
13173
|
+
{
|
|
13174
|
+
offset: 36,
|
|
13175
|
+
size: 2,
|
|
13176
|
+
default: 0
|
|
13177
|
+
},
|
|
13178
|
+
// External file attributes
|
|
13179
|
+
{
|
|
13180
|
+
offset: 38,
|
|
13181
|
+
size: 4,
|
|
13182
|
+
default: 0
|
|
13183
|
+
},
|
|
13184
|
+
// Relative offset of local file header
|
|
13185
|
+
{
|
|
13186
|
+
offset: 42,
|
|
13187
|
+
size: 4,
|
|
13188
|
+
name: "offset"
|
|
13189
|
+
}
|
|
13190
|
+
];
|
|
12787
13191
|
|
|
12788
13192
|
// ../zip/src/parse-zip/local-file-header.ts
|
|
12789
13193
|
var COMPRESSION_METHOD_OFFSET = 8n;
|
|
@@ -12799,7 +13203,12 @@ var __exports__ = (() => {
|
|
|
12799
13203
|
return null;
|
|
12800
13204
|
}
|
|
12801
13205
|
const fileNameLength = await buffer.getUint16(headerOffset + FILE_NAME_LENGTH_OFFSET);
|
|
12802
|
-
const fileName = new TextDecoder().decode(
|
|
13206
|
+
const fileName = new TextDecoder().decode(
|
|
13207
|
+
await buffer.slice(
|
|
13208
|
+
headerOffset + FILE_NAME_OFFSET,
|
|
13209
|
+
headerOffset + FILE_NAME_OFFSET + BigInt(fileNameLength)
|
|
13210
|
+
)
|
|
13211
|
+
).split("\\").join("/");
|
|
12803
13212
|
const extraFieldLength = await buffer.getUint16(headerOffset + EXTRA_FIELD_LENGTH_OFFSET);
|
|
12804
13213
|
let fileDataOffset = headerOffset + FILE_NAME_OFFSET + BigInt(fileNameLength + extraFieldLength);
|
|
12805
13214
|
const compressionMethod = await buffer.getUint16(headerOffset + COMPRESSION_METHOD_OFFSET);
|
|
@@ -12827,52 +13236,75 @@ var __exports__ = (() => {
|
|
|
12827
13236
|
compressionMethod
|
|
12828
13237
|
};
|
|
12829
13238
|
};
|
|
12830
|
-
var ZIP_HEADER_FIELDS2 = [
|
|
12831
|
-
|
|
12832
|
-
|
|
12833
|
-
|
|
12834
|
-
|
|
12835
|
-
|
|
12836
|
-
|
|
12837
|
-
|
|
12838
|
-
|
|
12839
|
-
|
|
12840
|
-
|
|
12841
|
-
|
|
12842
|
-
|
|
12843
|
-
|
|
12844
|
-
|
|
12845
|
-
|
|
12846
|
-
|
|
12847
|
-
|
|
12848
|
-
|
|
12849
|
-
|
|
12850
|
-
|
|
12851
|
-
|
|
12852
|
-
|
|
12853
|
-
|
|
12854
|
-
|
|
12855
|
-
|
|
12856
|
-
|
|
12857
|
-
|
|
12858
|
-
|
|
12859
|
-
|
|
12860
|
-
|
|
12861
|
-
|
|
12862
|
-
|
|
12863
|
-
|
|
12864
|
-
|
|
12865
|
-
|
|
12866
|
-
|
|
12867
|
-
|
|
12868
|
-
|
|
12869
|
-
|
|
12870
|
-
|
|
12871
|
-
|
|
12872
|
-
|
|
12873
|
-
|
|
12874
|
-
|
|
12875
|
-
|
|
13239
|
+
var ZIP_HEADER_FIELDS2 = [
|
|
13240
|
+
// Local file header signature = 0x04034b50
|
|
13241
|
+
{
|
|
13242
|
+
offset: 0,
|
|
13243
|
+
size: 4,
|
|
13244
|
+
default: new DataView(signature2.buffer).getUint32(0, true)
|
|
13245
|
+
},
|
|
13246
|
+
// Version needed to extract (minimum)
|
|
13247
|
+
{
|
|
13248
|
+
offset: 4,
|
|
13249
|
+
size: 2,
|
|
13250
|
+
default: 45
|
|
13251
|
+
},
|
|
13252
|
+
// General purpose bit flag
|
|
13253
|
+
{
|
|
13254
|
+
offset: 6,
|
|
13255
|
+
size: 2,
|
|
13256
|
+
default: 0
|
|
13257
|
+
},
|
|
13258
|
+
// Compression method
|
|
13259
|
+
{
|
|
13260
|
+
offset: 8,
|
|
13261
|
+
size: 2,
|
|
13262
|
+
default: 0
|
|
13263
|
+
},
|
|
13264
|
+
// File last modification time
|
|
13265
|
+
{
|
|
13266
|
+
offset: 10,
|
|
13267
|
+
size: 2,
|
|
13268
|
+
default: 0
|
|
13269
|
+
},
|
|
13270
|
+
// File last modification date
|
|
13271
|
+
{
|
|
13272
|
+
offset: 12,
|
|
13273
|
+
size: 2,
|
|
13274
|
+
default: 0
|
|
13275
|
+
},
|
|
13276
|
+
// CRC-32 of uncompressed data
|
|
13277
|
+
{
|
|
13278
|
+
offset: 14,
|
|
13279
|
+
size: 4,
|
|
13280
|
+
name: "crc32"
|
|
13281
|
+
},
|
|
13282
|
+
// Compressed size (or 0xffffffff for ZIP64)
|
|
13283
|
+
{
|
|
13284
|
+
offset: 18,
|
|
13285
|
+
size: 4,
|
|
13286
|
+
name: "length"
|
|
13287
|
+
},
|
|
13288
|
+
// Uncompressed size (or 0xffffffff for ZIP64)
|
|
13289
|
+
{
|
|
13290
|
+
offset: 22,
|
|
13291
|
+
size: 4,
|
|
13292
|
+
name: "length"
|
|
13293
|
+
},
|
|
13294
|
+
// File name length (n)
|
|
13295
|
+
{
|
|
13296
|
+
offset: 26,
|
|
13297
|
+
size: 2,
|
|
13298
|
+
name: "fnlength"
|
|
13299
|
+
},
|
|
13300
|
+
// Extra field length (m)
|
|
13301
|
+
{
|
|
13302
|
+
offset: 28,
|
|
13303
|
+
size: 2,
|
|
13304
|
+
default: 0,
|
|
13305
|
+
name: "extraLength"
|
|
13306
|
+
}
|
|
13307
|
+
];
|
|
12876
13308
|
|
|
12877
13309
|
// ../crypto/src/lib/hash.ts
|
|
12878
13310
|
var Hash = class {
|
|
@@ -12890,10 +13322,9 @@ var __exports__ = (() => {
|
|
|
12890
13322
|
}
|
|
12891
13323
|
const output = await this.concatenate(arrayBuffers);
|
|
12892
13324
|
const hash = await this.hash(output, encoding);
|
|
12893
|
-
this.options.crypto?.onEnd?.({
|
|
12894
|
-
hash
|
|
12895
|
-
});
|
|
13325
|
+
this.options.crypto?.onEnd?.({ hash });
|
|
12896
13326
|
}
|
|
13327
|
+
// HELPERS
|
|
12897
13328
|
async concatenate(asyncIterator) {
|
|
12898
13329
|
return await concatenateArrayBuffersAsync(asyncIterator);
|
|
12899
13330
|
}
|
|
@@ -12971,7 +13402,9 @@ var __exports__ = (() => {
|
|
|
12971
13402
|
|
|
12972
13403
|
// ../crypto/src/lib/algorithms/md5-wasm.ts
|
|
12973
13404
|
var atb = typeof atob === "function" ? atob : typeof Buffer === "function" ? nodeATOB : identity4;
|
|
12974
|
-
var wasmB64 = atb(
|
|
13405
|
+
var wasmB64 = atb(
|
|
13406
|
+
"AGFzbQEAAAABDANgAX8AYAAAYAABfwIeAgdpbXBvcnRzA2xvZwAAB2ltcG9ydHMDbWVtAgABAzIxAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAgICAgIAAAAAAAaYARt/AUGBxpS6Bgt/AUGJ17b+fgt/AUH+uevFeQt/AUH2qMmBAQt/AUEAC38BQQALfwFBAAt/AUEAC38BQQALfwFBAAt/AUEAC38BQQALfwFBAAt/AUEAC38BQQALfwFBAAt/AUEAC38BQQALfwFBAAt/AUEAC38BQQALfwFBAAt/AUEAC38BQQALfwFBAAt/AUEAC38BQQALB7oCJQhvbmVGdWxsQQAYCG9uZUZ1bGxCABkIb25lRnVsbEMAGghvbmVGdWxsRAAbBWxvb3BzAAEEbG9vcAACBXByaW1lAAMFbG9vcEEABAZsb29wQTEABQZsb29wQTIABgZsb29wQTMABwZsb29wQTQACAVsb29wQgAJBmxvb3BCMQAKBmxvb3BCMgALBmxvb3BCMwAMBmxvb3BCNAANBWxvb3BDAA4GbG9vcEMxAA8GbG9vcEMyABAGbG9vcEMzABEGbG9vcEM0ABIFbG9vcEQAEwZsb29wRDEAFAZsb29wRDIAFQZsb29wRDMAFgZsb29wRDQAFwRnZXRBACgEZ2V0QgApBGdldEMAKgRnZXREACsEZ2V0WAAsBHNldEEALQRzZXRCAC4Ec2V0QwAvBHNldEQAMARzZXRYADEKzA0xWwEBf0EAJAggAEEGdCEBAkADQCMIIAFGDQEjACQEIwEkBSMCJAYjAyQHEAIjBCMAaiQAIwUjAWokASMGIwJqJAIjByMDaiQDIwhBwABqJAgMAAsLIwgjGmokGgsTACMIIxpqJAkQAxAEEAkQDhATC6IBAEEAIwlqKAIAJApBBCMJaigCACQLQQgjCWooAgAkDEEMIwlqKAIAJA1BECMJaigCACQOQRQjCWooAgAkD0EYIwlqKAIAJBBBHCMJaigCACQRQSAjCWooAgAkEkEkIwlqKAIAJBNBKCMJaigCACQUQSwjCWooAgAkFUEwIwlqKAIAJBZBNCMJaigCACQXQTgjCWooAgAkGEE8IwlqKAIAJBkLCgAQBRAGEAcQCAsuAEH4yKq7fSMKahAYQdbunsZ+IwtqEBtB2+GBoQIjDGoQGkHunfeNfCMNahAZCy0AQa+f8Kt/Iw5qEBhBqoyfvAQjD2oQG0GTjMHBeiMQahAaQYGqmmojEWoQGQssAEHYsYLMBiMSahAYQa/vk9p4IxNqEBtBsbd9IxRqEBpBvq/zyngjFWoQGQstAEGiosDcBiMWahAYQZPj4WwjF2oQG0GOh+WzeiMYahAaQaGQ0M0EIxlqEBkLCgAQChALEAwQDQsuAEHiyviwfyMLahAcQcDmgoJ8IxBqEB9B0bT5sgIjFWoQHkGqj9vNfiMKahAdCy0AQd2gvLF9Iw9qEBxB06iQEiMUahAfQYHNh8V9IxlqEB5ByPfPvn4jDmoQHQsuAEHmm4ePAiMTahAcQdaP3Jl8IxhqEB9Bh5vUpn8jDWoQHkHtqeiqBCMSahAdCy0AQYXSj896IxdqEBxB+Me+ZyMMahAfQdmFvLsGIxFqEB5Bipmp6XgjFmoQHQsKABAPEBAQERASCysAQcLyaCMPahAgQYHtx7t4IxJqECNBosL17AYjFWoQIkGM8JRvIxhqECELLgBBxNT7pXojC2oQIEGpn/veBCMOahAjQeCW7bV/IxFqECJB8Pj+9XsjFGoQIQstAEHG/e3EAiMXahAgQfrPhNV+IwpqECNBheG8p30jDWoQIkGFuqAkIxBqECELLgBBuaDTzn0jE2oQIEHls+62fiMWahAjQfj5if0BIxlqECJB5ayxpXwjDGoQIQsKABAUEBUQFhAXCy0AQcTEpKF/IwpqECRBl/+rmQQjEWoQJ0Gnx9DceiMYahAmQbnAzmQjD2oQJQstAEHDs+2qBiMWahAkQZKZs/h4Iw1qECdB/ei/fyMUahAmQdG7kax4IwtqECULLQBBz/yh/QYjEmoQJEHgzbNxIxlqECdBlIaFmHojEGoQJkGho6DwBCMXahAlCy4AQYL9zbp/Iw5qECRBteTr6XsjFWoQJ0G7pd/WAiMMahAmQZGnm9x+IxNqECULKAEBf0F/IwFzIwNxIwEjAnFyIwBqIABqIgFBB3QgAUEZdnIjAWokAAsoAQF/QX8jAnMjAHEjAiMDcXIjAWogAGoiAUEWdCABQQp2ciMCaiQBCygBAX9BfyMDcyMBcSMDIwBxciMCaiAAaiIBQRF0IAFBD3ZyIwNqJAILKAEBf0F/IwBzIwJxIwAjAXFyIwNqIABqIgFBDHQgAUEUdnIjAGokAwsoAQF/IwJBfyMDc3EjASMDcXIjAGogAGoiAUEFdCABQRt2ciMBaiQACygBAX8jA0F/IwBzcSMCIwBxciMBaiAAaiIBQRR0IAFBDHZyIwJqJAELKAEBfyMAQX8jAXNxIwMjAXFyIwJqIABqIgFBDnQgAUESdnIjA2okAgsoAQF/IwFBfyMCc3EjACMCcXIjA2ogAGoiAUEJdCABQRd2ciMAaiQDCyIBAX8jASMCcyMDcyMAaiAAaiIBQQR0IAFBHHZyIwFqJAALIgEBfyMCIwNzIwBzIwFqIABqIgFBF3QgAUEJdnIjAmokAQsiAQF/IwMjAHMjAXMjAmogAGoiAUEQdCABQRB2ciMDaiQCCyIBAX8jACMBcyMCcyMDaiAAaiIBQQt0IAFBFXZyIwBqJAMLJQEBf0F/IwNzIwFyIwJzIwBqIABqIgFBBnQgAUEadnIjAWokAAslAQF/QX8jAHMjAnIjA3MjAWogAGoiAUEVdCABQQt2ciMCaiQBCyUBAX9BfyMBcyMDciMAcyMCaiAAaiIBQQ90IAFBEXZyIwNqJAILJQEBf0F/IwJzIwByIwFzIwNqIABqIgFBCnQgAUEWdnIjAGokAwsEACMACwQAIwELBAAjAgsEACMDCwQAIxoLBgAgACQACwYAIAAkAQsGACAAJAILBgAgACQDCwYAIAAkGgsA6gQEbmFtZQGSAzIAA2xvZwEFbG9vcHMCBGxvb3ADBXByaW1lBAVsb29wQQUGbG9vcEExBgZsb29wQTIHBmxvb3BBMwgGbG9vcEE0CQVsb29wQgoGbG9vcEIxCwZsb29wQjIMBmxvb3BCMw0GbG9vcEI0DgVsb29wQw8GbG9vcEMxEAZsb29wQzIRBmxvb3BDMxIGbG9vcEM0EwVsb29wRBQGbG9vcEQxFQZsb29wRDIWBmxvb3BEMxcGbG9vcEQ0GAhvbmVGdWxsQRkIb25lRnVsbEIaCG9uZUZ1bGxDGwhvbmVGdWxsRBwIdHdvRnVsbEEdCHR3b0Z1bGxCHgh0d29GdWxsQx8IdHdvRnVsbEQgCHRyZUZ1bGxBIQh0cmVGdWxsQiIIdHJlRnVsbEMjCHRyZUZ1bGxEJAhxdWFGdWxsQSUIcXVhRnVsbEImCHF1YUZ1bGxDJwhxdWFGdWxsRCgEZ2V0QSkEZ2V0QioEZ2V0QysEZ2V0RCwEZ2V0WC0Ec2V0QS4Ec2V0Qi8Ec2V0QzAEc2V0RDEEc2V0WALNATIAAQAAAQIAAAEIbnVtbG9vcHMCAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgCAAABAW4ZAgAAAQFuGgIAAAEBbhsCAAABAW4cAgAAAQFuHQIAAAEBbh4CAAABAW4fAgAAAQFuIAIAAAEBbiECAAABAW4iAgAAAQFuIwIAAAEBbiQCAAABAW4lAgAAAQFuJgIAAAEBbicCAAABAW4oACkAKgArACwALQEAAC4BAAAvAQAAMAEAADEBAAA="
|
|
13407
|
+
);
|
|
12975
13408
|
var wasm = WebAssembly && atb !== identity4 ? str2AB(wasmB64).buffer : false;
|
|
12976
13409
|
var crypt = makeCrypt();
|
|
12977
13410
|
var biteSize = 240 * 16 * 16;
|
|
@@ -12980,7 +13413,9 @@ var __exports__ = (() => {
|
|
|
12980
13413
|
var parmTypeErrStr = "Parameter must be Buffer, ArrayBuffer or Uint8Array";
|
|
12981
13414
|
var tooBigErrStr = "Parameter exceeds max size of 255.9 Mbytes";
|
|
12982
13415
|
if (!wasm) {
|
|
12983
|
-
console.log(
|
|
13416
|
+
console.log(
|
|
13417
|
+
"WebAssembly not available or WASM module could not be decoded; md5WASM will fall back to JavaScript"
|
|
13418
|
+
);
|
|
12984
13419
|
}
|
|
12985
13420
|
function md5WASM(data) {
|
|
12986
13421
|
var mem, memView, importObj, imports, len2, buff, thenFun, catchFun, result, endTime;
|
|
@@ -13019,13 +13454,8 @@ var __exports__ = (() => {
|
|
|
13019
13454
|
initial: len2 > 32e6 ? len2 > 64e6 ? len2 > 128e6 ? 4096 : 2048 : 1024 : 512
|
|
13020
13455
|
});
|
|
13021
13456
|
memView = new Uint32Array(mem.buffer);
|
|
13022
|
-
imports = {
|
|
13023
|
-
|
|
13024
|
-
log: console.log
|
|
13025
|
-
};
|
|
13026
|
-
importObj = {
|
|
13027
|
-
imports
|
|
13028
|
-
};
|
|
13457
|
+
imports = { mem, log: console.log };
|
|
13458
|
+
importObj = { imports };
|
|
13029
13459
|
WebAssembly.instantiate(wasm, importObj).then(giterdone);
|
|
13030
13460
|
}
|
|
13031
13461
|
} else {
|
|
@@ -13380,13 +13810,22 @@ var __exports__ = (() => {
|
|
|
13380
13810
|
|
|
13381
13811
|
// ../crypto/src/lib/md5-hash.ts
|
|
13382
13812
|
var MD5Hash = class extends Hash {
|
|
13383
|
-
name = "md5";
|
|
13384
13813
|
constructor(options = {}) {
|
|
13385
13814
|
super();
|
|
13815
|
+
this.name = "md5";
|
|
13386
13816
|
this.options = options;
|
|
13387
13817
|
}
|
|
13818
|
+
/**
|
|
13819
|
+
* Atomic hash calculation
|
|
13820
|
+
* @returns base64 encoded hash
|
|
13821
|
+
*/
|
|
13388
13822
|
async hash(input, encoding) {
|
|
13389
|
-
const md5Promise = new Promise(
|
|
13823
|
+
const md5Promise = new Promise(
|
|
13824
|
+
(resolve, reject) => (
|
|
13825
|
+
// @ts-expect-error
|
|
13826
|
+
md5WASM(input).then(resolve).catch(reject)
|
|
13827
|
+
)
|
|
13828
|
+
);
|
|
13390
13829
|
const hex = await md5Promise;
|
|
13391
13830
|
return encodeHex(hex, encoding);
|
|
13392
13831
|
}
|
|
@@ -13398,31 +13837,39 @@ var __exports__ = (() => {
|
|
|
13398
13837
|
this.compressBatches = this.compressBatches.bind(this);
|
|
13399
13838
|
this.decompressBatches = this.decompressBatches.bind(this);
|
|
13400
13839
|
}
|
|
13840
|
+
/** Preloads any dynamic libraries. May enable sync functions */
|
|
13401
13841
|
async preload() {
|
|
13402
13842
|
return;
|
|
13403
13843
|
}
|
|
13844
|
+
/** Asynchronously compress data */
|
|
13404
13845
|
async compress(input) {
|
|
13405
13846
|
await this.preload();
|
|
13406
13847
|
return this.compressSync(input);
|
|
13407
13848
|
}
|
|
13849
|
+
/** Asynchronously decompress data */
|
|
13408
13850
|
async decompress(input, size) {
|
|
13409
13851
|
await this.preload();
|
|
13410
13852
|
return this.decompressSync(input, size);
|
|
13411
13853
|
}
|
|
13854
|
+
/** Synchronously compress data */
|
|
13412
13855
|
compressSync(input) {
|
|
13413
13856
|
throw new Error(`${this.name}: sync compression not supported`);
|
|
13414
13857
|
}
|
|
13858
|
+
/** Synchronously compress data */
|
|
13415
13859
|
decompressSync(input, size) {
|
|
13416
13860
|
throw new Error(`${this.name}: sync decompression not supported`);
|
|
13417
13861
|
}
|
|
13862
|
+
/** Compress batches */
|
|
13418
13863
|
async *compressBatches(asyncIterator) {
|
|
13419
13864
|
const input = await this.concatenate(asyncIterator);
|
|
13420
13865
|
yield this.compress(input);
|
|
13421
13866
|
}
|
|
13867
|
+
/** Decompress batches */
|
|
13422
13868
|
async *decompressBatches(asyncIterator) {
|
|
13423
13869
|
const input = await this.concatenate(asyncIterator);
|
|
13424
13870
|
yield this.decompress(input);
|
|
13425
13871
|
}
|
|
13872
|
+
// HELPERS
|
|
13426
13873
|
concatenate(asyncIterator) {
|
|
13427
13874
|
return concatenateArrayBuffersAsync(asyncIterator);
|
|
13428
13875
|
}
|
|
@@ -13438,13 +13885,13 @@ var __exports__ = (() => {
|
|
|
13438
13885
|
var import_pako = __toESM(require_pako(), 1);
|
|
13439
13886
|
var import_zlib = __toESM(require_zlib(), 1);
|
|
13440
13887
|
var DeflateCompression = class extends Compression {
|
|
13441
|
-
name = "deflate";
|
|
13442
|
-
extensions = [];
|
|
13443
|
-
contentEncodings = ["deflate"];
|
|
13444
|
-
isSupported = true;
|
|
13445
|
-
_chunks = [];
|
|
13446
13888
|
constructor(options = {}) {
|
|
13447
13889
|
super(options);
|
|
13890
|
+
this.name = "deflate";
|
|
13891
|
+
this.extensions = [];
|
|
13892
|
+
this.contentEncodings = ["deflate"];
|
|
13893
|
+
this.isSupported = true;
|
|
13894
|
+
this._chunks = [];
|
|
13448
13895
|
this.options = options;
|
|
13449
13896
|
}
|
|
13450
13897
|
async compress(input) {
|
|
@@ -13523,16 +13970,26 @@ var __exports__ = (() => {
|
|
|
13523
13970
|
this._chunks = [];
|
|
13524
13971
|
return chunks;
|
|
13525
13972
|
}
|
|
13973
|
+
// TODO - For some reason we don't get the error message from pako in _onEnd?
|
|
13526
13974
|
_getError(code = 0) {
|
|
13527
13975
|
const MESSAGES = {
|
|
13976
|
+
/* Z_NEED_DICT 2 */
|
|
13528
13977
|
2: "need dictionary",
|
|
13978
|
+
/* Z_STREAM_END 1 */
|
|
13529
13979
|
1: "stream end",
|
|
13980
|
+
/* Z_OK 0 */
|
|
13530
13981
|
0: "",
|
|
13982
|
+
/* Z_ERRNO (-1) */
|
|
13531
13983
|
"-1": "file error",
|
|
13984
|
+
/* Z_STREAM_ERROR (-2) */
|
|
13532
13985
|
"-2": "stream error",
|
|
13986
|
+
/* Z_DATA_ERROR (-3) */
|
|
13533
13987
|
"-3": "data error",
|
|
13988
|
+
/* Z_MEM_ERROR (-4) */
|
|
13534
13989
|
"-4": "insufficient memory",
|
|
13990
|
+
/* Z_BUF_ERROR (-5) */
|
|
13535
13991
|
"-5": "buffer error",
|
|
13992
|
+
/* Z_VERSION_ERROR (-6) */
|
|
13536
13993
|
"-6": "incompatible version"
|
|
13537
13994
|
};
|
|
13538
13995
|
return `${this.name}: ${MESSAGES[code]}`;
|
|
@@ -13541,36 +13998,35 @@ var __exports__ = (() => {
|
|
|
13541
13998
|
|
|
13542
13999
|
// ../compression/src/lib/gzip-compression.ts
|
|
13543
14000
|
var GZipCompression = class extends DeflateCompression {
|
|
13544
|
-
name = "gzip";
|
|
13545
|
-
extensions = ["gz", "gzip"];
|
|
13546
|
-
contentEncodings = ["gzip", "x-gzip"];
|
|
13547
|
-
isSupported = true;
|
|
13548
14001
|
constructor(options) {
|
|
13549
|
-
super({
|
|
13550
|
-
|
|
13551
|
-
|
|
13552
|
-
|
|
13553
|
-
|
|
13554
|
-
}
|
|
13555
|
-
});
|
|
14002
|
+
super({ ...options, deflate: { ...options?.gzip, gzip: true } });
|
|
14003
|
+
this.name = "gzip";
|
|
14004
|
+
this.extensions = ["gz", "gzip"];
|
|
14005
|
+
this.contentEncodings = ["gzip", "x-gzip"];
|
|
14006
|
+
this.isSupported = true;
|
|
13556
14007
|
}
|
|
13557
14008
|
};
|
|
13558
14009
|
|
|
13559
14010
|
// ../zip/src/filesystems/zip-filesystem.ts
|
|
13560
14011
|
var ZIP_COMPRESSION_HANDLERS = {
|
|
14012
|
+
/** No compression */
|
|
13561
14013
|
0: async (compressedFile) => compressedFile,
|
|
14014
|
+
/** Deflation */
|
|
13562
14015
|
8: async (compressedFile) => {
|
|
13563
|
-
const compression = new DeflateCompression({
|
|
13564
|
-
raw: true
|
|
13565
|
-
});
|
|
14016
|
+
const compression = new DeflateCompression({ raw: true });
|
|
13566
14017
|
const decompressedData = await compression.decompress(compressedFile);
|
|
13567
14018
|
return decompressedData;
|
|
13568
14019
|
}
|
|
13569
14020
|
};
|
|
13570
14021
|
var ZipFileSystem = class {
|
|
13571
|
-
|
|
13572
|
-
|
|
14022
|
+
/**
|
|
14023
|
+
* Constructor
|
|
14024
|
+
* @param file - instance of FileProvider or file path string
|
|
14025
|
+
*/
|
|
13573
14026
|
constructor(file) {
|
|
14027
|
+
/** FileProvider instance promise */
|
|
14028
|
+
this.fileProvider = null;
|
|
14029
|
+
this.archive = null;
|
|
13574
14030
|
if (typeof file === "string") {
|
|
13575
14031
|
this.fileName = file;
|
|
13576
14032
|
if (!isBrowser) {
|
|
@@ -13586,11 +14042,16 @@ var __exports__ = (() => {
|
|
|
13586
14042
|
this.fileProvider = file;
|
|
13587
14043
|
}
|
|
13588
14044
|
}
|
|
14045
|
+
/** Clean up resources */
|
|
13589
14046
|
async destroy() {
|
|
13590
14047
|
if (this.fileProvider) {
|
|
13591
14048
|
await this.fileProvider.destroy();
|
|
13592
14049
|
}
|
|
13593
14050
|
}
|
|
14051
|
+
/**
|
|
14052
|
+
* Get file names list from zip archive
|
|
14053
|
+
* @returns array of file names
|
|
14054
|
+
*/
|
|
13594
14055
|
async readdir() {
|
|
13595
14056
|
if (!this.fileProvider) {
|
|
13596
14057
|
throw new Error("No data detected in the zip archive");
|
|
@@ -13602,13 +14063,20 @@ var __exports__ = (() => {
|
|
|
13602
14063
|
}
|
|
13603
14064
|
return fileNames;
|
|
13604
14065
|
}
|
|
14066
|
+
/**
|
|
14067
|
+
* Get file metadata
|
|
14068
|
+
* @param filename - name of a file
|
|
14069
|
+
* @returns central directory data
|
|
14070
|
+
*/
|
|
13605
14071
|
async stat(filename) {
|
|
13606
14072
|
const cdFileHeader = await this.getCDFileHeader(filename);
|
|
13607
|
-
return {
|
|
13608
|
-
...cdFileHeader,
|
|
13609
|
-
size: Number(cdFileHeader.uncompressedSize)
|
|
13610
|
-
};
|
|
14073
|
+
return { ...cdFileHeader, size: Number(cdFileHeader.uncompressedSize) };
|
|
13611
14074
|
}
|
|
14075
|
+
/**
|
|
14076
|
+
* Implementation of fetch against this file system
|
|
14077
|
+
* @param filename - name of a file
|
|
14078
|
+
* @returns - Response with file data
|
|
14079
|
+
*/
|
|
13612
14080
|
async fetch(filename) {
|
|
13613
14081
|
let uncompressedFile;
|
|
13614
14082
|
if (this.archive) {
|
|
@@ -13618,7 +14086,10 @@ var __exports__ = (() => {
|
|
|
13618
14086
|
throw new Error("No data detected in the zip archive");
|
|
13619
14087
|
}
|
|
13620
14088
|
const cdFileHeader = await this.getCDFileHeader(filename);
|
|
13621
|
-
const localFileHeader = await parseZipLocalFileHeader(
|
|
14089
|
+
const localFileHeader = await parseZipLocalFileHeader(
|
|
14090
|
+
cdFileHeader.localHeaderOffset,
|
|
14091
|
+
this.fileProvider
|
|
14092
|
+
);
|
|
13622
14093
|
if (!localFileHeader) {
|
|
13623
14094
|
throw new Error("Local file header has not been found in the zip archive`");
|
|
13624
14095
|
}
|
|
@@ -13626,7 +14097,10 @@ var __exports__ = (() => {
|
|
|
13626
14097
|
if (!compressionHandler) {
|
|
13627
14098
|
throw Error("Only Deflation compression is supported");
|
|
13628
14099
|
}
|
|
13629
|
-
const compressedFile = await this.fileProvider.slice(
|
|
14100
|
+
const compressedFile = await this.fileProvider.slice(
|
|
14101
|
+
localFileHeader.fileDataOffset,
|
|
14102
|
+
localFileHeader.fileDataOffset + localFileHeader.compressedSize
|
|
14103
|
+
);
|
|
13630
14104
|
uncompressedFile = await compressionHandler(compressedFile);
|
|
13631
14105
|
}
|
|
13632
14106
|
const response = new Response(uncompressedFile);
|
|
@@ -13635,6 +14109,11 @@ var __exports__ = (() => {
|
|
|
13635
14109
|
});
|
|
13636
14110
|
return response;
|
|
13637
14111
|
}
|
|
14112
|
+
/**
|
|
14113
|
+
* Get central directory file header
|
|
14114
|
+
* @param filename - name of a file
|
|
14115
|
+
* @returns central directory file header
|
|
14116
|
+
*/
|
|
13638
14117
|
async getCDFileHeader(filename) {
|
|
13639
14118
|
if (!this.fileProvider) {
|
|
13640
14119
|
throw new Error("No data detected in the zip archive");
|
|
@@ -13656,10 +14135,21 @@ var __exports__ = (() => {
|
|
|
13656
14135
|
|
|
13657
14136
|
// ../zip/src/filesystems/IndexedArchive.ts
|
|
13658
14137
|
var IndexedArchive = class {
|
|
14138
|
+
/**
|
|
14139
|
+
* Constructor
|
|
14140
|
+
* @param fileProvider - instance of a binary data reader
|
|
14141
|
+
* @param hashTable - pre-loaded hashTable. If presented, getFile will skip reading the hash file
|
|
14142
|
+
* @param fileName - name of the archive. It is used to add to an URL of a loader context
|
|
14143
|
+
*/
|
|
13659
14144
|
constructor(fileProvider, hashTable, fileName) {
|
|
13660
14145
|
this.fileProvider = fileProvider;
|
|
13661
14146
|
this.fileName = fileName;
|
|
13662
14147
|
}
|
|
14148
|
+
/**
|
|
14149
|
+
* Get file as from order ZIP arhive without using the hash file
|
|
14150
|
+
* @param filename - path to the internal file
|
|
14151
|
+
* @returns
|
|
14152
|
+
*/
|
|
13663
14153
|
async getFileWithoutHash(filename) {
|
|
13664
14154
|
const zipFS = new ZipFileSystem(this.fileProvider);
|
|
13665
14155
|
const response = await zipFS.fetch(filename);
|
|
@@ -13699,39 +14189,60 @@ var __exports__ = (() => {
|
|
|
13699
14189
|
}
|
|
13700
14190
|
|
|
13701
14191
|
// src/lib/parsers/parse-slpk/slpk-archieve.ts
|
|
13702
|
-
var PATH_DESCRIPTIONS = [
|
|
13703
|
-
|
|
13704
|
-
|
|
13705
|
-
|
|
13706
|
-
|
|
13707
|
-
|
|
13708
|
-
|
|
13709
|
-
|
|
13710
|
-
|
|
13711
|
-
|
|
13712
|
-
|
|
13713
|
-
|
|
13714
|
-
|
|
13715
|
-
|
|
13716
|
-
|
|
13717
|
-
|
|
13718
|
-
|
|
13719
|
-
|
|
13720
|
-
|
|
13721
|
-
|
|
13722
|
-
|
|
13723
|
-
|
|
13724
|
-
|
|
13725
|
-
|
|
13726
|
-
|
|
14192
|
+
var PATH_DESCRIPTIONS = [
|
|
14193
|
+
{
|
|
14194
|
+
test: /^$/,
|
|
14195
|
+
extensions: ["3dSceneLayer.json.gz"]
|
|
14196
|
+
},
|
|
14197
|
+
{
|
|
14198
|
+
test: /^nodepages\/\d+$/,
|
|
14199
|
+
extensions: [".json.gz"]
|
|
14200
|
+
},
|
|
14201
|
+
{
|
|
14202
|
+
test: /^nodes\/(\d+|root)$/,
|
|
14203
|
+
extensions: ["/3dNodeIndexDocument.json.gz"]
|
|
14204
|
+
},
|
|
14205
|
+
{
|
|
14206
|
+
test: /^nodes\/\d+\/textures\/.+$/,
|
|
14207
|
+
extensions: [".jpg", ".png", ".bin.dds.gz", ".ktx"]
|
|
14208
|
+
},
|
|
14209
|
+
{
|
|
14210
|
+
test: /^nodes\/\d+\/geometries\/\d+$/,
|
|
14211
|
+
extensions: [".bin.gz", ".draco.gz"]
|
|
14212
|
+
},
|
|
14213
|
+
{
|
|
14214
|
+
test: /^nodes\/\d+\/attributes\/f_\d+\/\d+$/,
|
|
14215
|
+
extensions: [".bin.gz"]
|
|
14216
|
+
},
|
|
14217
|
+
{
|
|
14218
|
+
test: /^statistics\/f_\d+\/\d+$/,
|
|
14219
|
+
extensions: [".json.gz"]
|
|
14220
|
+
},
|
|
14221
|
+
{
|
|
14222
|
+
test: /^nodes\/\d+\/shared$/,
|
|
14223
|
+
extensions: ["/sharedResource.json.gz"]
|
|
14224
|
+
}
|
|
14225
|
+
];
|
|
13727
14226
|
var SLPKArchive = class extends IndexedArchive {
|
|
13728
|
-
|
|
13729
|
-
|
|
13730
|
-
|
|
14227
|
+
/**
|
|
14228
|
+
* Constructor
|
|
14229
|
+
* @param fileProvider - instance of a binary data reader
|
|
14230
|
+
* @param hashTable - pre-loaded hashTable. If presented, getFile will skip reading the hash file
|
|
14231
|
+
* @param fileName - name of the archive. It is used to add to an URL of a loader context
|
|
14232
|
+
*/
|
|
13731
14233
|
constructor(fileProvider, hashTable, fileName) {
|
|
13732
14234
|
super(fileProvider, hashTable, fileName);
|
|
14235
|
+
this._textEncoder = new TextEncoder();
|
|
14236
|
+
this._textDecoder = new TextDecoder();
|
|
14237
|
+
this._md5Hash = new MD5Hash();
|
|
13733
14238
|
this.hashTable = hashTable;
|
|
13734
14239
|
}
|
|
14240
|
+
/**
|
|
14241
|
+
* Returns file with the given path from slpk archive
|
|
14242
|
+
* @param path - path inside the slpk
|
|
14243
|
+
* @param mode - currently only raw mode supported
|
|
14244
|
+
* @returns buffer with ready to use file
|
|
14245
|
+
*/
|
|
13735
14246
|
async getFile(path, mode = "raw") {
|
|
13736
14247
|
if (mode === "http") {
|
|
13737
14248
|
const extensions = PATH_DESCRIPTIONS.find((val) => val.test.test(path))?.extensions;
|
|
@@ -13760,6 +14271,11 @@ var __exports__ = (() => {
|
|
|
13760
14271
|
}
|
|
13761
14272
|
throw new Error(`No such file in the archive: ${path}`);
|
|
13762
14273
|
}
|
|
14274
|
+
/**
|
|
14275
|
+
* returning uncompressed data for paths that ends with .gz and raw data for all other paths
|
|
14276
|
+
* @param path - path inside the archive
|
|
14277
|
+
* @returns buffer with the file data
|
|
14278
|
+
*/
|
|
13763
14279
|
async getDataByPath(path) {
|
|
13764
14280
|
let data = await this.getFileBytes(path.toLocaleLowerCase());
|
|
13765
14281
|
if (!data) {
|
|
@@ -13775,6 +14291,11 @@ var __exports__ = (() => {
|
|
|
13775
14291
|
}
|
|
13776
14292
|
return data;
|
|
13777
14293
|
}
|
|
14294
|
+
/**
|
|
14295
|
+
* Trying to get raw file data by address
|
|
14296
|
+
* @param path - path inside the archive
|
|
14297
|
+
* @returns buffer with the raw file data
|
|
14298
|
+
*/
|
|
13778
14299
|
async getFileBytes(path) {
|
|
13779
14300
|
let compressedFile;
|
|
13780
14301
|
if (this.hashTable) {
|
|
@@ -13788,7 +14309,10 @@ var __exports__ = (() => {
|
|
|
13788
14309
|
if (!localFileHeader) {
|
|
13789
14310
|
return void 0;
|
|
13790
14311
|
}
|
|
13791
|
-
compressedFile = await this.fileProvider.slice(
|
|
14312
|
+
compressedFile = await this.fileProvider.slice(
|
|
14313
|
+
localFileHeader.fileDataOffset,
|
|
14314
|
+
localFileHeader.fileDataOffset + localFileHeader.compressedSize
|
|
14315
|
+
);
|
|
13792
14316
|
} else {
|
|
13793
14317
|
try {
|
|
13794
14318
|
compressedFile = await this.getFileWithoutHash(path);
|
|
@@ -13807,21 +14331,29 @@ var __exports__ = (() => {
|
|
|
13807
14331
|
let hashTable;
|
|
13808
14332
|
if (cdFileHeader?.fileName !== "@specialIndexFileHASH128@") {
|
|
13809
14333
|
hashTable = await makeHashTableFromZipHeaders(fileProvider);
|
|
13810
|
-
cb?.(
|
|
14334
|
+
cb?.(
|
|
14335
|
+
"SLPK doesnt contain hash file, hash info has been composed according to zip archive headers"
|
|
14336
|
+
);
|
|
13811
14337
|
} else {
|
|
13812
|
-
const localFileHeader = await parseZipLocalFileHeader(
|
|
14338
|
+
const localFileHeader = await parseZipLocalFileHeader(
|
|
14339
|
+
cdFileHeader.localHeaderOffset,
|
|
14340
|
+
fileProvider
|
|
14341
|
+
);
|
|
13813
14342
|
if (!localFileHeader) {
|
|
13814
14343
|
throw new Error("corrupted SLPK");
|
|
13815
14344
|
}
|
|
13816
14345
|
const fileDataOffset = localFileHeader.fileDataOffset;
|
|
13817
|
-
const hashFile = await fileProvider.slice(
|
|
14346
|
+
const hashFile = await fileProvider.slice(
|
|
14347
|
+
fileDataOffset,
|
|
14348
|
+
fileDataOffset + localFileHeader.compressedSize
|
|
14349
|
+
);
|
|
13818
14350
|
hashTable = parseHashTable(hashFile);
|
|
13819
14351
|
}
|
|
13820
14352
|
return new SLPKArchive(fileProvider, hashTable, fileName);
|
|
13821
14353
|
}
|
|
13822
14354
|
|
|
13823
14355
|
// src/i3s-slpk-loader.ts
|
|
13824
|
-
var VERSION8 =
|
|
14356
|
+
var VERSION8 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
13825
14357
|
var SLPKLoader = {
|
|
13826
14358
|
name: "I3S SLPK (Scene Layer Package)",
|
|
13827
14359
|
id: "slpk",
|
|
@@ -13841,10 +14373,7 @@ var __exports__ = (() => {
|
|
|
13841
14373
|
|
|
13842
14374
|
// src/lib/parsers/parse-i3s-attribute.ts
|
|
13843
14375
|
function parseI3STileAttribute(arrayBuffer, options) {
|
|
13844
|
-
const {
|
|
13845
|
-
attributeName,
|
|
13846
|
-
attributeType
|
|
13847
|
-
} = options;
|
|
14376
|
+
const { attributeName, attributeType } = options;
|
|
13848
14377
|
if (!attributeName) {
|
|
13849
14378
|
return {};
|
|
13850
14379
|
}
|
|
@@ -13884,7 +14413,11 @@ var __exports__ = (() => {
|
|
|
13884
14413
|
const bytesPerStringSize = 4;
|
|
13885
14414
|
const stringsArray = [];
|
|
13886
14415
|
try {
|
|
13887
|
-
const stringsCount = new DataView(
|
|
14416
|
+
const stringsCount = new DataView(
|
|
14417
|
+
arrayBuffer,
|
|
14418
|
+
stringsCountOffset,
|
|
14419
|
+
bytesPerStringSize
|
|
14420
|
+
).getUint32(stringsCountOffset, true);
|
|
13888
14421
|
const stringSizes = new Uint32Array(arrayBuffer, dataOffset, stringsCount);
|
|
13889
14422
|
let stringOffset = dataOffset + stringsCount * bytesPerStringSize;
|
|
13890
14423
|
for (const stringByteSize of stringSizes) {
|
|
@@ -13900,7 +14433,7 @@ var __exports__ = (() => {
|
|
|
13900
14433
|
}
|
|
13901
14434
|
|
|
13902
14435
|
// src/i3s-attribute-loader.ts
|
|
13903
|
-
var VERSION9 =
|
|
14436
|
+
var VERSION9 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
13904
14437
|
var EMPTY_VALUE = "";
|
|
13905
14438
|
var REJECTED_STATUS = "rejected";
|
|
13906
14439
|
var I3SAttributeLoader = {
|
|
@@ -13915,11 +14448,7 @@ var __exports__ = (() => {
|
|
|
13915
14448
|
binary: true
|
|
13916
14449
|
};
|
|
13917
14450
|
async function loadFeatureAttributes(tile, featureId, options = {}) {
|
|
13918
|
-
const {
|
|
13919
|
-
attributeStorageInfo,
|
|
13920
|
-
attributeUrls,
|
|
13921
|
-
tilesetFields
|
|
13922
|
-
} = getAttributesData(tile);
|
|
14451
|
+
const { attributeStorageInfo, attributeUrls, tilesetFields } = getAttributesData(tile);
|
|
13923
14452
|
if (!attributeStorageInfo || !attributeUrls || featureId < 0) {
|
|
13924
14453
|
return null;
|
|
13925
14454
|
}
|
|
@@ -13929,11 +14458,7 @@ var __exports__ = (() => {
|
|
|
13929
14458
|
const url = getUrlWithToken(attributeUrls[index], options.i3s?.token);
|
|
13930
14459
|
const attributeName = attributeStorageInfo[index].name;
|
|
13931
14460
|
const attributeType = getAttributeValueType(attributeStorageInfo[index]);
|
|
13932
|
-
const loadOptions = {
|
|
13933
|
-
...options,
|
|
13934
|
-
attributeName,
|
|
13935
|
-
attributeType
|
|
13936
|
-
};
|
|
14461
|
+
const loadOptions = { ...options, attributeName, attributeType };
|
|
13937
14462
|
const promise = (0, import_core19.load)(url, I3SAttributeLoader, loadOptions);
|
|
13938
14463
|
attributeLoadPromises.push(promise);
|
|
13939
14464
|
}
|
|
@@ -13950,11 +14475,7 @@ var __exports__ = (() => {
|
|
|
13950
14475
|
const attributeStorageInfo = tile.tileset?.tileset?.attributeStorageInfo;
|
|
13951
14476
|
const attributeUrls = tile.header?.attributeUrls;
|
|
13952
14477
|
const tilesetFields = tile.tileset?.tileset?.fields || [];
|
|
13953
|
-
return {
|
|
13954
|
-
attributeStorageInfo,
|
|
13955
|
-
attributeUrls,
|
|
13956
|
-
tilesetFields
|
|
13957
|
-
};
|
|
14478
|
+
return { attributeStorageInfo, attributeUrls, tilesetFields };
|
|
13958
14479
|
}
|
|
13959
14480
|
function getAttributeValueType(attribute) {
|
|
13960
14481
|
if (attribute.hasOwnProperty("objectIds")) {
|
|
@@ -14017,9 +14538,7 @@ var __exports__ = (() => {
|
|
|
14017
14538
|
var OBJECT_3D_LAYER_TYPE = "3DObject";
|
|
14018
14539
|
async function parseBuildingSceneLayer(data, url) {
|
|
14019
14540
|
const layer0 = JSON.parse(new TextDecoder().decode(data));
|
|
14020
|
-
const {
|
|
14021
|
-
sublayers
|
|
14022
|
-
} = layer0;
|
|
14541
|
+
const { sublayers } = layer0;
|
|
14023
14542
|
return {
|
|
14024
14543
|
header: layer0,
|
|
14025
14544
|
sublayers: parseSublayersTree(sublayers, url)
|
|
@@ -14029,12 +14548,7 @@ var __exports__ = (() => {
|
|
|
14029
14548
|
let layers = [];
|
|
14030
14549
|
for (let index = 0; index < sublayers.length; index++) {
|
|
14031
14550
|
const subLayer = sublayers[index];
|
|
14032
|
-
const {
|
|
14033
|
-
id,
|
|
14034
|
-
layerType,
|
|
14035
|
-
visibility = true,
|
|
14036
|
-
...rest
|
|
14037
|
-
} = subLayer;
|
|
14551
|
+
const { id, layerType, visibility = true, ...rest } = subLayer;
|
|
14038
14552
|
if (layerType === OBJECT_3D_LAYER_TYPE) {
|
|
14039
14553
|
const sublayerUrl = `${url}/sublayers/${id}`;
|
|
14040
14554
|
layers.push({
|
|
@@ -14053,7 +14567,7 @@ var __exports__ = (() => {
|
|
|
14053
14567
|
}
|
|
14054
14568
|
|
|
14055
14569
|
// src/i3s-building-scene-layer-loader.ts
|
|
14056
|
-
var VERSION10 =
|
|
14570
|
+
var VERSION10 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
14057
14571
|
var I3SBuildingSceneLayerLoader = {
|
|
14058
14572
|
name: "I3S Building Scene Layer",
|
|
14059
14573
|
id: "i3s-building-scene-layer",
|
|
@@ -14078,7 +14592,12 @@ var __exports__ = (() => {
|
|
|
14078
14592
|
var BUILDING_SCENE_LAYER = "BuildingSceneLayer";
|
|
14079
14593
|
var INTEGRATED_MESH_LAYER = "IntegratedMeshLayer";
|
|
14080
14594
|
var GROUP_LAYER = "GroupLayer";
|
|
14081
|
-
var SUPPORTED_LAYERS_TYPES = [
|
|
14595
|
+
var SUPPORTED_LAYERS_TYPES = [
|
|
14596
|
+
ARCGIS_SCENE_SERVER_LAYER_TYPE,
|
|
14597
|
+
INTEGRATED_MESH_LAYER,
|
|
14598
|
+
BUILDING_SCENE_LAYER,
|
|
14599
|
+
GROUP_LAYER
|
|
14600
|
+
];
|
|
14082
14601
|
var NO_AVAILABLE_SUPPORTED_LAYERS_ERROR = "NO_AVAILABLE_SUPPORTED_LAYERS_ERROR";
|
|
14083
14602
|
var NOT_SUPPORTED_CRS_ERROR = "NOT_SUPPORTED_CRS_ERROR";
|
|
14084
14603
|
var LayerError = class extends Error {
|
|
@@ -14090,13 +14609,8 @@ var __exports__ = (() => {
|
|
|
14090
14609
|
};
|
|
14091
14610
|
async function parseWebscene(data) {
|
|
14092
14611
|
const layer0 = JSON.parse(new TextDecoder().decode(data));
|
|
14093
|
-
const {
|
|
14094
|
-
|
|
14095
|
-
} = layer0;
|
|
14096
|
-
const {
|
|
14097
|
-
layers,
|
|
14098
|
-
unsupportedLayers
|
|
14099
|
-
} = await parseOperationalLayers(operationalLayers, true);
|
|
14612
|
+
const { operationalLayers } = layer0;
|
|
14613
|
+
const { layers, unsupportedLayers } = await parseOperationalLayers(operationalLayers, true);
|
|
14100
14614
|
if (!layers.length) {
|
|
14101
14615
|
throw new LayerError(NO_AVAILABLE_SUPPORTED_LAYERS_ERROR, unsupportedLayers);
|
|
14102
14616
|
}
|
|
@@ -14122,18 +14636,12 @@ var __exports__ = (() => {
|
|
|
14122
14636
|
unsupportedLayers.push(layer);
|
|
14123
14637
|
}
|
|
14124
14638
|
if (layer.layers?.length) {
|
|
14125
|
-
const {
|
|
14126
|
-
layers: childLayers,
|
|
14127
|
-
unsupportedLayers: childUnsupportedLayers
|
|
14128
|
-
} = await parseOperationalLayers(layer.layers, needToCheckCRS);
|
|
14639
|
+
const { layers: childLayers, unsupportedLayers: childUnsupportedLayers } = await parseOperationalLayers(layer.layers, needToCheckCRS);
|
|
14129
14640
|
layer.layers = childLayers;
|
|
14130
14641
|
unsupportedLayers = [...unsupportedLayers, ...childUnsupportedLayers];
|
|
14131
14642
|
}
|
|
14132
14643
|
}
|
|
14133
|
-
return {
|
|
14134
|
-
layers,
|
|
14135
|
-
unsupportedLayers
|
|
14136
|
-
};
|
|
14644
|
+
return { layers, unsupportedLayers };
|
|
14137
14645
|
}
|
|
14138
14646
|
async function checkSupportedIndexCRS(layer) {
|
|
14139
14647
|
try {
|
|
@@ -14148,7 +14656,7 @@ var __exports__ = (() => {
|
|
|
14148
14656
|
}
|
|
14149
14657
|
|
|
14150
14658
|
// src/arcgis-webscene-loader.ts
|
|
14151
|
-
var VERSION11 =
|
|
14659
|
+
var VERSION11 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
14152
14660
|
var ArcGISWebSceneLoader = {
|
|
14153
14661
|
name: "ArcGIS Web Scene Loader",
|
|
14154
14662
|
id: "arcgis-web-scene",
|
|
@@ -14173,29 +14681,41 @@ var __exports__ = (() => {
|
|
|
14173
14681
|
...colors,
|
|
14174
14682
|
value: new Uint8Array(colors.value)
|
|
14175
14683
|
};
|
|
14176
|
-
const colorizeAttributeField = fields.find(({
|
|
14177
|
-
|
|
14178
|
-
|
|
14179
|
-
|
|
14684
|
+
const colorizeAttributeField = fields.find(({ name }) => name === colorsByAttribute?.attributeName);
|
|
14685
|
+
if (!colorizeAttributeField || !["esriFieldTypeDouble", "esriFieldTypeInteger", "esriFieldTypeSmallInteger"].includes(
|
|
14686
|
+
colorizeAttributeField.type
|
|
14687
|
+
)) {
|
|
14180
14688
|
return colors;
|
|
14181
14689
|
}
|
|
14182
|
-
const colorizeAttributeData = await loadFeatureAttributeData(
|
|
14690
|
+
const colorizeAttributeData = await loadFeatureAttributeData(
|
|
14691
|
+
colorizeAttributeField.name,
|
|
14692
|
+
attributeUrls,
|
|
14693
|
+
attributeStorageInfo,
|
|
14694
|
+
token
|
|
14695
|
+
);
|
|
14183
14696
|
if (!colorizeAttributeData) {
|
|
14184
14697
|
return colors;
|
|
14185
14698
|
}
|
|
14186
|
-
const objectIdField = fields.find(({
|
|
14187
|
-
type
|
|
14188
|
-
}) => type === "esriFieldTypeOID");
|
|
14699
|
+
const objectIdField = fields.find(({ type }) => type === "esriFieldTypeOID");
|
|
14189
14700
|
if (!objectIdField) {
|
|
14190
14701
|
return colors;
|
|
14191
14702
|
}
|
|
14192
|
-
const objectIdAttributeData = await loadFeatureAttributeData(
|
|
14703
|
+
const objectIdAttributeData = await loadFeatureAttributeData(
|
|
14704
|
+
objectIdField.name,
|
|
14705
|
+
attributeUrls,
|
|
14706
|
+
attributeStorageInfo,
|
|
14707
|
+
token
|
|
14708
|
+
);
|
|
14193
14709
|
if (!objectIdAttributeData) {
|
|
14194
14710
|
return colors;
|
|
14195
14711
|
}
|
|
14196
14712
|
const attributeValuesMap = {};
|
|
14197
14713
|
for (let i2 = 0; i2 < objectIdAttributeData[objectIdField.name].length; i2++) {
|
|
14198
|
-
attributeValuesMap[objectIdAttributeData[objectIdField.name][i2]] = calculateColorForAttribute(
|
|
14714
|
+
attributeValuesMap[objectIdAttributeData[objectIdField.name][i2]] = calculateColorForAttribute(
|
|
14715
|
+
// @ts-expect-error
|
|
14716
|
+
colorizeAttributeData[colorizeAttributeField.name][i2],
|
|
14717
|
+
colorsByAttribute
|
|
14718
|
+
);
|
|
14199
14719
|
}
|
|
14200
14720
|
for (let i2 = 0; i2 < featureIds.length; i2++) {
|
|
14201
14721
|
const color = attributeValuesMap[featureIds[i2]];
|
|
@@ -14216,12 +14736,7 @@ var __exports__ = (() => {
|
|
|
14216
14736
|
if (!colorsByAttribute) {
|
|
14217
14737
|
return [255, 255, 255, 255];
|
|
14218
14738
|
}
|
|
14219
|
-
const {
|
|
14220
|
-
minValue,
|
|
14221
|
-
maxValue,
|
|
14222
|
-
minColor,
|
|
14223
|
-
maxColor
|
|
14224
|
-
} = colorsByAttribute;
|
|
14739
|
+
const { minValue, maxValue, minColor, maxColor } = colorsByAttribute;
|
|
14225
14740
|
const rate = (attributeValue - minValue) / (maxValue - minValue);
|
|
14226
14741
|
const color = [255, 255, 255, 255];
|
|
14227
14742
|
for (let i2 = 0; i2 < minColor.length; i2++) {
|
|
@@ -14230,9 +14745,7 @@ var __exports__ = (() => {
|
|
|
14230
14745
|
return color;
|
|
14231
14746
|
}
|
|
14232
14747
|
async function loadFeatureAttributeData(attributeName, attributeUrls, attributeStorageInfo, token) {
|
|
14233
|
-
const attributeIndex = attributeStorageInfo.findIndex(({
|
|
14234
|
-
name
|
|
14235
|
-
}) => attributeName === name);
|
|
14748
|
+
const attributeIndex = attributeStorageInfo.findIndex(({ name }) => attributeName === name);
|
|
14236
14749
|
if (attributeIndex === -1) {
|
|
14237
14750
|
return null;
|
|
14238
14751
|
}
|
|
@@ -14244,7 +14757,7 @@ var __exports__ = (() => {
|
|
|
14244
14757
|
});
|
|
14245
14758
|
return objectIdAttributeData;
|
|
14246
14759
|
}
|
|
14247
|
-
return __toCommonJS(
|
|
14760
|
+
return __toCommonJS(bundle_exports);
|
|
14248
14761
|
})();
|
|
14249
14762
|
return __exports__;
|
|
14250
14763
|
});
|