@loaders.gl/schema 4.2.0-alpha.4 → 4.2.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/dist/dist.dev.js +216 -147
  2. package/dist/dist.min.js +9 -0
  3. package/dist/index.cjs +128 -97
  4. package/dist/index.cjs.map +7 -0
  5. package/dist/index.d.ts +30 -30
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +9 -1
  8. package/dist/lib/mesh/convert-mesh.d.ts +2 -2
  9. package/dist/lib/mesh/convert-mesh.d.ts.map +1 -1
  10. package/dist/lib/mesh/convert-mesh.js +33 -18
  11. package/dist/lib/mesh/deduce-mesh-schema.d.ts +2 -2
  12. package/dist/lib/mesh/deduce-mesh-schema.d.ts.map +1 -1
  13. package/dist/lib/mesh/deduce-mesh-schema.js +54 -40
  14. package/dist/lib/mesh/mesh-to-arrow-table.js +46 -1
  15. package/dist/lib/mesh/mesh-utils.d.ts +2 -2
  16. package/dist/lib/mesh/mesh-utils.d.ts.map +1 -1
  17. package/dist/lib/mesh/mesh-utils.js +41 -28
  18. package/dist/lib/table/arrow-api/arrow-like-field.d.ts +1 -1
  19. package/dist/lib/table/arrow-api/arrow-like-field.d.ts.map +1 -1
  20. package/dist/lib/table/arrow-api/arrow-like-field.js +34 -25
  21. package/dist/lib/table/arrow-api/arrow-like-schema.d.ts +2 -2
  22. package/dist/lib/table/arrow-api/arrow-like-schema.d.ts.map +1 -1
  23. package/dist/lib/table/arrow-api/arrow-like-schema.js +71 -56
  24. package/dist/lib/table/arrow-api/arrow-like-table.d.ts +2 -2
  25. package/dist/lib/table/arrow-api/arrow-like-table.d.ts.map +1 -1
  26. package/dist/lib/table/arrow-api/arrow-like-table.js +57 -45
  27. package/dist/lib/table/arrow-api/arrow-like-type.d.ts +3 -3
  28. package/dist/lib/table/arrow-api/arrow-like-type.d.ts.map +1 -1
  29. package/dist/lib/table/arrow-api/arrow-like-type.js +371 -321
  30. package/dist/lib/table/arrow-api/enum.js +97 -48
  31. package/dist/lib/table/arrow-api/get-type-info.d.ts +1 -1
  32. package/dist/lib/table/arrow-api/get-type-info.d.ts.map +1 -1
  33. package/dist/lib/table/arrow-api/get-type-info.js +20 -14
  34. package/dist/lib/table/arrow-api/index.d.ts +4 -4
  35. package/dist/lib/table/arrow-api/index.d.ts.map +1 -1
  36. package/dist/lib/table/arrow-api/index.js +3 -1
  37. package/dist/lib/table/batches/base-table-batch-aggregator.d.ts +3 -3
  38. package/dist/lib/table/batches/base-table-batch-aggregator.d.ts.map +1 -1
  39. package/dist/lib/table/batches/base-table-batch-aggregator.js +56 -52
  40. package/dist/lib/table/batches/columnar-table-batch-aggregator.d.ts +3 -3
  41. package/dist/lib/table/batches/columnar-table-batch-aggregator.d.ts.map +1 -1
  42. package/dist/lib/table/batches/columnar-table-batch-aggregator.js +82 -67
  43. package/dist/lib/table/batches/row-table-batch-aggregator.d.ts +3 -3
  44. package/dist/lib/table/batches/row-table-batch-aggregator.d.ts.map +1 -1
  45. package/dist/lib/table/batches/row-table-batch-aggregator.js +76 -67
  46. package/dist/lib/table/batches/table-batch-aggregator.d.ts +2 -2
  47. package/dist/lib/table/batches/table-batch-aggregator.d.ts.map +1 -1
  48. package/dist/lib/table/batches/table-batch-aggregator.js +3 -1
  49. package/dist/lib/table/batches/table-batch-builder.d.ts +3 -3
  50. package/dist/lib/table/batches/table-batch-builder.d.ts.map +1 -1
  51. package/dist/lib/table/batches/table-batch-builder.js +131 -116
  52. package/dist/lib/table/simple-table/convert-table.d.ts +1 -1
  53. package/dist/lib/table/simple-table/convert-table.d.ts.map +1 -1
  54. package/dist/lib/table/simple-table/convert-table.js +97 -62
  55. package/dist/lib/table/simple-table/data-type.d.ts +2 -2
  56. package/dist/lib/table/simple-table/data-type.d.ts.map +1 -1
  57. package/dist/lib/table/simple-table/data-type.js +79 -76
  58. package/dist/lib/table/simple-table/make-table-from-batches.js +70 -67
  59. package/dist/lib/table/simple-table/make-table.d.ts +1 -1
  60. package/dist/lib/table/simple-table/make-table.d.ts.map +1 -1
  61. package/dist/lib/table/simple-table/make-table.js +85 -41
  62. package/dist/lib/table/simple-table/row-utils.js +38 -31
  63. package/dist/lib/table/simple-table/table-accessors.d.ts +1 -1
  64. package/dist/lib/table/simple-table/table-accessors.d.ts.map +1 -1
  65. package/dist/lib/table/simple-table/table-accessors.js +314 -270
  66. package/dist/lib/table/simple-table/table-column.d.ts +1 -1
  67. package/dist/lib/table/simple-table/table-column.d.ts.map +1 -1
  68. package/dist/lib/table/simple-table/table-column.js +36 -3
  69. package/dist/lib/table/simple-table/table-schema.d.ts +2 -2
  70. package/dist/lib/table/simple-table/table-schema.d.ts.map +1 -1
  71. package/dist/lib/table/simple-table/table-schema.js +69 -56
  72. package/dist/lib/utils/assert.js +6 -4
  73. package/dist/lib/utils/async-queue.js +79 -82
  74. package/dist/types/batch.d.ts +1 -1
  75. package/dist/types/batch.d.ts.map +1 -1
  76. package/dist/types/batch.js +3 -1
  77. package/dist/types/binary-geometries.d.ts +1 -1
  78. package/dist/types/binary-geometries.d.ts.map +1 -1
  79. package/dist/types/binary-geometries.js +3 -1
  80. package/dist/types/category-gis.d.ts +2 -2
  81. package/dist/types/category-gis.d.ts.map +1 -1
  82. package/dist/types/category-gis.js +3 -1
  83. package/dist/types/category-image.js +3 -1
  84. package/dist/types/category-mesh.d.ts +3 -3
  85. package/dist/types/category-mesh.d.ts.map +1 -1
  86. package/dist/types/category-mesh.js +3 -1
  87. package/dist/types/category-table.d.ts +3 -3
  88. package/dist/types/category-table.d.ts.map +1 -1
  89. package/dist/types/category-table.js +3 -1
  90. package/dist/types/category-texture.d.ts +1 -1
  91. package/dist/types/category-texture.d.ts.map +1 -1
  92. package/dist/types/category-texture.js +3 -1
  93. package/dist/types/flat-geometries.js +3 -1
  94. package/dist/types/schema.js +3 -1
  95. package/dist/types/types.js +3 -1
  96. package/package.json +8 -4
  97. package/src/index.ts +1 -1
  98. package/src/lib/table/arrow-api/arrow-like-field.ts +2 -2
  99. package/src/lib/table/arrow-api/arrow-like-type.ts +4 -2
  100. package/dist/index.js.map +0 -1
  101. package/dist/lib/mesh/convert-mesh.js.map +0 -1
  102. package/dist/lib/mesh/deduce-mesh-schema.js.map +0 -1
  103. package/dist/lib/mesh/mesh-to-arrow-table.js.map +0 -1
  104. package/dist/lib/mesh/mesh-utils.js.map +0 -1
  105. package/dist/lib/table/arrow-api/arrow-like-field.js.map +0 -1
  106. package/dist/lib/table/arrow-api/arrow-like-schema.js.map +0 -1
  107. package/dist/lib/table/arrow-api/arrow-like-table.js.map +0 -1
  108. package/dist/lib/table/arrow-api/arrow-like-type.js.map +0 -1
  109. package/dist/lib/table/arrow-api/enum.js.map +0 -1
  110. package/dist/lib/table/arrow-api/get-type-info.js.map +0 -1
  111. package/dist/lib/table/arrow-api/index.js.map +0 -1
  112. package/dist/lib/table/batches/base-table-batch-aggregator.js.map +0 -1
  113. package/dist/lib/table/batches/columnar-table-batch-aggregator.js.map +0 -1
  114. package/dist/lib/table/batches/row-table-batch-aggregator.js.map +0 -1
  115. package/dist/lib/table/batches/table-batch-aggregator.js.map +0 -1
  116. package/dist/lib/table/batches/table-batch-builder.js.map +0 -1
  117. package/dist/lib/table/simple-table/convert-table.js.map +0 -1
  118. package/dist/lib/table/simple-table/data-type.js.map +0 -1
  119. package/dist/lib/table/simple-table/make-table-from-batches.js.map +0 -1
  120. package/dist/lib/table/simple-table/make-table.js.map +0 -1
  121. package/dist/lib/table/simple-table/row-utils.js.map +0 -1
  122. package/dist/lib/table/simple-table/table-accessors.js.map +0 -1
  123. package/dist/lib/table/simple-table/table-column.js.map +0 -1
  124. package/dist/lib/table/simple-table/table-schema.js.map +0 -1
  125. package/dist/lib/utils/assert.js.map +0 -1
  126. package/dist/lib/utils/async-queue.js.map +0 -1
  127. package/dist/types/batch.js.map +0 -1
  128. package/dist/types/binary-geometries.js.map +0 -1
  129. package/dist/types/category-gis.js.map +0 -1
  130. package/dist/types/category-image.js.map +0 -1
  131. package/dist/types/category-mesh.js.map +0 -1
  132. package/dist/types/category-table.js.map +0 -1
  133. package/dist/types/category-texture.js.map +0 -1
  134. package/dist/types/flat-geometries.js.map +0 -1
  135. package/dist/types/schema.js.map +0 -1
  136. package/dist/types/types.js.map +0 -1
