@loaders.gl/tile-converter 3.2.3 → 3.2.6

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.
Files changed (32) hide show
  1. package/dist/3d-tiles-attributes-worker.js +3 -3
  2. package/dist/3d-tiles-attributes-worker.js.map +1 -1
  3. package/dist/converter.min.js +10 -10
  4. package/dist/dist.min.js +143 -102
  5. package/dist/es5/3d-tiles-attributes-worker.js +1 -1
  6. package/dist/es5/i3s-attributes-worker.js +1 -1
  7. package/dist/es5/i3s-converter/helpers/node-pages.js +102 -46
  8. package/dist/es5/i3s-converter/helpers/node-pages.js.map +1 -1
  9. package/dist/es5/i3s-converter/i3s-converter.js +204 -105
  10. package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
  11. package/dist/es5/lib/utils/write-queue.js +66 -28
  12. package/dist/es5/lib/utils/write-queue.js.map +1 -1
  13. package/dist/es5/pgm-loader.js +1 -1
  14. package/dist/esm/3d-tiles-attributes-worker.js +1 -1
  15. package/dist/esm/i3s-attributes-worker.js +1 -1
  16. package/dist/esm/i3s-converter/helpers/node-pages.js +3 -3
  17. package/dist/esm/i3s-converter/helpers/node-pages.js.map +1 -1
  18. package/dist/esm/i3s-converter/i3s-converter.js +16 -16
  19. package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
  20. package/dist/esm/lib/utils/write-queue.js +10 -0
  21. package/dist/esm/lib/utils/write-queue.js.map +1 -1
  22. package/dist/esm/pgm-loader.js +1 -1
  23. package/dist/i3s-attributes-worker.js.map +1 -1
  24. package/dist/i3s-converter/helpers/node-pages.js +3 -3
  25. package/dist/i3s-converter/i3s-converter.js +16 -16
  26. package/dist/lib/utils/write-queue.d.ts +1 -0
  27. package/dist/lib/utils/write-queue.d.ts.map +1 -1
  28. package/dist/lib/utils/write-queue.js +13 -0
  29. package/package.json +16 -16
  30. package/src/i3s-converter/helpers/node-pages.ts +3 -3
  31. package/src/i3s-converter/i3s-converter.ts +16 -16
  32. package/src/lib/utils/write-queue.ts +12 -0
