@loaders.gl/json 4.0.0-alpha.23 → 4.0.0-alpha.25

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 (89) hide show
  1. package/dist/dist.min.js +87 -51
  2. package/dist/es5/geojson-loader.js +14 -5
  3. package/dist/es5/geojson-loader.js.map +1 -1
  4. package/dist/es5/geojson-writer.js.map +1 -1
  5. package/dist/es5/json-loader.js +1 -1
  6. package/dist/es5/json-writer.js +1 -1
  7. package/dist/es5/json-writer.js.map +1 -1
  8. package/dist/es5/lib/encoder-utils/encode-table-row.js +54 -0
  9. package/dist/es5/lib/encoder-utils/encode-table-row.js.map +1 -0
  10. package/dist/es5/lib/encoder-utils/encode-utils.js.map +1 -0
  11. package/dist/es5/lib/encoder-utils/utf8-encoder.js.map +1 -0
  12. package/dist/es5/lib/encoders/geojson-encoder.js +47 -84
  13. package/dist/es5/lib/encoders/geojson-encoder.js.map +1 -1
  14. package/dist/es5/lib/encoders/json-encoder.js +3 -3
  15. package/dist/es5/lib/encoders/json-encoder.js.map +1 -1
  16. package/dist/es5/ndgeoson-loader.js +1 -1
  17. package/dist/es5/ndjson-loader.js +1 -1
  18. package/dist/esm/geojson-loader.js +14 -5
  19. package/dist/esm/geojson-loader.js.map +1 -1
  20. package/dist/esm/geojson-writer.js.map +1 -1
  21. package/dist/esm/json-loader.js +1 -1
  22. package/dist/esm/json-writer.js +1 -1
  23. package/dist/esm/json-writer.js.map +1 -1
  24. package/dist/esm/lib/encoder-utils/encode-table-row.js +44 -0
  25. package/dist/esm/lib/encoder-utils/encode-table-row.js.map +1 -0
  26. package/dist/esm/lib/encoder-utils/encode-utils.js.map +1 -0
  27. package/dist/esm/lib/encoder-utils/utf8-encoder.js.map +1 -0
  28. package/dist/esm/lib/encoders/geojson-encoder.js +9 -52
  29. package/dist/esm/lib/encoders/geojson-encoder.js.map +1 -1
  30. package/dist/esm/lib/encoders/json-encoder.js +3 -3
  31. package/dist/esm/lib/encoders/json-encoder.js.map +1 -1
  32. package/dist/esm/ndgeoson-loader.js +1 -1
  33. package/dist/esm/ndjson-loader.js +1 -1
  34. package/dist/geojson-loader.d.ts.map +1 -1
  35. package/dist/geojson-worker.js +14 -183
  36. package/dist/geojson-writer.d.ts +8 -3
  37. package/dist/geojson-writer.d.ts.map +1 -1
  38. package/dist/json-writer.d.ts +13 -3
  39. package/dist/json-writer.d.ts.map +1 -1
  40. package/dist/lib/encoder-utils/encode-table-row.d.ts +7 -0
  41. package/dist/lib/encoder-utils/encode-table-row.d.ts.map +1 -0
  42. package/dist/lib/encoder-utils/encode-utils.d.ts.map +1 -0
  43. package/dist/lib/encoder-utils/utf8-encoder.d.ts.map +1 -0
  44. package/dist/lib/encoders/geojson-encoder.d.ts +2 -8
  45. package/dist/lib/encoders/geojson-encoder.d.ts.map +1 -1
  46. package/dist/lib/encoders/json-encoder.d.ts +1 -10
  47. package/dist/lib/encoders/json-encoder.d.ts.map +1 -1
  48. package/package.json +5 -5
  49. package/src/geojson-loader.ts +19 -5
  50. package/src/geojson-writer.ts +8 -3
  51. package/src/json-writer.ts +12 -4
  52. package/src/lib/encoder-utils/encode-table-row.ts +69 -0
  53. package/src/lib/encoders/geojson-encoder.ts +15 -78
  54. package/src/lib/encoders/json-encoder.ts +3 -11
  55. package/dist/bundle.js +0 -5
  56. package/dist/es5/lib/encoders/encode-utils.js.map +0 -1
  57. package/dist/es5/lib/encoders/utf8-encoder.js.map +0 -1
  58. package/dist/esm/lib/encoders/encode-utils.js.map +0 -1
  59. package/dist/esm/lib/encoders/utf8-encoder.js.map +0 -1
  60. package/dist/geojson-loader.js +0 -79
  61. package/dist/geojson-writer.js +0 -22
  62. package/dist/index.js +0 -24
  63. package/dist/json-loader.js +0 -42
  64. package/dist/json-writer.js +0 -18
  65. package/dist/lib/clarinet/clarinet.js +0 -535
  66. package/dist/lib/encoders/encode-utils.d.ts.map +0 -1
  67. package/dist/lib/encoders/encode-utils.js +0 -47
  68. package/dist/lib/encoders/geojson-encoder.js +0 -104
  69. package/dist/lib/encoders/json-encoder.js +0 -22
  70. package/dist/lib/encoders/utf8-encoder.d.ts.map +0 -1
  71. package/dist/lib/encoders/utf8-encoder.js +0 -32
  72. package/dist/lib/json-parser/json-parser.js +0 -98
  73. package/dist/lib/json-parser/streaming-json-parser.js +0 -100
  74. package/dist/lib/jsonpath/jsonpath.js +0 -89
  75. package/dist/lib/parsers/parse-json-in-batches.js +0 -101
  76. package/dist/lib/parsers/parse-json.js +0 -32
  77. package/dist/lib/parsers/parse-ndjson-in-batches.js +0 -36
  78. package/dist/lib/parsers/parse-ndjson.js +0 -17
  79. package/dist/ndgeoson-loader.js +0 -36
  80. package/dist/ndjson-loader.js +0 -27
  81. package/dist/workers/geojson-worker.js +0 -5
  82. /package/dist/es5/lib/{encoders → encoder-utils}/encode-utils.js +0 -0
  83. /package/dist/es5/lib/{encoders → encoder-utils}/utf8-encoder.js +0 -0
  84. /package/dist/esm/lib/{encoders → encoder-utils}/encode-utils.js +0 -0
  85. /package/dist/esm/lib/{encoders → encoder-utils}/utf8-encoder.js +0 -0
  86. /package/dist/lib/{encoders → encoder-utils}/encode-utils.d.ts +0 -0
  87. /package/dist/lib/{encoders → encoder-utils}/utf8-encoder.d.ts +0 -0
  88. /package/src/lib/{encoders → encoder-utils}/encode-utils.ts +0 -0
  89. /package/src/lib/{encoders → encoder-utils}/utf8-encoder.ts +0 -0
