@loaders.gl/flatgeobuf 4.2.0-alpha.5 → 4.2.0-alpha.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.
@@ -1,7 +1,6 @@
1
- class Config {
2
- constructor() {
3
- this._extraRequestThreshold = 256 * 1024;
4
- }
1
+ export default class Config {
2
+ static global = new Config();
3
+ _extraRequestThreshold = 256 * 1024;
5
4
  /**
6
5
  * Fetch up to this many extra bytes if it will eliminate an extra request
7
6
  */
@@ -15,5 +14,3 @@ class Config {
15
14
  this._extraRequestThreshold = bytes;
16
15
  }
17
16
  }
18
- Config.global = new Config();
19
- export default Config;
@@ -2,10 +2,8 @@
2
2
  import * as flatbuffers from 'flatbuffers';
3
3
  import { ColumnType } from "../flat-geobuf/column-type.js";
4
4
  export class Column {
5
- constructor() {
6
- this.bb = null;
7
- this.bb_pos = 0;
8
- }
5
+ bb = null;
6
+ bb_pos = 0;
9
7
  __init(i, bb) {
10
8
  this.bb_pos = i;
11
9
  this.bb = bb;
@@ -1,10 +1,8 @@
1
1
  // automatically generated by the FlatBuffers compiler, do not modify
2
2
  import * as flatbuffers from 'flatbuffers';
3
3
  export class Crs {
4
- constructor() {
5
- this.bb = null;
6
- this.bb_pos = 0;
7
- }
4
+ bb = null;
5
+ bb_pos = 0;
8
6
  __init(i, bb) {
9
7
  this.bb_pos = i;
10
8
  this.bb = bb;
@@ -3,10 +3,8 @@ import * as flatbuffers from 'flatbuffers';
3
3
  import { Column } from "../flat-geobuf/column.js";
4
4
  import { Geometry } from "../flat-geobuf/geometry.js";
5
5
  export class Feature {
6
- constructor() {
7
- this.bb = null;
8
- this.bb_pos = 0;
9
- }
6
+ bb = null;
7
+ bb_pos = 0;
10
8
  __init(i, bb) {
11
9
  this.bb_pos = i;
12
10
  this.bb = bb;
@@ -2,10 +2,8 @@
2
2
  import * as flatbuffers from 'flatbuffers';
3
3
  import { GeometryType } from "../flat-geobuf/geometry-type.js";
4
4
  export class Geometry {
5
- constructor() {
6
- this.bb = null;
7
- this.bb_pos = 0;
8
- }
5
+ bb = null;
6
+ bb_pos = 0;
9
7
  __init(i, bb) {
10
8
  this.bb_pos = i;
11
9
  this.bb = bb;
@@ -4,10 +4,8 @@ import { Column } from "../flat-geobuf/column.js";
4
4
  import { Crs } from "../flat-geobuf/crs.js";
5
5
  import { GeometryType } from "../flat-geobuf/geometry-type.js";
6
6
  export class Header {
7
- constructor() {
8
- this.bb = null;
9
- this.bb_pos = 0;
10
- }
7
+ bb = null;
8
+ bb_pos = 0;
11
9
  __init(i, bb) {
12
10
  this.bb_pos = i;
13
11
  this.bb = bb;
@@ -7,6 +7,10 @@ import Logger from "./logger.js";
7
7
  import { fromByteBuffer } from "./header-meta.js";
8
8
  import { Feature } from "./flat-geobuf/feature.js";
9
9
  export class HttpReader {
10
+ headerClient;
11
+ header;
12
+ headerLength;
13
+ indexLength;
10
14
  constructor(headerClient, header, headerLength, indexLength) {
11
15
  this.headerClient = headerClient;
12
16
  this.header = header;
@@ -170,13 +174,14 @@ export class HttpReader {
170
174
  }
171
175
  }
172
176
  class BufferedHttpRangeClient {
177
+ httpClient;
178
+ bytesEverUsed = 0;
179
+ bytesEverFetched = 0;
180
+ buffer = new ArrayBuffer(0);
181
+ // Byte offset of `buffer` with respect to the beginning of the file being
182
+ // buffered
183
+ head = 0;
173
184
  constructor(source) {
174
- this.bytesEverUsed = 0;
175
- this.bytesEverFetched = 0;
176
- this.buffer = new ArrayBuffer(0);
177
- // Byte offset of `buffer` with respect to the beginning of the file being
178
- // buffered
179
- this.head = 0;
180
185
  if (typeof source === 'string') {
181
186
  this.httpClient = new HttpRangeClient(source);
182
187
  }
@@ -210,9 +215,10 @@ class BufferedHttpRangeClient {
210
215
  }
211
216
  }
212
217
  class HttpRangeClient {
218
+ url;
219
+ requestsEverMade = 0;
220
+ bytesEverRequested = 0;
213
221
  constructor(url) {
214
- this.requestsEverMade = 0;
215
- this.bytesEverRequested = 0;
216
222
  this.url = url;
217
223
  }
218
224
  async getRange(begin, length, purpose) {
@@ -5,7 +5,8 @@ export var LogLevel;
5
5
  LogLevel[LogLevel["Warn"] = 2] = "Warn";
6
6
  LogLevel[LogLevel["Error"] = 3] = "Error";
7
7
  })(LogLevel || (LogLevel = {}));
8
- class Logger {
8
+ export default class Logger {
9
+ static logLevel = LogLevel.Warn;
9
10
  static debug(...args) {
10
11
  this.log(LogLevel.Debug, ...args);
11
12
  }
@@ -42,5 +43,3 @@ class Logger {
42
43
  }
43
44
  }
44
45
  }
45
- Logger.logLevel = LogLevel.Warn;
46
- export default Logger;
@@ -65,6 +65,8 @@ export function generateLevelBounds(numItems, nodeSize) {
65
65
  */
66
66
  export async function* streamSearch(numItems, nodeSize, rect, readNode) {
67
67
  class NodeRange {
68
+ _level;
69
+ nodes;
68
70
  constructor(nodes, level) {
69
71
  this._level = level;
70
72
  this.nodes = nodes;
@@ -4,7 +4,7 @@
4
4
  import { parseFlatGeobuf, parseFlatGeobufInBatches } from "./lib/parse-flatgeobuf.js";
5
5
  // __VERSION__ is injected by babel-plugin-version-inline
6
6
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
7
- const VERSION = typeof "4.2.0-alpha.4" !== 'undefined' ? "4.2.0-alpha.4" : 'latest';
7
+ const VERSION = typeof "4.2.0-alpha.5" !== 'undefined' ? "4.2.0-alpha.5" : 'latest';
8
8
  // FGB\3FGB\1
9
9
  const FGB_MAGIC_NUMBER = [0x66, 0x67, 0x62, 0x03, 0x66, 0x67, 0x62, 0x01];
10
10
  export const FlatGeobufWorkerLoader = {
@@ -1,5 +1,12 @@
1
1
  "use strict";
2
2
  (() => {
3
+ var __defProp = Object.defineProperty;
4
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5
+ var __publicField = (obj, key, value) => {
6
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
7
+ return value;
8
+ };
9
+
3
10
  // ../worker-utils/src/lib/node/worker_threads-browser.ts
4
11
  var parentPort = null;
5
12
 
@@ -59,7 +66,9 @@
59
66
  }
60
67
  getParentPort().then((parentPort2) => {
61
68
  if (parentPort2) {
62
- parentPort2.on("message", handleMessage);
69
+ parentPort2.on("message", (message) => {
70
+ handleMessage(message);
71
+ });
63
72
  parentPort2.on("exit", () => console.debug("Node worker closing"));
64
73
  } else {
65
74
  globalThis.onmessage = handleMessage;
@@ -6080,10 +6089,8 @@
6080
6089
 
6081
6090
  // src/flatgeobuf/3.27.2/flat-geobuf/geometry.ts
6082
6091
  var Geometry = class {
6083
- constructor() {
6084
- this.bb = null;
6085
- this.bb_pos = 0;
6086
- }
6092
+ bb = null;
6093
+ bb_pos = 0;
6087
6094
  __init(i, bb) {
6088
6095
  this.bb_pos = i;
6089
6096
  this.bb = bb;
@@ -6392,10 +6399,8 @@
6392
6399
 
6393
6400
  // src/flatgeobuf/3.27.2/flat-geobuf/column.ts
6394
6401
  var Column = class {
6395
- constructor() {
6396
- this.bb = null;
6397
- this.bb_pos = 0;
6398
- }
6402
+ bb = null;
6403
+ bb_pos = 0;
6399
6404
  __init(i, bb) {
6400
6405
  this.bb_pos = i;
6401
6406
  this.bb = bb;
@@ -6512,10 +6517,8 @@
6512
6517
 
6513
6518
  // src/flatgeobuf/3.27.2/flat-geobuf/feature.ts
6514
6519
  var Feature = class {
6515
- constructor() {
6516
- this.bb = null;
6517
- this.bb_pos = 0;
6518
- }
6520
+ bb = null;
6521
+ bb_pos = 0;
6519
6522
  __init(i, bb) {
6520
6523
  this.bb_pos = i;
6521
6524
  this.bb = bb;
@@ -6794,10 +6797,8 @@
6794
6797
 
6795
6798
  // src/flatgeobuf/3.27.2/flat-geobuf/crs.ts
6796
6799
  var Crs = class {
6797
- constructor() {
6798
- this.bb = null;
6799
- this.bb_pos = 0;
6800
- }
6800
+ bb = null;
6801
+ bb_pos = 0;
6801
6802
  __init(i, bb) {
6802
6803
  this.bb_pos = i;
6803
6804
  this.bb = bb;
@@ -6873,10 +6874,8 @@
6873
6874
 
6874
6875
  // src/flatgeobuf/3.27.2/flat-geobuf/header.ts
6875
6876
  var Header = class {
6876
- constructor() {
6877
- this.bb = null;
6878
- this.bb_pos = 0;
6879
- }
6877
+ bb = null;
6878
+ bb_pos = 0;
6880
6879
  __init(i, bb) {
6881
6880
  this.bb_pos = i;
6882
6881
  this.bb = bb;
@@ -8200,9 +8199,7 @@
8200
8199
 
8201
8200
  // src/flatgeobuf/3.27.2/config.ts
8202
8201
  var _Config = class {
8203
- constructor() {
8204
- this._extraRequestThreshold = 256 * 1024;
8205
- }
8202
+ _extraRequestThreshold = 256 * 1024;
8206
8203
  /**
8207
8204
  * Fetch up to this many extra bytes if it will eliminate an extra request
8208
8205
  */
@@ -8217,7 +8214,7 @@
8217
8214
  }
8218
8215
  };
8219
8216
  var Config = _Config;
8220
- Config.global = new _Config();
8217
+ __publicField(Config, "global", new _Config());
8221
8218
 
8222
8219
  // src/flatgeobuf/3.27.2/logger.ts
8223
8220
  var Logger = class {
@@ -8257,7 +8254,7 @@
8257
8254
  }
8258
8255
  }
8259
8256
  };
8260
- Logger.logLevel = 2 /* Warn */;
8257
+ __publicField(Logger, "logLevel", 2 /* Warn */);
8261
8258
 
8262
8259
  // src/flatgeobuf/3.27.2/packedrtree.ts
8263
8260
  var NODE_ITEM_BYTE_LEN = 8 * 4 + 8;
@@ -8298,6 +8295,8 @@
8298
8295
  }
8299
8296
  async function* streamSearch(numItems, nodeSize, rect, readNode) {
8300
8297
  class NodeRange {
8298
+ _level;
8299
+ nodes;
8301
8300
  constructor(nodes, level) {
8302
8301
  this._level = level;
8303
8302
  this.nodes = nodes;
@@ -8421,6 +8420,10 @@
8421
8420
 
8422
8421
  // src/flatgeobuf/3.27.2/http-reader.ts
8423
8422
  var HttpReader = class {
8423
+ headerClient;
8424
+ header;
8425
+ headerLength;
8426
+ indexLength;
8424
8427
  constructor(headerClient, header, headerLength, indexLength) {
8425
8428
  this.headerClient = headerClient;
8426
8429
  this.header = header;
@@ -8571,13 +8574,14 @@
8571
8574
  }
8572
8575
  };
8573
8576
  var BufferedHttpRangeClient = class {
8577
+ httpClient;
8578
+ bytesEverUsed = 0;
8579
+ bytesEverFetched = 0;
8580
+ buffer = new ArrayBuffer(0);
8581
+ // Byte offset of `buffer` with respect to the beginning of the file being
8582
+ // buffered
8583
+ head = 0;
8574
8584
  constructor(source) {
8575
- this.bytesEverUsed = 0;
8576
- this.bytesEverFetched = 0;
8577
- this.buffer = new ArrayBuffer(0);
8578
- // Byte offset of `buffer` with respect to the beginning of the file being
8579
- // buffered
8580
- this.head = 0;
8581
8585
  if (typeof source === "string") {
8582
8586
  this.httpClient = new HttpRangeClient(source);
8583
8587
  } else if (source instanceof HttpRangeClient) {
@@ -8609,9 +8613,10 @@
8609
8613
  }
8610
8614
  };
8611
8615
  var HttpRangeClient = class {
8616
+ url;
8617
+ requestsEverMade = 0;
8618
+ bytesEverRequested = 0;
8612
8619
  constructor(url) {
8613
- this.requestsEverMade = 0;
8614
- this.bytesEverRequested = 0;
8615
8620
  this.url = url;
8616
8621
  }
8617
8622
  async getRange(begin, length, purpose) {
@@ -8855,7 +8860,7 @@
8855
8860
  }
8856
8861
 
8857
8862
  // src/flatgeobuf-loader.ts
8858
- var VERSION = true ? "4.2.0-alpha.4" : "latest";
8863
+ var VERSION = true ? "4.2.0-alpha.5" : "latest";
8859
8864
  var FGB_MAGIC_NUMBER = [102, 103, 98, 3, 102, 103, 98, 1];
8860
8865
  var FlatGeobufWorkerLoader = {
8861
8866
  id: "flatgeobuf",
package/dist/index.cjs CHANGED
@@ -5,6 +5,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
9
  var __export = (target, all) => {
9
10
  for (var name in all)
10
11
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -26,6 +27,10 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
27
  mod
27
28
  ));
28
29
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var __publicField = (obj, key, value) => {
31
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
32
+ return value;
33
+ };
29
34
 
30
35
  // dist/index.js
31
36
  var dist_exports = {};
@@ -264,10 +269,8 @@ var GeometryType2;
264
269
  // dist/flatgeobuf/3.27.2/flat-geobuf/geometry.js
265
270
  var flatbuffers = __toESM(require("flatbuffers"), 1);
266
271
  var Geometry = class {
267
- constructor() {
268
- this.bb = null;
269
- this.bb_pos = 0;
270
- }
272
+ bb = null;
273
+ bb_pos = 0;
271
274
  __init(i, bb) {
272
275
  this.bb_pos = i;
273
276
  this.bb = bb;
@@ -580,10 +583,8 @@ var flatbuffers3 = __toESM(require("flatbuffers"), 1);
580
583
  // dist/flatgeobuf/3.27.2/flat-geobuf/column.js
581
584
  var flatbuffers2 = __toESM(require("flatbuffers"), 1);
582
585
  var Column = class {
583
- constructor() {
584
- this.bb = null;
585
- this.bb_pos = 0;
586
- }
586
+ bb = null;
587
+ bb_pos = 0;
587
588
  __init(i, bb) {
588
589
  this.bb_pos = i;
589
590
  this.bb = bb;
@@ -700,10 +701,8 @@ var Column = class {
700
701
 
701
702
  // dist/flatgeobuf/3.27.2/flat-geobuf/feature.js
702
703
  var Feature = class {
703
- constructor() {
704
- this.bb = null;
705
- this.bb_pos = 0;
706
- }
704
+ bb = null;
705
+ bb_pos = 0;
707
706
  __init(i, bb) {
708
707
  this.bb_pos = i;
709
708
  this.bb = bb;
@@ -910,10 +909,8 @@ var flatbuffers6 = __toESM(require("flatbuffers"), 1);
910
909
  // dist/flatgeobuf/3.27.2/flat-geobuf/crs.js
911
910
  var flatbuffers5 = __toESM(require("flatbuffers"), 1);
912
911
  var Crs = class {
913
- constructor() {
914
- this.bb = null;
915
- this.bb_pos = 0;
916
- }
912
+ bb = null;
913
+ bb_pos = 0;
917
914
  __init(i, bb) {
918
915
  this.bb_pos = i;
919
916
  this.bb = bb;
@@ -989,10 +986,8 @@ var Crs = class {
989
986
 
990
987
  // dist/flatgeobuf/3.27.2/flat-geobuf/header.js
991
988
  var Header = class {
992
- constructor() {
993
- this.bb = null;
994
- this.bb_pos = 0;
995
- }
989
+ bb = null;
990
+ bb_pos = 0;
996
991
  __init(i, bb) {
997
992
  this.bb_pos = i;
998
993
  this.bb = bb;
@@ -1203,10 +1198,8 @@ var flatbuffers7 = __toESM(require("flatbuffers"), 1);
1203
1198
  var import_repeater = require("@repeaterjs/repeater");
1204
1199
 
1205
1200
  // dist/flatgeobuf/3.27.2/config.js
1206
- var Config = class {
1207
- constructor() {
1208
- this._extraRequestThreshold = 256 * 1024;
1209
- }
1201
+ var _Config = class {
1202
+ _extraRequestThreshold = 256 * 1024;
1210
1203
  /**
1211
1204
  * Fetch up to this many extra bytes if it will eliminate an extra request
1212
1205
  */
@@ -1220,8 +1213,8 @@ var Config = class {
1220
1213
  this._extraRequestThreshold = bytes;
1221
1214
  }
1222
1215
  };
1223
- Config.global = new Config();
1224
- var config_default = Config;
1216
+ var Config = _Config;
1217
+ __publicField(Config, "global", new _Config());
1225
1218
 
1226
1219
  // dist/flatgeobuf/3.27.2/logger.js
1227
1220
  var LogLevel;
@@ -1268,8 +1261,7 @@ var Logger = class {
1268
1261
  }
1269
1262
  }
1270
1263
  };
1271
- Logger.logLevel = LogLevel.Warn;
1272
- var logger_default = Logger;
1264
+ __publicField(Logger, "logLevel", LogLevel.Warn);
1273
1265
 
1274
1266
  // dist/flatgeobuf/3.27.2/packedrtree.js
1275
1267
  var NODE_ITEM_BYTE_LEN = 8 * 4 + 8;
@@ -1310,6 +1302,8 @@ function generateLevelBounds(numItems, nodeSize) {
1310
1302
  }
1311
1303
  async function* streamSearch(numItems, nodeSize, rect, readNode) {
1312
1304
  class NodeRange {
1305
+ _level;
1306
+ nodes;
1313
1307
  constructor(nodes, level) {
1314
1308
  this._level = level;
1315
1309
  this.nodes = nodes;
@@ -1332,7 +1326,7 @@ async function* streamSearch(numItems, nodeSize, rect, readNode) {
1332
1326
  }
1333
1327
  }
1334
1328
  const { minX, minY, maxX, maxY } = rect;
1335
- logger_default.info(`tree items: ${numItems}, nodeSize: ${nodeSize}`);
1329
+ Logger.info(`tree items: ${numItems}, nodeSize: ${nodeSize}`);
1336
1330
  const levelBounds = generateLevelBounds(numItems, nodeSize);
1337
1331
  const firstLeafNodeIdx = levelBounds[0][0];
1338
1332
  const rootNodeRange = (() => {
@@ -1341,10 +1335,10 @@ async function* streamSearch(numItems, nodeSize, rect, readNode) {
1341
1335
  return new NodeRange(range, level);
1342
1336
  })();
1343
1337
  const queue = [rootNodeRange];
1344
- logger_default.debug(`starting stream search with queue: ${queue}, numItems: ${numItems}, nodeSize: ${nodeSize}, levelBounds: ${levelBounds}`);
1338
+ Logger.debug(`starting stream search with queue: ${queue}, numItems: ${numItems}, nodeSize: ${nodeSize}, levelBounds: ${levelBounds}`);
1345
1339
  while (queue.length != 0) {
1346
1340
  const nodeRange = queue.shift();
1347
- logger_default.debug(`popped node: ${nodeRange}, queueLength: ${queue.length}`);
1341
+ Logger.debug(`popped node: ${nodeRange}, queueLength: ${queue.length}`);
1348
1342
  const nodeRangeStartIdx = nodeRange.startNodeIdx();
1349
1343
  const isLeafNode = nodeRangeStartIdx >= firstLeafNodeIdx;
1350
1344
  const nodeRangeEndIdx = (() => {
@@ -1385,10 +1379,10 @@ async function* streamSearch(numItems, nodeSize, rect, readNode) {
1385
1379
  continue;
1386
1380
  }
1387
1381
  const firstChildNodeIdx = offset;
1388
- const extraRequestThresholdNodes = config_default.global.extraRequestThreshold() / NODE_ITEM_BYTE_LEN;
1382
+ const extraRequestThresholdNodes = Config.global.extraRequestThreshold() / NODE_ITEM_BYTE_LEN;
1389
1383
  const nearestNodeRange = queue[queue.length - 1];
1390
1384
  if (nearestNodeRange !== void 0 && nearestNodeRange.level() == nodeRange.level() - 1 && firstChildNodeIdx < nearestNodeRange.endNodeIdx() + extraRequestThresholdNodes) {
1391
- logger_default.debug(`Merging "nodeRange" request into existing range: ${nearestNodeRange}, newEndNodeIdx: ${nearestNodeRange.endNodeIdx()} -> ${firstChildNodeIdx}`);
1385
+ Logger.debug(`Merging "nodeRange" request into existing range: ${nearestNodeRange}, newEndNodeIdx: ${nearestNodeRange.endNodeIdx()} -> ${firstChildNodeIdx}`);
1392
1386
  nearestNodeRange.extendEndNodeIdx(Number(firstChildNodeIdx));
1393
1387
  continue;
1394
1388
  }
@@ -1398,9 +1392,9 @@ async function* streamSearch(numItems, nodeSize, rect, readNode) {
1398
1392
  return new NodeRange(range, level);
1399
1393
  })();
1400
1394
  if (nearestNodeRange !== void 0 && nearestNodeRange.level() == newNodeRange.level()) {
1401
- logger_default.info(`Same level, but too far away. Pushing new request for nodeIdx: ${firstChildNodeIdx} rather than merging with distant ${nearestNodeRange}`);
1395
+ Logger.info(`Same level, but too far away. Pushing new request for nodeIdx: ${firstChildNodeIdx} rather than merging with distant ${nearestNodeRange}`);
1402
1396
  } else {
1403
- logger_default.info(`Pushing new level for ${newNodeRange} onto queue with nearestNodeRange: ${nearestNodeRange} since there's not already a range for this level.`);
1397
+ Logger.info(`Pushing new level for ${newNodeRange} onto queue with nearestNodeRange: ${nearestNodeRange} since there's not already a range for this level.`);
1404
1398
  }
1405
1399
  queue.push(newNodeRange);
1406
1400
  }
@@ -1422,6 +1416,10 @@ var SIZE_PREFIX_LEN = 4;
1422
1416
 
1423
1417
  // dist/flatgeobuf/3.27.2/http-reader.js
1424
1418
  var HttpReader = class {
1419
+ headerClient;
1420
+ header;
1421
+ headerLength;
1422
+ indexLength;
1425
1423
  constructor(headerClient, header, headerLength, indexLength) {
1426
1424
  this.headerClient = headerClient;
1427
1425
  this.header = header;
@@ -1446,14 +1444,14 @@ var HttpReader = class {
1446
1444
  return result;
1447
1445
  })();
1448
1446
  const minReqLength = assumedHeaderLength + assumedIndexLength;
1449
- logger_default.debug(`fetching header. minReqLength: ${minReqLength} (assumedHeaderLength: ${assumedHeaderLength}, assumedIndexLength: ${assumedIndexLength})`);
1447
+ Logger.debug(`fetching header. minReqLength: ${minReqLength} (assumedHeaderLength: ${assumedHeaderLength}, assumedIndexLength: ${assumedIndexLength})`);
1450
1448
  {
1451
1449
  const bytes2 = new Uint8Array(await headerClient.getRange(0, 8, minReqLength, "header"));
1452
1450
  if (!bytes2.subarray(0, 3).every((v, i) => magicbytes[i] === v)) {
1453
- logger_default.error(`bytes: ${bytes2} != ${magicbytes}`);
1451
+ Logger.error(`bytes: ${bytes2} != ${magicbytes}`);
1454
1452
  throw new Error("Not a FlatGeobuf file");
1455
1453
  }
1456
- logger_default.debug("magic bytes look good");
1454
+ Logger.debug("magic bytes look good");
1457
1455
  }
1458
1456
  let headerLength;
1459
1457
  {
@@ -1463,13 +1461,13 @@ var HttpReader = class {
1463
1461
  if (headerLength > HEADER_MAX_BUFFER_SIZE || headerLength < 8) {
1464
1462
  throw new Error("Invalid header size");
1465
1463
  }
1466
- logger_default.debug(`headerLength: ${headerLength}`);
1464
+ Logger.debug(`headerLength: ${headerLength}`);
1467
1465
  }
1468
1466
  const bytes = await headerClient.getRange(12, headerLength, minReqLength, "header");
1469
1467
  const bb = new flatbuffers7.ByteBuffer(new Uint8Array(bytes));
1470
1468
  const header = fromByteBuffer(bb);
1471
1469
  const indexLength = calcTreeSize(header.featuresCount, header.indexNodeSize);
1472
- logger_default.debug("completed: opening http reader");
1470
+ Logger.debug("completed: opening http reader");
1473
1471
  return new HttpReader(headerClient, header, headerLength, indexLength);
1474
1472
  }
1475
1473
  async *selectBbox(rect) {
@@ -1485,7 +1483,7 @@ var HttpReader = class {
1485
1483
  const [featureOffset, ,] = searchResult;
1486
1484
  let [, , featureLength] = searchResult;
1487
1485
  if (!featureLength) {
1488
- logger_default.info("final feature");
1486
+ Logger.info("final feature");
1489
1487
  featureLength = 4;
1490
1488
  }
1491
1489
  if (currentBatch.length == 0) {
@@ -1494,8 +1492,8 @@ var HttpReader = class {
1494
1492
  }
1495
1493
  const prevFeature = currentBatch[currentBatch.length - 1];
1496
1494
  const gap = featureOffset - (prevFeature[0] + prevFeature[1]);
1497
- if (gap > config_default.global.extraRequestThreshold()) {
1498
- logger_default.info(`Pushing new feature batch, since gap ${gap} was too large`);
1495
+ if (gap > Config.global.extraRequestThreshold()) {
1496
+ Logger.info(`Pushing new feature batch, since gap ${gap} was too large`);
1499
1497
  batches.push(currentBatch);
1500
1498
  currentBatch = [];
1501
1499
  }
@@ -1553,11 +1551,14 @@ var HttpReader = class {
1553
1551
  }
1554
1552
  };
1555
1553
  var BufferedHttpRangeClient = class {
1554
+ httpClient;
1555
+ bytesEverUsed = 0;
1556
+ bytesEverFetched = 0;
1557
+ buffer = new ArrayBuffer(0);
1558
+ // Byte offset of `buffer` with respect to the beginning of the file being
1559
+ // buffered
1560
+ head = 0;
1556
1561
  constructor(source) {
1557
- this.bytesEverUsed = 0;
1558
- this.bytesEverFetched = 0;
1559
- this.buffer = new ArrayBuffer(0);
1560
- this.head = 0;
1561
1562
  if (typeof source === "string") {
1562
1563
  this.httpClient = new HttpRangeClient(source);
1563
1564
  } else if (source instanceof HttpRangeClient) {
@@ -1575,7 +1576,7 @@ var BufferedHttpRangeClient = class {
1575
1576
  }
1576
1577
  const lengthToFetch = Math.max(length, minReqLength);
1577
1578
  this.bytesEverFetched += lengthToFetch;
1578
- logger_default.debug(`requesting for new Range: ${start}-${start + lengthToFetch - 1}`);
1579
+ Logger.debug(`requesting for new Range: ${start}-${start + lengthToFetch - 1}`);
1579
1580
  this.buffer = await this.httpClient.getRange(start, lengthToFetch, purpose);
1580
1581
  this.head = start;
1581
1582
  return this.buffer.slice(0, length);
@@ -1585,20 +1586,21 @@ var BufferedHttpRangeClient = class {
1585
1586
  const used = this.bytesEverUsed;
1586
1587
  const requested = this.bytesEverFetched;
1587
1588
  const efficiency = (100 * used / requested).toFixed(2);
1588
- logger_default.info(`${category} bytes used/requested: ${used} / ${requested} = ${efficiency}%`);
1589
+ Logger.info(`${category} bytes used/requested: ${used} / ${requested} = ${efficiency}%`);
1589
1590
  }
1590
1591
  };
1591
1592
  var HttpRangeClient = class {
1593
+ url;
1594
+ requestsEverMade = 0;
1595
+ bytesEverRequested = 0;
1592
1596
  constructor(url) {
1593
- this.requestsEverMade = 0;
1594
- this.bytesEverRequested = 0;
1595
1597
  this.url = url;
1596
1598
  }
1597
1599
  async getRange(begin, length, purpose) {
1598
1600
  this.requestsEverMade += 1;
1599
1601
  this.bytesEverRequested += length;
1600
1602
  const range = `bytes=${begin}-${begin + length - 1}`;
1601
- logger_default.info(`request: #${this.requestsEverMade}, purpose: ${purpose}), bytes: (this_request: ${length}, ever: ${this.bytesEverRequested}), Range: ${range}`);
1603
+ Logger.info(`request: #${this.requestsEverMade}, purpose: ${purpose}), bytes: (this_request: ${length}, ever: ${this.bytesEverRequested}), Range: ${range}`);
1602
1604
  const response = await fetch(this.url, {
1603
1605
  headers: {
1604
1606
  Range: range
@@ -1684,7 +1686,7 @@ async function* deserializeStream(stream, fromFeature2, headerMetaFn) {
1684
1686
  }
1685
1687
  async function* deserializeFiltered(url, rect, fromFeature2, headerMetaFn) {
1686
1688
  const reader = await HttpReader.open(url);
1687
- logger_default.debug("opened reader");
1689
+ Logger.debug("opened reader");
1688
1690
  if (headerMetaFn)
1689
1691
  headerMetaFn(reader.header);
1690
1692
  for await (const feature of reader.selectBbox(rect)) {
@@ -1835,7 +1837,7 @@ async function* parseFlatGeobufInBatchesToGeoJSON(stream, options) {
1835
1837
  }
1836
1838
 
1837
1839
  // dist/flatgeobuf-loader.js
1838
- var VERSION = true ? "4.2.0-alpha.4" : "latest";
1840
+ var VERSION = true ? "4.2.0-alpha.5" : "latest";
1839
1841
  var FGB_MAGIC_NUMBER = [102, 103, 98, 3, 102, 103, 98, 1];
1840
1842
  var FlatGeobufWorkerLoader = {
1841
1843
  id: "flatgeobuf",