package/dist/dist.dev.js CHANGED
@@ -2,14 +2,20 @@
2
2
  if (typeof exports === 'object' && typeof module === 'object')
3
3
  module.exports = factory();
4
4
  else if (typeof define === 'function' && define.amd) define([], factory);
5
- else if (typeof exports === 'object') exports['loader'] = factory();
6
- else root['loader'] = factory();})(globalThis, function () {
5
+ else if (typeof exports === 'object') exports['loaders'] = factory();
6
+ else root['loaders'] = factory();})(globalThis, function () {
7
7
  "use strict";
8
8
  var __exports__ = (() => {
9
+ var __create = Object.create;
9
10
  var __defProp = Object.defineProperty;
10
11
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
11
12
  var __getOwnPropNames = Object.getOwnPropertyNames;
13
+ var __getProtoOf = Object.getPrototypeOf;
12
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;
16
+ var __commonJS = (cb, mod) => function __require() {
17
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
18
+ };
13
19
  var __export = (target, all) => {
14
20
  for (var name in all)
15
21
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -22,11 +28,31 @@ var __exports__ = (() => {
22
28
  }
23
29
  return to;
24
30
  };
31
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
32
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
33
+ // If the importer is in node compatibility mode or this is not an ESM
34
+ // file that has been converted to a CommonJS file using a Babel-
35
+ // compatible transform (i.e. "__esModule" has not been set), then set
36
+ // "default" to the CommonJS "module.exports" for node compatibility.
37
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
38
+ mod
39
+ ));
25
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
+ };
45
+
46
+ // external-global-plugin:@loaders.gl/core
47
+ var require_core = __commonJS({
48
+ "external-global-plugin:@loaders.gl/core"(exports, module) {
49
+ module.exports = globalThis.loaders;
50
+ }
51
+ });
26
52
 
27
- // src/index.ts
28
- var src_exports = {};
29
- __export(src_exports, {
53
+ // bundle.ts
54
+ var bundle_exports = {};
55
+ __export(bundle_exports, {
30
56
  ArrowLikeDataType: () => DataType,
31
57
  ArrowLikeField: () => ArrowLikeField,
32
58
  ArrowLikeSchema: () => ArrowLikeSchema,
@@ -95,10 +121,14 @@ var __exports__ = (() => {
95
121
  makeTableFromBatches: () => makeTableFromBatches,
96
122
  makeTableFromData: () => makeTableFromData
97
123
  });
124
+ __reExport(bundle_exports, __toESM(require_core(), 1));
98
125
 
99
126
  // src/lib/table/batches/base-table-batch-aggregator.ts
100
127
  var DEFAULT_ROW_COUNT = 100;
101
128
  var BaseTableBatchAggregator = class {
129
+ schema;
130
+ options;
131
+ shape;
102
132
  length = 0;
103
133
  rows = null;
104
134
  cursor = 0;
@@ -199,6 +229,8 @@ var __exports__ = (() => {
199
229
  // src/lib/table/batches/row-table-batch-aggregator.ts
200
230
  var DEFAULT_ROW_COUNT2 = 100;
201
231
  var RowTableBatchAggregator = class {
232
+ schema;
233
+ options;
202
234
  length = 0;
203
235
  objectRows = null;
204
236
  arrayRows = null;
@@ -264,6 +296,7 @@ var __exports__ = (() => {
264
296
  batchType: "data",
265
297
  data: rows,
266
298
  length: this.length,
299
+ // @ts-expect-error we should infer a schema
267
300
  schema: this.schema,
268
301
  cursor: this.cursor
269
302
  };
@@ -273,6 +306,7 @@ var __exports__ = (() => {
273
306
  // src/lib/table/batches/columnar-table-batch-aggregator.ts
274
307
  var DEFAULT_ROW_COUNT3 = 100;
275
308
  var ColumnarTableBatchAggregator = class {
309
+ schema;
276
310
  length = 0;
277
311
  allocated = 0;
278
312
  columns = {};
@@ -317,6 +351,7 @@ var __exports__ = (() => {
317
351
  };
318
352
  return batch;
319
353
  }
354
+ // HELPERS
320
355
  _reallocateColumns() {
321
356
  if (this.length < this.allocated) {
322
357
  return;
@@ -355,7 +390,9 @@ var __exports__ = (() => {
355
390
  _limitMB: 0
356
391
  };
357
392
  var ERR_MESSAGE = "TableBatchBuilder";
358
- var TableBatchBuilder = class {
393
+ var _TableBatchBuilder = class {
394
+ schema;
395
+ options;
359
396
  aggregator = null;
360
397
  batchCount = 0;
361
398
  bytesUsed = 0;
@@ -366,10 +403,7 @@ var __exports__ = (() => {
366
403
  rowBytes = 0;
367
404
  constructor(schema, options) {
368
405
  this.schema = schema;
369
- this.options = {
370
- ...DEFAULT_OPTIONS,
371
- ...options
372
- };
406
+ this.options = { ...DEFAULT_OPTIONS, ...options };
373
407
  }
374
408
  limitReached() {
375
409
  if (Boolean(this.options?.limit) && this.totalLength >= this.options.limit) {
@@ -380,6 +414,7 @@ var __exports__ = (() => {
380
414
  }
381
415
  return false;
382
416
  }
417
+ /** @deprecated Use addArrayRow or addObjectRow */
383
418
  addRow(row) {
384
419
  if (this.limitReached()) {
385
420
  return;
@@ -393,6 +428,7 @@ var __exports__ = (() => {
393
428
  this.addObjectRow(row);
394
429
  }
395
430
  }
431
+ /** Add one row to the batch */
396
432
  addArrayRow(row) {
397
433
  if (!this.aggregator) {
398
434
  const TableBatchType = this._getTableBatchType();
@@ -400,6 +436,7 @@ var __exports__ = (() => {
400
436
  }
401
437
  this.aggregator.addArrayRow(row);
402
438
  }
439
+ /** Add one row to the batch */
403
440
  addObjectRow(row) {
404
441
  if (!this.aggregator) {
405
442
  const TableBatchType = this._getTableBatchType();
@@ -407,6 +444,7 @@ var __exports__ = (() => {
407
444
  }
408
445
  this.aggregator.addObjectRow(row);
409
446
  }
447
+ /** Mark an incoming raw memory chunk has completed */
410
448
  chunkComplete(chunk) {
411
449
  if (chunk instanceof ArrayBuffer) {
412
450
  this.bytesUsed += chunk.byteLength;
@@ -422,6 +460,7 @@ var __exports__ = (() => {
422
460
  getFinalBatch(options) {
423
461
  return this._getBatch(options);
424
462
  }
463
+ // INTERNAL
425
464
  _estimateRowMB(row) {
426
465
  return Array.isArray(row) ? row.length * 8 : Object.keys(row).length * 8;
427
466
  }
@@ -443,6 +482,9 @@ var __exports__ = (() => {
443
482
  this.lastBatchEmittedMs = Date.now();
444
483
  return true;
445
484
  }
485
+ /**
486
+ * bytesUsed can be set via chunkComplete or via getBatch*
487
+ */
446
488
  _getBatch(options) {
447
489
  if (!this.aggregator) {
448
490
  return null;
@@ -466,15 +508,17 @@ var __exports__ = (() => {
466
508
  case "columnar-table":
467
509
  return ColumnarTableBatchAggregator;
468
510
  case "arrow-table":
469
- if (!TableBatchBuilder.ArrowBatch) {
511
+ if (!_TableBatchBuilder.ArrowBatch) {
470
512
  throw new Error(ERR_MESSAGE);
471
513
  }
472
- return TableBatchBuilder.ArrowBatch;
514
+ return _TableBatchBuilder.ArrowBatch;
473
515
  default:
474
516
  return BaseTableBatchAggregator;
475
517
  }
476
518
  }
477
519
  };
520
+ var TableBatchBuilder = _TableBatchBuilder;
521
+ __publicField(TableBatchBuilder, "ArrowBatch");
478
522
 
479
523
  // src/lib/table/simple-table/table-accessors.ts
480
524
  function isTable(table) {
@@ -549,7 +593,9 @@ var __exports__ = (() => {
549
593
  return column[rowIndex];
550
594
  case "arrow-table":
551
595
  const arrowTable = table.data;
552
- const arrowColumnIndex = arrowTable.schema.fields.findIndex((field) => field.name === columnName);
596
+ const arrowColumnIndex = arrowTable.schema.fields.findIndex(
597
+ (field) => field.name === columnName
598
+ );
553
599
  return arrowTable.getChildAt(arrowColumnIndex)?.get(rowIndex);
554
600
  default:
555
601
  throw new Error("todo");
@@ -708,6 +754,10 @@ var __exports__ = (() => {
708
754
 
709
755
  // src/lib/table/arrow-api/arrow-like-field.ts
710
756
  var ArrowLikeField = class {
757
+ name;
758
+ type;
759
+ nullable;
760
+ metadata;
711
761
  constructor(name, type, nullable = false, metadata = /* @__PURE__ */ new Map()) {
712
762
  this.name = name;
713
763
  this.type = type;
@@ -724,16 +774,21 @@ var __exports__ = (() => {
724
774
  return this.name === other.name && this.type === other.type && this.nullable === other.nullable && this.metadata === other.metadata;
725
775
  }
726
776
  toString() {
727
- return `${this.type}${this.nullable ? ", nullable" : ""}${this.metadata ? `, metadata: ${this.metadata}` : ""}`;
777
+ return `${JSON.stringify(this.type)}${this.nullable ? ", nullable" : ""}${this.metadata ? `, metadata: ${JSON.stringify(this.metadata)}` : ""}`;
728
778
  }
729
779
  };
730
780
 
731
781
  // src/lib/table/arrow-api/arrow-like-schema.ts
732
782
  var ArrowLikeSchema = class {
783
+ fields;
784
+ metadata;
733
785
  constructor(fields, metadata = /* @__PURE__ */ new Map()) {
734
- this.fields = fields.map((field) => new ArrowLikeField(field.name, field.type, field.nullable, field.metadata));
786
+ this.fields = fields.map(
787
+ (field) => new ArrowLikeField(field.name, field.type, field.nullable, field.metadata)
788
+ );
735
789
  this.metadata = metadata instanceof Map ? metadata : new Map(Object.entries(metadata));
736
790
  }
791
+ // TODO - arrow only seems to compare fields, not metadata
737
792
  compareTo(other) {
738
793
  if (this.metadata !== other.metadata) {
739
794
  return false;
@@ -804,22 +859,13 @@ var __exports__ = (() => {
804
859
  function getDataTypeFromArray(array) {
805
860
  let type = getDataTypeFromTypedArray(array);
806
861
  if (type !== "null") {
807
- return {
808
- type,
809
- nullable: false
810
- };
862
+ return { type, nullable: false };
811
863
  }
812
864
  if (array.length > 0) {
813
865
  type = getDataTypeFromValue(array[0]);
814
- return {
815
- type,
816
- nullable: true
817
- };
866
+ return { type, nullable: true };
818
867
  }
819
- return {
820
- type: "null",
821
- nullable: true
822
- };
868
+ return { type: "null", nullable: true };
823
869
  }
824
870
  function getDataTypeFromTypedArray(array) {
825
871
  switch (array.constructor) {
@@ -889,10 +935,7 @@ var __exports__ = (() => {
889
935
  const field = deduceFieldFromColumn(column, columnName);
890
936
  fields.push(field);
891
937
  }
892
- return {
893
- fields,
894
- metadata: {}
895
- };
938
+ return { fields, metadata: {} };
896
939
  }
897
940
  function deduceSchemaFromRows(rowTable) {
898
941
  if (!rowTable.length) {
@@ -903,10 +946,7 @@ var __exports__ = (() => {
903
946
  for (const [columnName, value] of Object.entries(row0)) {
904
947
  fields.push(deduceFieldFromValue(value, columnName));
905
948
  }
906
- return {
907
- fields,
908
- metadata: {}
909
- };
949
+ return { fields, metadata: {} };
910
950
  }
911
951
  function deduceFieldFromColumn(column, name) {
912
952
  if (ArrayBuffer.isView(column)) {
@@ -915,6 +955,7 @@ var __exports__ = (() => {
915
955
  name,
916
956
  type: type.type || "null",
917
957
  nullable: type.nullable
958
+ // metadata: {}
918
959
  };
919
960
  }
920
961
  if (Array.isArray(column) && column.length > 0) {
@@ -924,6 +965,7 @@ var __exports__ = (() => {
924
965
  name,
925
966
  type,
926
967
  nullable: true
968
+ // metadata: {},
927
969
  };
928
970
  }
929
971
  throw new Error("empty table");
@@ -934,11 +976,14 @@ var __exports__ = (() => {
934
976
  name,
935
977
  type,
936
978
  nullable: true
979
+ // metadata: {}
937
980
  };
938
981
  }
939
982
 
940
983
  // src/lib/table/arrow-api/arrow-like-table.ts
941
984
  var ArrowLikeVector = class {
985
+ table;
986
+ columnName;
942
987
  constructor(table, columnName) {
943
988
  this.table = table;
944
989
  this.columnName = columnName;
@@ -959,14 +1004,16 @@ var __exports__ = (() => {
959
1004
  }
960
1005
  };
961
1006
  var ArrowLikeTable = class {
1007
+ schema;
1008
+ table;
962
1009
  constructor(table) {
963
1010
  const schema = table.schema || deduceTableSchema(table);
964
1011
  this.schema = new ArrowLikeSchema(schema.fields, schema.metadata);
965
- this.table = {
966
- ...table,
967
- schema
968
- };
1012
+ this.table = { ...table, schema };
969
1013
  }
1014
+ // get schema() {
1015
+ // return this.table.schema;
1016
+ // }
970
1017
  get data() {
971
1018
  return this.table.shape === "geojson-table" ? this.table.features : this.table.data;
972
1019
  }
@@ -979,6 +1026,9 @@ var __exports__ = (() => {
979
1026
  getChild(columnName) {
980
1027
  return new ArrowLikeVector(this.table, columnName);
981
1028
  }
1029
+ // getChildAt(columnIndex: number): ArrowLikeVector {
1030
+ // return
1031
+ // }
982
1032
  };
983
1033
 
984
1034
  // src/lib/table/simple-table/make-table.ts
@@ -986,31 +1036,19 @@ var __exports__ = (() => {
986
1036
  let table;
987
1037
  switch (getTableShapeFromData(data)) {
988
1038
  case "array-row-table":
989
- table = {
990
- shape: "array-row-table",
991
- data
992
- };
1039
+ table = { shape: "array-row-table", data };
993
1040
  break;
994
1041
  case "object-row-table":
995
- table = {
996
- shape: "object-row-table",
997
- data
998
- };
1042
+ table = { shape: "object-row-table", data };
999
1043
  break;
1000
1044
  case "columnar-table":
1001
- table = {
1002
- shape: "columnar-table",
1003
- data
1004
- };
1045
+ table = { shape: "columnar-table", data };
1005
1046
  break;
1006
1047
  default:
1007
1048
  throw new Error("table");
1008
1049
  }
1009
1050
  const schema = deduceTableSchema(table);
1010
- return {
1011
- ...table,
1012
- schema
1013
- };
1051
+ return { ...table, schema };
1014
1052
  }
1015
1053
  function getTableShapeFromData(data) {
1016
1054
  if (Array.isArray(data)) {
@@ -1033,11 +1071,7 @@ var __exports__ = (() => {
1033
1071
 
1034
1072
  // src/lib/table/simple-table/make-table-from-batches.ts
1035
1073
  function makeBatchFromTable(table) {
1036
- return {
1037
- ...table,
1038
- length: getTableLength(table),
1039
- batchType: "data"
1040
- };
1074
+ return { ...table, length: getTableLength(table), batchType: "data" };
1041
1075
  }
1042
1076
  async function makeTableFromBatches(batchIterator) {
1043
1077
  let arrayRows;
@@ -1081,24 +1115,11 @@ var __exports__ = (() => {
1081
1115
  }
1082
1116
  switch (shape) {
1083
1117
  case "array-row-table":
1084
- return {
1085
- shape: "array-row-table",
1086
- data: arrayRows,
1087
- schema
1088
- };
1118
+ return { shape: "array-row-table", data: arrayRows, schema };
1089
1119
  case "object-row-table":
1090
- return {
1091
- shape: "object-row-table",
1092
- data: objectRows,
1093
- schema
1094
- };
1120
+ return { shape: "object-row-table", data: objectRows, schema };
1095
1121
  case "geojson-table":
1096
- return {
1097
- shape: "geojson-table",
1098
- type: "FeatureCollection",
1099
- features,
1100
- schema
1101
- };
1122
+ return { shape: "geojson-table", type: "FeatureCollection", features, schema };
1102
1123
  default:
1103
1124
  return null;
1104
1125
  }
@@ -1136,10 +1157,7 @@ var __exports__ = (() => {
1136
1157
  const schema = table.schema || deduceTableSchema(table);
1137
1158
  const fields = table.schema?.fields || [];
1138
1159
  if (table.shape === "columnar-table") {
1139
- return {
1140
- ...table,
1141
- schema
1142
- };
1160
+ return { ...table, schema };
1143
1161
  }
1144
1162
  const length = getTableLength(table);
1145
1163
  const columns = {};
@@ -1218,30 +1236,23 @@ var __exports__ = (() => {
1218
1236
  maxY = y > maxY ? y : maxY;
1219
1237
  maxZ = z > maxZ ? z : maxZ;
1220
1238
  }
1221
- return [[minX, minY, minZ], [maxX, maxY, maxZ]];
1239
+ return [
1240
+ [minX, minY, minZ],
1241
+ [maxX, maxY, maxZ]
1242
+ ];
1222
1243
  }
1223
1244
 
1224
1245
  // src/lib/mesh/deduce-mesh-schema.ts
1225
1246
  function deduceMeshSchema(attributes, metadata = {}) {
1226
1247
  const fields = deduceMeshFields(attributes);
1227
- return {
1228
- fields,
1229
- metadata
1230
- };
1248
+ return { fields, metadata };
1231
1249
  }
1232
1250
  function deduceMeshField(name, attribute, optionalMetadata) {
1233
1251
  const type = getDataTypeFromTypedArray(attribute.value);
1234
1252
  const metadata = optionalMetadata ? optionalMetadata : makeMeshAttributeMetadata(attribute);
1235
1253
  return {
1236
1254
  name,
1237
- type: {
1238
- type: "fixed-size-list",
1239
- listSize: attribute.size,
1240
- children: [{
1241
- name: "value",
1242
- type
1243
- }]
1244
- },
1255
+ type: { type: "fixed-size-list", listSize: attribute.size, children: [{ name: "value", type }] },
1245
1256
  nullable: false,
1246
1257
  metadata
1247
1258
  };
@@ -1269,7 +1280,7 @@ var __exports__ = (() => {
1269
1280
  }
1270
1281
 
1271
1282
  // src/lib/table/arrow-api/enum.ts
1272
- var Type = function(Type2) {
1283
+ var Type = /* @__PURE__ */ ((Type2) => {
1273
1284
  Type2[Type2["NONE"] = 0] = "NONE";
1274
1285
  Type2[Type2["Null"] = 1] = "Null";
1275
1286
  Type2[Type2["Int"] = 2] = "Int";
@@ -1315,74 +1326,78 @@ var __exports__ = (() => {
1315
1326
  Type2[Type2["IntervalDayTime"] = -25] = "IntervalDayTime";
1316
1327
  Type2[Type2["IntervalYearMonth"] = -26] = "IntervalYearMonth";
1317
1328
  return Type2;
1318
- }({});
1329
+ })(Type || {});
1319
1330
 
1320
1331
  // src/lib/table/arrow-api/arrow-like-type.ts
1321
1332
  var DataType = class {
1322
1333
  static isNull(x) {
1323
- return x && x.typeId === Type.Null;
1334
+ return x && x.typeId === 1 /* Null */;
1324
1335
  }
1325
1336
  static isInt(x) {
1326
- return x && x.typeId === Type.Int;
1337
+ return x && x.typeId === 2 /* Int */;
1327
1338
  }
1328
1339
  static isFloat(x) {
1329
- return x && x.typeId === Type.Float;
1340
+ return x && x.typeId === 3 /* Float */;
1330
1341
  }
1331
1342
  static isBinary(x) {
1332
- return x && x.typeId === Type.Binary;
1343
+ return x && x.typeId === 4 /* Binary */;
1333
1344
  }
1334
1345
  static isUtf8(x) {
1335
- return x && x.typeId === Type.Utf8;
1346
+ return x && x.typeId === 5 /* Utf8 */;
1336
1347
  }
1337
1348
  static isBool(x) {
1338
- return x && x.typeId === Type.Bool;
1349
+ return x && x.typeId === 6 /* Bool */;
1339
1350
  }
1340
1351
  static isDecimal(x) {
1341
- return x && x.typeId === Type.Decimal;
1352
+ return x && x.typeId === 7 /* Decimal */;
1342
1353
  }
1343
1354
  static isDate(x) {
1344
- return x && x.typeId === Type.Date;
1355
+ return x && x.typeId === 8 /* Date */;
1345
1356
  }
1346
1357
  static isTime(x) {
1347
- return x && x.typeId === Type.Time;
1358
+ return x && x.typeId === 9 /* Time */;
1348
1359
  }
1349
1360
  static isTimestamp(x) {
1350
- return x && x.typeId === Type.Timestamp;
1361
+ return x && x.typeId === 10 /* Timestamp */;
1351
1362
  }
1352
1363
  static isInterval(x) {
1353
- return x && x.typeId === Type.Interval;
1364
+ return x && x.typeId === 11 /* Interval */;
1354
1365
  }
1355
1366
  static isList(x) {
1356
- return x && x.typeId === Type.List;
1367
+ return x && x.typeId === 12 /* List */;
1357
1368
  }
1358
1369
  static isStruct(x) {
1359
- return x && x.typeId === Type.Struct;
1370
+ return x && x.typeId === 13 /* Struct */;
1360
1371
  }
1361
1372
  static isUnion(x) {
1362
- return x && x.typeId === Type.Union;
1373
+ return x && x.typeId === 14 /* Union */;
1363
1374
  }
1364
1375
  static isFixedSizeBinary(x) {
1365
- return x && x.typeId === Type.FixedSizeBinary;
1376
+ return x && x.typeId === 15 /* FixedSizeBinary */;
1366
1377
  }
1367
1378
  static isFixedSizeList(x) {
1368
- return x && x.typeId === Type.FixedSizeList;
1379
+ return x && x.typeId === 16 /* FixedSizeList */;
1369
1380
  }
1370
1381
  static isMap(x) {
1371
- return x && x.typeId === Type.Map;
1382
+ return x && x.typeId === 17 /* Map */;
1372
1383
  }
1373
1384
  static isDictionary(x) {
1374
- return x && x.typeId === Type.Dictionary;
1385
+ return x && x.typeId === -1 /* Dictionary */;
1375
1386
  }
1376
1387
  get typeId() {
1377
- return Type.NONE;
1388
+ return 0 /* NONE */;
1378
1389
  }
1390
+ // get ArrayType(): AnyArrayType {
1391
+ // return Int8Array;
1392
+ // }
1393
+ // get ArrayType() { return Array; }
1379
1394
  compareTo(other) {
1380
1395
  return this === other;
1381
1396
  }
1382
1397
  };
1383
1398
  var Null = class extends DataType {
1384
1399
  get typeId() {
1385
- return Type.Null;
1400
+ return 1 /* Null */;
1386
1401
  }
1387
1402
  get [Symbol.toStringTag]() {
1388
1403
  return "Null";
@@ -1393,8 +1408,11 @@ var __exports__ = (() => {
1393
1408
  };
1394
1409
  var Bool = class extends DataType {
1395
1410
  get typeId() {
1396
- return Type.Bool;
1411
+ return 6 /* Bool */;
1397
1412
  }
1413
+ // get ArrayType() {
1414
+ // return Uint8Array;
1415
+ // }
1398
1416
  get [Symbol.toStringTag]() {
1399
1417
  return "Bool";
1400
1418
  }
@@ -1403,14 +1421,30 @@ var __exports__ = (() => {
1403
1421
  }
1404
1422
  };
1405
1423
  var Int = class extends DataType {
1424
+ isSigned;
1425
+ bitWidth;
1406
1426
  constructor(isSigned, bitWidth) {
1407
1427
  super();
1408
1428
  this.isSigned = isSigned;
1409
1429
  this.bitWidth = bitWidth;
1410
1430
  }
1411
1431
  get typeId() {
1412
- return Type.Int;
1413
- }
1432
+ return 2 /* Int */;
1433
+ }
1434
+ // get ArrayType() {
1435
+ // switch (this.bitWidth) {
1436
+ // case 8:
1437
+ // return this.isSigned ? Int8Array : Uint8Array;
1438
+ // case 16:
1439
+ // return this.isSigned ? Int16Array : Uint16Array;
1440
+ // case 32:
1441
+ // return this.isSigned ? Int32Array : Uint32Array;
1442
+ // case 64:
1443
+ // return this.isSigned ? Int32Array : Uint32Array;
1444
+ // default:
1445
+ // throw new Error(`Unrecognized ${this[Symbol.toStringTag]} type`);
1446
+ // }
1447
+ // }
1414
1448
  get [Symbol.toStringTag]() {
1415
1449
  return "Int";
1416
1450
  }
@@ -1464,13 +1498,26 @@ var __exports__ = (() => {
1464
1498
  DOUBLE: 64
1465
1499
  };
1466
1500
  var Float = class extends DataType {
1501
+ precision;
1467
1502
  constructor(precision) {
1468
1503
  super();
1469
1504
  this.precision = precision;
1470
1505
  }
1471
1506
  get typeId() {
1472
- return Type.Float;
1473
- }
1507
+ return 3 /* Float */;
1508
+ }
1509
+ // get ArrayType() {
1510
+ // switch (this.precision) {
1511
+ // case Precision.HALF:
1512
+ // return Uint16Array;
1513
+ // case Precision.SINGLE:
1514
+ // return Float32Array;
1515
+ // case Precision.DOUBLE:
1516
+ // return Float64Array;
1517
+ // default:
1518
+ // throw new Error(`Unrecognized ${this[Symbol.toStringTag]} type`);
1519
+ // }
1520
+ // }
1474
1521
  get [Symbol.toStringTag]() {
1475
1522
  return "Float";
1476
1523
  }
@@ -1498,7 +1545,7 @@ var __exports__ = (() => {
1498
1545
  super();
1499
1546
  }
1500
1547
  get typeId() {
1501
- return Type.Binary;
1548
+ return 4 /* Binary */;
1502
1549
  }
1503
1550
  toString() {
1504
1551
  return "Binary";
@@ -1509,8 +1556,11 @@ var __exports__ = (() => {
1509
1556
  };
1510
1557
  var Utf8 = class extends DataType {
1511
1558
  get typeId() {
1512
- return Type.Utf8;
1559
+ return 5 /* Utf8 */;
1513
1560
  }
1561
+ // get ArrayType() {
1562
+ // return Uint8Array;
1563
+ // }
1514
1564
  get [Symbol.toStringTag]() {
1515
1565
  return "Utf8";
1516
1566
  }
@@ -1523,13 +1573,17 @@ var __exports__ = (() => {
1523
1573
  MILLISECOND: 1
1524
1574
  };
1525
1575
  var Date2 = class extends DataType {
1576
+ unit;
1526
1577
  constructor(unit) {
1527
1578
  super();
1528
1579
  this.unit = unit;
1529
1580
  }
1530
1581
  get typeId() {
1531
- return Type.Date;
1582
+ return 8 /* Date */;
1532
1583
  }
1584
+ // get ArrayType() {
1585
+ // return Int32Array;
1586
+ // }
1533
1587
  get [Symbol.toStringTag]() {
1534
1588
  return "Date";
1535
1589
  }
@@ -1554,13 +1608,15 @@ var __exports__ = (() => {
1554
1608
  NANOSECOND: 1e9
1555
1609
  };
1556
1610
  var Time = class extends DataType {
1611
+ unit;
1612
+ bitWidth;
1557
1613
  constructor(unit, bitWidth) {
1558
1614
  super();
1559
1615
  this.unit = unit;
1560
1616
  this.bitWidth = bitWidth;
1561
1617
  }
1562
1618
  get typeId() {
1563
- return Type.Time;
1619
+ return 9 /* Time */;
1564
1620
  }
1565
1621
  toString() {
1566
1622
  return `Time${this.bitWidth}<${TimeUnit[this.unit]}>`;
@@ -1568,6 +1624,9 @@ var __exports__ = (() => {
1568
1624
  get [Symbol.toStringTag]() {
1569
1625
  return "Time";
1570
1626
  }
1627
+ // get ArrayType() {
1628
+ // return Int32Array;
1629
+ // }
1571
1630
  };
1572
1631
  var TimeSecond = class extends Time {
1573
1632
  constructor() {
@@ -1580,14 +1639,19 @@ var __exports__ = (() => {
1580
1639
  }
1581
1640
  };
1582
1641
  var Timestamp = class extends DataType {
1642
+ unit;
1643
+ timezone;
1583
1644
  constructor(unit, timezone = null) {
1584
1645
  super();
1585
1646
  this.unit = unit;
1586
1647
  this.timezone = timezone;
1587
1648
  }
1588
1649
  get typeId() {
1589
- return Type.Timestamp;
1650
+ return 10 /* Timestamp */;
1590
1651
  }
1652
+ // get ArrayType() {
1653
+ // return Int32Array;
1654
+ // }
1591
1655
  get [Symbol.toStringTag]() {
1592
1656
  return "Timestamp";
1593
1657
  }
@@ -1620,13 +1684,17 @@ var __exports__ = (() => {
1620
1684
  YEAR_MONTH: 1
1621
1685
  };
1622
1686
  var Interval = class extends DataType {
1687
+ unit;
1623
1688
  constructor(unit) {
1624
1689
  super();
1625
1690
  this.unit = unit;
1626
1691
  }
1627
1692
  get typeId() {
1628
- return Type.Interval;
1693
+ return 11 /* Interval */;
1629
1694
  }
1695
+ // get ArrayType() {
1696
+ // return Int32Array;
1697
+ // }
1630
1698
  get [Symbol.toStringTag]() {
1631
1699
  return "Interval";
1632
1700
  }
@@ -1645,13 +1713,15 @@ var __exports__ = (() => {
1645
1713
  }
1646
1714
  };
1647
1715
  var FixedSizeList = class extends DataType {
1716
+ listSize;
1717
+ children;
1648
1718
  constructor(listSize, child) {
1649
1719
  super();
1650
1720
  this.listSize = listSize;
1651
1721
  this.children = [child];
1652
1722
  }
1653
1723
  get typeId() {
1654
- return Type.FixedSizeList;
1724
+ return 16 /* FixedSizeList */;
1655
1725
  }
1656
1726
  get valueType() {
1657
1727
  return this.children[0].type;
@@ -1659,23 +1729,27 @@ var __exports__ = (() => {
1659
1729
  get valueField() {
1660
1730
  return this.children[0];
1661
1731
  }
1732
+ // get ArrayType() {
1733
+ // return this.valueType.ArrayType;
1734
+ // }
1662
1735
  get [Symbol.toStringTag]() {
1663
1736
  return "FixedSizeList";
1664
1737
  }
1665
1738
  toString() {
1666
- return `FixedSizeList[${this.listSize}]<${this.valueType}>`;
1739
+ return `FixedSizeList[${this.listSize}]<${JSON.stringify(this.valueType)}>`;
1667
1740
  }
1668
1741
  };
1669
1742
  var Struct = class extends DataType {
1743
+ children;
1670
1744
  constructor(children) {
1671
1745
  super();
1672
1746
  this.children = children;
1673
1747
  }
1674
1748
  get typeId() {
1675
- return Type.Struct;
1749
+ return 13 /* Struct */;
1676
1750
  }
1677
1751
  toString() {
1678
- return `Struct<{${this.children.map((f) => `${f.name}:${f.type}`).join(", ")}}>`;
1752
+ return `Struct<{${this.children.map((f) => `${f.name}:${JSON.stringify(f.type)}`).join(", ")}}>`;
1679
1753
  }
1680
1754
  get [Symbol.toStringTag]() {
1681
1755
  return "Struct";
@@ -1713,6 +1787,9 @@ var __exports__ = (() => {
1713
1787
  }
1714
1788
  };
1715
1789
  var AsyncQueue = class {
1790
+ _values;
1791
+ _settlers;
1792
+ _closed;
1716
1793
  constructor() {
1717
1794
  this._values = new ArrayQueue();
1718
1795
  this._settlers = new ArrayQueue();
@@ -1720,9 +1797,7 @@ var __exports__ = (() => {
1720
1797
  }
1721
1798
  close() {
1722
1799
  while (this._settlers.length > 0) {
1723
- this._settlers.dequeue().resolve({
1724
- done: true
1725
- });
1800
+ this._settlers.dequeue().resolve({ done: true });
1726
1801
  }
1727
1802
  this._closed = true;
1728
1803
  }
@@ -1741,41 +1816,35 @@ var __exports__ = (() => {
1741
1816
  if (value instanceof Error) {
1742
1817
  settler.reject(value);
1743
1818
  } else {
1744
- settler.resolve({
1745
- value
1746
- });
1819
+ settler.resolve({ value });
1747
1820
  }
1748
1821
  } else {
1749
1822
  this._values.enqueue(value);
1750
1823
  }
1751
1824
  }
1825
+ /**
1826
+ * @returns a Promise for an IteratorResult
1827
+ */
1752
1828
  next() {
1753
1829
  if (this._values.length > 0) {
1754
1830
  const value = this._values.dequeue();
1755
1831
  if (value instanceof Error) {
1756
1832
  return Promise.reject(value);
1757
1833
  }
1758
- return Promise.resolve({
1759
- value
1760
- });
1834
+ return Promise.resolve({ value });
1761
1835
  }
1762
1836
  if (this._closed) {
1763
1837
  if (this._settlers.length > 0) {
1764
1838
  throw new Error("Illegal internal state");
1765
1839
  }
1766
- return Promise.resolve({
1767
- done: true
1768
- });
1840
+ return Promise.resolve({ done: true });
1769
1841
  }
1770
1842
  return new Promise((resolve, reject) => {
1771
- this._settlers.enqueue({
1772
- resolve,
1773
- reject
1774
- });
1843
+ this._settlers.enqueue({ resolve, reject });
1775
1844
  });
1776
1845
  }
1777
1846
  };
1778
- return __toCommonJS(src_exports);
1847
+ return __toCommonJS(bundle_exports);
1779
1848
  })();
1780
1849
  return __exports__;
1781
1850
  });