package/dist/dist.min.js CHANGED
@@ -406,8 +406,9 @@
406
406
  switch (table.shape) {
407
407
  case "array-row-table":
408
408
  case "object-row-table":
409
- case "geojson-row-table":
410
409
  return table.data.length;
410
+ case "geojson-table":
411
+ return table.features.length;
411
412
  case "arrow-table":
412
413
  return table.data.numRows;
413
414
  case "columnar-table":
@@ -430,8 +431,9 @@
430
431
  case "array-row-table":
431
432
  return table.data[0].length;
432
433
  case "object-row-table":
433
- case "geojson-row-table":
434
434
  return Object.keys(table.data[0]).length;
435
+ case "geojson-table":
436
+ return Object.keys(table.features[0]).length;
435
437
  case "columnar-table":
436
438
  return Object.keys(table.data).length;
437
439
  case "arrow-table":
@@ -445,7 +447,6 @@
445
447
  case "object-row-table":
446
448
  return copy2 ? Object.fromEntries(Object.entries(table.data[rowIndex])) : table.data[rowIndex];
447
449
  case "array-row-table":
448
- case "geojson-row-table":
449
450
  if (table.schema) {
450
451
  const objectRow2 = target || {};
451
452
  for (let i = 0; i < table.schema.fields.length; i++) {
@@ -454,6 +455,15 @@
454
455
  return objectRow2;
455
456
  }
456
457
  throw new Error("no schema");
458
+ case "geojson-table":
459
+ if (table.schema) {
460
+ const objectRow2 = target || {};
461
+ for (let i = 0; i < table.schema.fields.length; i++) {
462
+ objectRow2[table.schema.fields[i].name] = table.features[rowIndex][i];
463
+ }
464
+ return objectRow2;
465
+ }
466
+ throw new Error("no schema");
457
467
  case "columnar-table":
458
468
  if (table.schema) {
459
469
  const objectRow2 = target || {};
@@ -485,7 +495,6 @@
485
495
  case "array-row-table":
486
496
  return copy2 ? Array.from(table.data[rowIndex]) : table.data[rowIndex];
487
497
  case "object-row-table":
488
- case "geojson-row-table":
489
498
  if (table.schema) {
490
499
  const arrayRow2 = target || [];
491
500
  for (let i = 0; i < table.schema.fields.length; i++) {
@@ -494,6 +503,15 @@
494
503
  return arrayRow2;
495
504
  }
496
505
  return Object.values(table.data[rowIndex]);
506
+ case "geojson-table":
507
+ if (table.schema) {
508
+ const arrayRow2 = target || [];
509
+ for (let i = 0; i < table.schema.fields.length; i++) {
510
+ arrayRow2[i] = table.features[rowIndex][table.schema.fields[i].name];
511
+ }
512
+ return arrayRow2;
513
+ }
514
+ return Object.values(table.features[rowIndex]);
497
515
  case "columnar-table":
498
516
  if (table.schema) {
499
517
  const arrayRow2 = target || [];
@@ -1781,8 +1799,8 @@ Char: ${this.c}`;
1781
1799
  });
1782
1800
 
1783
1801
  // src/lib/encoders/json-encoder.ts
1784
- function encodeTableAsJSON(table, options = {}) {
1785
- const shape = options.shape || "object-row-table";
1802
+ function encodeTableAsJSON(table, options) {
1803
+ const shape = options?.json?.shape || "object-row-table";
1786
1804
  const strings = [];
1787
1805
  const rowIterator = makeRowIterator(table, shape);
1788
1806
  for (const row of rowIterator) {
@@ -1811,7 +1829,7 @@ Char: ${this.c}`;
1811
1829
  options: {},
1812
1830
  text: true,
1813
1831
  encode: async (table, options) => new TextEncoder().encode(encodeTableAsJSON(table, options)).buffer,
1814
- encodeText: (table, options) => encodeTableAsJSON(table, options)
1832
+ encodeTextSync: (table, options) => encodeTableAsJSON(table, options)
1815
1833
  };
1816
1834
  }
1817
1835
  });
@@ -2588,7 +2606,7 @@ Char: ${this.c}`;
2588
2606
  numericProps: wrapProps(polygons.numericProps, 1)
2589
2607
  }
2590
2608
  };
2591
- if (polygons.triangles) {
2609
+ if (binaryFeatures.polygons && polygons.triangles) {
2592
2610
  binaryFeatures.polygons.triangles = { value: new Uint32Array(polygons.triangles), size: 1 };
2593
2611
  }
2594
2612
  return binaryFeatures;
@@ -2834,11 +2852,20 @@ Char: ${this.c}`;
2834
2852
  options = { ...GeoJSONLoader.options, ...options };
2835
2853
  options.geojson = { ...GeoJSONLoader.options.geojson, ...options.geojson };
2836
2854
  options.gis = options.gis || {};
2837
- const table = parseJSONSync(text, options);
2838
- table.shape = "geojson-row-table";
2855
+ let geojson;
2856
+ try {
2857
+ geojson = JSON.parse(text);
2858
+ } catch {
2859
+ geojson = {};
2860
+ }
2861
+ const table = {
2862
+ shape: "geojson-table",
2863
+ type: "FeatureCollection",
2864
+ features: geojson?.features || []
2865
+ };
2839
2866
  switch (options.gis.format) {
2840
2867
  case "binary":
2841
- return geojsonToBinary(table.data);
2868
+ return geojsonToBinary(table.features);
2842
2869
  default:
2843
2870
  return table;
2844
2871
  }
@@ -2864,7 +2891,6 @@ Char: ${this.c}`;
2864
2891
  var init_geojson_loader = __esm({
2865
2892
  "src/geojson-loader.ts"() {
2866
2893
  init_src3();
2867
- init_parse_json();
2868
2894
  init_parse_json_in_batches();
2869
2895
  VERSION3 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
2870
2896
  GeoJSONWorkerLoader = {
@@ -2899,7 +2925,7 @@ Char: ${this.c}`;
2899
2925
  }
2900
2926
  });
2901
2927
 