package/dist/dist.min.js CHANGED
@@ -32723,22 +32723,22 @@ var require_zip_archive_output_stream = __commonJS({
32723
32723
  };
32724
32724
  ZipArchiveOutputStream.prototype._smartStream = function(ae, callback) {
32725
32725
  var deflate = ae.getMethod() === constants.METHOD_DEFLATED;
32726
- var process4 = deflate ? new DeflateCRC32Stream(this.options.zlib) : new CRC32Stream();
32726
+ var process5 = deflate ? new DeflateCRC32Stream(this.options.zlib) : new CRC32Stream();
32727
32727
  var error = null;
32728
32728
  function handleStuff() {
32729
- var digest = process4.digest().readUInt32BE(0);
32729
+ var digest = process5.digest().readUInt32BE(0);
32730
32730
  ae.setCrc(digest);
32731
- ae.setSize(process4.size());
32732
- ae.setCompressedSize(process4.size(true));
32731
+ ae.setSize(process5.size());
32732
+ ae.setCompressedSize(process5.size(true));
32733
32733
  this._afterAppend(ae);
32734
32734
  callback(error, ae);
32735
32735
  }
32736
- process4.once("end", handleStuff.bind(this));
32737
- process4.once("error", function(err) {
32736
+ process5.once("end", handleStuff.bind(this));
32737
+ process5.once("error", function(err) {
32738
32738
  error = err;
32739
32739
  });
32740
- process4.pipe(this, { end: false });
32741
- return process4;
32740
+ process5.pipe(this, { end: false });
32741
+ return process5;
32742
32742
  };
32743
32743
  ZipArchiveOutputStream.prototype._writeCentralDirectoryEnd = function() {
32744
32744
  var records = this._entries.length;
@@ -73572,6 +73572,22 @@ function isTransferable(object) {
73572
73572
  }
73573
73573
  return false;
73574
73574
  }
73575
+ function getTransferListForWriter(object) {
73576
+ if (object === null) {
73577
+ return {};
73578
+ }
73579
+ const clone2 = Object.assign({}, object);
73580
+ Object.keys(clone2).forEach((key) => {
73581
+ if (typeof object[key] === "object" && !ArrayBuffer.isView(object[key])) {
73582
+ clone2[key] = getTransferListForWriter(object[key]);
73583
+ } else if (typeof clone2[key] === "function" || clone2[key] instanceof RegExp) {
73584
+ clone2[key] = {};
73585
+ } else {
73586
+ clone2[key] = object[key];
73587
+ }
73588
+ });
73589
+ return clone2;
73590
+ }
73575
73591
 
73576
73592
  // ../worker-utils/src/lib/worker-farm/worker-thread.ts
73577
73593
  var NOOP = () => {
@@ -73821,27 +73837,6 @@ var WorkerFarm = class {
73821
73837
  }
73822
73838
  };
73823
73839
 
73824
- // ../worker-utils/src/lib/worker-utils/remove-nontransferable-options.ts
73825
- function removeNontransferableOptions(object) {
73826
- return JSON.parse(stringifyJSON(object));
73827
- }
73828
- function stringifyJSON(v) {
73829
- const cache = new Set();
73830
- return JSON.stringify(v, (key, value) => {
73831
- if (typeof value === "object" && value !== null) {
73832
- if (cache.has(value)) {
73833
- try {
73834
- return JSON.parse(JSON.stringify(value));
73835
- } catch (err) {
73836
- return void 0;
73837
- }
73838
- }
73839
- cache.add(value);
73840
- }
73841
- return value;
73842
- });
73843
- }
73844
-
73845
73840
  // ../worker-utils/src/lib/worker-api/get-worker-url.ts
73846
73841
  var NPM_TAG = "latest";
73847
73842
  var VERSION2 = typeof VERSION !== "undefined" ? VERSION : NPM_TAG;
@@ -73883,7 +73878,7 @@ async function processOnWorker(worker, data, options = {}, context = {}) {
73883
73878
  const workerPool = workerFarm.getWorkerPool(workerPoolProps);
73884
73879
  const jobName = options.jobName || worker.name;
73885
73880
  const job = await workerPool.startJob(jobName, onMessage.bind(null, context));
73886
- const transferableOptions = removeNontransferableOptions(options);
73881
+ const transferableOptions = getTransferListForWriter(options);
73887
73882
  job.postMessage("process", { input: data, options: transferableOptions });
73888
73883
  const result = await job.result;
73889
73884
  return result.result;
@@ -75721,14 +75716,13 @@ var cullingVolume = new import_culling.CullingVolume([
75721
75716
  function getFrameState(viewport, frameNumber) {
75722
75717
  const { cameraDirection, cameraUp, height } = viewport;
75723
75718
  const { metersPerUnit } = viewport.distanceScales;
75724
- const viewportCenterCartographic = viewport.unprojectPosition(viewport.center);
75725
- const viewportCenterCartesian = import_geospatial2.Ellipsoid.WGS84.cartographicToCartesian(viewportCenterCartographic, new import_core2.Vector3());
75719
+ const viewportCenterCartesian = worldToCartesian(viewport, viewport.center);
75726
75720
  const enuToFixedTransform = import_geospatial2.Ellipsoid.WGS84.eastNorthUpToFixedFrame(viewportCenterCartesian);
75727
75721
  const cameraPositionCartographic = viewport.unprojectPosition(viewport.cameraPosition);
75728
75722
  const cameraPositionCartesian2 = import_geospatial2.Ellipsoid.WGS84.cartographicToCartesian(cameraPositionCartographic, new import_core2.Vector3());
75729
75723
  const cameraDirectionCartesian = new import_core2.Vector3(enuToFixedTransform.transformAsVector(new import_core2.Vector3(cameraDirection).scale(metersPerUnit))).normalize();
75730
75724
  const cameraUpCartesian = new import_core2.Vector3(enuToFixedTransform.transformAsVector(new import_core2.Vector3(cameraUp).scale(metersPerUnit))).normalize();
75731
- commonSpacePlanesToWGS84(viewport, viewportCenterCartesian);
75725
+ commonSpacePlanesToWGS84(viewport);
75732
75726
  const ViewportClass = viewport.constructor;
75733
75727
  const { longitude, latitude, width, bearing, zoom } = viewport;
75734
75728
  const topDownViewport = new ViewportClass({
@@ -75778,18 +75772,32 @@ function limitSelectedTiles(tiles, frameState, maximumTilesSelected) {
75778
75772
  }
75779
75773
  return [selectedTiles, unselectedTiles];
75780
75774
  }
75781
- function commonSpacePlanesToWGS84(viewport, viewportCenterCartesian) {
75775
+ function commonSpacePlanesToWGS84(viewport) {
75782
75776
  const frustumPlanes = viewport.getFrustumPlanes();
75777
+ const nearCenterCommon = closestPointOnPlane(frustumPlanes.near, viewport.cameraPosition);
75778
+ const nearCenterCartesian = worldToCartesian(viewport, nearCenterCommon);
75779
+ const cameraCartesian = worldToCartesian(viewport, viewport.cameraPosition, scratchPosition);
75783
75780
  let i = 0;
75781
+ cullingVolume.planes[i++].fromPointNormal(nearCenterCartesian, scratchVector.copy(nearCenterCartesian).subtract(cameraCartesian));
75784
75782
  for (const dir in frustumPlanes) {
75783
+ if (dir === "near") {
75784
+ continue;
75785
+ }
75785
75786
  const plane = frustumPlanes[dir];
75786
- const distanceToCenter = plane.normal.dot(viewport.center);
75787
- scratchPosition.copy(plane.normal).scale(plane.distance - distanceToCenter).add(viewport.center);
75788
- const cartographicPos = viewport.unprojectPosition(scratchPosition);
75789
- const cartesianPos = import_geospatial2.Ellipsoid.WGS84.cartographicToCartesian(cartographicPos, new import_core2.Vector3());
75790
- cullingVolume.planes[i++].fromPointNormal(cartesianPos, scratchVector.copy(viewportCenterCartesian).subtract(cartesianPos));
75787
+ const posCommon = closestPointOnPlane(plane, nearCenterCommon, scratchPosition);
75788
+ const cartesianPos = worldToCartesian(viewport, posCommon, scratchPosition);
75789
+ cullingVolume.planes[i++].fromPointNormal(cartesianPos, scratchVector.copy(nearCenterCartesian).subtract(cartesianPos));
75791
75790
  }
75792
75791
  }
75792
+ function closestPointOnPlane(plane, refPoint, out = new import_core2.Vector3()) {
75793
+ const distanceToRef = plane.normal.dot(refPoint);
75794
+ out.copy(plane.normal).scale(plane.distance - distanceToRef).add(refPoint);
75795
+ return out;
75796
+ }
75797
+ function worldToCartesian(viewport, point, out = new import_core2.Vector3()) {
75798
+ const cartographicPos = viewport.unprojectPosition(point);
75799
+ return import_geospatial2.Ellipsoid.WGS84.cartographicToCartesian(cartographicPos, out);
75800
+ }
75793
75801
 
75794
75802
  // ../tiles/src/tileset/helpers/zoom.ts
75795
75803
  var import_core3 = __toModule(require_es56());
@@ -76156,7 +76164,7 @@ var TilesetTraverser = class {
76156
76164
  this.requestedTiles = {};
76157
76165
  this.emptyTiles = {};
76158
76166
  }
76159
- get traversalFinished() {
76167
+ traversalFinished(frameState) {
76160
76168
  return true;
76161
76169
  }
76162
76170
  traverse(root, frameState, options) {
@@ -76207,7 +76215,7 @@ var TilesetTraverser = class {
76207
76215
  tile._shouldRefine = shouldRefine && parentRefines;
76208
76216
  }
76209
76217
  const newTime = new Date().getTime();
76210
- if (this.traversalFinished || newTime - this.lastUpdate > this.updateDebounceTime) {
76218
+ if (this.traversalFinished(frameState) || newTime - this.lastUpdate > this.updateDebounceTime) {
76211
76219
  this.lastUpdate = newTime;
76212
76220
  this.options.onTraversalEnd(frameState);
76213
76221
  }
@@ -76744,21 +76752,27 @@ var Tileset3DTraverser = class extends TilesetTraverser {
76744
76752
  }
76745
76753
  };
76746
76754
 
76747
- // ../tiles/src/tileset/traversers/i3s-frame-counter.ts
76755
+ // ../tiles/src/tileset/traversers/i3s-pending-tiles-register.ts
76748
76756
  var I3SPendingTilesRegister = class {
76749
76757
  constructor() {
76750
76758
  this.frameNumberMap = new Map();
76751
76759
  }
76752
- register(frameNumber) {
76753
- const oldCount = this.frameNumberMap.get(frameNumber) || 0;
76754
- this.frameNumberMap.set(frameNumber, oldCount + 1);
76760
+ register(viewportId, frameNumber) {
76761
+ const viewportMap = this.frameNumberMap.get(viewportId) || new Map();
76762
+ const oldCount = viewportMap.get(frameNumber) || 0;
76763
+ viewportMap.set(frameNumber, oldCount + 1);
76764
+ this.frameNumberMap.set(viewportId, viewportMap);
76755
76765
  }
76756
- deregister(frameNumber) {
76757
- const oldCount = this.frameNumberMap.get(frameNumber) || 1;
76758
- this.frameNumberMap.set(frameNumber, oldCount - 1);
76766
+ deregister(viewportId, frameNumber) {
76767
+ const viewportMap = this.frameNumberMap.get(viewportId);
76768
+ if (!viewportMap) {
76769
+ return;
76770
+ }
76771
+ const oldCount = viewportMap.get(frameNumber) || 1;
76772
+ viewportMap.set(frameNumber, oldCount - 1);
76759
76773
  }
76760
- isZero(frameNumber) {
76761
- const count = this.frameNumberMap.get(frameNumber) || 0;
76774
+ isZero(viewportId, frameNumber) {
76775
+ const count = this.frameNumberMap.get(viewportId)?.get(frameNumber) || 0;
76762
76776
  return count === 0;
76763
76777
  }
76764
76778
  };
@@ -76776,41 +76790,58 @@ var I3STileManager = class {
76776
76790
  }
76777
76791
  add(request, key, callback, frameState) {
76778
76792
  if (!this._statusMap[key]) {
76779
- const { frameNumber } = frameState;
76793
+ const {
76794
+ frameNumber,
76795
+ viewport: { id }
76796
+ } = frameState;
76780
76797
  this._statusMap[key] = { request, callback, key, frameState, status: STATUS.REQUESTED };
76781
- this.pendingTilesRegister.register(frameNumber);
76798
+ this.pendingTilesRegister.register(id, frameNumber);
76782
76799
  request().then((data) => {
76783
76800
  this._statusMap[key].status = STATUS.COMPLETED;
76784
- const { frameNumber: actualFrameNumber } = this._statusMap[key].frameState;
76785
- this.pendingTilesRegister.deregister(actualFrameNumber);
76801
+ const {
76802
+ frameNumber: actualFrameNumber,
76803
+ viewport: { id: id2 }
76804
+ } = this._statusMap[key].frameState;
76805
+ this.pendingTilesRegister.deregister(id2, actualFrameNumber);
76786
76806
  this._statusMap[key].callback(data, frameState);
76787
76807
  }).catch((error) => {
76788
76808
  this._statusMap[key].status = STATUS.ERROR;
76789
- const { frameNumber: actualFrameNumber } = this._statusMap[key].frameState;
76790
- this.pendingTilesRegister.deregister(actualFrameNumber);
76809
+ const {
76810
+ frameNumber: actualFrameNumber,
76811
+ viewport: { id: id2 }
76812
+ } = this._statusMap[key].frameState;
76813
+ this.pendingTilesRegister.deregister(id2, actualFrameNumber);
76791
76814
  callback(error);
76792
76815
  });
76793
76816
  }
76794
76817
  }
76795
76818
  update(key, frameState) {
76796
76819
  if (this._statusMap[key]) {
76797
- this.pendingTilesRegister.deregister(this._statusMap[key].frameState.frameNumber);
76798
- this.pendingTilesRegister.register(frameState.frameNumber);
76820
+ const {
76821
+ frameNumber,
76822
+ viewport: { id }
76823
+ } = this._statusMap[key].frameState;
76824
+ this.pendingTilesRegister.deregister(id, frameNumber);
76825
+ const {
76826
+ frameNumber: newFrameNumber,
76827
+ viewport: { id: newViewportId }
76828
+ } = frameState;
76829
+ this.pendingTilesRegister.register(newViewportId, newFrameNumber);
76799
76830
  this._statusMap[key].frameState = frameState;
76800
76831
  }
76801
76832
  }
76802
76833
  find(key) {
76803
76834
  return this._statusMap[key];
76804
76835
  }
76805
- hasPendingTiles(frameNumber) {
76806
- return !this.pendingTilesRegister.isZero(frameNumber);
76836
+ hasPendingTiles(viewportId, frameNumber) {
76837
+ return !this.pendingTilesRegister.isZero(viewportId, frameNumber);
76807
76838
  }
76808
76839
  };
76809
76840
 
76810
76841
  // ../tiles/src/tileset/traversers/i3s-tileset-traverser.ts
76811
76842
  var I3STilesetTraverser = class extends TilesetTraverser {
76812
- get traversalFinished() {
76813
- return !this._tileManager.hasPendingTiles(this._frameNumber || 0);
76843
+ traversalFinished(frameState) {
76844
+ return !this._tileManager.hasPendingTiles(frameState.viewport.id, this._frameNumber || 0);
76814
76845
  }
76815
76846
  constructor(options) {
76816
76847
  super(options);
@@ -76862,7 +76893,7 @@ var I3STilesetTraverser = class extends TilesetTraverser {
76862
76893
  tile.children.push(childTile);
76863
76894
  const frameState = this._tileManager.find(childTile.id).frameState;
76864
76895
  this.updateTile(childTile, frameState);
76865
- if (this._frameNumber === frameState.frameNumber && (this.traversalFinished || new Date().getTime() - this.lastUpdate > this.updateDebounceTime)) {
76896
+ if (this._frameNumber === frameState.frameNumber && (this.traversalFinished(frameState) || new Date().getTime() - this.lastUpdate > this.updateDebounceTime)) {
76866
76897
  this.executeTraversal(childTile, frameState);
76867
76898
  }
76868
76899
  }
@@ -76999,7 +77030,9 @@ var Tileset3D = class {
76999
77030
  } else {
77000
77031
  this.lastUpdatedVieports = viewports;
77001
77032
  }
77002
- this.doUpdate(viewports);
77033
+ if (viewports) {
77034
+ this.doUpdate(viewports);
77035
+ }
77003
77036
  });
77004
77037
  }
77005
77038
  async selectTiles(viewports = null) {
@@ -77010,7 +77043,9 @@ var Tileset3D = class {
77010
77043
  if (!this.updatePromise) {
77011
77044
  this.updatePromise = new Promise((resolve) => {
77012
77045
  setTimeout(() => {
77013
- this.doUpdate(this.lastUpdatedVieports);
77046
+ if (this.lastUpdatedVieports) {
77047
+ this.doUpdate(this.lastUpdatedVieports);
77048
+ }
77014
77049
  resolve(this._frameNumber);
77015
77050
  this.updatePromise = null;
77016
77051
  }, this.options.debounceTime);
@@ -77018,21 +77053,19 @@ var Tileset3D = class {
77018
77053
  }
77019
77054
  return this.updatePromise;
77020
77055
  }
77021
- doUpdate(viewports = null) {
77056
+ doUpdate(viewports) {
77022
77057
  if ("loadTiles" in this.options && !this.options.loadTiles) {
77023
77058
  return;
77024
77059
  }
77025
77060
  if (this.traverseCounter > 0) {
77026
77061
  return;
77027
77062
  }
77028
- if (!(viewports instanceof Array)) {
77029
- viewports = [viewports];
77030
- }
77063
+ const preparedViewports = viewports instanceof Array ? viewports : [viewports];
77031
77064
  this._cache.reset();
77032
77065
  this._frameNumber++;
77033
- this.traverseCounter = viewports.length;
77066
+ this.traverseCounter = preparedViewports.length;
77034
77067
  const viewportsToTraverse = [];
77035
- for (const viewport of viewports) {
77068
+ for (const viewport of preparedViewports) {
77036
77069
  const id = viewport.id;
77037
77070
  if (this._needTraverse(id)) {
77038
77071
  viewportsToTraverse.push(id);
@@ -77040,7 +77073,7 @@ var Tileset3D = class {
77040
77073
  this.traverseCounter--;
77041
77074
  }
77042
77075
  }
77043
- for (const viewport of viewports) {
77076
+ for (const viewport of preparedViewports) {
77044
77077
  const id = viewport.id;
77045
77078
  if (!this.roots[id]) {
77046
77079
  this.roots[id] = this._initializeTileHeaders(this.tileset, null);
@@ -83743,7 +83776,7 @@ var stringify = import_dist.default.stringify;
83743
83776
  var parse5 = import_dist.default.parse;
83744
83777
 
83745
83778
  // src/i3s-converter/i3s-converter.ts
83746
- var import_process = __toModule(require("process"));
83779
+ var import_process2 = __toModule(require("process"));
83747
83780
  var import_json_map_transform6 = __toModule(require_json_map_transform());
83748
83781
  var import_md52 = __toModule(require_md52());
83749
83782
 
@@ -83858,14 +83891,14 @@ var NodePages = class {
83858
83891
  for (const [index, nodePage] of this.nodePages.entries()) {
83859
83892
  const nodePageStr = JSON.stringify(nodePage);
83860
83893
  const slpkPath = (0, import_path2.join)(layers0Path, "nodepages");
83861
- writeQueue.enqueue({
83894
+ await writeQueue.enqueue({
83862
83895
  archiveKey: `nodePages/${index.toString()}.json.gz`,
83863
83896
  writePromise: this.writeFile(slpkPath, nodePageStr, `${index.toString()}.json`)
83864
83897
  });
83865
83898
  }
83866
83899
  const metadata = (0, import_json_map_transform.default)({ nodeCount: this.nodesCounter }, METADATA());
83867
83900
  const compress = false;
83868
- writeQueue.enqueue({
83901
+ await writeQueue.enqueue({
83869
83902
  archiveKey: "metadata.json",
83870
83903
  writePromise: this.writeFile(layers0Path, JSON.stringify(metadata), "metadata.json", compress)
83871
83904
  });
@@ -83873,7 +83906,7 @@ var NodePages = class {
83873
83906
  for (const [index, nodePage] of this.nodePages.entries()) {
83874
83907
  const nodePageStr = JSON.stringify(nodePage);
83875
83908
  const nodePagePath = (0, import_path2.join)(layers0Path, "nodepages", index.toString());
83876
- writeQueue.enqueue({ writePromise: this.writeFile(nodePagePath, nodePageStr) });
83909
+ await writeQueue.enqueue({ writePromise: this.writeFile(nodePagePath, nodePageStr) });
83877
83910
  }
83878
83911
  }
83879
83912
  }
@@ -85618,6 +85651,8 @@ var Queue = class extends Array {
85618
85651
  };
85619
85652
 
85620
85653
  // src/lib/utils/write-queue.ts
85654
+ var import_process = __toModule(require("process"));
85655
+ var MEMORY_LIMIT = 4 * 1024 * 1024 * 1024;
85621
85656
  var WriteQueue = class extends Queue {
85622
85657
  constructor(listeningInterval = 2e3, writeConcurrency = 400) {
85623
85658
  super();
@@ -85626,6 +85661,12 @@ var WriteQueue = class extends Queue {
85626
85661
  this.listeningInterval = listeningInterval;
85627
85662
  this.writeConcurrency = writeConcurrency;
85628
85663
  }
85664
+ async enqueue(val) {
85665
+ super.enqueue(val);
85666
+ if (import_process.default.memoryUsage().rss > MEMORY_LIMIT) {
85667
+ await this.startWrite();
85668
+ }
85669
+ }
85629
85670
  startListening() {
85630
85671
  this.intervalId = setInterval(this.startWrite.bind(this), this.listeningInterval);
85631
85672
  }
@@ -85693,7 +85734,7 @@ var I3SAttributesWorker = {
85693
85734
  var BROWSER_ERROR_MESSAGE = "Tile converter does not work in browser, only in node js environment";
85694
85735
 
85695
85736
  // src/i3s-converter/i3s-converter.ts
85696
- var ION_DEFAULT_TOKEN = import_process.default.env?.IonToken || "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJlYWMxMzcyYy0zZjJkLTQwODctODNlNi01MDRkZmMzMjIxOWIiLCJpZCI6OTYyMCwic2NvcGVzIjpbImFzbCIsImFzciIsImdjIl0sImlhdCI6MTU2Mjg2NjI3M30.1FNiClUyk00YH_nWfSGpiQAjR5V2OvREDq1PJ5QMjWQ";
85737
+ var ION_DEFAULT_TOKEN = import_process2.default.env?.IonToken || "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJlYWMxMzcyYy0zZjJkLTQwODctODNlNi01MDRkZmMzMjIxOWIiLCJpZCI6OTYyMCwic2NvcGVzIjpbImFzbCIsImFzciIsImdjIl0sImlhdCI6MTU2Mjg2NjI3M30.1FNiClUyk00YH_nWfSGpiQAjR5V2OvREDq1PJ5QMjWQ";
85697
85738
  var HARDCODED_NODES_PER_PAGE = 64;
85698
85739
  var _3D_TILES = "3DTILES";
85699
85740
  var _3D_OBJECT_LAYER_TYPE = "3DObject";
@@ -85735,7 +85776,7 @@ var I3SConverter = class {
85735
85776
  console.log(BROWSER_ERROR_MESSAGE);
85736
85777
  return BROWSER_ERROR_MESSAGE;
85737
85778
  }
85738
- this.conversionStartTime = import_process.default.hrtime();
85779
+ this.conversionStartTime = import_process2.default.hrtime();
85739
85780
  const {
85740
85781
  tilesetName,
85741
85782
  slpk,
@@ -85867,12 +85908,12 @@ var I3SConverter = class {
85867
85908
  const [child] = await this._createNode(root0, sourceRootTile, parentId, 0);
85868
85909
  const childPath = (0, import_path7.join)(this.layers0Path, "nodes", child.path);
85869
85910
  if (this.options.slpk) {
85870
- this.writeQueue.enqueue({
85911
+ await this.writeQueue.enqueue({
85871
85912
  archiveKey: "nodes/1/3dNodeIndexDocument.json.gz",
85872
85913
  writePromise: writeFileForSlpk(childPath, JSON.stringify(child), "3dNodeIndexDocument.json")
85873
85914
  });
85874
85915
  } else {
85875
- this.writeQueue.enqueue({ writePromise: writeFile3(childPath, JSON.stringify(child)) });
85916
+ await this.writeQueue.enqueue({ writePromise: writeFile3(childPath, JSON.stringify(child)) });
85876
85917
  }
85877
85918
  } else {
85878
85919
  await this._addChildrenWithNeighborsAndWriteFile({
@@ -85886,24 +85927,24 @@ var I3SConverter = class {
85886
85927
  }
85887
85928
  async _writeLayers0() {
85888
85929
  if (this.options.slpk) {
85889
- this.writeQueue.enqueue({
85930
+ await this.writeQueue.enqueue({
85890
85931
  archiveKey: "3dSceneLayer.json.gz",
85891
85932
  writePromise: writeFileForSlpk(this.layers0Path, JSON.stringify(this.layers0), "3dSceneLayer.json")
85892
85933
  });
85893
85934
  } else {
85894
- this.writeQueue.enqueue({
85935
+ await this.writeQueue.enqueue({
85895
85936
  writePromise: writeFile3(this.layers0Path, JSON.stringify(this.layers0))
85896
85937
  });
85897
85938
  }
85898
85939
  }
85899
85940
  async _writeNodeIndexDocument(root0, nodePath, rootPath) {
85900
85941
  if (this.options.slpk) {
85901
- this.writeQueue.enqueue({
85942
+ await this.writeQueue.enqueue({
85902
85943
  archiveKey: `nodes/${nodePath}/3dNodeIndexDocument.json.gz`,
85903
85944
  writePromise: writeFileForSlpk(rootPath, JSON.stringify(root0), "3dNodeIndexDocument.json")
85904
85945
  });
85905
85946
  } else {
85906
- this.writeQueue.enqueue({ writePromise: writeFile3(rootPath, JSON.stringify(root0)) });
85947
+ await this.writeQueue.enqueue({ writePromise: writeFile3(rootPath, JSON.stringify(root0)) });
85907
85948
  }
85908
85949
  }
85909
85950
  async _createSlpk(tilesetPath) {
@@ -86140,26 +86181,26 @@ var I3SConverter = class {
86140
86181
  async _writeGeometries(geometryBuffer, compressedGeometry, childPath, slpkChildPath) {
86141
86182
  if (this.options.slpk) {
86142
86183
  const slpkGeometryPath = (0, import_path7.join)(childPath, "geometries");
86143
- this.writeQueue.enqueue({
86184
+ await this.writeQueue.enqueue({
86144
86185
  archiveKey: `${slpkChildPath}/geometries/0.bin.gz`,
86145
86186
  writePromise: writeFileForSlpk(slpkGeometryPath, geometryBuffer, "0.bin")
86146
86187
  });
86147
86188
  } else {
86148
86189
  const geometryPath = (0, import_path7.join)(childPath, "geometries/0/");
86149
- this.writeQueue.enqueue({
86190
+ await this.writeQueue.enqueue({
86150
86191
  writePromise: writeFile3(geometryPath, geometryBuffer, "index.bin")
86151
86192
  });
86152
86193
  }
86153
86194
  if (this.options.draco) {
86154
86195
  if (this.options.slpk) {
86155
86196
  const slpkCompressedGeometryPath = (0, import_path7.join)(childPath, "geometries");
86156
- this.writeQueue.enqueue({
86197
+ await this.writeQueue.enqueue({
86157
86198
  archiveKey: `${slpkChildPath}/geometries/1.bin.gz`,
86158
86199
  writePromise: writeFileForSlpk(slpkCompressedGeometryPath, compressedGeometry, "1.bin")
86159
86200
  });
86160
86201
  } else {
86161
86202
  const compressedGeometryPath = (0, import_path7.join)(childPath, "geometries/1/");
86162
- this.writeQueue.enqueue({
86203
+ await this.writeQueue.enqueue({
86163
86204
  writePromise: writeFile3(compressedGeometryPath, compressedGeometry, "index.bin")
86164
86205
  });
86165
86206
  }
@@ -86174,13 +86215,13 @@ var I3SConverter = class {
86174
86215
  const sharedDataStr = JSON.stringify(sharedData);
86175
86216
  if (this.options.slpk) {
86176
86217
  const slpkSharedPath = (0, import_path7.join)(childPath, "shared");
86177
- this.writeQueue.enqueue({
86218
+ await this.writeQueue.enqueue({
86178
86219
  archiveKey: `${slpkChildPath}/shared/sharedResource.json.gz`,
86179
86220
  writePromise: writeFileForSlpk(slpkSharedPath, sharedDataStr, "sharedResource.json")
86180
86221
  });
86181
86222
  } else {
86182
86223
  const sharedPath = (0, import_path7.join)(childPath, "shared/");
86183
- this.writeQueue.enqueue({ writePromise: writeFile3(sharedPath, sharedDataStr) });
86224
+ await this.writeQueue.enqueue({ writePromise: writeFile3(sharedPath, sharedDataStr) });
86184
86225
  }
86185
86226
  }
86186
86227
  async _writeTexture(texture, childPath, slpkChildPath) {
@@ -86224,13 +86265,13 @@ var I3SConverter = class {
86224
86265
  if (this.options.slpk) {
86225
86266
  const slpkTexturePath = (0, import_path7.join)(childPath, "textures");
86226
86267
  const compress = false;
86227
- this.writeQueue.enqueue({
86268
+ await this.writeQueue.enqueue({
86228
86269
  archiveKey: `${slpkChildPath}/textures/${name8}.${format}`,
86229
86270
  writePromise: writeFileForSlpk(slpkTexturePath, textureData, `${name8}.${format}`, compress)
86230
86271
  });
86231
86272
  } else {
86232
86273
  const texturePath = (0, import_path7.join)(childPath, `textures/${name8}/`);
86233
- this.writeQueue.enqueue({
86274
+ await this.writeQueue.enqueue({
86234
86275
  writePromise: writeFile3(texturePath, textureData, `index.${format}`)
86235
86276
  });
86236
86277
  }
@@ -86242,13 +86283,13 @@ var I3SConverter = class {
86242
86283
  const fileBuffer = new Uint8Array(attributes[index]);
86243
86284
  if (this.options.slpk) {
86244
86285
  const slpkAttributesPath = (0, import_path7.join)(childPath, "attributes", folderName);
86245
- this.writeQueue.enqueue({
86286
+ await this.writeQueue.enqueue({
86246
86287
  archiveKey: `${slpkChildPath}/attributes/${folderName}.bin.gz`,
86247
86288
  writePromise: writeFileForSlpk(slpkAttributesPath, fileBuffer, "0.bin")
86248
86289
  });
86249
86290
  } else {
86250
86291
  const attributesPath = (0, import_path7.join)(childPath, `attributes/${folderName}/0`);
86251
- this.writeQueue.enqueue({
86292
+ await this.writeQueue.enqueue({
86252
86293
  writePromise: writeFile3(attributesPath, fileBuffer, "index.bin")
86253
86294
  });
86254
86295
  }
@@ -86408,7 +86449,7 @@ var I3SConverter = class {
86408
86449
  const { tilesCount, tilesWithAddRefineCount } = this.refinementCounter;
86409
86450
  const addRefinementPercentage = tilesWithAddRefineCount ? tilesWithAddRefineCount / tilesCount * 100 : 0;
86410
86451
  const filesSize = await calculateFilesSize(params);
86411
- const diff = import_process.default.hrtime(this.conversionStartTime);
86452
+ const diff = import_process2.default.hrtime(this.conversionStartTime);
86412
86453
  const conversionTime = timeConverter(diff);
86413
86454
  console.log(`------------------------------------------------`);
86414
86455
  console.log(`Finishing conversion of ${_3D_TILES}`);
@@ -86426,15 +86467,15 @@ var I3SConverter = class {
86426
86467
  "cesium-ion": { accessToken: this.options.token || ION_DEFAULT_TOKEN }
86427
86468
  };
86428
86469
  const preloadOptions = await this.Loader.preload(this.options.inputUrl, options);
86429
- this.refreshTokenTime = import_process.default.hrtime();
86470
+ this.refreshTokenTime = import_process2.default.hrtime();
86430
86471
  return { ...options, ...preloadOptions };
86431
86472
  }
86432
86473
  async _updateTilesetOptions() {
86433
- const diff = import_process.default.hrtime(this.refreshTokenTime);
86474
+ const diff = import_process2.default.hrtime(this.refreshTokenTime);
86434
86475
  if (diff[0] < REFRESH_TOKEN_TIMEOUT) {
86435
86476
  return;
86436
86477
  }
86437
- this.refreshTokenTime = import_process.default.hrtime();
86478
+ this.refreshTokenTime = import_process2.default.hrtime();
86438
86479
  const preloadOptions = await this._fetchPreloadOptions();
86439
86480
  this.sourceTileset.options = { ...this.sourceTileset.options, ...preloadOptions };
86440
86481
  if (preloadOptions.headers) {
@@ -86480,7 +86521,7 @@ var I3SConverter = class {
86480
86521
 
86481
86522
  // src/3d-tiles-converter/3d-tiles-converter.ts
86482
86523
  var import_path8 = __toModule(require("path"));
86483
- var import_process2 = __toModule(require("process"));
86524
+ var import_process3 = __toModule(require("process"));
86484
86525
  var import_json_map_transform8 = __toModule(require_json_map_transform());
86485
86526
 
86486
86527
  // ../i3s/src/lib/parsers/parse-i3s-tile-content.ts
@@ -86609,7 +86650,7 @@ async function parseI3STileContent(arrayBuffer, tile, tileset, options, context)
86609
86650
  if (tile.textureUrl) {
86610
86651
  const url = getUrlWithToken(tile.textureUrl, options?.i3s?.token);
86611
86652
  const loader = getLoaderForTextureFormat(tile.textureFormat);
86612
- const response = await fetch(url);
86653
+ const response = await fetch(url, options?.fetch);
86613
86654
  const arrayBuffer2 = await response.arrayBuffer();
86614
86655
  if (options?.i3s.decodeTextures) {
86615
86656
  if (loader === ImageLoader) {
@@ -87710,7 +87751,7 @@ var Tiles3DConverter = class {
87710
87751
  return BROWSER_ERROR_MESSAGE;
87711
87752
  }
87712
87753
  const { inputUrl, outputPath, tilesetName, maxDepth, egmFilePath } = options;
87713
- this.conversionStartTime = import_process2.default.hrtime();
87754
+ this.conversionStartTime = import_process3.default.hrtime();
87714
87755
  this.options = { maxDepth };
87715
87756
  console.log("Loading egm file...");
87716
87757
  this.geoidHeightModel = await load(egmFilePath, PGMLoader);
@@ -87860,7 +87901,7 @@ var Tiles3DConverter = class {
87860
87901
  }
87861
87902
  async _finishConversion(params) {
87862
87903
  const filesSize = await calculateFilesSize(params);
87863
- const diff = import_process2.default.hrtime(this.conversionStartTime);
87904
+ const diff = import_process3.default.hrtime(this.conversionStartTime);
87864
87905
  const conversionTime = timeConverter(diff);
87865
87906
  console.log(`------------------------------------------------`);
87866
87907
  console.log(`Finish conversion of ${I3S}`);
@@ -8,7 +8,7 @@ exports._typecheckI3SAttributesWorker = exports.Tile3dAttributesWorker = void 0;
8
8
 
9
9
  var _workerUtils = require("@loaders.gl/worker-utils");
10
10
 
11
- var VERSION = typeof "3.2.3" !== 'undefined' ? "3.2.3" : 'latest';
11
+ var VERSION = typeof "3.2.6" !== 'undefined' ? "3.2.6" : 'latest';
12
12
  var Tile3dAttributesWorker = {
13
13
  id: '3d-tiles-attributes',
14
14
  name: '3DTiles Attributes Worker',
@@ -8,7 +8,7 @@ exports._typecheckI3SAttributesWorker = exports.I3SAttributesWorker = void 0;
8
8
 
9
9
  var _workerUtils = require("@loaders.gl/worker-utils");
10
10
 
11
- var VERSION = typeof "3.2.3" !== 'undefined' ? "3.2.3" : 'latest';
11
+ var VERSION = typeof "3.2.6" !== 'undefined' ? "3.2.6" : 'latest';
12
12
  var I3SAttributesWorker = {
13
13
  id: 'i3s-attributes',
14
14
  name: 'I3S Attributes Worker',