@loaders.gl/flatgeobuf 4.2.0-alpha.5 → 4.2.0-beta.1

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/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,9 +1837,11 @@ 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.6" : "latest";
1839
1841
  var FGB_MAGIC_NUMBER = [102, 103, 98, 3, 102, 103, 98, 1];
1840
1842
  var FlatGeobufWorkerLoader = {
1843
+ dataType: null,
1844
+ batchType: null,
1841
1845
  id: "flatgeobuf",
1842
1846
  name: "FlatGeobuf",
1843
1847
  module: "flatgeobuf",