2902
- // src/lib/encoders/encode-utils.ts
2928
+ // src/lib/encoder-utils/encode-utils.ts
2903
2929
  function detectGeometryColumnIndex(table) {
2904
2930
  const geometryIndex = table.schema?.fields.findIndex((field) => field.name === "geometry") ?? -1;
2905
2931
  if (geometryIndex > -1) {
@@ -2927,15 +2953,53 @@ Char: ${this.c}`;
2927
2953
  return properties;
2928
2954
  }
2929
2955
  var init_encode_utils = __esm({
2930
- "src/lib/encoders/encode-utils.ts"() {
2956
+ "src/lib/encoder-utils/encode-utils.ts"() {
2931
2957
  init_src();
2932
2958
  }
2933
2959
  });
2934
2960
 
2935
- // src/lib/encoders/utf8-encoder.ts
2961
+ // src/lib/encoder-utils/encode-table-row.ts
2962
+ function encodeTableRow(table, rowIndex, geometryColumnIndex, utf8Encoder) {
2963
+ const row = getTableRowAsObject(table, rowIndex);
2964
+ if (!row)
2965
+ return;
2966
+ const featureWithProperties = getFeatureFromRow(table, row, geometryColumnIndex);
2967
+ const featureString = JSON.stringify(featureWithProperties);
2968
+ utf8Encoder.push(featureString);
2969
+ }
2970
+ function getFeatureFromRow(table, row, geometryColumnIndex) {
2971
+ const properties = getRowPropertyObject(table, row, [geometryColumnIndex]);
2972
+ const columnName = table.schema?.fields[geometryColumnIndex].name;
2973
+ let featureOrGeometry = columnName && row[columnName];
2974
+ if (!featureOrGeometry) {
2975
+ return { type: "Feature", geometry: null, properties };
2976
+ }
2977
+ if (typeof featureOrGeometry === "string") {
2978
+ try {
2979
+ featureOrGeometry = JSON.parse(featureOrGeometry);
2980
+ } catch (err) {
2981
+ throw new Error("Invalid string geometry");
2982
+ }
2983
+ }
2984
+ if (typeof featureOrGeometry !== "object" || typeof featureOrGeometry?.type !== "string") {
2985
+ throw new Error("invalid geometry column value");
2986
+ }
2987
+ if (featureOrGeometry?.type === "Feature") {
2988
+ return { ...featureOrGeometry, properties };
2989
+ }
2990
+ return { type: "Feature", geometry: featureOrGeometry, properties };
2991
+ }
2992
+ var init_encode_table_row = __esm({
2993
+ "src/lib/encoder-utils/encode-table-row.ts"() {
2994
+ init_src();
2995
+ init_encode_utils();
2996
+ }
2997
+ });
2998
+
2999
+ // src/lib/encoder-utils/utf8-encoder.ts
2936
3000
  var Utf8ArrayBufferEncoder;
2937
3001
  var init_utf8_encoder = __esm({
2938
- "src/lib/encoders/utf8-encoder.ts"() {
3002
+ "src/lib/encoder-utils/utf8-encoder.ts"() {
2939
3003
  Utf8ArrayBufferEncoder = class {
2940
3004
  constructor(chunkSize) {
2941
3005
  this.strings = [];
@@ -2975,10 +3039,11 @@ Char: ${this.c}`;
2975
3039
  utf8Encoder.push("[");
2976
3040
  let geometryColumn = options.geojson.geometryColumn;
2977
3041
  let isFirstLine = true;
2978
- for await (const batch of batchIterator) {
2979
- const { table, start, end = getTableLength(batch.table) - start } = batch;
3042
+ let start = 0;
3043
+ for await (const tableBatch of batchIterator) {
3044
+ const end = start + getTableLength(tableBatch);
2980
3045
  if (!geometryColumn) {
2981
- geometryColumn = geometryColumn || detectGeometryColumnIndex(table);
3046
+ geometryColumn = geometryColumn || detectGeometryColumnIndex(tableBatch);
2982
3047
  }
2983
3048
  for (let rowIndex = start; rowIndex < end; ++rowIndex) {
2984
3049
  if (!isFirstLine) {
@@ -2986,10 +3051,11 @@ Char: ${this.c}`;
2986
3051
  }
2987
3052
  utf8Encoder.push("\n");
2988
3053
  isFirstLine = false;
2989
- encodeRow(table, rowIndex, geometryColumn, utf8Encoder);
3054
+ encodeTableRow(tableBatch, rowIndex, geometryColumn, utf8Encoder);
2990
3055
  if (utf8Encoder.isFull()) {
2991
3056
  yield utf8Encoder.getArrayBufferBatch();
2992
3057
  }
3058
+ start = end;
2993
3059
  }
2994
3060
  const arrayBufferBatch = utf8Encoder.getArrayBufferBatch();
2995
3061
  if (arrayBufferBatch.byteLength > 0) {
@@ -3003,41 +3069,11 @@ Char: ${this.c}`;
3003
3069
  }
3004
3070
  yield utf8Encoder.getArrayBufferBatch();
3005
3071
  }
3006
- function encodeRow(table, rowIndex, geometryColumnIndex, utf8Encoder) {
3007
- const row = getTableRowAsObject(table, rowIndex);
3008
- if (!row)
3009
- return;
3010
- const featureWithProperties = getFeatureFromRow(table, row, geometryColumnIndex);
3011
- const featureString = JSON.stringify(featureWithProperties);
3012
- utf8Encoder.push(featureString);
3013
- }
3014
- function getFeatureFromRow(table, row, geometryColumnIndex) {
3015
- const properties = getRowPropertyObject(table, row, [geometryColumnIndex]);
3016
- const columnName = table.schema?.fields[geometryColumnIndex].name;
3017
- let featureOrGeometry = columnName && row[columnName];
3018
- if (!featureOrGeometry) {
3019
- return { type: "Feature", geometry: null, properties };
3020
- }
3021
- if (typeof featureOrGeometry === "string") {
3022
- try {
3023
- featureOrGeometry = JSON.parse(featureOrGeometry);
3024
- } catch (err) {
3025
- throw new Error("Invalid string geometry");
3026
- }
3027
- }
3028
- if (typeof featureOrGeometry !== "object" || typeof featureOrGeometry?.type !== "string") {
3029
- throw new Error("invalid geometry column value");
3030
- }
3031
- if (featureOrGeometry?.type === "Feature") {
3032
- return { ...featureOrGeometry, properties };
3033
- }
3034
- return { type: "Feature", geometry: featureOrGeometry, properties };
3035
- }
3036
3072
  var init_geojson_encoder = __esm({
3037
3073
  "src/lib/encoders/geojson-encoder.ts"() {
3038
- init_src();
3039
3074
  init_src();
3040
3075
  init_encode_utils();
3076
+ init_encode_table_row();
3041
3077
  init_utf8_encoder();
3042
3078
  }
3043
3079
  });
@@ -11,13 +11,12 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
11
11
  var _awaitAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/awaitAsyncGenerator"));
12
12
  var _wrapAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapAsyncGenerator"));
13
13
  var _gis = require("@loaders.gl/gis");
14
- var _parseJson = require("./lib/parsers/parse-json");
15
14
  var _parseJsonInBatches = require("./lib/parsers/parse-json-in-batches");
16
15
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
16
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
18
17
  function _asyncIterator(iterable) { var method, async, sync, retry = 2; for ("undefined" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;) { if (async && null != (method = iterable[async])) return method.call(iterable); if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable)); async = "@@asyncIterator", sync = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
19
18
  function AsyncFromSyncIterator(s) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var done = r.done; return Promise.resolve(r.value).then(function (value) { return { value: value, done: done }; }); } return AsyncFromSyncIterator = function AsyncFromSyncIterator(s) { this.s = s, this.n = s.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function next() { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, return: function _return(value) { var ret = this.s.return; return void 0 === ret ? Promise.resolve({ value: value, done: !0 }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments)); }, throw: function _throw(value) { var thr = this.s.return; return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(s); }
20
- var VERSION = typeof "4.0.0-alpha.23" !== 'undefined' ? "4.0.0-alpha.23" : 'latest';
19
+ var VERSION = typeof "4.0.0-alpha.25" !== 'undefined' ? "4.0.0-alpha.25" : 'latest';
21
20
  var GeoJSONWorkerLoader = {
22
21
  name: 'GeoJSON',
23
22
  id: 'geojson',
@@ -66,14 +65,24 @@ function _parse() {
66
65
  return _parse.apply(this, arguments);
67
66
  }
68
67
  function parseTextSync(text, options) {
68
+ var _geojson;
69
69
  options = _objectSpread(_objectSpread({}, GeoJSONLoader.options), options);
70
70
  options.geojson = _objectSpread(_objectSpread({}, GeoJSONLoader.options.geojson), options.geojson);
71
71
  options.gis = options.gis || {};
72
- var table = (0, _parseJson.parseJSONSync)(text, options);
73
- table.shape = 'geojson-row-table';
72
+ var geojson;
73
+ try {
74
+ geojson = JSON.parse(text);
75
+ } catch (_unused) {
76
+ geojson = {};
77
+ }
78
+ var table = {
79
+ shape: 'geojson-table',
80
+ type: 'FeatureCollection',
81
+ features: ((_geojson = geojson) === null || _geojson === void 0 ? void 0 : _geojson.features) || []
82
+ };
74
83
  switch (options.gis.format) {
75
84
  case 'binary':
76
- return (0, _gis.geojsonToBinary)(table.data);
85
+ return (0, _gis.geojsonToBinary)(table.features);
77
86
  default:
78
87
  return table;
79
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"geojson-loader.js","names":["_gis","require","_parseJson","_parseJsonInBatches","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Promise","reject","done","resolve","value","then","n","next","prototype","return","_return","ret","throw","_throw","thr","VERSION","GeoJSONWorkerLoader","name","id","module","version","worker","extensions","mimeTypes","category","text","options","geojson","shape","json","jsonpaths","gis","format","exports","GeoJSONLoader","parse","parseTextSync","parseInBatches","_x2","_x3","_parse","_asyncToGenerator2","_regenerator","mark","_callee2","arrayBuffer","wrap","_callee2$","_context2","prev","abrupt","TextDecoder","decode","stop","table","parseJSONSync","geojsonToBinary","data","geojsonIterator","parseJSONInBatches","makeBinaryGeometryIterator","_x","_makeBinaryGeometryIterator","_wrapAsyncGenerator2","_callee","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","batch","_callee$","_context","_awaitAsyncGenerator2","sent","t0","finish"],"sources":["../../src/geojson-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {GeoJSON, GeoJSONRowTable, TableBatch} from '@loaders.gl/schema';\nimport type {JSONLoaderOptions} from './json-loader';\nimport {geojsonToBinary} from '@loaders.gl/gis';\nimport {parseJSONSync} from './lib/parsers/parse-json';\nimport {parseJSONInBatches} from './lib/parsers/parse-json-in-batches';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type GeoJSONLoaderOptions = JSONLoaderOptions & {\n geojson?: {\n shape?: 'object-row-table';\n };\n gis?: {\n format?: 'geojson' | 'binary';\n };\n};\n\n/**\n * GeoJSON loader\n */\nexport const GeoJSONWorkerLoader: Loader<GeoJSON, TableBatch, GeoJSONLoaderOptions> = {\n name: 'GeoJSON',\n id: 'geojson',\n module: 'geojson',\n version: VERSION,\n worker: true,\n extensions: ['geojson'],\n mimeTypes: ['application/geo+json'],\n category: 'geometry',\n text: true,\n options: {\n geojson: {\n shape: 'object-row-table'\n },\n json: {\n shape: 'object-row-table',\n jsonpaths: ['$', '$.features']\n },\n gis: {\n format: 'geojson'\n }\n }\n};\n\nexport const GeoJSONLoader: LoaderWithParser<GeoJSON, TableBatch, GeoJSONLoaderOptions> = {\n ...GeoJSONWorkerLoader,\n // @ts-expect-error\n parse,\n // @ts-expect-error\n parseTextSync,\n parseInBatches\n};\n\nasync function parse(arrayBuffer: ArrayBuffer, options?: GeoJSONLoaderOptions) {\n return parseTextSync(new TextDecoder().decode(arrayBuffer), options);\n}\n\nfunction parseTextSync(text: string, options?: GeoJSONLoaderOptions) {\n // Apps can call the parse method directly, we so apply default options here\n options = {...GeoJSONLoader.options, ...options};\n options.geojson = {...GeoJSONLoader.options.geojson, ...options.geojson};\n options.gis = options.gis || {};\n const table = parseJSONSync(text, options) as GeoJSONRowTable;\n table.shape = 'geojson-row-table';\n switch (options.gis.format) {\n case 'binary':\n return geojsonToBinary(table.data);\n default:\n return table;\n }\n}\n\nfunction parseInBatches(asyncIterator, options): AsyncIterable<TableBatch> {\n // Apps can call the parse method directly, we so apply default options here\n options = {...GeoJSONLoader.options, ...options};\n options.json = {...GeoJSONLoader.options.geojson, ...options.geojson};\n\n const geojsonIterator = parseJSONInBatches(asyncIterator, options);\n\n switch (options.gis.format) {\n case 'binary':\n return makeBinaryGeometryIterator(geojsonIterator);\n default:\n return geojsonIterator;\n }\n}\n\nasync function* makeBinaryGeometryIterator(geojsonIterator) {\n for await (const batch of geojsonIterator) {\n batch.data = geojsonToBinary(batch.data);\n yield batch;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"geojson-loader.js","names":["_gis","require","_parseJsonInBatches","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Promise","reject","done","resolve","value","then","n","next","prototype","return","_return","ret","throw","_throw","thr","VERSION","GeoJSONWorkerLoader","name","id","module","version","worker","extensions","mimeTypes","category","text","options","geojson","shape","json","jsonpaths","gis","format","exports","GeoJSONLoader","parse","parseTextSync","parseInBatches","_x2","_x3","_parse","_asyncToGenerator2","_regenerator","mark","_callee2","arrayBuffer","wrap","_callee2$","_context2","prev","abrupt","TextDecoder","decode","stop","_geojson","JSON","_unused","table","type","features","geojsonToBinary","geojsonIterator","parseJSONInBatches","makeBinaryGeometryIterator","_x","_makeBinaryGeometryIterator","_wrapAsyncGenerator2","_callee","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","batch","_callee$","_context","_awaitAsyncGenerator2","sent","data","t0","finish"],"sources":["../../src/geojson-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {GeoJSON, GeoJSONTable, TableBatch} from '@loaders.gl/schema';\nimport type {JSONLoaderOptions} from './json-loader';\nimport {geojsonToBinary} from '@loaders.gl/gis';\n// import {parseJSONSync} from './lib/parsers/parse-json';\nimport {parseJSONInBatches} from './lib/parsers/parse-json-in-batches';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type GeoJSONLoaderOptions = JSONLoaderOptions & {\n geojson?: {\n shape?: 'object-row-table';\n };\n gis?: {\n format?: 'geojson' | 'binary';\n };\n};\n\n/**\n * GeoJSON loader\n */\nexport const GeoJSONWorkerLoader: Loader<GeoJSON, TableBatch, GeoJSONLoaderOptions> = {\n name: 'GeoJSON',\n id: 'geojson',\n module: 'geojson',\n version: VERSION,\n worker: true,\n extensions: ['geojson'],\n mimeTypes: ['application/geo+json'],\n category: 'geometry',\n text: true,\n options: {\n geojson: {\n shape: 'object-row-table'\n },\n json: {\n shape: 'object-row-table',\n jsonpaths: ['$', '$.features']\n },\n gis: {\n format: 'geojson'\n }\n }\n};\n\nexport const GeoJSONLoader: LoaderWithParser<GeoJSON, TableBatch, GeoJSONLoaderOptions> = {\n ...GeoJSONWorkerLoader,\n // @ts-expect-error\n parse,\n // @ts-expect-error\n parseTextSync,\n parseInBatches\n};\n\nasync function parse(arrayBuffer: ArrayBuffer, options?: GeoJSONLoaderOptions) {\n return parseTextSync(new TextDecoder().decode(arrayBuffer), options);\n}\n\nfunction parseTextSync(text: string, options?: GeoJSONLoaderOptions) {\n // Apps can call the parse method directly, we so apply default options here\n options = {...GeoJSONLoader.options, ...options};\n options.geojson = {...GeoJSONLoader.options.geojson, ...options.geojson};\n options.gis = options.gis || {};\n\n let geojson;\n try {\n geojson = JSON.parse(text);\n } catch {\n geojson = {};\n }\n\n const table: GeoJSONTable = {\n shape: 'geojson-table',\n // TODO - deduce schema from geojson\n // TODO check that parsed data is of type FeatureCollection\n type: 'FeatureCollection',\n features: geojson?.features || []\n };\n\n switch (options.gis.format) {\n case 'binary':\n return geojsonToBinary(table.features);\n default:\n return table;\n }\n}\n\nfunction parseInBatches(asyncIterator, options): AsyncIterable<TableBatch> {\n // Apps can call the parse method directly, we so apply default options here\n options = {...GeoJSONLoader.options, ...options};\n options.json = {...GeoJSONLoader.options.geojson, ...options.geojson};\n\n const geojsonIterator = parseJSONInBatches(asyncIterator, options);\n\n switch (options.gis.format) {\n case 'binary':\n return makeBinaryGeometryIterator(geojsonIterator);\n default:\n return geojsonIterator;\n }\n}\n\nasync function* makeBinaryGeometryIterator(geojsonIterator) {\n for await (const batch of geojsonIterator) {\n batch.data = geojsonToBinary(batch.data);\n yield batch;\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"geojson-writer.js","names":["_geojsonEncoder","require","GeoJSONWriter","id","version","module","name","extensions","mimeTypes","options","geojson","featureArray","geometryColumn","text","encodeInBatches","tableIterator","encodeTableAsGeojsonInBatches","exports"],"sources":["../../src/geojson-writer.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright Foursquare, Inc 20222\n\nimport type {Writer} from '@loaders.gl/loader-utils';\nimport type {Table, TableBatch} from '@loaders.gl/schema';\nimport type {GeoJSONWriterOptions} from './lib/encoders/geojson-encoder';\nimport {encodeTableAsGeojsonInBatches} from './lib/encoders/geojson-encoder';\n\nexport type {GeoJSONWriterOptions};\n\nexport const GeoJSONWriter: Writer<Table, TableBatch, GeoJSONWriterOptions> = {\n id: 'geojson',\n version: 'latest',\n module: 'geojson',\n name: 'GeoJSON',\n extensions: ['geojson'],\n mimeTypes: ['application/geo+json'],\n options: {\n geojson: {\n featureArray: false,\n geometryColumn: null\n }\n },\n text: true,\n encodeInBatches: (tableIterator: AsyncIterable<TableBatch>, options) =>\n encodeTableAsGeojsonInBatches(tableIterator, options)\n};\n"],"mappings":";;;;;;AAMA,IAAAA,eAAA,GAAAC,OAAA;AAIO,IAAMC,aAA8D,GAAG;EAC5EC,EAAE,EAAE,SAAS;EACbC,OAAO,EAAE,QAAQ;EACjBC,MAAM,EAAE,SAAS;EACjBC,IAAI,EAAE,SAAS;EACfC,UAAU,EAAE,CAAC,SAAS,CAAC;EACvBC,SAAS,EAAE,CAAC,sBAAsB,CAAC;EACnCC,OAAO,EAAE;IACPC,OAAO,EAAE;MACPC,YAAY,EAAE,KAAK;MACnBC,cAAc,EAAE;IAClB;EACF,CAAC;EACDC,IAAI,EAAE,IAAI;EACVC,eAAe,EAAE,SAAAA,gBAACC,aAAwC,EAAEN,OAAO;IAAA,OACjE,IAAAO,6CAA6B,EAACD,aAAa,EAAEN,OAAO,CAAC;EAAA;AACzD,CAAC;AAACQ,OAAA,CAAAf,aAAA,GAAAA,aAAA"}
1
+ {"version":3,"file":"geojson-writer.js","names":["_geojsonEncoder","require","GeoJSONWriter","id","version","module","name","extensions","mimeTypes","options","geojson","featureArray","geometryColumn","text","encodeInBatches","tableIterator","encodeTableAsGeojsonInBatches","exports"],"sources":["../../src/geojson-writer.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright Foursquare, Inc 20222\n\nimport type {Writer, WriterOptions} from '@loaders.gl/loader-utils';\nimport type {Table, TableBatch} from '@loaders.gl/schema';\nimport {encodeTableAsGeojsonInBatches} from './lib/encoders/geojson-encoder';\n\nexport type GeoJSONWriterOptions = WriterOptions & {\n geojson?: {\n featureArray?: boolean;\n geometryColumn?: number | null;\n };\n chunkSize?: number;\n};\n\nexport const GeoJSONWriter: Writer<Table, TableBatch, GeoJSONWriterOptions> = {\n id: 'geojson',\n version: 'latest',\n module: 'geojson',\n name: 'GeoJSON',\n extensions: ['geojson'],\n mimeTypes: ['application/geo+json'],\n options: {\n geojson: {\n featureArray: false,\n geometryColumn: null\n }\n },\n text: true,\n encodeInBatches: (tableIterator: AsyncIterable<TableBatch>, options) =>\n encodeTableAsGeojsonInBatches(tableIterator, options)\n};\n"],"mappings":";;;;;;AAKA,IAAAA,eAAA,GAAAC,OAAA;AAUO,IAAMC,aAA8D,GAAG;EAC5EC,EAAE,EAAE,SAAS;EACbC,OAAO,EAAE,QAAQ;EACjBC,MAAM,EAAE,SAAS;EACjBC,IAAI,EAAE,SAAS;EACfC,UAAU,EAAE,CAAC,SAAS,CAAC;EACvBC,SAAS,EAAE,CAAC,sBAAsB,CAAC;EACnCC,OAAO,EAAE;IACPC,OAAO,EAAE;MACPC,YAAY,EAAE,KAAK;MACnBC,cAAc,EAAE;IAClB;EACF,CAAC;EACDC,IAAI,EAAE,IAAI;EACVC,eAAe,EAAE,SAAAA,gBAACC,aAAwC,EAAEN,OAAO;IAAA,OACjE,IAAAO,6CAA6B,EAACD,aAAa,EAAEN,OAAO,CAAC;EAAA;AACzD,CAAC;AAACQ,OAAA,CAAAf,aAAA,GAAAA,aAAA"}
@@ -12,7 +12,7 @@ var _parseJson = require("./lib/parsers/parse-json");
12
12
  var _parseJsonInBatches = require("./lib/parsers/parse-json-in-batches");
13
13
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
14
14
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15
- var VERSION = typeof "4.0.0-alpha.23" !== 'undefined' ? "4.0.0-alpha.23" : 'latest';
15
+ var VERSION = typeof "4.0.0-alpha.25" !== 'undefined' ? "4.0.0-alpha.25" : 'latest';
16
16
  var DEFAULT_JSON_LOADER_OPTIONS = {
17
17
  json: {
18
18
  shape: 'object-row-table',
@@ -34,7 +34,7 @@ var JSONWriter = {
34
34
  }
35
35
  return encode;
36
36
  }(),
37
- encodeText: function encodeText(table, options) {
37
+ encodeTextSync: function encodeTextSync(table, options) {
38
38
  return (0, _jsonEncoder.encodeTableAsJSON)(table, options);
39
39
  }
40
40
  };
@@ -1 +1 @@
1
- {"version":3,"file":"json-writer.js","names":["_jsonEncoder","require","JSONWriter","id","version","module","name","extensions","mimeTypes","options","text","encode","_encode","_asyncToGenerator2","default","_regenerator","mark","_callee","table","wrap","_callee$","_context","prev","next","abrupt","TextEncoder","encodeTableAsJSON","buffer","stop","_x","_x2","apply","arguments","encodeText","exports"],"sources":["../../src/json-writer.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright 2022 Foursquare Labs, Inc.\n\n/* global TextEncoder */\nimport type {Writer} from '@loaders.gl/loader-utils';\nimport type {Table, TableBatch} from '@loaders.gl/schema';\nimport type {JSONWriterOptions} from './lib/encoders/json-encoder';\nimport {encodeTableAsJSON} from './lib/encoders/json-encoder';\n\nexport type {JSONWriterOptions};\n\nexport const JSONWriter: Writer<Table, TableBatch, JSONWriterOptions> = {\n id: 'json',\n version: 'latest',\n module: 'json',\n name: 'JSON',\n extensions: ['json'],\n mimeTypes: ['application/json'],\n options: {},\n text: true,\n encode: async (table: Table, options: JSONWriterOptions) =>\n new TextEncoder().encode(encodeTableAsJSON(table, options)).buffer,\n encodeText: (table: Table, options: JSONWriterOptions) => encodeTableAsJSON(table, options)\n};\n"],"mappings":";;;;;;;;;AAOA,IAAAA,YAAA,GAAAC,OAAA;AAIO,IAAMC,UAAwD,GAAG;EACtEC,EAAE,EAAE,MAAM;EACVC,OAAO,EAAE,QAAQ;EACjBC,MAAM,EAAE,MAAM;EACdC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CAAC,MAAM,CAAC;EACpBC,SAAS,EAAE,CAAC,kBAAkB,CAAC;EAC/BC,OAAO,EAAE,CAAC,CAAC;EACXC,IAAI,EAAE,IAAI;EACVC,MAAM;IAAA,IAAAC,OAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAC,QAAOC,KAAY,EAAET,OAA0B;MAAA,OAAAM,YAAA,CAAAD,OAAA,CAAAK,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAA,OAAAF,QAAA,CAAAG,MAAA,WACrD,IAAIC,WAAW,CAAC,CAAC,CAACd,MAAM,CAAC,IAAAe,8BAAiB,EAACR,KAAK,EAAET,OAAO,CAAC,CAAC,CAACkB,MAAM;UAAA;UAAA;YAAA,OAAAN,QAAA,CAAAO,IAAA;QAAA;MAAA,GAAAX,OAAA;IAAA;IAAA,SAAAN,OAAAkB,EAAA,EAAAC,GAAA;MAAA,OAAAlB,OAAA,CAAAmB,KAAA,OAAAC,SAAA;IAAA;IAAA,OAAArB,MAAA;EAAA;EACpEsB,UAAU,EAAE,SAAAA,WAACf,KAAY,EAAET,OAA0B;IAAA,OAAK,IAAAiB,8BAAiB,EAACR,KAAK,EAAET,OAAO,CAAC;EAAA;AAC7F,CAAC;AAACyB,OAAA,CAAAhC,UAAA,GAAAA,UAAA"}
1
+ {"version":3,"file":"json-writer.js","names":["_jsonEncoder","require","JSONWriter","id","version","module","name","extensions","mimeTypes","options","text","encode","_encode","_asyncToGenerator2","default","_regenerator","mark","_callee","table","wrap","_callee$","_context","prev","next","abrupt","TextEncoder","encodeTableAsJSON","buffer","stop","_x","_x2","apply","arguments","encodeTextSync","exports"],"sources":["../../src/json-writer.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright 2022 Foursquare Labs, Inc.\n\n/* global TextEncoder */\nimport type {Writer, WriterOptions} from '@loaders.gl/loader-utils';\nimport type {Table, TableBatch} from '@loaders.gl/schema';\nimport {encodeTableAsJSON} from './lib/encoders/json-encoder';\n\nexport type JSONWriterOptions = WriterOptions & {\n json?: {\n shape?: 'object-row-table' | 'array-row-table';\n wrapper?: (table: TableJSON) => unknown;\n };\n};\n\ntype RowArray = unknown[];\ntype RowObject = {[key: string]: unknown};\ntype TableJSON = RowArray[] | RowObject[];\n\nexport const JSONWriter: Writer<Table, TableBatch, JSONWriterOptions> = {\n id: 'json',\n version: 'latest',\n module: 'json',\n name: 'JSON',\n extensions: ['json'],\n mimeTypes: ['application/json'],\n options: {},\n text: true,\n encode: async (table: Table, options: JSONWriterOptions) =>\n new TextEncoder().encode(encodeTableAsJSON(table, options)).buffer,\n encodeTextSync: (table: Table, options: JSONWriterOptions) => encodeTableAsJSON(table, options)\n};\n"],"mappings":";;;;;;;;;AAMA,IAAAA,YAAA,GAAAC,OAAA;AAaO,IAAMC,UAAwD,GAAG;EACtEC,EAAE,EAAE,MAAM;EACVC,OAAO,EAAE,QAAQ;EACjBC,MAAM,EAAE,MAAM;EACdC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CAAC,MAAM,CAAC;EACpBC,SAAS,EAAE,CAAC,kBAAkB,CAAC;EAC/BC,OAAO,EAAE,CAAC,CAAC;EACXC,IAAI,EAAE,IAAI;EACVC,MAAM;IAAA,IAAAC,OAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAC,QAAOC,KAAY,EAAET,OAA0B;MAAA,OAAAM,YAAA,CAAAD,OAAA,CAAAK,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAA,OAAAF,QAAA,CAAAG,MAAA,WACrD,IAAIC,WAAW,CAAC,CAAC,CAACd,MAAM,CAAC,IAAAe,8BAAiB,EAACR,KAAK,EAAET,OAAO,CAAC,CAAC,CAACkB,MAAM;UAAA;UAAA;YAAA,OAAAN,QAAA,CAAAO,IAAA;QAAA;MAAA,GAAAX,OAAA;IAAA;IAAA,SAAAN,OAAAkB,EAAA,EAAAC,GAAA;MAAA,OAAAlB,OAAA,CAAAmB,KAAA,OAAAC,SAAA;IAAA;IAAA,OAAArB,MAAA;EAAA;EACpEsB,cAAc,EAAE,SAAAA,eAACf,KAAY,EAAET,OAA0B;IAAA,OAAK,IAAAiB,8BAAiB,EAACR,KAAK,EAAET,OAAO,CAAC;EAAA;AACjG,CAAC;AAACyB,OAAA,CAAAhC,UAAA,GAAAA,UAAA"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.encodeTableRow = encodeTableRow;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
10
+ var _schema = require("@loaders.gl/schema");
11
+ var _encodeUtils = require("./encode-utils");
12
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14
+ function encodeTableRow(table, rowIndex, geometryColumnIndex, utf8Encoder) {
15
+ var row = (0, _schema.getTableRowAsObject)(table, rowIndex);
16
+ if (!row) return;
17
+ var featureWithProperties = getFeatureFromRow(table, row, geometryColumnIndex);
18
+ var featureString = JSON.stringify(featureWithProperties);
19
+ utf8Encoder.push(featureString);
20
+ }
21
+ function getFeatureFromRow(table, row, geometryColumnIndex) {
22
+ var _table$schema, _featureOrGeometry, _featureOrGeometry2;
23
+ var properties = (0, _encodeUtils.getRowPropertyObject)(table, row, [geometryColumnIndex]);
24
+ var columnName = (_table$schema = table.schema) === null || _table$schema === void 0 ? void 0 : _table$schema.fields[geometryColumnIndex].name;
25
+ var featureOrGeometry = columnName && row[columnName];
26
+ if (!featureOrGeometry) {
27
+ return {
28
+ type: 'Feature',
29
+ geometry: null,
30
+ properties: properties
31
+ };
32
+ }
33
+ if (typeof featureOrGeometry === 'string') {
34
+ try {
35
+ featureOrGeometry = JSON.parse(featureOrGeometry);
36
+ } catch (err) {
37
+ throw new Error('Invalid string geometry');
38
+ }
39
+ }
40
+ if ((0, _typeof2.default)(featureOrGeometry) !== 'object' || typeof ((_featureOrGeometry = featureOrGeometry) === null || _featureOrGeometry === void 0 ? void 0 : _featureOrGeometry.type) !== 'string') {
41
+ throw new Error('invalid geometry column value');
42
+ }
43
+ if (((_featureOrGeometry2 = featureOrGeometry) === null || _featureOrGeometry2 === void 0 ? void 0 : _featureOrGeometry2.type) === 'Feature') {
44
+ return _objectSpread(_objectSpread({}, featureOrGeometry), {}, {
45
+ properties: properties
46
+ });
47
+ }
48
+ return {
49
+ type: 'Feature',
50
+ geometry: featureOrGeometry,
51
+ properties: properties
52
+ };
53
+ }
54
+ //# sourceMappingURL=encode-table-row.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode-table-row.js","names":["_schema","require","_encodeUtils","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","encodeTableRow","table","rowIndex","geometryColumnIndex","utf8Encoder","row","getTableRowAsObject","featureWithProperties","getFeatureFromRow","featureString","JSON","stringify","_table$schema","_featureOrGeometry","_featureOrGeometry2","properties","getRowPropertyObject","columnName","schema","fields","name","featureOrGeometry","type","geometry","parse","err","Error","_typeof2"],"sources":["../../../../src/lib/encoder-utils/encode-table-row.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright 2022 Foursquare Labs, Inc.\n\nimport {Feature} from '@loaders.gl/schema';\nimport {Table, getTableRowAsObject} from '@loaders.gl/schema';\nimport {getRowPropertyObject} from './encode-utils';\nimport {Utf8ArrayBufferEncoder} from './utf8-encoder';\n\ntype Row = {[key: string]: unknown};\n\n// Helpers\n\n/**\n * Encode a row. Currently this ignores properties in the geometry column.\n */\nexport function encodeTableRow(\n table: Table,\n rowIndex: number,\n geometryColumnIndex: number,\n utf8Encoder: Utf8ArrayBufferEncoder\n): void {\n const row = getTableRowAsObject(table, rowIndex);\n if (!row) return;\n const featureWithProperties = getFeatureFromRow(table, row, geometryColumnIndex);\n const featureString = JSON.stringify(featureWithProperties);\n utf8Encoder.push(featureString);\n}\n\n/**\n * Encode a row as a Feature. Currently this ignores properties objects in the geometry column.\n */\nfunction getFeatureFromRow(table: Table, row: Row, geometryColumnIndex: number): Feature {\n // Extract non-feature/geometry properties\n const properties = getRowPropertyObject(table, row, [geometryColumnIndex]);\n\n // Extract geometry feature\n const columnName = table.schema?.fields[geometryColumnIndex].name;\n let featureOrGeometry =\n columnName && (row[columnName] as {[key: string]: unknown} | string | null | undefined);\n\n // GeoJSON support null geometries\n if (!featureOrGeometry) {\n // @ts-ignore Feature type does not support null geometries\n return {type: 'Feature', geometry: null, properties};\n }\n\n // Support string geometries?\n // TODO: This assumes GeoJSON strings, which may not be the correct format\n // (could be WKT, encoded WKB...)\n if (typeof featureOrGeometry === 'string') {\n try {\n featureOrGeometry = JSON.parse(featureOrGeometry);\n } catch (err) {\n throw new Error('Invalid string geometry');\n }\n }\n\n if (typeof featureOrGeometry !== 'object' || typeof featureOrGeometry?.type !== 'string') {\n throw new Error('invalid geometry column value');\n }\n\n if (featureOrGeometry?.type === 'Feature') {\n // @ts-ignore Feature type does not support null geometries\n return {...featureOrGeometry, properties};\n }\n\n // @ts-ignore Feature type does not support null geometries\n return {type: 'Feature', geometry: featureOrGeometry, properties};\n}\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode-utils.js","names":["_schema","require","detectGeometryColumnIndex","table","_table$schema$fields$","_table$schema","geometryIndex","schema","fields","findIndex","field","name","getTableLength","row","getTableRowAsArray","columnIndex","getTableNumCols","value","_typeof2","default","Error","getRowPropertyObject","excludeColumnIndices","arguments","length","undefined","properties","_table$schema2","columnName","includes"],"sources":["../../../../src/lib/encoder-utils/encode-utils.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright 2022 Foursquare Labs, Inc.\n\nimport {Table, getTableLength, getTableNumCols, getTableRowAsArray} from '@loaders.gl/schema';\n\ntype Row = {[key: string]: unknown};\n\n/**\n * Attempts to identify which column contains geometry\n * Currently just returns name (key) of first object-valued column\n * @todo look for hints in schema metadata\n * @todo look for WKB\n */\nexport function detectGeometryColumnIndex(table: Table): number {\n // TODO - look for hints in schema metadata\n\n // look for a column named geometry\n const geometryIndex = table.schema?.fields.findIndex((field) => field.name === 'geometry') ?? -1;\n if (geometryIndex > -1) {\n return geometryIndex;\n }\n\n // look at the data\n // TODO - this drags in the indices\n if (getTableLength(table) > 0) {\n const row = getTableRowAsArray(table, 0);\n for (let columnIndex = 0; columnIndex < getTableNumCols(table); columnIndex++) {\n const value = row?.[columnIndex];\n if (value && typeof value === 'object') {\n return columnIndex;\n }\n }\n }\n\n throw new Error('Failed to detect geometry column');\n}\n\n/**\n * Return a row as a property (key/value) object, excluding selected columns\n */\nexport function getRowPropertyObject(\n table: Table,\n row: Row,\n excludeColumnIndices: number[] = []\n): {[columnName: string]: unknown} {\n const properties = {};\n for (let columnIndex = 0; columnIndex < getTableNumCols(table); ++columnIndex) {\n const columnName = table.schema?.fields[columnIndex].name;\n if (columnName && !excludeColumnIndices.includes(columnIndex)) {\n properties[columnName] = row[columnName];\n }\n }\n return properties;\n}\n"],"mappings":";;;;;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AAUO,SAASC,yBAAyBA,CAACC,KAAY,EAAU;EAAA,IAAAC,qBAAA,EAAAC,aAAA;EAI9D,IAAMC,aAAa,IAAAF,qBAAA,IAAAC,aAAA,GAAGF,KAAK,CAACI,MAAM,cAAAF,aAAA,uBAAZA,aAAA,CAAcG,MAAM,CAACC,SAAS,CAAC,UAACC,KAAK;IAAA,OAAKA,KAAK,CAACC,IAAI,KAAK,UAAU;EAAA,EAAC,cAAAP,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC;EAChG,IAAIE,aAAa,GAAG,CAAC,CAAC,EAAE;IACtB,OAAOA,aAAa;EACtB;EAIA,IAAI,IAAAM,sBAAc,EAACT,KAAK,CAAC,GAAG,CAAC,EAAE;IAC7B,IAAMU,GAAG,GAAG,IAAAC,0BAAkB,EAACX,KAAK,EAAE,CAAC,CAAC;IACxC,KAAK,IAAIY,WAAW,GAAG,CAAC,EAAEA,WAAW,GAAG,IAAAC,uBAAe,EAACb,KAAK,CAAC,EAAEY,WAAW,EAAE,EAAE;MAC7E,IAAME,KAAK,GAAGJ,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAGE,WAAW,CAAC;MAChC,IAAIE,KAAK,IAAI,IAAAC,QAAA,CAAAC,OAAA,EAAOF,KAAK,MAAK,QAAQ,EAAE;QACtC,OAAOF,WAAW;MACpB;IACF;EACF;EAEA,MAAM,IAAIK,KAAK,CAAC,kCAAkC,CAAC;AACrD;AAKO,SAASC,oBAAoBA,CAClClB,KAAY,EACZU,GAAQ,EAEyB;EAAA,IADjCS,oBAA8B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAEnC,IAAMG,UAAU,GAAG,CAAC,CAAC;EACrB,KAAK,IAAIX,WAAW,GAAG,CAAC,EAAEA,WAAW,GAAG,IAAAC,uBAAe,EAACb,KAAK,CAAC,EAAE,EAAEY,WAAW,EAAE;IAAA,IAAAY,cAAA;IAC7E,IAAMC,WAAU,IAAAD,cAAA,GAAGxB,KAAK,CAACI,MAAM,cAAAoB,cAAA,uBAAZA,cAAA,CAAcnB,MAAM,CAACO,WAAW,CAAC,CAACJ,IAAI;IACzD,IAAIiB,WAAU,IAAI,CAACN,oBAAoB,CAACO,QAAQ,CAACd,WAAW,CAAC,EAAE;MAC7DW,UAAU,CAACE,WAAU,CAAC,GAAGf,GAAG,CAACe,WAAU,CAAC;IAC1C;EACF;EACA,OAAOF,UAAU;AACnB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utf8-encoder.js","names":["Utf8ArrayBufferEncoder","chunkSize","_classCallCheck2","default","_defineProperty2","TextEncoder","_createClass2","key","value","push","_len","arguments","length","strings","Array","_key","_i","_strings","string","totalLength","isFull","getArrayBufferBatch","textEncoder","encode","getStringBatch","buffer","stringChunk","join","exports"],"sources":["../../../../src/lib/encoder-utils/utf8-encoder.ts"],"sourcesContent":["// loaders.gl, MIT License\n\n/* global TextEncoder */\nexport class Utf8ArrayBufferEncoder {\n private readonly chunkSize: number;\n private strings: string[] = [];\n private totalLength = 0;\n private textEncoder: TextEncoder = new TextEncoder();\n\n constructor(chunkSize: number) {\n this.chunkSize = chunkSize;\n }\n\n push(...strings: string[]): void {\n for (const string of strings) {\n this.strings.push(string);\n this.totalLength += string.length;\n }\n }\n\n isFull(): boolean {\n return this.totalLength >= this.chunkSize;\n }\n\n getArrayBufferBatch(): ArrayBufferLike {\n return this.textEncoder.encode(this.getStringBatch()).buffer;\n }\n\n getStringBatch(): string {\n const stringChunk = this.strings.join('');\n this.strings = [];\n this.totalLength = 0;\n return stringChunk;\n }\n}\n"],"mappings":";;;;;;;;;;IAGaA,sBAAsB;EAMjC,SAAAA,uBAAYC,SAAiB,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAH,sBAAA;IAAA,IAAAI,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA,mBAJH,EAAE;IAAA,IAAAC,gBAAA,CAAAD,OAAA,uBACR,CAAC;IAAA,IAAAC,gBAAA,CAAAD,OAAA,uBACY,IAAIE,WAAW,CAAC,CAAC;IAGlD,IAAI,CAACJ,SAAS,GAAGA,SAAS;EAC5B;EAAC,IAAAK,aAAA,CAAAH,OAAA,EAAAH,sBAAA;IAAAO,GAAA;IAAAC,KAAA,EAED,SAAAC,KAAA,EAAiC;MAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAzBC,OAAO,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;QAAPF,OAAO,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;MAAA;MACb,SAAAC,EAAA,MAAAC,QAAA,GAAqBJ,OAAO,EAAAG,EAAA,GAAAC,QAAA,CAAAL,MAAA,EAAAI,EAAA,IAAE;QAAzB,IAAME,MAAM,GAAAD,QAAA,CAAAD,EAAA;QACf,IAAI,CAACH,OAAO,CAACJ,IAAI,CAACS,MAAM,CAAC;QACzB,IAAI,CAACC,WAAW,IAAID,MAAM,CAACN,MAAM;MACnC;IACF;EAAC;IAAAL,GAAA;IAAAC,KAAA,EAED,SAAAY,OAAA,EAAkB;MAChB,OAAO,IAAI,CAACD,WAAW,IAAI,IAAI,CAAClB,SAAS;IAC3C;EAAC;IAAAM,GAAA;IAAAC,KAAA,EAED,SAAAa,oBAAA,EAAuC;MACrC,OAAO,IAAI,CAACC,WAAW,CAACC,MAAM,CAAC,IAAI,CAACC,cAAc,CAAC,CAAC,CAAC,CAACC,MAAM;IAC9D;EAAC;IAAAlB,GAAA;IAAAC,KAAA,EAED,SAAAgB,eAAA,EAAyB;MACvB,IAAME,WAAW,GAAG,IAAI,CAACb,OAAO,CAACc,IAAI,CAAC,EAAE,CAAC;MACzC,IAAI,CAACd,OAAO,GAAG,EAAE;MACjB,IAAI,CAACM,WAAW,GAAG,CAAC;MACpB,OAAOO,WAAW;IACpB;EAAC;EAAA,OAAA1B,sBAAA;AAAA;AAAA4B,OAAA,CAAA5B,sBAAA,GAAAA,sBAAA"}