@loaders.gl/json 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/dist.dev.js +126 -99
- package/dist/dist.min.js +8 -8
- package/dist/geojson-loader.d.ts +58 -4
- package/dist/geojson-loader.d.ts.map +1 -1
- package/dist/geojson-loader.js +3 -1
- package/dist/geojson-worker.js +126 -100
- package/dist/geojson-writer.d.ts +18 -2
- package/dist/geojson-writer.d.ts.map +1 -1
- package/dist/index.cjs +45 -31
- package/dist/index.cjs.map +2 -2
- package/dist/json-loader.d.ts +3 -3
- package/dist/json-loader.d.ts.map +1 -1
- package/dist/json-loader.js +3 -1
- package/dist/json-writer.d.ts +14 -3
- package/dist/json-writer.d.ts.map +1 -1
- package/dist/lib/clarinet/clarinet.js +22 -20
- package/dist/lib/encoder-utils/utf8-encoder.js +4 -3
- package/dist/lib/json-parser/json-parser.js +5 -4
- package/dist/lib/json-parser/streaming-json-parser.js +4 -3
- package/dist/lib/jsonpath/jsonpath.js +1 -0
- package/dist/ndgeoson-loader.d.ts +26 -2
- package/dist/ndgeoson-loader.d.ts.map +1 -1
- package/dist/ndgeoson-loader.js +3 -1
- package/dist/ndjson-loader.d.ts +18 -2
- package/dist/ndjson-loader.d.ts.map +1 -1
- package/dist/ndjson-loader.js +3 -1
- package/package.json +5 -5
- package/src/geojson-loader.ts +7 -4
- package/src/geojson-writer.ts +2 -2
- package/src/json-loader.ts +9 -6
- package/src/json-writer.ts +2 -2
- package/src/ndgeoson-loader.ts +9 -6
- package/src/ndjson-loader.ts +5 -6
package/dist/dist.dev.js
CHANGED
|
@@ -12,6 +12,7 @@ var __exports__ = (() => {
|
|
|
12
12
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
13
13
|
var __getProtoOf = Object.getPrototypeOf;
|
|
14
14
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
15
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
15
16
|
var __commonJS = (cb, mod) => function __require() {
|
|
16
17
|
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
17
18
|
};
|
|
@@ -37,6 +38,10 @@ var __exports__ = (() => {
|
|
|
37
38
|
mod
|
|
38
39
|
));
|
|
39
40
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
41
|
+
var __publicField = (obj, key, value) => {
|
|
42
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
43
|
+
return value;
|
|
44
|
+
};
|
|
40
45
|
|
|
41
46
|
// external-global-plugin:@loaders.gl/core
|
|
42
47
|
var require_core = __commonJS({
|
|
@@ -63,11 +68,14 @@ var __exports__ = (() => {
|
|
|
63
68
|
// ../schema/src/lib/table/batches/base-table-batch-aggregator.ts
|
|
64
69
|
var DEFAULT_ROW_COUNT = 100;
|
|
65
70
|
var BaseTableBatchAggregator = class {
|
|
71
|
+
schema;
|
|
72
|
+
options;
|
|
73
|
+
shape;
|
|
74
|
+
length = 0;
|
|
75
|
+
rows = null;
|
|
76
|
+
cursor = 0;
|
|
77
|
+
_headers = [];
|
|
66
78
|
constructor(schema, options) {
|
|
67
|
-
this.length = 0;
|
|
68
|
-
this.rows = null;
|
|
69
|
-
this.cursor = 0;
|
|
70
|
-
this._headers = [];
|
|
71
79
|
this.options = options;
|
|
72
80
|
this.schema = schema;
|
|
73
81
|
if (!Array.isArray(schema)) {
|
|
@@ -163,12 +171,14 @@ var __exports__ = (() => {
|
|
|
163
171
|
// ../schema/src/lib/table/batches/row-table-batch-aggregator.ts
|
|
164
172
|
var DEFAULT_ROW_COUNT2 = 100;
|
|
165
173
|
var RowTableBatchAggregator = class {
|
|
174
|
+
schema;
|
|
175
|
+
options;
|
|
176
|
+
length = 0;
|
|
177
|
+
objectRows = null;
|
|
178
|
+
arrayRows = null;
|
|
179
|
+
cursor = 0;
|
|
180
|
+
_headers = null;
|
|
166
181
|
constructor(schema, options) {
|
|
167
|
-
this.length = 0;
|
|
168
|
-
this.objectRows = null;
|
|
169
|
-
this.arrayRows = null;
|
|
170
|
-
this.cursor = 0;
|
|
171
|
-
this._headers = null;
|
|
172
182
|
this.options = options;
|
|
173
183
|
this.schema = schema;
|
|
174
184
|
if (schema) {
|
|
@@ -238,10 +248,11 @@ var __exports__ = (() => {
|
|
|
238
248
|
// ../schema/src/lib/table/batches/columnar-table-batch-aggregator.ts
|
|
239
249
|
var DEFAULT_ROW_COUNT3 = 100;
|
|
240
250
|
var ColumnarTableBatchAggregator = class {
|
|
251
|
+
schema;
|
|
252
|
+
length = 0;
|
|
253
|
+
allocated = 0;
|
|
254
|
+
columns = {};
|
|
241
255
|
constructor(schema, options) {
|
|
242
|
-
this.length = 0;
|
|
243
|
-
this.allocated = 0;
|
|
244
|
-
this.columns = {};
|
|
245
256
|
this.schema = schema;
|
|
246
257
|
this._reallocateColumns();
|
|
247
258
|
}
|
|
@@ -321,16 +332,18 @@ var __exports__ = (() => {
|
|
|
321
332
|
_limitMB: 0
|
|
322
333
|
};
|
|
323
334
|
var ERR_MESSAGE = "TableBatchBuilder";
|
|
324
|
-
var
|
|
335
|
+
var _TableBatchBuilder = class {
|
|
336
|
+
schema;
|
|
337
|
+
options;
|
|
338
|
+
aggregator = null;
|
|
339
|
+
batchCount = 0;
|
|
340
|
+
bytesUsed = 0;
|
|
341
|
+
isChunkComplete = false;
|
|
342
|
+
lastBatchEmittedMs = Date.now();
|
|
343
|
+
totalLength = 0;
|
|
344
|
+
totalBytes = 0;
|
|
345
|
+
rowBytes = 0;
|
|
325
346
|
constructor(schema, options) {
|
|
326
|
-
this.aggregator = null;
|
|
327
|
-
this.batchCount = 0;
|
|
328
|
-
this.bytesUsed = 0;
|
|
329
|
-
this.isChunkComplete = false;
|
|
330
|
-
this.lastBatchEmittedMs = Date.now();
|
|
331
|
-
this.totalLength = 0;
|
|
332
|
-
this.totalBytes = 0;
|
|
333
|
-
this.rowBytes = 0;
|
|
334
347
|
this.schema = schema;
|
|
335
348
|
this.options = { ...DEFAULT_OPTIONS, ...options };
|
|
336
349
|
}
|
|
@@ -437,15 +450,17 @@ var __exports__ = (() => {
|
|
|
437
450
|
case "columnar-table":
|
|
438
451
|
return ColumnarTableBatchAggregator;
|
|
439
452
|
case "arrow-table":
|
|
440
|
-
if (!
|
|
453
|
+
if (!_TableBatchBuilder.ArrowBatch) {
|
|
441
454
|
throw new Error(ERR_MESSAGE);
|
|
442
455
|
}
|
|
443
|
-
return
|
|
456
|
+
return _TableBatchBuilder.ArrowBatch;
|
|
444
457
|
default:
|
|
445
458
|
return BaseTableBatchAggregator;
|
|
446
459
|
}
|
|
447
460
|
}
|
|
448
461
|
};
|
|
462
|
+
var TableBatchBuilder = _TableBatchBuilder;
|
|
463
|
+
__publicField(TableBatchBuilder, "ArrowBatch");
|
|
449
464
|
|
|
450
465
|
// ../schema/src/lib/table/simple-table/table-accessors.ts
|
|
451
466
|
function getTableLength(table) {
|
|
@@ -803,6 +818,52 @@ var __exports__ = (() => {
|
|
|
803
818
|
}
|
|
804
819
|
}
|
|
805
820
|
|
|
821
|
+
// ../../node_modules/@babel/runtime/helpers/esm/typeof.js
|
|
822
|
+
function _typeof(obj) {
|
|
823
|
+
"@babel/helpers - typeof";
|
|
824
|
+
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj2) {
|
|
825
|
+
return typeof obj2;
|
|
826
|
+
} : function(obj2) {
|
|
827
|
+
return obj2 && "function" == typeof Symbol && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
|
|
828
|
+
}, _typeof(obj);
|
|
829
|
+
}
|
|
830
|
+
|
|
831
|
+
// ../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js
|
|
832
|
+
function _toPrimitive(input, hint) {
|
|
833
|
+
if (_typeof(input) !== "object" || input === null)
|
|
834
|
+
return input;
|
|
835
|
+
var prim = input[Symbol.toPrimitive];
|
|
836
|
+
if (prim !== void 0) {
|
|
837
|
+
var res = prim.call(input, hint || "default");
|
|
838
|
+
if (_typeof(res) !== "object")
|
|
839
|
+
return res;
|
|
840
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
841
|
+
}
|
|
842
|
+
return (hint === "string" ? String : Number)(input);
|
|
843
|
+
}
|
|
844
|
+
|
|
845
|
+
// ../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js
|
|
846
|
+
function _toPropertyKey(arg) {
|
|
847
|
+
var key = _toPrimitive(arg, "string");
|
|
848
|
+
return _typeof(key) === "symbol" ? key : String(key);
|
|
849
|
+
}
|
|
850
|
+
|
|
851
|
+
// ../../node_modules/@babel/runtime/helpers/esm/defineProperty.js
|
|
852
|
+
function _defineProperty(obj, key, value) {
|
|
853
|
+
key = _toPropertyKey(key);
|
|
854
|
+
if (key in obj) {
|
|
855
|
+
Object.defineProperty(obj, key, {
|
|
856
|
+
value,
|
|
857
|
+
enumerable: true,
|
|
858
|
+
configurable: true,
|
|
859
|
+
writable: true
|
|
860
|
+
});
|
|
861
|
+
} else {
|
|
862
|
+
obj[key] = value;
|
|
863
|
+
}
|
|
864
|
+
return obj;
|
|
865
|
+
}
|
|
866
|
+
|
|
806
867
|
// ../loader-utils/src/lib/binary-utils/array-buffer-utils.ts
|
|
807
868
|
function concatenateArrayBuffers(...sources) {
|
|
808
869
|
return concatenateArrayBuffersFromArray(sources);
|
|
@@ -860,52 +921,6 @@ var __exports__ = (() => {
|
|
|
860
921
|
return concatenateArrayBuffers(...arrayBuffers);
|
|
861
922
|
}
|
|
862
923
|
|
|
863
|
-
// ../../node_modules/@babel/runtime/helpers/esm/typeof.js
|
|
864
|
-
function _typeof(obj) {
|
|
865
|
-
"@babel/helpers - typeof";
|
|
866
|
-
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj2) {
|
|
867
|
-
return typeof obj2;
|
|
868
|
-
} : function(obj2) {
|
|
869
|
-
return obj2 && "function" == typeof Symbol && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
|
|
870
|
-
}, _typeof(obj);
|
|
871
|
-
}
|
|
872
|
-
|
|
873
|
-
// ../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js
|
|
874
|
-
function _toPrimitive(input, hint) {
|
|
875
|
-
if (_typeof(input) !== "object" || input === null)
|
|
876
|
-
return input;
|
|
877
|
-
var prim = input[Symbol.toPrimitive];
|
|
878
|
-
if (prim !== void 0) {
|
|
879
|
-
var res = prim.call(input, hint || "default");
|
|
880
|
-
if (_typeof(res) !== "object")
|
|
881
|
-
return res;
|
|
882
|
-
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
883
|
-
}
|
|
884
|
-
return (hint === "string" ? String : Number)(input);
|
|
885
|
-
}
|
|
886
|
-
|
|
887
|
-
// ../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js
|
|
888
|
-
function _toPropertyKey(arg) {
|
|
889
|
-
var key = _toPrimitive(arg, "string");
|
|
890
|
-
return _typeof(key) === "symbol" ? key : String(key);
|
|
891
|
-
}
|
|
892
|
-
|
|
893
|
-
// ../../node_modules/@babel/runtime/helpers/esm/defineProperty.js
|
|
894
|
-
function _defineProperty(obj, key, value) {
|
|
895
|
-
key = _toPropertyKey(key);
|
|
896
|
-
if (key in obj) {
|
|
897
|
-
Object.defineProperty(obj, key, {
|
|
898
|
-
value,
|
|
899
|
-
enumerable: true,
|
|
900
|
-
configurable: true,
|
|
901
|
-
writable: true
|
|
902
|
-
});
|
|
903
|
-
} else {
|
|
904
|
-
obj[key] = value;
|
|
905
|
-
}
|
|
906
|
-
return obj;
|
|
907
|
-
}
|
|
908
|
-
|
|
909
924
|
// src/lib/clarinet/clarinet.ts
|
|
910
925
|
var MAX_BUFFER_LENGTH = Number.MAX_SAFE_INTEGER;
|
|
911
926
|
var Char = {
|
|
@@ -990,27 +1005,29 @@ var __exports__ = (() => {
|
|
|
990
1005
|
}
|
|
991
1006
|
};
|
|
992
1007
|
var ClarinetParser = class {
|
|
1008
|
+
options = DEFAULT_OPTIONS2;
|
|
1009
|
+
bufferCheckPosition = MAX_BUFFER_LENGTH;
|
|
1010
|
+
q = "";
|
|
1011
|
+
c = "";
|
|
1012
|
+
p = "";
|
|
1013
|
+
closed = false;
|
|
1014
|
+
closedRoot = false;
|
|
1015
|
+
sawRoot = false;
|
|
1016
|
+
// tag = null;
|
|
1017
|
+
error = null;
|
|
1018
|
+
state = 0 /* BEGIN */;
|
|
1019
|
+
stack = [];
|
|
1020
|
+
// mostly just for error reporting
|
|
1021
|
+
position = 0;
|
|
1022
|
+
column = 0;
|
|
1023
|
+
line = 1;
|
|
1024
|
+
slashed = false;
|
|
1025
|
+
unicodeI = 0;
|
|
1026
|
+
unicodeS = null;
|
|
1027
|
+
depth = 0;
|
|
1028
|
+
textNode;
|
|
1029
|
+
numberNode;
|
|
993
1030
|
constructor(options = {}) {
|
|
994
|
-
this.options = DEFAULT_OPTIONS2;
|
|
995
|
-
this.bufferCheckPosition = MAX_BUFFER_LENGTH;
|
|
996
|
-
this.q = "";
|
|
997
|
-
this.c = "";
|
|
998
|
-
this.p = "";
|
|
999
|
-
this.closed = false;
|
|
1000
|
-
this.closedRoot = false;
|
|
1001
|
-
this.sawRoot = false;
|
|
1002
|
-
// tag = null;
|
|
1003
|
-
this.error = null;
|
|
1004
|
-
this.state = 0 /* BEGIN */;
|
|
1005
|
-
this.stack = [];
|
|
1006
|
-
// mostly just for error reporting
|
|
1007
|
-
this.position = 0;
|
|
1008
|
-
this.column = 0;
|
|
1009
|
-
this.line = 1;
|
|
1010
|
-
this.slashed = false;
|
|
1011
|
-
this.unicodeI = 0;
|
|
1012
|
-
this.unicodeS = null;
|
|
1013
|
-
this.depth = 0;
|
|
1014
1031
|
this.options = { ...DEFAULT_OPTIONS2, ...options };
|
|
1015
1032
|
this.textNode = void 0;
|
|
1016
1033
|
this.numberNode = "";
|
|
@@ -1405,6 +1422,7 @@ Char: ${this.c}`;
|
|
|
1405
1422
|
|
|
1406
1423
|
// src/lib/jsonpath/jsonpath.ts
|
|
1407
1424
|
var JSONPath = class {
|
|
1425
|
+
path;
|
|
1408
1426
|
constructor(path = null) {
|
|
1409
1427
|
this.path = ["$"];
|
|
1410
1428
|
if (path instanceof JSONPath) {
|
|
@@ -1481,11 +1499,12 @@ Char: ${this.c}`;
|
|
|
1481
1499
|
|
|
1482
1500
|
// src/lib/json-parser/json-parser.ts
|
|
1483
1501
|
var JSONParser = class {
|
|
1502
|
+
parser;
|
|
1503
|
+
result = void 0;
|
|
1504
|
+
previousStates = [];
|
|
1505
|
+
currentState = Object.freeze({ container: [], key: null });
|
|
1506
|
+
jsonpath = new JSONPath();
|
|
1484
1507
|
constructor(options) {
|
|
1485
|
-
this.result = void 0;
|
|
1486
|
-
this.previousStates = [];
|
|
1487
|
-
this.currentState = Object.freeze({ container: [], key: null });
|
|
1488
|
-
this.jsonpath = new JSONPath();
|
|
1489
1508
|
this.reset();
|
|
1490
1509
|
this.parser = new ClarinetParser({
|
|
1491
1510
|
onready: () => {
|
|
@@ -1570,6 +1589,10 @@ Char: ${this.c}`;
|
|
|
1570
1589
|
|
|
1571
1590
|
// src/lib/json-parser/streaming-json-parser.ts
|
|
1572
1591
|
var StreamingJSONParser = class extends JSONParser {
|
|
1592
|
+
jsonPaths;
|
|
1593
|
+
streamingJsonPath = null;
|
|
1594
|
+
streamingArray = null;
|
|
1595
|
+
topLevelObject = null;
|
|
1573
1596
|
constructor(options = {}) {
|
|
1574
1597
|
super({
|
|
1575
1598
|
onopenarray: () => {
|
|
@@ -1596,9 +1619,6 @@ Char: ${this.c}`;
|
|
|
1596
1619
|
}
|
|
1597
1620
|
}
|
|
1598
1621
|
});
|
|
1599
|
-
this.streamingJsonPath = null;
|
|
1600
|
-
this.streamingArray = null;
|
|
1601
|
-
this.topLevelObject = null;
|
|
1602
1622
|
const jsonpaths = options.jsonpaths || [];
|
|
1603
1623
|
this.jsonPaths = jsonpaths.map((jsonpath) => new JSONPath(jsonpath));
|
|
1604
1624
|
}
|
|
@@ -1731,6 +1751,8 @@ Char: ${this.c}`;
|
|
|
1731
1751
|
// src/json-loader.ts
|
|
1732
1752
|
var VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
1733
1753
|
var JSONLoader = {
|
|
1754
|
+
dataType: null,
|
|
1755
|
+
batchType: null,
|
|
1734
1756
|
name: "JSON",
|
|
1735
1757
|
id: "json",
|
|
1736
1758
|
module: "json",
|
|
@@ -1809,6 +1831,8 @@ Char: ${this.c}`;
|
|
|
1809
1831
|
// src/ndjson-loader.ts
|
|
1810
1832
|
var VERSION2 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
1811
1833
|
var NDJSONLoader = {
|
|
1834
|
+
dataType: null,
|
|
1835
|
+
batchType: null,
|
|
1812
1836
|
name: "NDJSON",
|
|
1813
1837
|
id: "ndjson",
|
|
1814
1838
|
module: "json",
|
|
@@ -2838,6 +2862,8 @@ Char: ${this.c}`;
|
|
|
2838
2862
|
// src/geojson-loader.ts
|
|
2839
2863
|
var VERSION3 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
2840
2864
|
var GeoJSONWorkerLoader = {
|
|
2865
|
+
dataType: null,
|
|
2866
|
+
batchType: null,
|
|
2841
2867
|
name: "GeoJSON",
|
|
2842
2868
|
id: "geojson",
|
|
2843
2869
|
module: "geojson",
|
|
@@ -2975,10 +3001,11 @@ Char: ${this.c}`;
|
|
|
2975
3001
|
|
|
2976
3002
|
// src/lib/encoder-utils/utf8-encoder.ts
|
|
2977
3003
|
var Utf8ArrayBufferEncoder = class {
|
|
3004
|
+
chunkSize;
|
|
3005
|
+
strings = [];
|
|
3006
|
+
totalLength = 0;
|
|
3007
|
+
textEncoder = new TextEncoder();
|
|
2978
3008
|
constructor(chunkSize) {
|
|
2979
|
-
this.strings = [];
|
|
2980
|
-
this.totalLength = 0;
|
|
2981
|
-
this.textEncoder = new TextEncoder();
|
|
2982
3009
|
this.chunkSize = chunkSize;
|
|
2983
3010
|
}
|
|
2984
3011
|
push(...strings) {
|
package/dist/dist.min.js
CHANGED
|
@@ -4,18 +4,18 @@
|
|
|
4
4
|
else if (typeof define === 'function' && define.amd) define([], factory);
|
|
5
5
|
else if (typeof exports === 'object') exports['loaders'] = factory();
|
|
6
6
|
else root['loaders'] = factory();})(globalThis, function () {
|
|
7
|
-
"use strict";var __exports__=(()=>{var de=Object.create;var Q=Object.defineProperty;var me=Object.getOwnPropertyDescriptor;var ye=Object.getOwnPropertyNames;var ge=Object.getPrototypeOf,xe=Object.prototype.hasOwnProperty;var we=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),be=(e,t)=>{for(var r in t)Q(e,r,{get:t[r],enumerable:!0})},H=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of ye(t))!xe.call(e,n)&&n!==r&&Q(e,n,{get:()=>t[n],enumerable:!(o=me(t,n))||o.enumerable});return e},X=(e,t,r)=>(H(e,t,"default"),r&&H(r,t,"default")),Ae=(e,t,r)=>(r=e!=null?de(ge(e)):{},H(t||!e||!e.__esModule?Q(r,"default",{value:e,enumerable:!0}):r,e)),Pe=e=>H(Q({},"__esModule",{value:!0}),e);var Lt=we((wr,_t)=>{_t.exports=globalThis.loaders});var Y={};be(Y,{JSONLoader:()=>at,JSONWriter:()=>Qt,NDJSONLoader:()=>Ht,_ClarinetParser:()=>L,_GeoJSONLoader:()=>U,_GeoJSONWorkerLoader:()=>Bt,_GeoJSONWriter:()=>pe,_JSONPath:()=>P,_rebuildJsonObject:()=>Zt});X(Y,Ae(Lt(),1));var q=class{constructor(t,r){if(this.length=0,this.rows=null,this.cursor=0,this._headers=[],this.options=r,this.schema=t,!Array.isArray(t)){this._headers=[];for(let o in t)this._headers[t[o].index]=t[o].name}}rowCount(){return this.length}addArrayRow(t,r){Number.isFinite(r)&&(this.cursor=r),this.shape="array-row-table",this.rows=this.rows||new Array(100),this.rows[this.length]=t,this.length++}addObjectRow(t,r){Number.isFinite(r)&&(this.cursor=r),this.shape="object-row-table",this.rows=this.rows||new Array(100),this.rows[this.length]=t,this.length++}getBatch(){let t=this.rows;return t?(t=t.slice(0,this.length),this.rows=null,{shape:this.shape||"array-row-table",batchType:"data",data:t,length:this.length,schema:this.schema,cursor:this.cursor}):null}};function Ft(e,t){if(!e)throw new Error("null row");let r={};if(t)for(let o=0;o<t.length;o++)r[t[o]]=e[o];else for(let o=0;o<e.length;o++){let n=`column-${o}`;r[n]=e[o]}return r}function vt(e,t){if(!e)throw new Error("null row");if(t){let r=new Array(t.length);for(let o=0;o<t.length;o++)r[o]=e[t[o]];return r}return Object.values(e)}function Rt(e){let t=[];for(let r=0;r<e.length;r++){let o=`column-${r}`;t.push(o)}return t}function kt(e){return Object.keys(e)}var Tt=100,tt=class{constructor(t,r){if(this.length=0,this.objectRows=null,this.arrayRows=null,this.cursor=0,this._headers=null,this.options=r,this.schema=t,t){this._headers=[];for(let o in t)this._headers[t[o].index]=t[o].name}}rowCount(){return this.length}addArrayRow(t,r){switch(Number.isFinite(r)&&(this.cursor=r),this._headers||(this._headers=Rt(t)),this.options.shape){case"object-row-table":let o=Ft(t,this._headers);this.addObjectRow(o,r);break;case"array-row-table":this.arrayRows=this.arrayRows||new Array(Tt),this.arrayRows[this.length]=t,this.length++;break}}addObjectRow(t,r){switch(Number.isFinite(r)&&(this.cursor=r),this._headers||(this._headers=kt(t)),this.options.shape){case"array-row-table":let o=vt(t,this._headers);this.addArrayRow(o,r);break;case"object-row-table":this.objectRows=this.objectRows||new Array(Tt),this.objectRows[this.length]=t,this.length++;break}}getBatch(){let t=this.arrayRows||this.objectRows;return t?(t=t.slice(0,this.length),this.arrayRows=null,this.objectRows=null,{shape:this.options.shape,batchType:"data",data:t,length:this.length,schema:this.schema,cursor:this.cursor}):null}};var et=class{constructor(t,r){this.length=0,this.allocated=0,this.columns={},this.schema=t,this._reallocateColumns()}rowCount(){return this.length}addArrayRow(t){this._reallocateColumns();let r=0;for(let o in this.columns)this.columns[o][this.length]=t[r++];this.length++}addObjectRow(t){this._reallocateColumns();for(let r in t)this.columns[r][this.length]=t[r];this.length++}getBatch(){this._pruneColumns();let t=Array.isArray(this.schema)?this.columns:{};if(!Array.isArray(this.schema))for(let o in this.schema){let n=this.schema[o];t[n.name]=this.columns[n.index]}return this.columns={},{shape:"columnar-table",batchType:"data",data:t,schema:this.schema,length:this.length}}_reallocateColumns(){if(!(this.length<this.allocated)){this.allocated=this.allocated>0?this.allocated*=2:100,this.columns={};for(let t in this.schema){let r=this.schema[t],o=r.type||Float32Array,n=this.columns[r.index];if(n&&ArrayBuffer.isView(n)){let s=new o(this.allocated);s.set(n),this.columns[r.index]=s}else n?(n.length=this.allocated,this.columns[r.index]=n):this.columns[r.index]=new o(this.allocated)}}}_pruneColumns(){for(let[t,r]of Object.entries(this.columns))this.columns[t]=r.slice(0,this.length)}};var je={shape:void 0,batchSize:"auto",batchDebounceMs:0,limit:0,_limitMB:0},Ne="TableBatchBuilder",N=class{constructor(t,r){this.aggregator=null,this.batchCount=0,this.bytesUsed=0,this.isChunkComplete=!1,this.lastBatchEmittedMs=Date.now(),this.totalLength=0,this.totalBytes=0,this.rowBytes=0,this.schema=t,this.options={...je,...r}}limitReached(){return!!(Boolean(this.options?.limit)&&this.totalLength>=this.options.limit||Boolean(this.options?._limitMB)&&this.totalBytes/1e6>=this.options._limitMB)}addRow(t){this.limitReached()||(this.totalLength++,this.rowBytes=this.rowBytes||this._estimateRowMB(t),this.totalBytes+=this.rowBytes,Array.isArray(t)?this.addArrayRow(t):this.addObjectRow(t))}addArrayRow(t){if(!this.aggregator){let r=this._getTableBatchType();this.aggregator=new r(this.schema,this.options)}this.aggregator.addArrayRow(t)}addObjectRow(t){if(!this.aggregator){let r=this._getTableBatchType();this.aggregator=new r(this.schema,this.options)}this.aggregator.addObjectRow(t)}chunkComplete(t){t instanceof ArrayBuffer&&(this.bytesUsed+=t.byteLength),typeof t=="string"&&(this.bytesUsed+=t.length),this.isChunkComplete=!0}getFullBatch(t){return this._isFull()?this._getBatch(t):null}getFinalBatch(t){return this._getBatch(t)}_estimateRowMB(t){return Array.isArray(t)?t.length*8:Object.keys(t).length*8}_isFull(){if(!this.aggregator||this.aggregator.rowCount()===0)return!1;if(this.options.batchSize==="auto"){if(!this.isChunkComplete)return!1}else if(this.options.batchSize>this.aggregator.rowCount())return!1;return this.options.batchDebounceMs>Date.now()-this.lastBatchEmittedMs?!1:(this.isChunkComplete=!1,this.lastBatchEmittedMs=Date.now(),!0)}_getBatch(t){if(!this.aggregator)return null;t?.bytesUsed&&(this.bytesUsed=t.bytesUsed);let r=this.aggregator.getBatch();return r.count=this.batchCount,r.bytesUsed=this.bytesUsed,Object.assign(r,t),this.batchCount++,this.aggregator=null,r}_getTableBatchType(){switch(this.options.shape){case"array-row-table":case"object-row-table":return tt;case"columnar-table":return et;case"arrow-table":if(!N.ArrowBatch)throw new Error(Ne);return N.ArrowBatch;default:return q}}};function E(e){switch(e.shape){case"array-row-table":case"object-row-table":return e.data.length;case"geojson-table":return e.features.length;case"arrow-table":return e.data.numRows;case"columnar-table":for(let r of Object.values(e.data))return r.length||0;return 0;default:throw new Error("table")}}function rt(e){if(e.schema)return e.schema.fields.length;if(E(e)===0)throw new Error("empty table");switch(e.shape){case"array-row-table":return e.data[0].length;case"object-row-table":return Object.keys(e.data[0]).length;case"geojson-table":return Object.keys(e.features[0]).length;case"columnar-table":return Object.keys(e.data).length;case"arrow-table":return e.data.numCols;default:throw new Error("table")}}function ot(e,t,r,o){switch(e.shape){case"object-row-table":return o?Object.fromEntries(Object.entries(e.data[t])):e.data[t];case"array-row-table":if(e.schema){let c=r||{};for(let l=0;l<e.schema.fields.length;l++)c[e.schema.fields[l].name]=e.data[t][l];return c}throw new Error("no schema");case"geojson-table":if(e.schema){let c=r||{};for(let l=0;l<e.schema.fields.length;l++)c[e.schema.fields[l].name]=e.features[t][l];return c}throw new Error("no schema");case"columnar-table":if(e.schema){let c=r||{};for(let l=0;l<e.schema.fields.length;l++)c[e.schema.fields[l].name]=e.data[e.schema.fields[l].name][t];return c}else{let c=r||{};for(let[l,u]of Object.entries(e.data))c[l]=u[t];return c}case"arrow-table":let n=e.data,s=r||{},a=n.get(t),i=n.schema;for(let c=0;c<i.fields.length;c++)s[i.fields[c].name]=a?.[i.fields[c].name];return s;default:throw new Error("shape")}}function nt(e,t,r,o){switch(e.shape){case"array-row-table":return o?Array.from(e.data[t]):e.data[t];case"object-row-table":if(e.schema){let c=r||[];for(let l=0;l<e.schema.fields.length;l++)c[l]=e.data[t][e.schema.fields[l].name];return c}return Object.values(e.data[t]);case"geojson-table":if(e.schema){let c=r||[];for(let l=0;l<e.schema.fields.length;l++)c[l]=e.features[t][e.schema.fields[l].name];return c}return Object.values(e.features[t]);case"columnar-table":if(e.schema){let c=r||[];for(let l=0;l<e.schema.fields.length;l++)c[l]=e.data[e.schema.fields[l].name][t];return c}else{let c=r||[],l=0;for(let u of Object.values(e.data))c[l]=u[t],l++;return c}case"arrow-table":let n=e.data,s=r||[],a=n.get(t),i=n.schema;for(let c=0;c<i.fields.length;c++)s[c]=a?.[i.fields[c].name];return s;default:throw new Error("shape")}}function*pt(e,t){switch(t){case"array-row-table":yield*Ut(e);break;case"object-row-table":yield*Dt(e);break;default:throw new Error(`Unknown row type ${t}`)}}function*Ut(e,t=[]){let r=E(e);for(let o=0;o<r;o++)yield nt(e,o,t)}function*Dt(e,t={}){let r=E(e);for(let o=0;o<r;o++)yield ot(e,o,t)}function st(e,t="float32"){return e instanceof Date?"date-millisecond":e instanceof Number?t:typeof e=="string"?"utf8":(e===null||e==="undefined","null")}function Jt(e){let t=Oe(e);return t!=="null"?{type:t,nullable:!1}:e.length>0?(t=st(e[0]),{type:t,nullable:!0}):{type:"null",nullable:!0}}function Oe(e){switch(e.constructor){case Int8Array:return"int8";case Uint8Array:case Uint8ClampedArray:return"uint8";case Int16Array:return"int16";case Uint16Array:return"uint16";case Int32Array:return"int32";case Uint32Array:return"uint32";case Float32Array:return"float32";case Float64Array:return"float64";default:return"null"}}function Gt(e){switch(e.shape){case"array-row-table":case"object-row-table":return Ie(e.data);case"columnar-table":return Se(e.data);case"arrow-table":default:throw new Error("Deduce schema")}}function Se(e){let t=[];for(let[r,o]of Object.entries(e)){let n=Ee(o,r);t.push(n)}return{fields:t,metadata:{}}}function Ie(e){if(!e.length)throw new Error("deduce from empty table");let t=[],r=e[0];for(let[o,n]of Object.entries(r))t.push(Be(n,o));return{fields:t,metadata:{}}}function Ee(e,t){if(ArrayBuffer.isView(e)){let r=Jt(e);return{name:t,type:r.type||"null",nullable:r.nullable}}if(Array.isArray(e)&&e.length>0){let r=e[0],o=st(r);return{name:t,type:o,nullable:!0}}throw new Error("empty table")}function Be(e,t){let r=st(e);return{name:t,type:r,nullable:!0}}function D(e){let t;switch(Ce(e)){case"array-row-table":t={shape:"array-row-table",data:e};break;case"object-row-table":t={shape:"object-row-table",data:e};break;case"columnar-table":t={shape:"columnar-table",data:e};break;default:throw new Error("table")}let r=Gt(t);return{...t,schema:r}}function Ce(e){if(Array.isArray(e)){if(e.length===0)throw new Error("cannot deduce type of empty table");let t=e[0];if(Array.isArray(t))return"array-row-table";if(t&&typeof t=="object")return"object-row-table"}if(e&&typeof e=="object")return"columnar-table";throw new Error("invalid table")}function Mt(e,t){try{let r=JSON.parse(e);if(t.json?.table){let o=zt(r)||r;return D(o)}return r}catch{throw new Error("JSONLoader: failed to parse JSON")}}function zt(e){if(Array.isArray(e))return e;if(e&&typeof e=="object")for(let t of Object.values(e)){let r=zt(t);if(r)return r}return null}function dt(e,t){if(!e)throw new Error(t||"loader assertion failed.")}function Wt(...e){return _e(e)}function _e(e){let t=e.map(s=>s instanceof ArrayBuffer?new Uint8Array(s):s),r=t.reduce((s,a)=>s+a.byteLength,0),o=new Uint8Array(r),n=0;for(let s of t)o.set(s,n),n+=s.byteLength;return o.buffer}async function*J(e,t={}){let r=new TextDecoder(void 0,t);for await(let o of e)yield typeof o=="string"?o:r.decode(o,{stream:!0})}async function*mt(e){let t="";for await(let r of e){t+=r;let o;for(;(o=t.indexOf(`
|
|
8
|
-
`))>=0;){let n=
|
|
9
|
-
`:o===p.r?this.textNode+="\r":o===p.t?this.textNode+=" ":o===p.f?this.textNode+="\f":o===p.b?this.textNode+="\b":o===p.u?(i=1,this.unicodeS=""):this.textNode+=String.fromCharCode(o),o=
|
|
7
|
+
"use strict";var __exports__=(()=>{var yt=Object.create;var D=Object.defineProperty;var gt=Object.getOwnPropertyDescriptor;var xt=Object.getOwnPropertyNames;var wt=Object.getPrototypeOf,bt=Object.prototype.hasOwnProperty;var At=(t,e,r)=>e in t?D(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var Pt=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),jt=(t,e)=>{for(var r in e)D(t,r,{get:e[r],enumerable:!0})},Q=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of xt(e))!bt.call(t,n)&&n!==r&&D(t,n,{get:()=>e[n],enumerable:!(o=gt(e,n))||o.enumerable});return t},X=(t,e,r)=>(Q(t,e,"default"),r&&Q(r,e,"default")),Nt=(t,e,r)=>(r=t!=null?yt(wt(t)):{},Q(e||!t||!t.__esModule?D(r,"default",{value:t,enumerable:!0}):r,t)),Ot=t=>Q(D({},"__esModule",{value:!0}),t);var Le=(t,e,r)=>(At(t,typeof e!="symbol"?e+"":e,r),r);var ve=Pt((Pr,Fe)=>{Fe.exports=globalThis.loaders});var H={};jt(H,{JSONLoader:()=>ce,JSONWriter:()=>qe,NDJSONLoader:()=>Xe,_ClarinetParser:()=>L,_GeoJSONLoader:()=>U,_GeoJSONWorkerLoader:()=>Ce,_GeoJSONWriter:()=>mt,_JSONPath:()=>P,_rebuildJsonObject:()=>Ye});X(H,Nt(ve(),1));var q=class{schema;options;shape;length=0;rows=null;cursor=0;_headers=[];constructor(e,r){if(this.options=r,this.schema=e,!Array.isArray(e)){this._headers=[];for(let o in e)this._headers[e[o].index]=e[o].name}}rowCount(){return this.length}addArrayRow(e,r){Number.isFinite(r)&&(this.cursor=r),this.shape="array-row-table",this.rows=this.rows||new Array(100),this.rows[this.length]=e,this.length++}addObjectRow(e,r){Number.isFinite(r)&&(this.cursor=r),this.shape="object-row-table",this.rows=this.rows||new Array(100),this.rows[this.length]=e,this.length++}getBatch(){let e=this.rows;return e?(e=e.slice(0,this.length),this.rows=null,{shape:this.shape||"array-row-table",batchType:"data",data:e,length:this.length,schema:this.schema,cursor:this.cursor}):null}};function Re(t,e){if(!t)throw new Error("null row");let r={};if(e)for(let o=0;o<e.length;o++)r[e[o]]=t[o];else for(let o=0;o<t.length;o++){let n=`column-${o}`;r[n]=t[o]}return r}function ke(t,e){if(!t)throw new Error("null row");if(e){let r=new Array(e.length);for(let o=0;o<e.length;o++)r[o]=t[e[o]];return r}return Object.values(t)}function Te(t){let e=[];for(let r=0;r<t.length;r++){let o=`column-${r}`;e.push(o)}return e}function Ue(t){return Object.keys(t)}var De=100,ee=class{schema;options;length=0;objectRows=null;arrayRows=null;cursor=0;_headers=null;constructor(e,r){if(this.options=r,this.schema=e,e){this._headers=[];for(let o in e)this._headers[e[o].index]=e[o].name}}rowCount(){return this.length}addArrayRow(e,r){switch(Number.isFinite(r)&&(this.cursor=r),this._headers||=Te(e),this.options.shape){case"object-row-table":let o=Re(e,this._headers);this.addObjectRow(o,r);break;case"array-row-table":this.arrayRows=this.arrayRows||new Array(De),this.arrayRows[this.length]=e,this.length++;break}}addObjectRow(e,r){switch(Number.isFinite(r)&&(this.cursor=r),this._headers||=Ue(e),this.options.shape){case"array-row-table":let o=ke(e,this._headers);this.addArrayRow(o,r);break;case"object-row-table":this.objectRows=this.objectRows||new Array(De),this.objectRows[this.length]=e,this.length++;break}}getBatch(){let e=this.arrayRows||this.objectRows;return e?(e=e.slice(0,this.length),this.arrayRows=null,this.objectRows=null,{shape:this.options.shape,batchType:"data",data:e,length:this.length,schema:this.schema,cursor:this.cursor}):null}};var te=class{schema;length=0;allocated=0;columns={};constructor(e,r){this.schema=e,this._reallocateColumns()}rowCount(){return this.length}addArrayRow(e){this._reallocateColumns();let r=0;for(let o in this.columns)this.columns[o][this.length]=e[r++];this.length++}addObjectRow(e){this._reallocateColumns();for(let r in e)this.columns[r][this.length]=e[r];this.length++}getBatch(){this._pruneColumns();let e=Array.isArray(this.schema)?this.columns:{};if(!Array.isArray(this.schema))for(let o in this.schema){let n=this.schema[o];e[n.name]=this.columns[n.index]}return this.columns={},{shape:"columnar-table",batchType:"data",data:e,schema:this.schema,length:this.length}}_reallocateColumns(){if(!(this.length<this.allocated)){this.allocated=this.allocated>0?this.allocated*=2:100,this.columns={};for(let e in this.schema){let r=this.schema[e],o=r.type||Float32Array,n=this.columns[r.index];if(n&&ArrayBuffer.isView(n)){let s=new o(this.allocated);s.set(n),this.columns[r.index]=s}else n?(n.length=this.allocated,this.columns[r.index]=n):this.columns[r.index]=new o(this.allocated)}}}_pruneColumns(){for(let[e,r]of Object.entries(this.columns))this.columns[e]=r.slice(0,this.length)}};var St={shape:void 0,batchSize:"auto",batchDebounceMs:0,limit:0,_limitMB:0},It="TableBatchBuilder",re=class{schema;options;aggregator=null;batchCount=0;bytesUsed=0;isChunkComplete=!1;lastBatchEmittedMs=Date.now();totalLength=0;totalBytes=0;rowBytes=0;constructor(e,r){this.schema=e,this.options={...St,...r}}limitReached(){return!!(Boolean(this.options?.limit)&&this.totalLength>=this.options.limit||Boolean(this.options?._limitMB)&&this.totalBytes/1e6>=this.options._limitMB)}addRow(e){this.limitReached()||(this.totalLength++,this.rowBytes=this.rowBytes||this._estimateRowMB(e),this.totalBytes+=this.rowBytes,Array.isArray(e)?this.addArrayRow(e):this.addObjectRow(e))}addArrayRow(e){if(!this.aggregator){let r=this._getTableBatchType();this.aggregator=new r(this.schema,this.options)}this.aggregator.addArrayRow(e)}addObjectRow(e){if(!this.aggregator){let r=this._getTableBatchType();this.aggregator=new r(this.schema,this.options)}this.aggregator.addObjectRow(e)}chunkComplete(e){e instanceof ArrayBuffer&&(this.bytesUsed+=e.byteLength),typeof e=="string"&&(this.bytesUsed+=e.length),this.isChunkComplete=!0}getFullBatch(e){return this._isFull()?this._getBatch(e):null}getFinalBatch(e){return this._getBatch(e)}_estimateRowMB(e){return Array.isArray(e)?e.length*8:Object.keys(e).length*8}_isFull(){if(!this.aggregator||this.aggregator.rowCount()===0)return!1;if(this.options.batchSize==="auto"){if(!this.isChunkComplete)return!1}else if(this.options.batchSize>this.aggregator.rowCount())return!1;return this.options.batchDebounceMs>Date.now()-this.lastBatchEmittedMs?!1:(this.isChunkComplete=!1,this.lastBatchEmittedMs=Date.now(),!0)}_getBatch(e){if(!this.aggregator)return null;e?.bytesUsed&&(this.bytesUsed=e.bytesUsed);let r=this.aggregator.getBatch();return r.count=this.batchCount,r.bytesUsed=this.bytesUsed,Object.assign(r,e),this.batchCount++,this.aggregator=null,r}_getTableBatchType(){switch(this.options.shape){case"array-row-table":case"object-row-table":return ee;case"columnar-table":return te;case"arrow-table":if(!re.ArrowBatch)throw new Error(It);return re.ArrowBatch;default:return q}}},I=re;Le(I,"ArrowBatch");function B(t){switch(t.shape){case"array-row-table":case"object-row-table":return t.data.length;case"geojson-table":return t.features.length;case"arrow-table":return t.data.numRows;case"columnar-table":for(let r of Object.values(t.data))return r.length||0;return 0;default:throw new Error("table")}}function oe(t){if(t.schema)return t.schema.fields.length;if(B(t)===0)throw new Error("empty table");switch(t.shape){case"array-row-table":return t.data[0].length;case"object-row-table":return Object.keys(t.data[0]).length;case"geojson-table":return Object.keys(t.features[0]).length;case"columnar-table":return Object.keys(t.data).length;case"arrow-table":return t.data.numCols;default:throw new Error("table")}}function ne(t,e,r,o){switch(t.shape){case"object-row-table":return o?Object.fromEntries(Object.entries(t.data[e])):t.data[e];case"array-row-table":if(t.schema){let c=r||{};for(let l=0;l<t.schema.fields.length;l++)c[t.schema.fields[l].name]=t.data[e][l];return c}throw new Error("no schema");case"geojson-table":if(t.schema){let c=r||{};for(let l=0;l<t.schema.fields.length;l++)c[t.schema.fields[l].name]=t.features[e][l];return c}throw new Error("no schema");case"columnar-table":if(t.schema){let c=r||{};for(let l=0;l<t.schema.fields.length;l++)c[t.schema.fields[l].name]=t.data[t.schema.fields[l].name][e];return c}else{let c=r||{};for(let[l,u]of Object.entries(t.data))c[l]=u[e];return c}case"arrow-table":let n=t.data,s=r||{},a=n.get(e),i=n.schema;for(let c=0;c<i.fields.length;c++)s[i.fields[c].name]=a?.[i.fields[c].name];return s;default:throw new Error("shape")}}function se(t,e,r,o){switch(t.shape){case"array-row-table":return o?Array.from(t.data[e]):t.data[e];case"object-row-table":if(t.schema){let c=r||[];for(let l=0;l<t.schema.fields.length;l++)c[l]=t.data[e][t.schema.fields[l].name];return c}return Object.values(t.data[e]);case"geojson-table":if(t.schema){let c=r||[];for(let l=0;l<t.schema.fields.length;l++)c[l]=t.features[e][t.schema.fields[l].name];return c}return Object.values(t.features[e]);case"columnar-table":if(t.schema){let c=r||[];for(let l=0;l<t.schema.fields.length;l++)c[l]=t.data[t.schema.fields[l].name][e];return c}else{let c=r||[],l=0;for(let u of Object.values(t.data))c[l]=u[e],l++;return c}case"arrow-table":let n=t.data,s=r||[],a=n.get(e),i=n.schema;for(let c=0;c<i.fields.length;c++)s[c]=a?.[i.fields[c].name];return s;default:throw new Error("shape")}}function*de(t,e){switch(e){case"array-row-table":yield*Je(t);break;case"object-row-table":yield*Ge(t);break;default:throw new Error(`Unknown row type ${e}`)}}function*Je(t,e=[]){let r=B(t);for(let o=0;o<r;o++)yield se(t,o,e)}function*Ge(t,e={}){let r=B(t);for(let o=0;o<r;o++)yield ne(t,o,e)}function ie(t,e="float32"){return t instanceof Date?"date-millisecond":t instanceof Number?e:typeof t=="string"?"utf8":(t===null||t==="undefined","null")}function Me(t){let e=Bt(t);return e!=="null"?{type:e,nullable:!1}:t.length>0?(e=ie(t[0]),{type:e,nullable:!0}):{type:"null",nullable:!0}}function Bt(t){switch(t.constructor){case Int8Array:return"int8";case Uint8Array:case Uint8ClampedArray:return"uint8";case Int16Array:return"int16";case Uint16Array:return"uint16";case Int32Array:return"int32";case Uint32Array:return"uint32";case Float32Array:return"float32";case Float64Array:return"float64";default:return"null"}}function ze(t){switch(t.shape){case"array-row-table":case"object-row-table":return Ct(t.data);case"columnar-table":return Et(t.data);case"arrow-table":default:throw new Error("Deduce schema")}}function Et(t){let e=[];for(let[r,o]of Object.entries(t)){let n=_t(o,r);e.push(n)}return{fields:e,metadata:{}}}function Ct(t){if(!t.length)throw new Error("deduce from empty table");let e=[],r=t[0];for(let[o,n]of Object.entries(r))e.push(Lt(n,o));return{fields:e,metadata:{}}}function _t(t,e){if(ArrayBuffer.isView(t)){let r=Me(t);return{name:e,type:r.type||"null",nullable:r.nullable}}if(Array.isArray(t)&&t.length>0){let r=t[0],o=ie(r);return{name:e,type:o,nullable:!0}}throw new Error("empty table")}function Lt(t,e){let r=ie(t);return{name:e,type:r,nullable:!0}}function J(t){let e;switch(Ft(t)){case"array-row-table":e={shape:"array-row-table",data:t};break;case"object-row-table":e={shape:"object-row-table",data:t};break;case"columnar-table":e={shape:"columnar-table",data:t};break;default:throw new Error("table")}let r=ze(e);return{...e,schema:r}}function Ft(t){if(Array.isArray(t)){if(t.length===0)throw new Error("cannot deduce type of empty table");let e=t[0];if(Array.isArray(e))return"array-row-table";if(e&&typeof e=="object")return"object-row-table"}if(t&&typeof t=="object")return"columnar-table";throw new Error("invalid table")}function We(t,e){try{let r=JSON.parse(t);if(e.json?.table){let o=Ve(r)||r;return J(o)}return r}catch{throw new Error("JSONLoader: failed to parse JSON")}}function Ve(t){if(Array.isArray(t))return t;if(t&&typeof t=="object")for(let e of Object.values(t)){let r=Ve(e);if(r)return r}return null}function me(t,e){if(!t)throw new Error(e||"loader assertion failed.")}function E(t){return E=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},E(t)}function ye(t,e){if(E(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var o=r.call(t,e||"default");if(E(o)!=="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function ge(t){var e=ye(t,"string");return E(e)==="symbol"?e:String(e)}function j(t,e,r){return e=ge(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function $e(...t){return vt(t)}function vt(t){let e=t.map(s=>s instanceof ArrayBuffer?new Uint8Array(s):s),r=e.reduce((s,a)=>s+a.byteLength,0),o=new Uint8Array(r),n=0;for(let s of e)o.set(s,n),n+=s.byteLength;return o.buffer}async function*G(t,e={}){let r=new TextDecoder(void 0,e);for await(let o of t)yield typeof o=="string"?o:r.decode(o,{stream:!0})}async function*xe(t){let e="";for await(let r of t){e+=r;let o;for(;(o=e.indexOf(`
|
|
8
|
+
`))>=0;){let n=e.slice(0,o+1);e=e.slice(o+1),yield n}}e.length>0&&(yield e)}async function*we(t){let e=1;for await(let r of t)yield{counter:e,line:r},e++}async function be(t){let e=[];for await(let r of t)e.push(r);return $e(...e)}var Ae=Number.MAX_SAFE_INTEGER,h;(function(t){t[t.BEGIN=0]="BEGIN",t[t.VALUE=1]="VALUE",t[t.OPEN_OBJECT=2]="OPEN_OBJECT",t[t.CLOSE_OBJECT=3]="CLOSE_OBJECT",t[t.OPEN_ARRAY=4]="OPEN_ARRAY",t[t.CLOSE_ARRAY=5]="CLOSE_ARRAY",t[t.TEXT_ESCAPE=6]="TEXT_ESCAPE",t[t.STRING=7]="STRING",t[t.BACKSLASH=8]="BACKSLASH",t[t.END=9]="END",t[t.OPEN_KEY=10]="OPEN_KEY",t[t.CLOSE_KEY=11]="CLOSE_KEY",t[t.TRUE=12]="TRUE",t[t.TRUE2=13]="TRUE2",t[t.TRUE3=14]="TRUE3",t[t.FALSE=15]="FALSE",t[t.FALSE2=16]="FALSE2",t[t.FALSE3=17]="FALSE3",t[t.FALSE4=18]="FALSE4",t[t.NULL=19]="NULL",t[t.NULL2=20]="NULL2",t[t.NULL3=21]="NULL3",t[t.NUMBER_DECIMAL_POINT=22]="NUMBER_DECIMAL_POINT",t[t.NUMBER_DIGIT=23]="NUMBER_DIGIT"})(h||(h={}));var p={tab:9,lineFeed:10,carriageReturn:13,space:32,doubleQuote:34,plus:43,comma:44,minus:45,period:46,_0:48,_9:57,colon:58,E:69,openBracket:91,backslash:92,closeBracket:93,a:97,b:98,e:101,f:102,l:108,n:110,r:114,s:115,t:116,u:117,openBrace:123,closeBrace:125},Ze=/[\\"\n]/g,Ke={onready:()=>{},onopenobject:()=>{},onkey:()=>{},oncloseobject:()=>{},onopenarray:()=>{},onclosearray:()=>{},onvalue:()=>{},onerror:()=>{},onend:()=>{},onchunkparsed:()=>{}},L=class{options=Ke;bufferCheckPosition=Ae;q="";c="";p="";closed=!1;closedRoot=!1;sawRoot=!1;error=null;state=h.BEGIN;stack=[];position=0;column=0;line=1;slashed=!1;unicodeI=0;unicodeS=null;depth=0;textNode;numberNode;constructor(e={}){this.options={...Ke,...e},this.textNode=void 0,this.numberNode="",this.emit("onready")}end(){return(this.state!==h.VALUE||this.depth!==0)&&this._error("Unexpected end"),this._closeValue(),this.c="",this.closed=!0,this.emit("onend"),this}resume(){return this.error=null,this}close(){return this.write(null)}emit(e,r){this.options[e]?.(r,this)}emitNode(e,r){this._closeValue(),this.emit(e,r)}write(e){if(this.error)throw this.error;if(this.closed)return this._error("Cannot write after close. Assign an onready handler.");if(e===null)return this.end();let r=0,o=e.charCodeAt(0),n=this.p;for(;o&&(n=o,this.c=o=e.charCodeAt(r++),n!==o?this.p=n:n=this.p,!!o);)switch(this.position++,o===p.lineFeed?(this.line++,this.column=0):this.column++,this.state){case h.BEGIN:o===p.openBrace?this.state=h.OPEN_OBJECT:o===p.openBracket?this.state=h.OPEN_ARRAY:M(o)||this._error("Non-whitespace before {[.");continue;case h.OPEN_KEY:case h.OPEN_OBJECT:if(M(o))continue;if(this.state===h.OPEN_KEY)this.stack.push(h.CLOSE_KEY);else if(o===p.closeBrace){this.emit("onopenobject"),this.depth++,this.emit("oncloseobject"),this.depth--,this.state=this.stack.pop()||h.VALUE;continue}else this.stack.push(h.CLOSE_OBJECT);o===p.doubleQuote?this.state=h.STRING:this._error('Malformed object key should start with "');continue;case h.CLOSE_KEY:case h.CLOSE_OBJECT:if(M(o))continue;o===p.colon?(this.state===h.CLOSE_OBJECT?(this.stack.push(h.CLOSE_OBJECT),this._closeValue("onopenobject"),this.depth++):this._closeValue("onkey"),this.state=h.VALUE):o===p.closeBrace?(this.emitNode("oncloseobject"),this.depth--,this.state=this.stack.pop()||h.VALUE):o===p.comma?(this.state===h.CLOSE_OBJECT&&this.stack.push(h.CLOSE_OBJECT),this._closeValue(),this.state=h.OPEN_KEY):this._error("Bad object");continue;case h.OPEN_ARRAY:case h.VALUE:if(M(o))continue;if(this.state===h.OPEN_ARRAY)if(this.emit("onopenarray"),this.depth++,this.state=h.VALUE,o===p.closeBracket){this.emit("onclosearray"),this.depth--,this.state=this.stack.pop()||h.VALUE;continue}else this.stack.push(h.CLOSE_ARRAY);o===p.doubleQuote?this.state=h.STRING:o===p.openBrace?this.state=h.OPEN_OBJECT:o===p.openBracket?this.state=h.OPEN_ARRAY:o===p.t?this.state=h.TRUE:o===p.f?this.state=h.FALSE:o===p.n?this.state=h.NULL:o===p.minus?this.numberNode+="-":p._0<=o&&o<=p._9?(this.numberNode+=String.fromCharCode(o),this.state=h.NUMBER_DIGIT):this._error("Bad value");continue;case h.CLOSE_ARRAY:if(o===p.comma)this.stack.push(h.CLOSE_ARRAY),this._closeValue("onvalue"),this.state=h.VALUE;else if(o===p.closeBracket)this.emitNode("onclosearray"),this.depth--,this.state=this.stack.pop()||h.VALUE;else{if(M(o))continue;this._error("Bad array")}continue;case h.STRING:this.textNode===void 0&&(this.textNode="");let s=r-1,a=this.slashed,i=this.unicodeI;e:for(;;){for(;i>0;)if(this.unicodeS+=String.fromCharCode(o),o=e.charCodeAt(r++),this.position++,i===4?(this.textNode+=String.fromCharCode(parseInt(this.unicodeS,16)),i=0,s=r-1):i++,!o)break e;if(o===p.doubleQuote&&!a){this.state=this.stack.pop()||h.VALUE,this.textNode+=e.substring(s,r-1),this.position+=r-1-s;break}if(o===p.backslash&&!a&&(a=!0,this.textNode+=e.substring(s,r-1),this.position+=r-1-s,o=e.charCodeAt(r++),this.position++,!o))break;if(a){if(a=!1,o===p.n?this.textNode+=`
|
|
9
|
+
`:o===p.r?this.textNode+="\r":o===p.t?this.textNode+=" ":o===p.f?this.textNode+="\f":o===p.b?this.textNode+="\b":o===p.u?(i=1,this.unicodeS=""):this.textNode+=String.fromCharCode(o),o=e.charCodeAt(r++),this.position++,s=r-1,o)continue;break}Ze.lastIndex=r;let c=Ze.exec(e);if(c===null){r=e.length+1,this.textNode+=e.substring(s,r-1),this.position+=r-1-s;break}if(r=c.index+1,o=e.charCodeAt(c.index),!o){this.textNode+=e.substring(s,r-1),this.position+=r-1-s;break}}this.slashed=a,this.unicodeI=i;continue;case h.TRUE:o===p.r?this.state=h.TRUE2:this._error(`Invalid true started with t${o}`);continue;case h.TRUE2:o===p.u?this.state=h.TRUE3:this._error(`Invalid true started with tr${o}`);continue;case h.TRUE3:o===p.e?(this.emit("onvalue",!0),this.state=this.stack.pop()||h.VALUE):this._error(`Invalid true started with tru${o}`);continue;case h.FALSE:o===p.a?this.state=h.FALSE2:this._error(`Invalid false started with f${o}`);continue;case h.FALSE2:o===p.l?this.state=h.FALSE3:this._error(`Invalid false started with fa${o}`);continue;case h.FALSE3:o===p.s?this.state=h.FALSE4:this._error(`Invalid false started with fal${o}`);continue;case h.FALSE4:o===p.e?(this.emit("onvalue",!1),this.state=this.stack.pop()||h.VALUE):this._error(`Invalid false started with fals${o}`);continue;case h.NULL:o===p.u?this.state=h.NULL2:this._error(`Invalid null started with n${o}`);continue;case h.NULL2:o===p.l?this.state=h.NULL3:this._error(`Invalid null started with nu${o}`);continue;case h.NULL3:o===p.l?(this.emit("onvalue",null),this.state=this.stack.pop()||h.VALUE):this._error(`Invalid null started with nul${o}`);continue;case h.NUMBER_DECIMAL_POINT:o===p.period?(this.numberNode+=".",this.state=h.NUMBER_DIGIT):this._error("Leading zero not followed by .");continue;case h.NUMBER_DIGIT:p._0<=o&&o<=p._9?this.numberNode+=String.fromCharCode(o):o===p.period?(this.numberNode.indexOf(".")!==-1&&this._error("Invalid number has two dots"),this.numberNode+="."):o===p.e||o===p.E?((this.numberNode.indexOf("e")!==-1||this.numberNode.indexOf("E")!==-1)&&this._error("Invalid number has two exponential"),this.numberNode+="e"):o===p.plus||o===p.minus?(n===p.e||n===p.E||this._error("Invalid symbol in number"),this.numberNode+=String.fromCharCode(o)):(this._closeNumber(),r--,this.state=this.stack.pop()||h.VALUE);continue;default:this._error(`Unknown state: ${this.state}`)}return this.position>=this.bufferCheckPosition&&Rt(this),this.emit("onchunkparsed"),this}_closeValue(e="onvalue"){this.textNode!==void 0&&this.emit(e,this.textNode),this.textNode=void 0}_closeNumber(){this.numberNode&&this.emit("onvalue",parseFloat(this.numberNode)),this.numberNode=""}_error(e=""){this._closeValue(),e+=`
|
|
10
10
|
Line: ${this.line}
|
|
11
11
|
Column: ${this.column}
|
|
12
|
-
Char: ${this.c}`;let r=new Error(
|
|
13
|
-
`).map((o,n)=>{try{return JSON.parse(o)}catch{throw new Error(`NDJSONLoader: failed to parse JSON on line ${n+1}`)}});return D(r)}async function*Yt(e,t){let r=J(e),o=mt(r),n=yt(o),s=null,a="row-table",i=new N(s,{...t,shape:a});for await(let{counter:l,line:u}of n)try{let d=JSON.parse(u);i.addRow(d),i.chunkComplete(u);let f=i.getFullBatch();f&&(yield f)}catch{throw new Error(`NDJSONLoader: failed to parse JSON on line ${l}`)}let c=i.getFinalBatch();c&&(yield c)}var ke="4.2.0-alpha.4",Ht={name:"NDJSON",id:"ndjson",module:"json",version:ke,extensions:["ndjson","jsonl"],mimeTypes:["application/x-ndjson","application/jsonlines","application/json-seq"],category:"table",text:!0,parse:async e=>At(new TextDecoder().decode(e)),parseTextSync:At,parseInBatches:Yt,options:{}};function Pt(e,t){let r=t?.json?.shape||"object-row-table",o=[],n=pt(e,r);for(let s of n)o.push(JSON.stringify(s));return`[${o.join(",")}]`}var Qt={id:"json",version:"latest",module:"json",name:"JSON",extensions:["json"],mimeTypes:["application/json"],options:{},text:!0,encode:async(e,t)=>new TextEncoder().encode(Pt(e,t)).buffer,encodeTextSync:(e,t)=>Pt(e,t)};var W={x:0,y:1,z:2};function k(e,t={}){let{start:r=0,end:o=e.length,plane:n="xy"}=t,s=t.size||2,a=0,i=W[n[0]],c=W[n[1]];for(let l=r,u=o-s;l<o;l+=s)a+=(e[l+i]-e[u+i])*(e[l+c]+e[u+c]),u=l;return a/2}function Nt(e,t,r=2,o,n="xy"){let s=t&&t.length,a=s?t[0]*r:e.length,i=qt(e,0,a,r,!0,o&&o[0],n),c=[];if(!i||i.next===i.prev)return c;let l,u,d,f,y,m,w;if(s&&(i=ze(e,t,i,r,o,n)),e.length>80*r){f=u=e[0],y=d=e[1];for(let A=r;A<a;A+=r)m=e[A],w=e[A+1],m<f&&(f=m),w<y&&(y=w),m>u&&(u=m),w>d&&(d=w);l=Math.max(u-f,d-y),l=l!==0?32767/l:0}return V(i,c,r,f,y,l,0),c}function qt(e,t,r,o,n,s,a){let i,c;s===void 0&&(s=k(e,{start:t,end:r,size:o,plane:a}));let l=W[a[0]],u=W[a[1]];if(n===s<0)for(i=t;i<r;i+=o)c=Xt(i,e[i+l],e[i+u],c);else for(i=r-o;i>=t;i-=o)c=Xt(i,e[i+l],e[i+u],c);return c&&ut(c,c.next)&&(Z(c),c=c.next),c}function F(e,t){if(!e)return e;t||(t=e);let r=e,o;do if(o=!1,!r.steiner&&(ut(r,r.next)||b(r.prev,r,r.next)===0)){if(Z(r),r=t=r.prev,r===r.next)break;o=!0}else r=r.next;while(o||r!==t);return t}function V(e,t,r,o,n,s,a){if(!e)return;!a&&s&&Ke(e,o,n,s);let i=e,c,l;for(;e.prev!==e.next;){if(c=e.prev,l=e.next,s?Je(e,o,n,s):De(e)){t.push(c.i/r|0),t.push(e.i/r|0),t.push(l.i/r|0),Z(e),e=l.next,i=l.next;continue}if(e=l,e===i){a?a===1?(e=Ge(F(e),t,r),V(e,t,r,o,n,s,2)):a===2&&Me(e,t,r,o,n,s):V(F(e),t,r,o,n,s,1);break}}}function De(e){let t=e.prev,r=e,o=e.next;if(b(t,r,o)>=0)return!1;let n=t.x,s=r.x,a=o.x,i=t.y,c=r.y,l=o.y,u=n<s?n<a?n:a:s<a?s:a,d=i<c?i<l?i:l:c<l?c:l,f=n>s?n>a?n:a:s>a?s:a,y=i>c?i>l?i:l:c>l?c:l,m=o.next;for(;m!==t;){if(m.x>=u&&m.x<=f&&m.y>=d&&m.y<=y&&T(n,i,s,c,a,l,m.x,m.y)&&b(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function Je(e,t,r,o){let n=e.prev,s=e,a=e.next;if(b(n,s,a)>=0)return!1;let i=n.x,c=s.x,l=a.x,u=n.y,d=s.y,f=a.y,y=i<c?i<l?i:l:c<l?c:l,m=u<d?u<f?u:f:d<f?d:f,w=i>c?i>l?i:l:c>l?c:l,A=u>d?u>f?u:f:d>f?d:f,v=jt(y,m,t,r,o),R=jt(w,A,t,r,o),x=e.prevZ,g=e.nextZ;for(;x&&x.z>=v&&g&&g.z<=R;){if(x.x>=y&&x.x<=w&&x.y>=m&&x.y<=A&&x!==n&&x!==a&&T(i,u,c,d,l,f,x.x,x.y)&&b(x.prev,x,x.next)>=0||(x=x.prevZ,g.x>=y&&g.x<=w&&g.y>=m&&g.y<=A&&g!==n&&g!==a&&T(i,u,c,d,l,f,g.x,g.y)&&b(g.prev,g,g.next)>=0))return!1;g=g.nextZ}for(;x&&x.z>=v;){if(x.x>=y&&x.x<=w&&x.y>=m&&x.y<=A&&x!==n&&x!==a&&T(i,u,c,d,l,f,x.x,x.y)&&b(x.prev,x,x.next)>=0)return!1;x=x.prevZ}for(;g&&g.z<=R;){if(g.x>=y&&g.x<=w&&g.y>=m&&g.y<=A&&g!==n&&g!==a&&T(i,u,c,d,l,f,g.x,g.y)&&b(g.prev,g,g.next)>=0)return!1;g=g.nextZ}return!0}function Ge(e,t,r){let o=e;do{let n=o.prev,s=o.next.next;!ut(n,s)&&te(n,o,o.next,s)&&$(n,s)&&$(s,n)&&(t.push(n.i/r|0),t.push(o.i/r|0),t.push(s.i/r|0),Z(o),Z(o.next),o=e=s),o=o.next}while(o!==e);return F(o)}function Me(e,t,r,o,n,s){let a=e;do{let i=a.next.next;for(;i!==a.prev;){if(a.i!==i.i&&Qe(a,i)){let c=ee(a,i);a=F(a,a.next),c=F(c,c.next),V(a,t,r,o,n,s,0),V(c,t,r,o,n,s,0);return}i=i.next}a=a.next}while(a!==e)}function ze(e,t,r,o,n,s){let a=[],i,c,l,u,d;for(i=0,c=t.length;i<c;i++)l=t[i]*o,u=i<c-1?t[i+1]*o:e.length,d=qt(e,l,u,o,!1,n&&n[i+1],s),d===d.next&&(d.steiner=!0),a.push(He(d));for(a.sort(We),i=0;i<a.length;i++)r=Ve(a[i],r);return r}function We(e,t){return e.x-t.x}function Ve(e,t){let r=$e(e,t);if(!r)return t;let o=ee(r,e);return F(o,o.next),F(r,r.next)}function $e(e,t){let r=t,o=e.x,n=e.y,s=-1/0,a;do{if(n<=r.y&&n>=r.next.y&&r.next.y!==r.y){let f=r.x+(n-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(f<=o&&f>s&&(s=f,a=r.x<r.next.x?r:r.next,f===o))return a}r=r.next}while(r!==t);if(!a)return null;let i=a,c=a.x,l=a.y,u=1/0,d;r=a;do o>=r.x&&r.x>=c&&o!==r.x&&T(n<l?o:s,n,c,l,n<l?s:o,n,r.x,r.y)&&(d=Math.abs(n-r.y)/(o-r.x),$(r,e)&&(d<u||d===u&&(r.x>a.x||r.x===a.x&&Ze(a,r)))&&(a=r,u=d)),r=r.next;while(r!==i);return a}function Ze(e,t){return b(e.prev,e,t.prev)<0&&b(t.next,e,e.next)<0}function Ke(e,t,r,o){let n=e;do n.z===0&&(n.z=jt(n.x,n.y,t,r,o)),n.prevZ=n.prev,n.nextZ=n.next,n=n.next;while(n!==e);n.prevZ.nextZ=null,n.prevZ=null,Ye(n)}function Ye(e){let t,r,o=1,n,s,a,i,c,l;do{for(s=e,e=null,l=null,n=0;s;){for(n++,i=s,a=0,r=0;r<o&&(a++,i=i.nextZ,!!i);r++);for(c=o;a>0||c>0&&i;)a!==0&&(c===0||!i||s.z<=i.z)?(t=s,s=s.nextZ,a--):(t=i,i=i.nextZ,c--),l?l.nextZ=t:e=t,t.prevZ=l,l=t;s=i}l.nextZ=null,o*=2}while(n>1);return e}function jt(e,t,r,o,n){return e=(e-r)*n|0,t=(t-o)*n|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function He(e){let t=e,r=e;do(t.x<r.x||t.x===r.x&&t.y<r.y)&&(r=t),t=t.next;while(t!==e);return r}function T(e,t,r,o,n,s,a,i){return(n-a)*(t-i)>=(e-a)*(s-i)&&(e-a)*(o-i)>=(r-a)*(t-i)&&(r-a)*(s-i)>=(n-a)*(o-i)}function Qe(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!Xe(e,t)&&($(e,t)&&$(t,e)&&qe(e,t)&&(b(e.prev,e,t.prev)||b(e,t.prev,t))||ut(e,t)&&b(e.prev,e,e.next)>0&&b(t.prev,t,t.next)>0)}function b(e,t,r){return(t.y-e.y)*(r.x-t.x)-(t.x-e.x)*(r.y-t.y)}function ut(e,t){return e.x===t.x&&e.y===t.y}function te(e,t,r,o){let n=lt(b(e,t,r)),s=lt(b(e,t,o)),a=lt(b(r,o,e)),i=lt(b(r,o,t));return!!(n!==s&&a!==i||n===0&&ct(e,r,t)||s===0&&ct(e,o,t)||a===0&&ct(r,e,o)||i===0&&ct(r,t,o))}function ct(e,t,r){return t.x<=Math.max(e.x,r.x)&&t.x>=Math.min(e.x,r.x)&&t.y<=Math.max(e.y,r.y)&&t.y>=Math.min(e.y,r.y)}function lt(e){return e>0?1:e<0?-1:0}function Xe(e,t){let r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==t.i&&r.next.i!==t.i&&te(r,r.next,e,t))return!0;r=r.next}while(r!==e);return!1}function $(e,t){return b(e.prev,e,e.next)<0?b(e,t,e.next)>=0&&b(e,e.prev,t)>=0:b(e,t,e.prev)<0||b(e,e.next,t)<0}function qe(e,t){let r=e,o=!1,n=(e.x+t.x)/2,s=(e.y+t.y)/2;do r.y>s!=r.next.y>s&&r.next.y!==r.y&&n<(r.next.x-r.x)*(s-r.y)/(r.next.y-r.y)+r.x&&(o=!o),r=r.next;while(r!==e);return o}function ee(e,t){let r=new K(e.i,e.x,e.y),o=new K(t.i,t.x,t.y),n=e.next,s=t.prev;return e.next=t,t.prev=e,r.next=n,n.prev=r,o.next=r,r.prev=o,s.next=o,o.prev=s,o}function Xt(e,t,r,o){let n=new K(e,t,r);return o?(n.next=o.next,n.prev=o,o.next.prev=n,o.next=n):(n.prev=n,n.next=n),n}function Z(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}var K=class{constructor(t,r,o){j(this,"i",void 0),j(this,"x",void 0),j(this,"y",void 0),j(this,"prev",null),j(this,"next",null),j(this,"z",0),j(this,"prevZ",null),j(this,"nextZ",null),j(this,"steiner",!1),this.i=t,this.x=r,this.y=o}};function ne(e,t,r){let o=nr(e),n=Object.keys(o).filter(s=>o[s]!==Array);return sr(e,{propArrayTypes:o,...t},{numericPropKeys:r&&r.numericPropKeys||n,PositionDataType:r?r.PositionDataType:Float32Array,triangulate:r?r.triangulate:!0})}function nr(e){let t={};for(let r of e)if(r.properties)for(let o in r.properties){let n=r.properties[o];t[o]=hr(n,t[o])}return t}function sr(e,t,r){let{pointPositionsCount:o,pointFeaturesCount:n,linePositionsCount:s,linePathsCount:a,lineFeaturesCount:i,polygonPositionsCount:c,polygonObjectsCount:l,polygonRingsCount:u,polygonFeaturesCount:d,propArrayTypes:f,coordLength:y}=t,{numericPropKeys:m=[],PositionDataType:w=Float32Array,triangulate:A=!0}=r,v=e[0]&&"id"in e[0],R=e.length>65535?Uint32Array:Uint16Array,x={type:"Point",positions:new w(o*y),globalFeatureIds:new R(o),featureIds:n>65535?new Uint32Array(o):new Uint16Array(o),numericProps:{},properties:[],fields:[]},g={type:"LineString",pathIndices:s>65535?new Uint32Array(a+1):new Uint16Array(a+1),positions:new w(s*y),globalFeatureIds:new R(s),featureIds:i>65535?new Uint32Array(s):new Uint16Array(s),numericProps:{},properties:[],fields:[]},O={type:"Polygon",polygonIndices:c>65535?new Uint32Array(l+1):new Uint16Array(l+1),primitivePolygonIndices:c>65535?new Uint32Array(u+1):new Uint16Array(u+1),positions:new w(c*y),globalFeatureIds:new R(c),featureIds:d>65535?new Uint32Array(c):new Uint16Array(c),numericProps:{},properties:[],fields:[]};A&&(O.triangles=[]);for(let S of[x,g,O])for(let _ of m){let I=f[_];S.numericProps[_]=new I(S.positions.length/y)}g.pathIndices[a]=s,O.polygonIndices[l]=c,O.primitivePolygonIndices[u]=c;let C={pointPosition:0,pointFeature:0,linePosition:0,linePath:0,lineFeature:0,polygonPosition:0,polygonObject:0,polygonRing:0,polygonFeature:0,feature:0};for(let S of e){let _=S.geometry,I=S.properties||{};switch(_.type){case"Point":ir(_,x,C,y,I),x.properties.push(St(I,m)),v&&x.fields.push({id:S.id}),C.pointFeature++;break;case"LineString":ar(_,g,C,y,I),g.properties.push(St(I,m)),v&&g.fields.push({id:S.id}),C.lineFeature++;break;case"Polygon":cr(_,O,C,y,I),O.properties.push(St(I,m)),v&&O.fields.push({id:S.id}),C.polygonFeature++;break;default:throw new Error("Invalid geometry type")}C.feature++}return ur(x,g,O,y)}function ir(e,t,r,o,n){t.positions.set(e.data,r.pointPosition*o);let s=e.data.length/o;It(t,n,r.pointPosition,s),t.globalFeatureIds.fill(r.feature,r.pointPosition,r.pointPosition+s),t.featureIds.fill(r.pointFeature,r.pointPosition,r.pointPosition+s),r.pointPosition+=s}function ar(e,t,r,o,n){t.positions.set(e.data,r.linePosition*o);let s=e.data.length/o;It(t,n,r.linePosition,s),t.globalFeatureIds.fill(r.feature,r.linePosition,r.linePosition+s),t.featureIds.fill(r.lineFeature,r.linePosition,r.linePosition+s);for(let a=0,i=e.indices.length;a<i;++a){let c=e.indices[a],l=a===i-1?e.data.length:e.indices[a+1];t.pathIndices[r.linePath++]=r.linePosition,r.linePosition+=(l-c)/o}}function cr(e,t,r,o,n){t.positions.set(e.data,r.polygonPosition*o);let s=e.data.length/o;It(t,n,r.polygonPosition,s),t.globalFeatureIds.fill(r.feature,r.polygonPosition,r.polygonPosition+s),t.featureIds.fill(r.polygonFeature,r.polygonPosition,r.polygonPosition+s);for(let a=0,i=e.indices.length;a<i;++a){let c=r.polygonPosition;t.polygonIndices[r.polygonObject++]=c;let l=e.areas[a],u=e.indices[a],d=e.indices[a+1];for(let y=0,m=u.length;y<m;++y){let w=u[y],A=y===m-1?d===void 0?e.data.length:d[0]:u[y+1];t.primitivePolygonIndices[r.polygonRing++]=r.polygonPosition,r.polygonPosition+=(A-w)/o}let f=r.polygonPosition;lr(t,l,u,{startPosition:c,endPosition:f,coordLength:o})}}function lr(e,t,r,{startPosition:o,endPosition:n,coordLength:s}){if(!e.triangles)return;let a=o*s,i=n*s,c=e.positions.subarray(a,i),l=r[0],u=r.slice(1).map(f=>(f-l)/s),d=Nt(c,u,s,t);for(let f=0,y=d.length;f<y;++f)e.triangles.push(o+d[f])}function Ot(e,t){let r={};for(let o in e)r[o]={value:e[o],size:t};return r}function ur(e,t,r,o){let n={shape:"binary-feature-collection",points:{...e,positions:{value:e.positions,size:o},globalFeatureIds:{value:e.globalFeatureIds,size:1},featureIds:{value:e.featureIds,size:1},numericProps:Ot(e.numericProps,1)},lines:{...t,positions:{value:t.positions,size:o},pathIndices:{value:t.pathIndices,size:1},globalFeatureIds:{value:t.globalFeatureIds,size:1},featureIds:{value:t.featureIds,size:1},numericProps:Ot(t.numericProps,1)},polygons:{...r,positions:{value:r.positions,size:o},polygonIndices:{value:r.polygonIndices,size:1},primitivePolygonIndices:{value:r.primitivePolygonIndices,size:1},globalFeatureIds:{value:r.globalFeatureIds,size:1},featureIds:{value:r.featureIds,size:1},numericProps:Ot(r.numericProps,1)}};return n.polygons&&r.triangles&&(n.polygons.triangles={value:new Uint32Array(r.triangles),size:1}),n}function It(e,t,r,o){for(let n in e.numericProps)if(n in t){let s=t[n];e.numericProps[n].fill(s,r,r+o)}}function St(e,t){let r={};for(let o in e)t.includes(o)||(r[o]=e[o]);return r}function hr(e,t){return t===Array||!Number.isFinite(e)?Array:t===Float64Array||Math.fround(e)!==e?Float64Array:Float32Array}function se(e){let t=0,r=0,o=0,n=0,s=0,a=0,i=0,c=0,l=0,u=new Set;for(let d of e){let f=d.geometry;switch(f.type){case"Point":r++,t++,u.add(f.coordinates.length);break;case"MultiPoint":r++,t+=f.coordinates.length;for(let m of f.coordinates)u.add(m.length);break;case"LineString":s++,o+=f.coordinates.length,n++;for(let m of f.coordinates)u.add(m.length);break;case"MultiLineString":s++;for(let m of f.coordinates){o+=m.length,n++;for(let w of m)u.add(w.length)}break;case"Polygon":l++,i++,c+=f.coordinates.length;let y=f.coordinates.flat();a+=y.length;for(let m of y)u.add(m.length);break;case"MultiPolygon":l++;for(let m of f.coordinates){i++,c+=m.length;let w=m.flat();a+=w.length;for(let A of w)u.add(A.length)}break;default:throw new Error(`Unsupported geometry type: ${f.type}`)}}return{coordLength:u.size>0?Math.max(...u):2,pointPositionsCount:t,pointFeaturesCount:r,linePositionsCount:o,linePathsCount:n,lineFeaturesCount:s,polygonPositionsCount:a,polygonObjectsCount:i,polygonRingsCount:c,polygonFeaturesCount:l}}function ce(e,t={coordLength:2,fixRingWinding:!0}){return e.map(r=>fr(r,t))}function ie(e,t,r,o){r.push(t.length),t.push(...e);for(let n=e.length;n<o.coordLength;n++)t.push(0)}function Et(e,t,r,o){r.push(t.length);for(let n of e){t.push(...n);for(let s=n.length;s<o.coordLength;s++)t.push(0)}}function ae(e,t,r,o,n){let s=0,a=[],i=[];for(let c of e){let l=c.map(f=>f.slice(0,2)),u=k(l.flat()),d=u<0;n.fixRingWinding&&(s===0&&!d||s>0&&d)&&(c.reverse(),u=-u),a.push(u),Et(c,t,i,n),s++}s>0&&(o.push(a),r.push(i))}function fr(e,t){let{geometry:r}=e;if(r.type==="GeometryCollection")throw new Error("GeometryCollection type not supported");let o=[],n=[],s,a;switch(r.type){case"Point":a="Point",ie(r.coordinates,o,n,t);break;case"MultiPoint":a="Point",r.coordinates.map(i=>ie(i,o,n,t));break;case"LineString":a="LineString",Et(r.coordinates,o,n,t);break;case"MultiLineString":a="LineString",r.coordinates.map(i=>Et(i,o,n,t));break;case"Polygon":a="Polygon",s=[],ae(r.coordinates,o,n,s,t);break;case"MultiPolygon":a="Polygon",s=[],r.coordinates.map(i=>ae(i,o,n,s,t));break;default:throw new Error(`Unknown type: ${a}`)}return{...e,geometry:{type:a,indices:n,data:o,areas:s}}}function ht(e,t={fixRingWinding:!0,triangulate:!0}){let r=se(e),o=r.coordLength,{fixRingWinding:n}=t,s=ce(e,{coordLength:o,fixRingWinding:n});return ne(s,r,{numericPropKeys:t.numericPropKeys,PositionDataType:t.PositionDataType||Float32Array,triangulate:t.triangulate})}var pr="4.2.0-alpha.4",Bt={name:"GeoJSON",id:"geojson",module:"geojson",version:pr,worker:!0,extensions:["geojson"],mimeTypes:["application/geo+json"],category:"geometry",text:!0,options:{geojson:{shape:"object-row-table"},json:{shape:"object-row-table",jsonpaths:["$","$.features"]},gis:{format:"geojson"}}},U={...Bt,parse:dr,parseTextSync:le,parseInBatches:mr};async function dr(e,t){return le(new TextDecoder().decode(e),t)}function le(e,t){t={...U.options,...t},t.geojson={...U.options.geojson,...t.geojson},t.gis=t.gis||{};let r;try{r=JSON.parse(e)}catch{r={}}let o={shape:"geojson-table",type:"FeatureCollection",features:r?.features||[]};switch(t.gis.format){case"binary":return ht(o.features);default:return o}}function mr(e,t){t={...U.options,...t},t.json={...U.options.geojson,...t.geojson};let r=it(e,t);switch(t.gis.format){case"binary":return yr(r);default:return r}}async function*yr(e){for await(let t of e)t.data=ht(t.data),yield t}function ue(e){let t=e.schema?.fields.findIndex(r=>r.name==="geometry")??-1;if(t>-1)return t;if(E(e)>0){let r=nt(e,0);for(let o=0;o<rt(e);o++){let n=r?.[o];if(n&&typeof n=="object")return o}}throw new Error("Failed to detect geometry column")}function he(e,t,r=[]){let o={};for(let n=0;n<rt(e);++n){let s=e.schema?.fields[n].name;s&&!r.includes(n)&&(o[s]=t[s])}return o}function fe(e,t,r,o){let n=ot(e,t);if(!n)return;let s=gr(e,n,r),a=JSON.stringify(s);o.push(a)}function gr(e,t,r){let o=he(e,t,[r]),n=e.schema?.fields[r].name,s=n&&t[n];if(!s)return{type:"Feature",geometry:null,properties:o};if(typeof s=="string")try{s=JSON.parse(s)}catch{throw new Error("Invalid string geometry")}if(typeof s!="object"||typeof s?.type!="string")throw new Error("invalid geometry column value");return s?.type==="Feature"?{...s,properties:o}:{type:"Feature",geometry:s,properties:o}}var ft=class{constructor(t){this.strings=[],this.totalLength=0,this.textEncoder=new TextEncoder,this.chunkSize=t}push(...t){for(let r of t)this.strings.push(r),this.totalLength+=r.length}isFull(){return this.totalLength>=this.chunkSize}getArrayBufferBatch(){return this.textEncoder.encode(this.getStringBatch()).buffer}getStringBatch(){let t=this.strings.join("");return this.strings=[],this.totalLength=0,t}};async function*Ct(e,t={}){let r={geojson:{},chunkSize:1e4,...t},o=new ft(r.chunkSize);r.geojson.featureArray||o.push(`{
|
|
12
|
+
Char: ${this.c}`;let r=new Error(e);this.error=r,this.emit("onerror",r)}};function M(t){return t===p.carriageReturn||t===p.lineFeed||t===p.space||t===p.tab}function Rt(t){let e=Math.max(Ae,10),r=0;for(let o of["textNode","numberNode"]){let n=t[o]===void 0?0:t[o].length;if(n>e)switch(o){case"text":break;default:t._error(`Max buffer length exceeded: ${o}`)}r=Math.max(r,n)}t.bufferCheckPosition=Ae-r+t.position}var P=class{path;constructor(e=null){if(this.path=["$"],e instanceof P){this.path=[...e.path];return}if(Array.isArray(e)){this.path.push(...e);return}if(typeof e=="string"&&(this.path=e.split("."),this.path[0]!=="$"))throw new Error("JSONPaths must start with $")}clone(){return new P(this)}toString(){return this.path.join(".")}push(e){this.path.push(e)}pop(){return this.path.pop()}set(e){this.path[this.path.length-1]=e}equals(e){if(!this||!e||this.path.length!==e.path.length)return!1;for(let r=0;r<this.path.length;++r)if(this.path[r]!==e.path[r])return!1;return!0}setFieldAtPath(e,r){let o=[...this.path];o.shift();let n=o.pop();for(let s of o)e=e[s];e[n]=r}getFieldAtPath(e){let r=[...this.path];r.shift();let o=r.pop();for(let n of r)e=e[n];return e[o]}};var z=class{parser;result=void 0;previousStates=[];currentState=Object.freeze({container:[],key:null});jsonpath=new P;constructor(e){this.reset(),this.parser=new L({onready:()=>{this.jsonpath=new P,this.previousStates.length=0,this.currentState.container.length=0},onopenobject:r=>{this._openObject({}),typeof r<"u"&&this.parser.emit("onkey",r)},onkey:r=>{this.jsonpath.set(r),this.currentState.key=r},oncloseobject:()=>{this._closeObject()},onopenarray:()=>{this._openArray()},onclosearray:()=>{this._closeArray()},onvalue:r=>{this._pushOrSet(r)},onerror:r=>{throw r},onend:()=>{this.result=this.currentState.container.pop()},...e})}reset(){this.result=void 0,this.previousStates=[],this.currentState=Object.freeze({container:[],key:null}),this.jsonpath=new P}write(e){this.parser.write(e)}close(){this.parser.close()}_pushOrSet(e){let{container:r,key:o}=this.currentState;o!==null?(r[o]=e,this.currentState.key=null):r.push(e)}_openArray(e=[]){this.jsonpath.push(null),this._pushOrSet(e),this.previousStates.push(this.currentState),this.currentState={container:e,isArray:!0,key:null}}_closeArray(){this.jsonpath.pop(),this.currentState=this.previousStates.pop()}_openObject(e={}){this.jsonpath.push(null),this._pushOrSet(e),this.previousStates.push(this.currentState),this.currentState={container:e,isArray:!1,key:null}}_closeObject(){this.jsonpath.pop(),this.currentState=this.previousStates.pop()}};var W=class extends z{jsonPaths;streamingJsonPath=null;streamingArray=null;topLevelObject=null;constructor(e={}){super({onopenarray:()=>{if(!this.streamingArray&&this._matchJSONPath()){this.streamingJsonPath=this.getJsonPath().clone(),this.streamingArray=[],this._openArray(this.streamingArray);return}this._openArray()},onopenobject:o=>{this.topLevelObject?this._openObject({}):(this.topLevelObject={},this._openObject(this.topLevelObject)),typeof o<"u"&&this.parser.emit("onkey",o)}});let r=e.jsonpaths||[];this.jsonPaths=r.map(o=>new P(o))}write(e){super.write(e);let r=[];return this.streamingArray&&(r=[...this.streamingArray],this.streamingArray.length=0),r}getPartialResult(){return this.topLevelObject}getStreamingJsonPath(){return this.streamingJsonPath}getStreamingJsonPathAsString(){return this.streamingJsonPath&&this.streamingJsonPath.toString()}getJsonPath(){return this.jsonpath}_matchJSONPath(){let e=this.getJsonPath();if(this.jsonPaths.length===0)return!0;for(let r of this.jsonPaths)if(r.equals(e))return!0;return!1}};async function*ae(t,e){let r=G(t),{metadata:o}=e,{jsonpaths:n}=e.json||{},s=!0,a=null,i=new I(a,e),c=new W({jsonpaths:n});for await(let d of r){let f=c.write(d),y=f.length>0&&c.getStreamingJsonPathAsString();f.length>0&&s&&(o&&(yield{shape:e?.json?.shape||"array-row-table",batchType:"partial-result",data:[],length:0,bytesUsed:0,container:c.getPartialResult(),jsonpath:y}),s=!1);for(let w of f){i.addRow(w);let A=i.getFullBatch({jsonpath:y});A&&(yield A)}i.chunkComplete(d);let m=i.getFullBatch({jsonpath:y});m&&(yield m)}let l=c.getStreamingJsonPathAsString(),u=i.getFinalBatch({jsonpath:l});u&&(yield u),o&&(yield{shape:"json",batchType:"final-result",container:c.getPartialResult(),jsonpath:c.getStreamingJsonPathAsString(),data:[],length:0})}function Ye(t,e){if(me(t.batchType==="final-result"),t.jsonpath==="$")return e;if(t.jsonpath&&t.jsonpath.length>1){let r=t.container;return new P(t.jsonpath).setFieldAtPath(r,e),r}return t.container}var kt="4.2.0-alpha.6",ce={dataType:null,batchType:null,name:"JSON",id:"json",module:"json",version:kt,extensions:["json","geojson"],mimeTypes:["application/json"],category:"table",text:!0,options:{json:{shape:void 0,table:!1,jsonpaths:[]}},parse:Tt,parseTextSync:He,parseInBatches:Ut};async function Tt(t,e){return He(new TextDecoder().decode(t),e)}function He(t,e){let r={...e,json:{...ce.options.json,...e?.json}};return We(t,r)}function Ut(t,e){let r={...e,json:{...ce.options.json,...e?.json}};return ae(t,r)}function Pe(t){let r=t.trim().split(`
|
|
13
|
+
`).map((o,n)=>{try{return JSON.parse(o)}catch{throw new Error(`NDJSONLoader: failed to parse JSON on line ${n+1}`)}});return J(r)}async function*Qe(t,e){let r=G(t),o=xe(r),n=we(o),s=null,a="row-table",i=new I(s,{...e,shape:a});for await(let{counter:l,line:u}of n)try{let d=JSON.parse(u);i.addRow(d),i.chunkComplete(u);let f=i.getFullBatch();f&&(yield f)}catch{throw new Error(`NDJSONLoader: failed to parse JSON on line ${l}`)}let c=i.getFinalBatch();c&&(yield c)}var Dt="4.2.0-alpha.6",Xe={dataType:null,batchType:null,name:"NDJSON",id:"ndjson",module:"json",version:Dt,extensions:["ndjson","jsonl"],mimeTypes:["application/x-ndjson","application/jsonlines","application/json-seq"],category:"table",text:!0,parse:async t=>Pe(new TextDecoder().decode(t)),parseTextSync:Pe,parseInBatches:Qe,options:{}};function je(t,e){let r=e?.json?.shape||"object-row-table",o=[],n=de(t,r);for(let s of n)o.push(JSON.stringify(s));return`[${o.join(",")}]`}var qe={id:"json",version:"latest",module:"json",name:"JSON",extensions:["json"],mimeTypes:["application/json"],options:{},text:!0,encode:async(t,e)=>new TextEncoder().encode(je(t,e)).buffer,encodeTextSync:(t,e)=>je(t,e)};var V={x:0,y:1,z:2};function k(t,e={}){let{start:r=0,end:o=t.length,plane:n="xy"}=e,s=e.size||2,a=0,i=V[n[0]],c=V[n[1]];for(let l=r,u=o-s;l<o;l+=s)a+=(t[l+i]-t[u+i])*(t[l+c]+t[u+c]),u=l;return a/2}function Oe(t,e,r=2,o,n="xy"){let s=e&&e.length,a=s?e[0]*r:t.length,i=tt(t,0,a,r,!0,o&&o[0],n),c=[];if(!i||i.next===i.prev)return c;let l,u,d,f,y,m,w;if(s&&(i=$t(t,e,i,r,o,n)),t.length>80*r){f=u=t[0],y=d=t[1];for(let A=r;A<a;A+=r)m=t[A],w=t[A+1],m<f&&(f=m),w<y&&(y=w),m>u&&(u=m),w>d&&(d=w);l=Math.max(u-f,d-y),l=l!==0?32767/l:0}return $(i,c,r,f,y,l,0),c}function tt(t,e,r,o,n,s,a){let i,c;s===void 0&&(s=k(t,{start:e,end:r,size:o,plane:a}));let l=V[a[0]],u=V[a[1]];if(n===s<0)for(i=e;i<r;i+=o)c=et(i,t[i+l],t[i+u],c);else for(i=r-o;i>=e;i-=o)c=et(i,t[i+l],t[i+u],c);return c&&he(c,c.next)&&(K(c),c=c.next),c}function F(t,e){if(!t)return t;e||(e=t);let r=t,o;do if(o=!1,!r.steiner&&(he(r,r.next)||b(r.prev,r,r.next)===0)){if(K(r),r=e=r.prev,r===r.next)break;o=!0}else r=r.next;while(o||r!==e);return e}function $(t,e,r,o,n,s,a){if(!t)return;!a&&s&&Qt(t,o,n,s);let i=t,c,l;for(;t.prev!==t.next;){if(c=t.prev,l=t.next,s?zt(t,o,n,s):Mt(t)){e.push(c.i/r|0),e.push(t.i/r|0),e.push(l.i/r|0),K(t),t=l.next,i=l.next;continue}if(t=l,t===i){a?a===1?(t=Wt(F(t),e,r),$(t,e,r,o,n,s,2)):a===2&&Vt(t,e,r,o,n,s):$(F(t),e,r,o,n,s,1);break}}}function Mt(t){let e=t.prev,r=t,o=t.next;if(b(e,r,o)>=0)return!1;let n=e.x,s=r.x,a=o.x,i=e.y,c=r.y,l=o.y,u=n<s?n<a?n:a:s<a?s:a,d=i<c?i<l?i:l:c<l?c:l,f=n>s?n>a?n:a:s>a?s:a,y=i>c?i>l?i:l:c>l?c:l,m=o.next;for(;m!==e;){if(m.x>=u&&m.x<=f&&m.y>=d&&m.y<=y&&T(n,i,s,c,a,l,m.x,m.y)&&b(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function zt(t,e,r,o){let n=t.prev,s=t,a=t.next;if(b(n,s,a)>=0)return!1;let i=n.x,c=s.x,l=a.x,u=n.y,d=s.y,f=a.y,y=i<c?i<l?i:l:c<l?c:l,m=u<d?u<f?u:f:d<f?d:f,w=i>c?i>l?i:l:c>l?c:l,A=u>d?u>f?u:f:d>f?d:f,v=Ne(y,m,e,r,o),R=Ne(w,A,e,r,o),x=t.prevZ,g=t.nextZ;for(;x&&x.z>=v&&g&&g.z<=R;){if(x.x>=y&&x.x<=w&&x.y>=m&&x.y<=A&&x!==n&&x!==a&&T(i,u,c,d,l,f,x.x,x.y)&&b(x.prev,x,x.next)>=0||(x=x.prevZ,g.x>=y&&g.x<=w&&g.y>=m&&g.y<=A&&g!==n&&g!==a&&T(i,u,c,d,l,f,g.x,g.y)&&b(g.prev,g,g.next)>=0))return!1;g=g.nextZ}for(;x&&x.z>=v;){if(x.x>=y&&x.x<=w&&x.y>=m&&x.y<=A&&x!==n&&x!==a&&T(i,u,c,d,l,f,x.x,x.y)&&b(x.prev,x,x.next)>=0)return!1;x=x.prevZ}for(;g&&g.z<=R;){if(g.x>=y&&g.x<=w&&g.y>=m&&g.y<=A&&g!==n&&g!==a&&T(i,u,c,d,l,f,g.x,g.y)&&b(g.prev,g,g.next)>=0)return!1;g=g.nextZ}return!0}function Wt(t,e,r){let o=t;do{let n=o.prev,s=o.next.next;!he(n,s)&&rt(n,o,o.next,s)&&Z(n,s)&&Z(s,n)&&(e.push(n.i/r|0),e.push(o.i/r|0),e.push(s.i/r|0),K(o),K(o.next),o=t=s),o=o.next}while(o!==t);return F(o)}function Vt(t,e,r,o,n,s){let a=t;do{let i=a.next.next;for(;i!==a.prev;){if(a.i!==i.i&&er(a,i)){let c=ot(a,i);a=F(a,a.next),c=F(c,c.next),$(a,e,r,o,n,s,0),$(c,e,r,o,n,s,0);return}i=i.next}a=a.next}while(a!==t)}function $t(t,e,r,o,n,s){let a=[],i,c,l,u,d;for(i=0,c=e.length;i<c;i++)l=e[i]*o,u=i<c-1?e[i+1]*o:t.length,d=tt(t,l,u,o,!1,n&&n[i+1],s),d===d.next&&(d.steiner=!0),a.push(qt(d));for(a.sort(Zt),i=0;i<a.length;i++)r=Kt(a[i],r);return r}function Zt(t,e){return t.x-e.x}function Kt(t,e){let r=Yt(t,e);if(!r)return e;let o=ot(r,t);return F(o,o.next),F(r,r.next)}function Yt(t,e){let r=e,o=t.x,n=t.y,s=-1/0,a;do{if(n<=r.y&&n>=r.next.y&&r.next.y!==r.y){let f=r.x+(n-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(f<=o&&f>s&&(s=f,a=r.x<r.next.x?r:r.next,f===o))return a}r=r.next}while(r!==e);if(!a)return null;let i=a,c=a.x,l=a.y,u=1/0,d;r=a;do o>=r.x&&r.x>=c&&o!==r.x&&T(n<l?o:s,n,c,l,n<l?s:o,n,r.x,r.y)&&(d=Math.abs(n-r.y)/(o-r.x),Z(r,t)&&(d<u||d===u&&(r.x>a.x||r.x===a.x&&Ht(a,r)))&&(a=r,u=d)),r=r.next;while(r!==i);return a}function Ht(t,e){return b(t.prev,t,e.prev)<0&&b(e.next,t,t.next)<0}function Qt(t,e,r,o){let n=t;do n.z===0&&(n.z=Ne(n.x,n.y,e,r,o)),n.prevZ=n.prev,n.nextZ=n.next,n=n.next;while(n!==t);n.prevZ.nextZ=null,n.prevZ=null,Xt(n)}function Xt(t){let e,r,o=1,n,s,a,i,c,l;do{for(s=t,t=null,l=null,n=0;s;){for(n++,i=s,a=0,r=0;r<o&&(a++,i=i.nextZ,!!i);r++);for(c=o;a>0||c>0&&i;)a!==0&&(c===0||!i||s.z<=i.z)?(e=s,s=s.nextZ,a--):(e=i,i=i.nextZ,c--),l?l.nextZ=e:t=e,e.prevZ=l,l=e;s=i}l.nextZ=null,o*=2}while(n>1);return t}function Ne(t,e,r,o,n){return t=(t-r)*n|0,e=(e-o)*n|0,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t|e<<1}function qt(t){let e=t,r=t;do(e.x<r.x||e.x===r.x&&e.y<r.y)&&(r=e),e=e.next;while(e!==t);return r}function T(t,e,r,o,n,s,a,i){return(n-a)*(e-i)>=(t-a)*(s-i)&&(t-a)*(o-i)>=(r-a)*(e-i)&&(r-a)*(s-i)>=(n-a)*(o-i)}function er(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!tr(t,e)&&(Z(t,e)&&Z(e,t)&&rr(t,e)&&(b(t.prev,t,e.prev)||b(t,e.prev,e))||he(t,e)&&b(t.prev,t,t.next)>0&&b(e.prev,e,e.next)>0)}function b(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function he(t,e){return t.x===e.x&&t.y===e.y}function rt(t,e,r,o){let n=ue(b(t,e,r)),s=ue(b(t,e,o)),a=ue(b(r,o,t)),i=ue(b(r,o,e));return!!(n!==s&&a!==i||n===0&&le(t,r,e)||s===0&&le(t,o,e)||a===0&&le(r,t,o)||i===0&&le(r,e,o))}function le(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function ue(t){return t>0?1:t<0?-1:0}function tr(t,e){let r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&rt(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}function Z(t,e){return b(t.prev,t,t.next)<0?b(t,e,t.next)>=0&&b(t,t.prev,e)>=0:b(t,e,t.prev)<0||b(t,t.next,e)<0}function rr(t,e){let r=t,o=!1,n=(t.x+e.x)/2,s=(t.y+e.y)/2;do r.y>s!=r.next.y>s&&r.next.y!==r.y&&n<(r.next.x-r.x)*(s-r.y)/(r.next.y-r.y)+r.x&&(o=!o),r=r.next;while(r!==t);return o}function ot(t,e){let r=new Y(t.i,t.x,t.y),o=new Y(e.i,e.x,e.y),n=t.next,s=e.prev;return t.next=e,e.prev=t,r.next=n,n.prev=r,o.next=r,r.prev=o,s.next=o,o.prev=s,o}function et(t,e,r,o){let n=new Y(t,e,r);return o?(n.next=o.next,n.prev=o,o.next.prev=n,o.next=n):(n.prev=n,n.next=n),n}function K(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}var Y=class{constructor(e,r,o){j(this,"i",void 0),j(this,"x",void 0),j(this,"y",void 0),j(this,"prev",null),j(this,"next",null),j(this,"z",0),j(this,"prevZ",null),j(this,"nextZ",null),j(this,"steiner",!1),this.i=e,this.x=r,this.y=o}};function it(t,e,r){let o=ar(t),n=Object.keys(o).filter(s=>o[s]!==Array);return cr(t,{propArrayTypes:o,...e},{numericPropKeys:r&&r.numericPropKeys||n,PositionDataType:r?r.PositionDataType:Float32Array,triangulate:r?r.triangulate:!0})}function ar(t){let e={};for(let r of t)if(r.properties)for(let o in r.properties){let n=r.properties[o];e[o]=dr(n,e[o])}return e}function cr(t,e,r){let{pointPositionsCount:o,pointFeaturesCount:n,linePositionsCount:s,linePathsCount:a,lineFeaturesCount:i,polygonPositionsCount:c,polygonObjectsCount:l,polygonRingsCount:u,polygonFeaturesCount:d,propArrayTypes:f,coordLength:y}=e,{numericPropKeys:m=[],PositionDataType:w=Float32Array,triangulate:A=!0}=r,v=t[0]&&"id"in t[0],R=t.length>65535?Uint32Array:Uint16Array,x={type:"Point",positions:new w(o*y),globalFeatureIds:new R(o),featureIds:n>65535?new Uint32Array(o):new Uint16Array(o),numericProps:{},properties:[],fields:[]},g={type:"LineString",pathIndices:s>65535?new Uint32Array(a+1):new Uint16Array(a+1),positions:new w(s*y),globalFeatureIds:new R(s),featureIds:i>65535?new Uint32Array(s):new Uint16Array(s),numericProps:{},properties:[],fields:[]},N={type:"Polygon",polygonIndices:c>65535?new Uint32Array(l+1):new Uint16Array(l+1),primitivePolygonIndices:c>65535?new Uint32Array(u+1):new Uint16Array(u+1),positions:new w(c*y),globalFeatureIds:new R(c),featureIds:d>65535?new Uint32Array(c):new Uint16Array(c),numericProps:{},properties:[],fields:[]};A&&(N.triangles=[]);for(let O of[x,g,N])for(let _ of m){let S=f[_];O.numericProps[_]=new S(O.positions.length/y)}g.pathIndices[a]=s,N.polygonIndices[l]=c,N.primitivePolygonIndices[u]=c;let C={pointPosition:0,pointFeature:0,linePosition:0,linePath:0,lineFeature:0,polygonPosition:0,polygonObject:0,polygonRing:0,polygonFeature:0,feature:0};for(let O of t){let _=O.geometry,S=O.properties||{};switch(_.type){case"Point":lr(_,x,C,y,S),x.properties.push(Ie(S,m)),v&&x.fields.push({id:O.id}),C.pointFeature++;break;case"LineString":ur(_,g,C,y,S),g.properties.push(Ie(S,m)),v&&g.fields.push({id:O.id}),C.lineFeature++;break;case"Polygon":hr(_,N,C,y,S),N.properties.push(Ie(S,m)),v&&N.fields.push({id:O.id}),C.polygonFeature++;break;default:throw new Error("Invalid geometry type")}C.feature++}return pr(x,g,N,y)}function lr(t,e,r,o,n){e.positions.set(t.data,r.pointPosition*o);let s=t.data.length/o;Be(e,n,r.pointPosition,s),e.globalFeatureIds.fill(r.feature,r.pointPosition,r.pointPosition+s),e.featureIds.fill(r.pointFeature,r.pointPosition,r.pointPosition+s),r.pointPosition+=s}function ur(t,e,r,o,n){e.positions.set(t.data,r.linePosition*o);let s=t.data.length/o;Be(e,n,r.linePosition,s),e.globalFeatureIds.fill(r.feature,r.linePosition,r.linePosition+s),e.featureIds.fill(r.lineFeature,r.linePosition,r.linePosition+s);for(let a=0,i=t.indices.length;a<i;++a){let c=t.indices[a],l=a===i-1?t.data.length:t.indices[a+1];e.pathIndices[r.linePath++]=r.linePosition,r.linePosition+=(l-c)/o}}function hr(t,e,r,o,n){e.positions.set(t.data,r.polygonPosition*o);let s=t.data.length/o;Be(e,n,r.polygonPosition,s),e.globalFeatureIds.fill(r.feature,r.polygonPosition,r.polygonPosition+s),e.featureIds.fill(r.polygonFeature,r.polygonPosition,r.polygonPosition+s);for(let a=0,i=t.indices.length;a<i;++a){let c=r.polygonPosition;e.polygonIndices[r.polygonObject++]=c;let l=t.areas[a],u=t.indices[a],d=t.indices[a+1];for(let y=0,m=u.length;y<m;++y){let w=u[y],A=y===m-1?d===void 0?t.data.length:d[0]:u[y+1];e.primitivePolygonIndices[r.polygonRing++]=r.polygonPosition,r.polygonPosition+=(A-w)/o}let f=r.polygonPosition;fr(e,l,u,{startPosition:c,endPosition:f,coordLength:o})}}function fr(t,e,r,{startPosition:o,endPosition:n,coordLength:s}){if(!t.triangles)return;let a=o*s,i=n*s,c=t.positions.subarray(a,i),l=r[0],u=r.slice(1).map(f=>(f-l)/s),d=Oe(c,u,s,e);for(let f=0,y=d.length;f<y;++f)t.triangles.push(o+d[f])}function Se(t,e){let r={};for(let o in t)r[o]={value:t[o],size:e};return r}function pr(t,e,r,o){let n={shape:"binary-feature-collection",points:{...t,positions:{value:t.positions,size:o},globalFeatureIds:{value:t.globalFeatureIds,size:1},featureIds:{value:t.featureIds,size:1},numericProps:Se(t.numericProps,1)},lines:{...e,positions:{value:e.positions,size:o},pathIndices:{value:e.pathIndices,size:1},globalFeatureIds:{value:e.globalFeatureIds,size:1},featureIds:{value:e.featureIds,size:1},numericProps:Se(e.numericProps,1)},polygons:{...r,positions:{value:r.positions,size:o},polygonIndices:{value:r.polygonIndices,size:1},primitivePolygonIndices:{value:r.primitivePolygonIndices,size:1},globalFeatureIds:{value:r.globalFeatureIds,size:1},featureIds:{value:r.featureIds,size:1},numericProps:Se(r.numericProps,1)}};return n.polygons&&r.triangles&&(n.polygons.triangles={value:new Uint32Array(r.triangles),size:1}),n}function Be(t,e,r,o){for(let n in t.numericProps)if(n in e){let s=e[n];t.numericProps[n].fill(s,r,r+o)}}function Ie(t,e){let r={};for(let o in t)e.includes(o)||(r[o]=t[o]);return r}function dr(t,e){return e===Array||!Number.isFinite(t)?Array:e===Float64Array||Math.fround(t)!==t?Float64Array:Float32Array}function at(t){let e=0,r=0,o=0,n=0,s=0,a=0,i=0,c=0,l=0,u=new Set;for(let d of t){let f=d.geometry;switch(f.type){case"Point":r++,e++,u.add(f.coordinates.length);break;case"MultiPoint":r++,e+=f.coordinates.length;for(let m of f.coordinates)u.add(m.length);break;case"LineString":s++,o+=f.coordinates.length,n++;for(let m of f.coordinates)u.add(m.length);break;case"MultiLineString":s++;for(let m of f.coordinates){o+=m.length,n++;for(let w of m)u.add(w.length)}break;case"Polygon":l++,i++,c+=f.coordinates.length;let y=f.coordinates.flat();a+=y.length;for(let m of y)u.add(m.length);break;case"MultiPolygon":l++;for(let m of f.coordinates){i++,c+=m.length;let w=m.flat();a+=w.length;for(let A of w)u.add(A.length)}break;default:throw new Error(`Unsupported geometry type: ${f.type}`)}}return{coordLength:u.size>0?Math.max(...u):2,pointPositionsCount:e,pointFeaturesCount:r,linePositionsCount:o,linePathsCount:n,lineFeaturesCount:s,polygonPositionsCount:a,polygonObjectsCount:i,polygonRingsCount:c,polygonFeaturesCount:l}}function ut(t,e={coordLength:2,fixRingWinding:!0}){return t.map(r=>mr(r,e))}function ct(t,e,r,o){r.push(e.length),e.push(...t);for(let n=t.length;n<o.coordLength;n++)e.push(0)}function Ee(t,e,r,o){r.push(e.length);for(let n of t){e.push(...n);for(let s=n.length;s<o.coordLength;s++)e.push(0)}}function lt(t,e,r,o,n){let s=0,a=[],i=[];for(let c of t){let l=c.map(f=>f.slice(0,2)),u=k(l.flat()),d=u<0;n.fixRingWinding&&(s===0&&!d||s>0&&d)&&(c.reverse(),u=-u),a.push(u),Ee(c,e,i,n),s++}s>0&&(o.push(a),r.push(i))}function mr(t,e){let{geometry:r}=t;if(r.type==="GeometryCollection")throw new Error("GeometryCollection type not supported");let o=[],n=[],s,a;switch(r.type){case"Point":a="Point",ct(r.coordinates,o,n,e);break;case"MultiPoint":a="Point",r.coordinates.map(i=>ct(i,o,n,e));break;case"LineString":a="LineString",Ee(r.coordinates,o,n,e);break;case"MultiLineString":a="LineString",r.coordinates.map(i=>Ee(i,o,n,e));break;case"Polygon":a="Polygon",s=[],lt(r.coordinates,o,n,s,e);break;case"MultiPolygon":a="Polygon",s=[],r.coordinates.map(i=>lt(i,o,n,s,e));break;default:throw new Error(`Unknown type: ${a}`)}return{...t,geometry:{type:a,indices:n,data:o,areas:s}}}function fe(t,e={fixRingWinding:!0,triangulate:!0}){let r=at(t),o=r.coordLength,{fixRingWinding:n}=e,s=ut(t,{coordLength:o,fixRingWinding:n});return it(s,r,{numericPropKeys:e.numericPropKeys,PositionDataType:e.PositionDataType||Float32Array,triangulate:e.triangulate})}var yr="4.2.0-alpha.6",Ce={dataType:null,batchType:null,name:"GeoJSON",id:"geojson",module:"geojson",version:yr,worker:!0,extensions:["geojson"],mimeTypes:["application/geo+json"],category:"geometry",text:!0,options:{geojson:{shape:"object-row-table"},json:{shape:"object-row-table",jsonpaths:["$","$.features"]},gis:{format:"geojson"}}},U={...Ce,parse:gr,parseTextSync:ht,parseInBatches:xr};async function gr(t,e){return ht(new TextDecoder().decode(t),e)}function ht(t,e){e={...U.options,...e},e.geojson={...U.options.geojson,...e.geojson},e.gis=e.gis||{};let r;try{r=JSON.parse(t)}catch{r={}}let o={shape:"geojson-table",type:"FeatureCollection",features:r?.features||[]};switch(e.gis.format){case"binary":return fe(o.features);default:return o}}function xr(t,e){e={...U.options,...e},e.json={...U.options.geojson,...e.geojson};let r=ae(t,e);switch(e.gis.format){case"binary":return wr(r);default:return r}}async function*wr(t){for await(let e of t)e.data=fe(e.data),yield e}function ft(t){let e=t.schema?.fields.findIndex(r=>r.name==="geometry")??-1;if(e>-1)return e;if(B(t)>0){let r=se(t,0);for(let o=0;o<oe(t);o++){let n=r?.[o];if(n&&typeof n=="object")return o}}throw new Error("Failed to detect geometry column")}function pt(t,e,r=[]){let o={};for(let n=0;n<oe(t);++n){let s=t.schema?.fields[n].name;s&&!r.includes(n)&&(o[s]=e[s])}return o}function dt(t,e,r,o){let n=ne(t,e);if(!n)return;let s=br(t,n,r),a=JSON.stringify(s);o.push(a)}function br(t,e,r){let o=pt(t,e,[r]),n=t.schema?.fields[r].name,s=n&&e[n];if(!s)return{type:"Feature",geometry:null,properties:o};if(typeof s=="string")try{s=JSON.parse(s)}catch{throw new Error("Invalid string geometry")}if(typeof s!="object"||typeof s?.type!="string")throw new Error("invalid geometry column value");return s?.type==="Feature"?{...s,properties:o}:{type:"Feature",geometry:s,properties:o}}var pe=class{chunkSize;strings=[];totalLength=0;textEncoder=new TextEncoder;constructor(e){this.chunkSize=e}push(...e){for(let r of e)this.strings.push(r),this.totalLength+=r.length}isFull(){return this.totalLength>=this.chunkSize}getArrayBufferBatch(){return this.textEncoder.encode(this.getStringBatch()).buffer}getStringBatch(){let e=this.strings.join("");return this.strings=[],this.totalLength=0,e}};async function*_e(t,e={}){let r={geojson:{},chunkSize:1e4,...e},o=new pe(r.chunkSize);r.geojson.featureArray||o.push(`{
|
|
14
14
|
`,`"type": "FeatureCollection",
|
|
15
15
|
`,`"features":
|
|
16
|
-
`),o.push("[");let n=r.geojson.geometryColumn,s=!0,a=0;for await(let i of
|
|
17
|
-
`),s=!1,
|
|
16
|
+
`),o.push("[");let n=r.geojson.geometryColumn,s=!0,a=0;for await(let i of t){let c=a+B(i);n||(n=n||ft(i));for(let u=a;u<c;++u)s||o.push(","),o.push(`
|
|
17
|
+
`),s=!1,dt(i,u,n,o),o.isFull()&&(yield o.getArrayBufferBatch()),a=c;let l=o.getArrayBufferBatch();l.byteLength>0&&(yield l)}o.push(`
|
|
18
18
|
`),o.push(`]
|
|
19
|
-
`),r.geojson.featureArray||o.push("}"),yield o.getArrayBufferBatch()}var
|
|
19
|
+
`),r.geojson.featureArray||o.push("}"),yield o.getArrayBufferBatch()}var mt={id:"geojson",version:"latest",module:"geojson",name:"GeoJSON",extensions:["geojson"],mimeTypes:["application/geo+json"],text:!0,options:{geojson:{featureArray:!1,geometryColumn:null}},async encode(t,e){let o=_e([t],e);return await be(o)},encodeInBatches:(t,e)=>_e(t,e)};return Ot(H);})();
|
|
20
20
|
return __exports__;
|
|
21
21
|
});
|