@loaders.gl/wkt 3.1.0-beta.2 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- const moduleExports = require('./index');
3
+ var moduleExports = require('./index');
4
4
 
5
5
  globalThis.loaders = globalThis.loaders || {};
6
6
  module.exports = Object.assign(globalThis.loaders, moduleExports);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/bundle.ts"],"names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"mappings":";;AACA,MAAMA,aAAa,GAAGC,OAAO,CAAC,SAAD,CAA7B;;AACAC,UAAU,CAACC,OAAX,GAAqBD,UAAU,CAACC,OAAX,IAAsB,EAA3C;AACAC,MAAM,CAACC,OAAP,GAAiBC,MAAM,CAACC,MAAP,CAAcL,UAAU,CAACC,OAAzB,EAAkCH,aAAlC,CAAjB","sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"file":"bundle.js"}
1
+ {"version":3,"sources":["../../src/bundle.ts"],"names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"mappings":";;AACA,IAAMA,aAAa,GAAGC,OAAO,CAAC,SAAD,CAA7B;;AACAC,UAAU,CAACC,OAAX,GAAqBD,UAAU,CAACC,OAAX,IAAsB,EAA3C;AACAC,MAAM,CAACC,OAAP,GAAiBC,MAAM,CAACC,MAAP,CAAcL,UAAU,CAACC,OAAzB,EAAkCH,aAAlC,CAAjB","sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"file":"bundle.js"}
package/dist/es5/index.js CHANGED
@@ -5,31 +5,31 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  Object.defineProperty(exports, "WKBLoader", {
7
7
  enumerable: true,
8
- get: function () {
8
+ get: function get() {
9
9
  return _wkbLoader.WKBLoader;
10
10
  }
11
11
  });
12
12
  Object.defineProperty(exports, "WKBWorkerLoader", {
13
13
  enumerable: true,
14
- get: function () {
14
+ get: function get() {
15
15
  return _wkbLoader.WKBWorkerLoader;
16
16
  }
17
17
  });
18
18
  Object.defineProperty(exports, "WKTLoader", {
19
19
  enumerable: true,
20
- get: function () {
20
+ get: function get() {
21
21
  return _wktLoader.WKTLoader;
22
22
  }
23
23
  });
24
24
  Object.defineProperty(exports, "WKTWorkerLoader", {
25
25
  enumerable: true,
26
- get: function () {
26
+ get: function get() {
27
27
  return _wktLoader.WKTWorkerLoader;
28
28
  }
29
29
  });
30
30
  Object.defineProperty(exports, "WKTWriter", {
31
31
  enumerable: true,
32
- get: function () {
32
+ get: function get() {
33
33
  return _wktWriter.WKTWriter;
34
34
  }
35
35
  });
@@ -53,9 +53,9 @@ function encodeWKT(gj) {
53
53
  return "GEOMETRYCOLLECTION ".concat(wrapParens(gj.geometries.map(encodeWKT).join(', ')));
54
54
 
55
55
  default:
56
- return (_x => {
56
+ return function (_x) {
57
57
  throw new Error('stringify requires a valid GeoJSON Feature or geometry object as input');
58
- })(gj);
58
+ }(gj);
59
59
  }
60
60
  }
61
61
  //# sourceMappingURL=encode-wkt.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/encode-wkt.ts"],"names":["encodeWKT","gj","type","geometry","pairWKT","c","join","ringWKT","r","map","ringsWKT","wrapParens","multiRingsWKT","s","coordinates","geometries","_x","Error"],"mappings":";;;;;;;AASe,SAASA,SAAT,CAAmBC,EAAnB,EAAmD;AAChE,MAAIA,EAAE,CAACC,IAAH,KAAY,SAAhB,EAA2B;AACzBD,IAAAA,EAAE,GAAGA,EAAE,CAACE,QAAR;AACD;;AAED,WAASC,OAAT,CAAiBC,CAAjB,EAA8B;AAC5B,WAAOA,CAAC,CAACC,IAAF,CAAO,GAAP,CAAP;AACD;;AAED,WAASC,OAAT,CAAiBC,CAAjB,EAAgC;AAC9B,WAAOA,CAAC,CAACC,GAAF,CAAML,OAAN,EAAeE,IAAf,CAAoB,IAApB,CAAP;AACD;;AAED,WAASI,QAAT,CAAkBF,CAAlB,EAAmC;AACjC,WAAOA,CAAC,CAACC,GAAF,CAAMF,OAAN,EAAeE,GAAf,CAAmBE,UAAnB,EAA+BL,IAA/B,CAAoC,IAApC,CAAP;AACD;;AAED,WAASM,aAAT,CAAuBJ,CAAvB,EAA0C;AACxC,WAAOA,CAAC,CAACC,GAAF,CAAMC,QAAN,EAAgBD,GAAhB,CAAoBE,UAApB,EAAgCL,IAAhC,CAAqC,IAArC,CAAP;AACD;;AAED,WAASK,UAAT,CAAoBE,CAApB,EAA+B;AAC7B,sBAAWA,CAAX;AACD;;AAED,UAAQZ,EAAE,CAACC,IAAX;AACE,SAAK,OAAL;AACE,6BAAgBS,UAAU,CAACP,OAAO,CAACH,EAAE,CAACa,WAAJ,CAAR,CAA1B;;AACF,SAAK,YAAL;AACE,kCAAqBH,UAAU,CAACJ,OAAO,CAACN,EAAE,CAACa,WAAJ,CAAR,CAA/B;;AACF,SAAK,SAAL;AACE,+BAAkBH,UAAU,CAACD,QAAQ,CAACT,EAAE,CAACa,WAAJ,CAAT,CAA5B;;AACF,SAAK,YAAL;AACE,kCAAqBH,UAAU,CAACJ,OAAO,CAACN,EAAE,CAACa,WAAJ,CAAR,CAA/B;;AACF,SAAK,cAAL;AACE,oCAAuBH,UAAU,CAACC,aAAa,CAACX,EAAE,CAACa,WAAJ,CAAd,CAAjC;;AACF,SAAK,iBAAL;AACE,uCAA0BH,UAAU,CAACD,QAAQ,CAACT,EAAE,CAACa,WAAJ,CAAT,CAApC;;AACF,SAAK,oBAAL;AACE,0CAA6BH,UAAU,CAACV,EAAE,CAACc,UAAH,CAAcN,GAAd,CAAkBT,SAAlB,EAA6BM,IAA7B,CAAkC,IAAlC,CAAD,CAAvC;;AACF;AACE,aAAO,CAAEU,EAAD,IAAsB;AAC5B,cAAM,IAAIC,KAAJ,CAAU,wEAAV,CAAN;AACD,OAFM,EAEJhB,EAFI,CAAP;AAhBJ;AAoBD","sourcesContent":["// Fork of https://github.com/mapbox/wellknown under ISC license (MIT/BSD-2-clause equivalent)\n// eslint-disable-next-line import/no-unresolved\nimport type {Feature, Geometry} from 'geojson';\n/**\n * Stringifies a GeoJSON object into WKT\n * @param geojson\n * @returns string\n */\n\nexport default function encodeWKT(gj: Geometry | Feature): string {\n if (gj.type === 'Feature') {\n gj = gj.geometry;\n }\n\n function pairWKT(c: number[]) {\n return c.join(' ');\n }\n\n function ringWKT(r: number[][]) {\n return r.map(pairWKT).join(', ');\n }\n\n function ringsWKT(r: number[][][]) {\n return r.map(ringWKT).map(wrapParens).join(', ');\n }\n\n function multiRingsWKT(r: number[][][][]) {\n return r.map(ringsWKT).map(wrapParens).join(', ');\n }\n\n function wrapParens(s: string) {\n return `(${s})`;\n }\n\n switch (gj.type) {\n case 'Point':\n return `POINT ${wrapParens(pairWKT(gj.coordinates))}`;\n case 'LineString':\n return `LINESTRING ${wrapParens(ringWKT(gj.coordinates))}`;\n case 'Polygon':\n return `POLYGON ${wrapParens(ringsWKT(gj.coordinates))}`;\n case 'MultiPoint':\n return `MULTIPOINT ${wrapParens(ringWKT(gj.coordinates))}`;\n case 'MultiPolygon':\n return `MULTIPOLYGON ${wrapParens(multiRingsWKT(gj.coordinates))}`;\n case 'MultiLineString':\n return `MULTILINESTRING ${wrapParens(ringsWKT(gj.coordinates))}`;\n case 'GeometryCollection':\n return `GEOMETRYCOLLECTION ${wrapParens(gj.geometries.map(encodeWKT).join(', '))}`;\n default:\n return ((_x: never): never => {\n throw new Error('stringify requires a valid GeoJSON Feature or geometry object as input');\n })(gj);\n }\n}\n"],"file":"encode-wkt.js"}
1
+ {"version":3,"sources":["../../../src/lib/encode-wkt.ts"],"names":["encodeWKT","gj","type","geometry","pairWKT","c","join","ringWKT","r","map","ringsWKT","wrapParens","multiRingsWKT","s","coordinates","geometries","_x","Error"],"mappings":";;;;;;;AASe,SAASA,SAAT,CAAmBC,EAAnB,EAAmD;AAChE,MAAIA,EAAE,CAACC,IAAH,KAAY,SAAhB,EAA2B;AACzBD,IAAAA,EAAE,GAAGA,EAAE,CAACE,QAAR;AACD;;AAED,WAASC,OAAT,CAAiBC,CAAjB,EAA8B;AAC5B,WAAOA,CAAC,CAACC,IAAF,CAAO,GAAP,CAAP;AACD;;AAED,WAASC,OAAT,CAAiBC,CAAjB,EAAgC;AAC9B,WAAOA,CAAC,CAACC,GAAF,CAAML,OAAN,EAAeE,IAAf,CAAoB,IAApB,CAAP;AACD;;AAED,WAASI,QAAT,CAAkBF,CAAlB,EAAmC;AACjC,WAAOA,CAAC,CAACC,GAAF,CAAMF,OAAN,EAAeE,GAAf,CAAmBE,UAAnB,EAA+BL,IAA/B,CAAoC,IAApC,CAAP;AACD;;AAED,WAASM,aAAT,CAAuBJ,CAAvB,EAA0C;AACxC,WAAOA,CAAC,CAACC,GAAF,CAAMC,QAAN,EAAgBD,GAAhB,CAAoBE,UAApB,EAAgCL,IAAhC,CAAqC,IAArC,CAAP;AACD;;AAED,WAASK,UAAT,CAAoBE,CAApB,EAA+B;AAC7B,sBAAWA,CAAX;AACD;;AAED,UAAQZ,EAAE,CAACC,IAAX;AACE,SAAK,OAAL;AACE,6BAAgBS,UAAU,CAACP,OAAO,CAACH,EAAE,CAACa,WAAJ,CAAR,CAA1B;;AACF,SAAK,YAAL;AACE,kCAAqBH,UAAU,CAACJ,OAAO,CAACN,EAAE,CAACa,WAAJ,CAAR,CAA/B;;AACF,SAAK,SAAL;AACE,+BAAkBH,UAAU,CAACD,QAAQ,CAACT,EAAE,CAACa,WAAJ,CAAT,CAA5B;;AACF,SAAK,YAAL;AACE,kCAAqBH,UAAU,CAACJ,OAAO,CAACN,EAAE,CAACa,WAAJ,CAAR,CAA/B;;AACF,SAAK,cAAL;AACE,oCAAuBH,UAAU,CAACC,aAAa,CAACX,EAAE,CAACa,WAAJ,CAAd,CAAjC;;AACF,SAAK,iBAAL;AACE,uCAA0BH,UAAU,CAACD,QAAQ,CAACT,EAAE,CAACa,WAAJ,CAAT,CAApC;;AACF,SAAK,oBAAL;AACE,0CAA6BH,UAAU,CAACV,EAAE,CAACc,UAAH,CAAcN,GAAd,CAAkBT,SAAlB,EAA6BM,IAA7B,CAAkC,IAAlC,CAAD,CAAvC;;AACF;AACE,aAAQ,UAACU,EAAD,EAAsB;AAC5B,cAAM,IAAIC,KAAJ,CAAU,wEAAV,CAAN;AACD,OAFM,CAEJhB,EAFI,CAAP;AAhBJ;AAoBD","sourcesContent":["// Fork of https://github.com/mapbox/wellknown under ISC license (MIT/BSD-2-clause equivalent)\n// eslint-disable-next-line import/no-unresolved\nimport type {Feature, Geometry} from 'geojson';\n/**\n * Stringifies a GeoJSON object into WKT\n * @param geojson\n * @returns string\n */\n\nexport default function encodeWKT(gj: Geometry | Feature): string {\n if (gj.type === 'Feature') {\n gj = gj.geometry;\n }\n\n function pairWKT(c: number[]) {\n return c.join(' ');\n }\n\n function ringWKT(r: number[][]) {\n return r.map(pairWKT).join(', ');\n }\n\n function ringsWKT(r: number[][][]) {\n return r.map(ringWKT).map(wrapParens).join(', ');\n }\n\n function multiRingsWKT(r: number[][][][]) {\n return r.map(ringsWKT).map(wrapParens).join(', ');\n }\n\n function wrapParens(s: string) {\n return `(${s})`;\n }\n\n switch (gj.type) {\n case 'Point':\n return `POINT ${wrapParens(pairWKT(gj.coordinates))}`;\n case 'LineString':\n return `LINESTRING ${wrapParens(ringWKT(gj.coordinates))}`;\n case 'Polygon':\n return `POLYGON ${wrapParens(ringsWKT(gj.coordinates))}`;\n case 'MultiPoint':\n return `MULTIPOINT ${wrapParens(ringWKT(gj.coordinates))}`;\n case 'MultiPolygon':\n return `MULTIPOLYGON ${wrapParens(multiRingsWKT(gj.coordinates))}`;\n case 'MultiLineString':\n return `MULTILINESTRING ${wrapParens(ringsWKT(gj.coordinates))}`;\n case 'GeometryCollection':\n return `GEOMETRYCOLLECTION ${wrapParens(gj.geometries.map(encodeWKT).join(', '))}`;\n default:\n return ((_x: never): never => {\n throw new Error('stringify requires a valid GeoJSON Feature or geometry object as input');\n })(gj);\n }\n}\n"],"file":"encode-wkt.js"}
@@ -1,10 +1,21 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports.default = parseWKB;
7
- const NUM_DIMENSIONS = {
9
+
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+
12
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
13
+
14
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
15
+
16
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
17
+
18
+ var NUM_DIMENSIONS = {
8
19
  0: 2,
9
20
  1: 3,
10
21
  2: 3,
@@ -12,41 +23,41 @@ const NUM_DIMENSIONS = {
12
23
  };
13
24
 
14
25
  function parseWKB(arrayBuffer) {
15
- const view = new DataView(arrayBuffer);
16
- let offset = 0;
17
- const littleEndian = view.getUint8(offset) === 1;
26
+ var view = new DataView(arrayBuffer);
27
+ var offset = 0;
28
+ var littleEndian = view.getUint8(offset) === 1;
18
29
  offset++;
19
- const geometryCode = view.getUint32(offset, littleEndian);
30
+ var geometryCode = view.getUint32(offset, littleEndian);
20
31
  offset += 4;
21
- const geometryType = geometryCode % 1000;
22
- const type = (geometryCode - geometryType) / 1000;
23
- const dimension = NUM_DIMENSIONS[type];
32
+ var geometryType = geometryCode % 1000;
33
+ var type = (geometryCode - geometryType) / 1000;
34
+ var dimension = NUM_DIMENSIONS[type];
24
35
 
25
36
  switch (geometryType) {
26
37
  case 1:
27
- const point = parsePoint(view, offset, dimension, littleEndian);
38
+ var point = parsePoint(view, offset, dimension, littleEndian);
28
39
  return point.geometry;
29
40
 
30
41
  case 2:
31
- const line = parseLineString(view, offset, dimension, littleEndian);
42
+ var line = parseLineString(view, offset, dimension, littleEndian);
32
43
  return line.geometry;
33
44
 
34
45
  case 3:
35
- const polygon = parsePolygon(view, offset, dimension, littleEndian);
46
+ var polygon = parsePolygon(view, offset, dimension, littleEndian);
36
47
  return polygon.geometry;
37
48
 
38
49
  case 4:
39
- const multiPoint = parseMultiPoint(view, offset, dimension, littleEndian);
50
+ var multiPoint = parseMultiPoint(view, offset, dimension, littleEndian);
40
51
  multiPoint.type = 'Point';
41
52
  return multiPoint;
42
53
 
43
54
  case 5:
44
- const multiLine = parseMultiLineString(view, offset, dimension, littleEndian);
55
+ var multiLine = parseMultiLineString(view, offset, dimension, littleEndian);
45
56
  multiLine.type = 'LineString';
46
57
  return multiLine;
47
58
 
48
59
  case 6:
49
- const multiPolygon = parseMultiPolygon(view, offset, dimension, littleEndian);
60
+ var multiPolygon = parseMultiPolygon(view, offset, dimension, littleEndian);
50
61
  multiPolygon.type = 'Polygon';
51
62
  return multiPolygon;
52
63
 
@@ -56,9 +67,9 @@ function parseWKB(arrayBuffer) {
56
67
  }
57
68
 
58
69
  function parsePoint(view, offset, dimension, littleEndian) {
59
- const positions = new Float64Array(dimension);
70
+ var positions = new Float64Array(dimension);
60
71
 
61
- for (let i = 0; i < dimension; i++) {
72
+ for (var i = 0; i < dimension; i++) {
62
73
  positions[i] = view.getFloat64(offset, littleEndian);
63
74
  offset += 8;
64
75
  }
@@ -71,21 +82,21 @@ function parsePoint(view, offset, dimension, littleEndian) {
71
82
  size: dimension
72
83
  }
73
84
  },
74
- offset
85
+ offset: offset
75
86
  };
76
87
  }
77
88
 
78
89
  function parseLineString(view, offset, dimension, littleEndian) {
79
- const nPoints = view.getUint32(offset, littleEndian);
90
+ var nPoints = view.getUint32(offset, littleEndian);
80
91
  offset += 4;
81
- const positions = new Float64Array(nPoints * dimension);
92
+ var positions = new Float64Array(nPoints * dimension);
82
93
 
83
- for (let i = 0; i < nPoints * dimension; i++) {
94
+ for (var i = 0; i < nPoints * dimension; i++) {
84
95
  positions[i] = view.getFloat64(offset, littleEndian);
85
96
  offset += 8;
86
97
  }
87
98
 
88
- const pathIndices = [0];
99
+ var pathIndices = [0];
89
100
 
90
101
  if (nPoints > 0) {
91
102
  pathIndices.push(nPoints);
@@ -103,34 +114,38 @@ function parseLineString(view, offset, dimension, littleEndian) {
103
114
  size: 1
104
115
  }
105
116
  },
106
- offset
117
+ offset: offset
107
118
  };
108
119
  }
109
120
 
110
- const cumulativeSum = sum => value => sum += value;
121
+ var cumulativeSum = function cumulativeSum(sum) {
122
+ return function (value) {
123
+ return sum += value;
124
+ };
125
+ };
111
126
 
112
127
  function parsePolygon(view, offset, dimension, littleEndian) {
113
- const nRings = view.getUint32(offset, littleEndian);
128
+ var nRings = view.getUint32(offset, littleEndian);
114
129
  offset += 4;
115
- const rings = [];
130
+ var rings = [];
116
131
 
117
- for (let i = 0; i < nRings; i++) {
118
- const parsed = parseLineString(view, offset, dimension, littleEndian);
119
- const {
120
- positions
121
- } = parsed.geometry;
132
+ for (var i = 0; i < nRings; i++) {
133
+ var parsed = parseLineString(view, offset, dimension, littleEndian);
134
+ var positions = parsed.geometry.positions;
122
135
  offset = parsed.offset;
123
136
  rings.push(positions.value);
124
137
  }
125
138
 
126
- const concatenatedPositions = new Float64Array(concatTypedArrays(rings).buffer);
127
- const polygonIndices = [0];
139
+ var concatenatedPositions = new Float64Array(concatTypedArrays(rings).buffer);
140
+ var polygonIndices = [0];
128
141
 
129
142
  if (concatenatedPositions.length > 0) {
130
143
  polygonIndices.push(concatenatedPositions.length / dimension);
131
144
  }
132
145
 
133
- const primitivePolygonIndices = rings.map(l => l.length / dimension).map(cumulativeSum(0));
146
+ var primitivePolygonIndices = rings.map(function (l) {
147
+ return l.length / dimension;
148
+ }).map(cumulativeSum(0));
134
149
  primitivePolygonIndices.unshift(0);
135
150
  return {
136
151
  geometry: {
@@ -148,17 +163,17 @@ function parsePolygon(view, offset, dimension, littleEndian) {
148
163
  size: 1
149
164
  }
150
165
  },
151
- offset
166
+ offset: offset
152
167
  };
153
168
  }
154
169
 
155
170
  function parseMultiPoint(view, offset, dimension, littleEndian) {
156
- const nPoints = view.getUint32(offset, littleEndian);
171
+ var nPoints = view.getUint32(offset, littleEndian);
157
172
  offset += 4;
158
- const binaryPointGeometries = [];
173
+ var binaryPointGeometries = [];
159
174
 
160
- for (let i = 0; i < nPoints; i++) {
161
- const littleEndianPoint = view.getUint8(offset) === 1;
175
+ for (var i = 0; i < nPoints; i++) {
176
+ var littleEndianPoint = view.getUint8(offset) === 1;
162
177
  offset++;
163
178
 
164
179
  if (view.getUint32(offset, littleEndianPoint) % 1000 !== 1) {
@@ -166,7 +181,7 @@ function parseMultiPoint(view, offset, dimension, littleEndian) {
166
181
  }
167
182
 
168
183
  offset += 4;
169
- const parsed = parsePoint(view, offset, dimension, littleEndianPoint);
184
+ var parsed = parsePoint(view, offset, dimension, littleEndianPoint);
170
185
  offset = parsed.offset;
171
186
  binaryPointGeometries.push(parsed.geometry);
172
187
  }
@@ -175,12 +190,12 @@ function parseMultiPoint(view, offset, dimension, littleEndian) {
175
190
  }
176
191
 
177
192
  function parseMultiLineString(view, offset, dimension, littleEndian) {
178
- const nLines = view.getUint32(offset, littleEndian);
193
+ var nLines = view.getUint32(offset, littleEndian);
179
194
  offset += 4;
180
- const binaryLineGeometries = [];
195
+ var binaryLineGeometries = [];
181
196
 
182
- for (let i = 0; i < nLines; i++) {
183
- const littleEndianLine = view.getUint8(offset) === 1;
197
+ for (var i = 0; i < nLines; i++) {
198
+ var littleEndianLine = view.getUint8(offset) === 1;
184
199
  offset++;
185
200
 
186
201
  if (view.getUint32(offset, littleEndianLine) % 1000 !== 2) {
@@ -188,7 +203,7 @@ function parseMultiLineString(view, offset, dimension, littleEndian) {
188
203
  }
189
204
 
190
205
  offset += 4;
191
- const parsed = parseLineString(view, offset, dimension, littleEndianLine);
206
+ var parsed = parseLineString(view, offset, dimension, littleEndianLine);
192
207
  offset = parsed.offset;
193
208
  binaryLineGeometries.push(parsed.geometry);
194
209
  }
@@ -197,12 +212,12 @@ function parseMultiLineString(view, offset, dimension, littleEndian) {
197
212
  }
198
213
 
199
214
  function parseMultiPolygon(view, offset, dimension, littleEndian) {
200
- const nPolygons = view.getUint32(offset, littleEndian);
215
+ var nPolygons = view.getUint32(offset, littleEndian);
201
216
  offset += 4;
202
- const binaryPolygonGeometries = [];
217
+ var binaryPolygonGeometries = [];
203
218
 
204
- for (let i = 0; i < nPolygons; i++) {
205
- const littleEndianPolygon = view.getUint8(offset) === 1;
219
+ for (var i = 0; i < nPolygons; i++) {
220
+ var littleEndianPolygon = view.getUint8(offset) === 1;
206
221
  offset++;
207
222
 
208
223
  if (view.getUint32(offset, littleEndianPolygon) % 1000 !== 3) {
@@ -210,7 +225,7 @@ function parseMultiPolygon(view, offset, dimension, littleEndian) {
210
225
  }
211
226
 
212
227
  offset += 4;
213
- const parsed = parsePolygon(view, offset, dimension, littleEndianPolygon);
228
+ var parsed = parsePolygon(view, offset, dimension, littleEndianPolygon);
214
229
  offset = parsed.offset;
215
230
  binaryPolygonGeometries.push(parsed.geometry);
216
231
  }
@@ -219,8 +234,10 @@ function parseMultiPolygon(view, offset, dimension, littleEndian) {
219
234
  }
220
235
 
221
236
  function concatenateBinaryPointGeometries(binaryPointGeometries, dimension) {
222
- const positions = binaryPointGeometries.map(geometry => geometry.positions.value);
223
- const concatenatedPositions = new Float64Array(concatTypedArrays(positions).buffer);
237
+ var positions = binaryPointGeometries.map(function (geometry) {
238
+ return geometry.positions.value;
239
+ });
240
+ var concatenatedPositions = new Float64Array(concatTypedArrays(positions).buffer);
224
241
  return {
225
242
  type: 'Point',
226
243
  positions: {
@@ -231,9 +248,13 @@ function concatenateBinaryPointGeometries(binaryPointGeometries, dimension) {
231
248
  }
232
249
 
233
250
  function concatenateBinaryLineGeometries(binaryLineGeometries, dimension) {
234
- const lines = binaryLineGeometries.map(geometry => geometry.positions.value);
235
- const concatenatedPositions = new Float64Array(concatTypedArrays(lines).buffer);
236
- const pathIndices = lines.map(line => line.length / dimension).map(cumulativeSum(0));
251
+ var lines = binaryLineGeometries.map(function (geometry) {
252
+ return geometry.positions.value;
253
+ });
254
+ var concatenatedPositions = new Float64Array(concatTypedArrays(lines).buffer);
255
+ var pathIndices = lines.map(function (line) {
256
+ return line.length / dimension;
257
+ }).map(cumulativeSum(0));
237
258
  pathIndices.unshift(0);
238
259
  return {
239
260
  type: 'LineString',
@@ -249,25 +270,40 @@ function concatenateBinaryLineGeometries(binaryLineGeometries, dimension) {
249
270
  }
250
271
 
251
272
  function concatenateBinaryPolygonGeometries(binaryPolygonGeometries, dimension) {
252
- const polygons = [];
253
- const primitivePolygons = [];
254
-
255
- for (const binaryPolygon of binaryPolygonGeometries) {
256
- const {
257
- positions,
258
- primitivePolygonIndices
259
- } = binaryPolygon;
260
- polygons.push(positions.value);
261
- primitivePolygons.push(primitivePolygonIndices.value);
273
+ var polygons = [];
274
+ var primitivePolygons = [];
275
+
276
+ var _iterator = _createForOfIteratorHelper(binaryPolygonGeometries),
277
+ _step;
278
+
279
+ try {
280
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
281
+ var binaryPolygon = _step.value;
282
+ var positions = binaryPolygon.positions,
283
+ _primitivePolygonIndices = binaryPolygon.primitivePolygonIndices;
284
+ polygons.push(positions.value);
285
+ primitivePolygons.push(_primitivePolygonIndices.value);
286
+ }
287
+ } catch (err) {
288
+ _iterator.e(err);
289
+ } finally {
290
+ _iterator.f();
262
291
  }
263
292
 
264
- const concatenatedPositions = new Float64Array(concatTypedArrays(polygons).buffer);
265
- const polygonIndices = polygons.map(p => p.length / dimension).map(cumulativeSum(0));
293
+ var concatenatedPositions = new Float64Array(concatTypedArrays(polygons).buffer);
294
+ var polygonIndices = polygons.map(function (p) {
295
+ return p.length / dimension;
296
+ }).map(cumulativeSum(0));
266
297
  polygonIndices.unshift(0);
267
- const primitivePolygonIndices = [0];
268
-
269
- for (const primitivePolygon of primitivePolygons) {
270
- primitivePolygonIndices.push(...primitivePolygon.filter(x => x > 0).map(x => x + primitivePolygonIndices[primitivePolygonIndices.length - 1]));
298
+ var primitivePolygonIndices = [0];
299
+
300
+ for (var _i = 0, _primitivePolygons = primitivePolygons; _i < _primitivePolygons.length; _i++) {
301
+ var primitivePolygon = _primitivePolygons[_i];
302
+ primitivePolygonIndices.push.apply(primitivePolygonIndices, (0, _toConsumableArray2.default)(primitivePolygon.filter(function (x) {
303
+ return x > 0;
304
+ }).map(function (x) {
305
+ return x + primitivePolygonIndices[primitivePolygonIndices.length - 1];
306
+ })));
271
307
  }
272
308
 
273
309
  return {
@@ -288,20 +324,20 @@ function concatenateBinaryPolygonGeometries(binaryPolygonGeometries, dimension)
288
324
  }
289
325
 
290
326
  function concatTypedArrays(arrays) {
291
- let byteLength = 0;
327
+ var byteLength = 0;
292
328
 
293
- for (let i = 0; i < arrays.length; ++i) {
329
+ for (var i = 0; i < arrays.length; ++i) {
294
330
  byteLength += arrays[i].byteLength;
295
331
  }
296
332
 
297
- const buffer = new Uint8Array(byteLength);
298
- let byteOffset = 0;
333
+ var buffer = new Uint8Array(byteLength);
334
+ var byteOffset = 0;
299
335
 
300
- for (let i = 0; i < arrays.length; ++i) {
301
- const data = new Uint8Array(arrays[i].buffer);
336
+ for (var _i2 = 0; _i2 < arrays.length; ++_i2) {
337
+ var data = new Uint8Array(arrays[_i2].buffer);
302
338
  byteLength = data.length;
303
339
 
304
- for (let j = 0; j < byteLength; ++j) {
340
+ for (var j = 0; j < byteLength; ++j) {
305
341
  buffer[byteOffset++] = data[j];
306
342
  }
307
343
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/parse-wkb.ts"],"names":["NUM_DIMENSIONS","parseWKB","arrayBuffer","view","DataView","offset","littleEndian","getUint8","geometryCode","getUint32","geometryType","type","dimension","point","parsePoint","geometry","line","parseLineString","polygon","parsePolygon","multiPoint","parseMultiPoint","multiLine","parseMultiLineString","multiPolygon","parseMultiPolygon","Error","positions","Float64Array","i","getFloat64","value","size","nPoints","pathIndices","push","Uint16Array","cumulativeSum","sum","nRings","rings","parsed","concatenatedPositions","concatTypedArrays","buffer","polygonIndices","length","primitivePolygonIndices","map","l","unshift","binaryPointGeometries","littleEndianPoint","concatenateBinaryPointGeometries","nLines","binaryLineGeometries","littleEndianLine","concatenateBinaryLineGeometries","nPolygons","binaryPolygonGeometries","littleEndianPolygon","concatenateBinaryPolygonGeometries","lines","polygons","primitivePolygons","binaryPolygon","p","primitivePolygon","filter","x","arrays","byteLength","Uint8Array","byteOffset","data","j"],"mappings":"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","sourcesContent":["import type {\n TypedArray,\n BinaryGeometry,\n BinaryPointGeometry,\n BinaryLineGeometry,\n BinaryPolygonGeometry\n} from '@loaders.gl/schema';\n\nconst NUM_DIMENSIONS = {\n 0: 2, // 2D\n 1: 3, // 3D (Z)\n 2: 3, // 3D (M)\n 3: 4 // 4D (ZM)\n};\n\nexport default function parseWKB(arrayBuffer: ArrayBuffer): BinaryGeometry {\n const view = new DataView(arrayBuffer);\n let offset = 0;\n\n // Check endianness of data\n const littleEndian = view.getUint8(offset) === 1;\n offset++;\n\n // 4-digit code representing dimension and type of geometry\n const geometryCode = view.getUint32(offset, littleEndian);\n offset += 4;\n\n const geometryType = geometryCode % 1000;\n const type = ((geometryCode - geometryType) / 1000) as 0 | 1 | 2 | 3;\n const dimension = NUM_DIMENSIONS[type];\n\n switch (geometryType) {\n case 1:\n const point = parsePoint(view, offset, dimension, littleEndian);\n return point.geometry;\n case 2:\n const line = parseLineString(view, offset, dimension, littleEndian);\n return line.geometry;\n case 3:\n const polygon = parsePolygon(view, offset, dimension, littleEndian);\n return polygon.geometry;\n case 4:\n const multiPoint = parseMultiPoint(view, offset, dimension, littleEndian);\n multiPoint.type = 'Point';\n return multiPoint;\n case 5:\n const multiLine = parseMultiLineString(view, offset, dimension, littleEndian);\n multiLine.type = 'LineString';\n return multiLine;\n case 6:\n const multiPolygon = parseMultiPolygon(view, offset, dimension, littleEndian);\n multiPolygon.type = 'Polygon';\n return multiPolygon;\n // case 7:\n // TODO: handle GeometryCollections\n // return parseGeometryCollection(view, offset, dimension, littleEndian);\n default:\n throw new Error(`WKB: Unsupported geometry type: ${geometryType}`);\n }\n}\n\n// Primitives; parse point and linear ring\nfunction parsePoint(\n view: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): {geometry: BinaryPointGeometry; offset: number} {\n const positions = new Float64Array(dimension);\n for (let i = 0; i < dimension; i++) {\n positions[i] = view.getFloat64(offset, littleEndian);\n offset += 8;\n }\n\n return {\n geometry: {type: 'Point', positions: {value: positions, size: dimension}},\n offset\n };\n}\n\nfunction parseLineString(\n view: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): {geometry: BinaryLineGeometry; offset: number} {\n const nPoints = view.getUint32(offset, littleEndian);\n offset += 4;\n\n // Instantiate array\n const positions = new Float64Array(nPoints * dimension);\n for (let i = 0; i < nPoints * dimension; i++) {\n positions[i] = view.getFloat64(offset, littleEndian);\n offset += 8;\n }\n\n const pathIndices = [0];\n if (nPoints > 0) {\n pathIndices.push(nPoints);\n }\n\n return {\n geometry: {\n type: 'LineString',\n positions: {value: positions, size: dimension},\n pathIndices: {value: new Uint16Array(pathIndices), size: 1}\n },\n offset\n };\n}\n\n// https://stackoverflow.com/a/55261098\nconst cumulativeSum = (sum: number) => (value: number) => (sum += value);\n\nfunction parsePolygon(\n view: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): {geometry: BinaryPolygonGeometry; offset: number} {\n const nRings = view.getUint32(offset, littleEndian);\n offset += 4;\n\n const rings: TypedArray[] = [];\n for (let i = 0; i < nRings; i++) {\n const parsed = parseLineString(view, offset, dimension, littleEndian);\n const {positions} = parsed.geometry;\n offset = parsed.offset;\n rings.push(positions.value);\n }\n\n const concatenatedPositions = new Float64Array(concatTypedArrays(rings).buffer);\n const polygonIndices = [0];\n if (concatenatedPositions.length > 0) {\n polygonIndices.push(concatenatedPositions.length / dimension);\n }\n const primitivePolygonIndices = rings.map((l) => l.length / dimension).map(cumulativeSum(0));\n primitivePolygonIndices.unshift(0);\n\n return {\n geometry: {\n type: 'Polygon',\n positions: {value: concatenatedPositions, size: dimension},\n polygonIndices: {\n value: new Uint16Array(polygonIndices),\n size: 1\n },\n primitivePolygonIndices: {value: new Uint16Array(primitivePolygonIndices), size: 1}\n },\n offset\n };\n}\n\nfunction parseMultiPoint(\n view: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): BinaryPointGeometry {\n const nPoints = view.getUint32(offset, littleEndian);\n offset += 4;\n\n const binaryPointGeometries: BinaryPointGeometry[] = [];\n for (let i = 0; i < nPoints; i++) {\n // Byte order for point\n const littleEndianPoint = view.getUint8(offset) === 1;\n offset++;\n\n // Assert point type\n if (view.getUint32(offset, littleEndianPoint) % 1000 !== 1) {\n throw new Error('WKB: Inner geometries of MultiPoint not of type Point');\n }\n\n offset += 4;\n\n const parsed = parsePoint(view, offset, dimension, littleEndianPoint);\n offset = parsed.offset;\n binaryPointGeometries.push(parsed.geometry);\n }\n\n return concatenateBinaryPointGeometries(binaryPointGeometries, dimension);\n}\n\nfunction parseMultiLineString(\n view: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): BinaryLineGeometry {\n const nLines = view.getUint32(offset, littleEndian);\n offset += 4;\n\n const binaryLineGeometries: BinaryLineGeometry[] = [];\n for (let i = 0; i < nLines; i++) {\n // Byte order for line\n const littleEndianLine = view.getUint8(offset) === 1;\n offset++;\n\n // Assert type LineString\n if (view.getUint32(offset, littleEndianLine) % 1000 !== 2) {\n throw new Error('WKB: Inner geometries of MultiLineString not of type LineString');\n }\n offset += 4;\n\n const parsed = parseLineString(view, offset, dimension, littleEndianLine);\n offset = parsed.offset;\n binaryLineGeometries.push(parsed.geometry);\n }\n\n return concatenateBinaryLineGeometries(binaryLineGeometries, dimension);\n}\n\nfunction parseMultiPolygon(\n view: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): BinaryPolygonGeometry {\n const nPolygons = view.getUint32(offset, littleEndian);\n offset += 4;\n\n const binaryPolygonGeometries: BinaryPolygonGeometry[] = [];\n for (let i = 0; i < nPolygons; i++) {\n // Byte order for polygon\n const littleEndianPolygon = view.getUint8(offset) === 1;\n offset++;\n\n // Assert type Polygon\n if (view.getUint32(offset, littleEndianPolygon) % 1000 !== 3) {\n throw new Error('WKB: Inner geometries of MultiPolygon not of type Polygon');\n }\n offset += 4;\n\n const parsed = parsePolygon(view, offset, dimension, littleEndianPolygon);\n offset = parsed.offset;\n binaryPolygonGeometries.push(parsed.geometry);\n }\n\n return concatenateBinaryPolygonGeometries(binaryPolygonGeometries, dimension);\n}\n\n// TODO - move to loaders.gl/schema/gis\n\nfunction concatenateBinaryPointGeometries(\n binaryPointGeometries: BinaryPointGeometry[],\n dimension: number\n): BinaryPointGeometry {\n const positions: TypedArray[] = binaryPointGeometries.map((geometry) => geometry.positions.value);\n const concatenatedPositions = new Float64Array(concatTypedArrays(positions).buffer);\n\n return {\n type: 'Point',\n positions: {value: concatenatedPositions, size: dimension}\n };\n}\n\nfunction concatenateBinaryLineGeometries(\n binaryLineGeometries: BinaryLineGeometry[],\n dimension: number\n): BinaryLineGeometry {\n const lines: TypedArray[] = binaryLineGeometries.map((geometry) => geometry.positions.value);\n const concatenatedPositions = new Float64Array(concatTypedArrays(lines).buffer);\n const pathIndices = lines.map((line) => line.length / dimension).map(cumulativeSum(0));\n pathIndices.unshift(0);\n\n return {\n type: 'LineString',\n positions: {value: concatenatedPositions, size: dimension},\n pathIndices: {value: new Uint16Array(pathIndices), size: 1}\n };\n}\n\nfunction concatenateBinaryPolygonGeometries(\n binaryPolygonGeometries: BinaryPolygonGeometry[],\n dimension: number\n): BinaryPolygonGeometry {\n const polygons: TypedArray[] = [];\n const primitivePolygons: TypedArray[] = [];\n\n for (const binaryPolygon of binaryPolygonGeometries) {\n const {positions, primitivePolygonIndices} = binaryPolygon;\n polygons.push(positions.value);\n primitivePolygons.push(primitivePolygonIndices.value);\n }\n\n const concatenatedPositions = new Float64Array(concatTypedArrays(polygons).buffer);\n const polygonIndices = polygons.map((p) => p.length / dimension).map(cumulativeSum(0));\n polygonIndices.unshift(0);\n\n // Combine primitivePolygonIndices from each individual polygon\n const primitivePolygonIndices = [0];\n for (const primitivePolygon of primitivePolygons) {\n primitivePolygonIndices.push(\n ...primitivePolygon\n .filter((x: number) => x > 0)\n .map((x: number) => x + primitivePolygonIndices[primitivePolygonIndices.length - 1])\n );\n }\n\n return {\n type: 'Polygon',\n positions: {value: concatenatedPositions, size: dimension},\n polygonIndices: {value: new Uint16Array(polygonIndices), size: 1},\n primitivePolygonIndices: {value: new Uint16Array(primitivePolygonIndices), size: 1}\n };\n}\n\n// TODO: remove copy; import from typed-array-utils\n// modules/math/src/geometry/typed-arrays/typed-array-utils.js\nfunction concatTypedArrays(arrays: TypedArray[]): TypedArray {\n let byteLength = 0;\n for (let i = 0; i < arrays.length; ++i) {\n byteLength += arrays[i].byteLength;\n }\n const buffer = new Uint8Array(byteLength);\n\n let byteOffset = 0;\n for (let i = 0; i < arrays.length; ++i) {\n const data = new Uint8Array(arrays[i].buffer);\n byteLength = data.length;\n for (let j = 0; j < byteLength; ++j) {\n buffer[byteOffset++] = data[j];\n }\n }\n return buffer;\n}\n"],"file":"parse-wkb.js"}
1
+ {"version":3,"sources":["../../../src/lib/parse-wkb.ts"],"names":["NUM_DIMENSIONS","parseWKB","arrayBuffer","view","DataView","offset","littleEndian","getUint8","geometryCode","getUint32","geometryType","type","dimension","point","parsePoint","geometry","line","parseLineString","polygon","parsePolygon","multiPoint","parseMultiPoint","multiLine","parseMultiLineString","multiPolygon","parseMultiPolygon","Error","positions","Float64Array","i","getFloat64","value","size","nPoints","pathIndices","push","Uint16Array","cumulativeSum","sum","nRings","rings","parsed","concatenatedPositions","concatTypedArrays","buffer","polygonIndices","length","primitivePolygonIndices","map","l","unshift","binaryPointGeometries","littleEndianPoint","concatenateBinaryPointGeometries","nLines","binaryLineGeometries","littleEndianLine","concatenateBinaryLineGeometries","nPolygons","binaryPolygonGeometries","littleEndianPolygon","concatenateBinaryPolygonGeometries","lines","polygons","primitivePolygons","binaryPolygon","p","primitivePolygon","filter","x","arrays","byteLength","Uint8Array","byteOffset","data","j"],"mappings":"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","sourcesContent":["import type {\n TypedArray,\n BinaryGeometry,\n BinaryPointGeometry,\n BinaryLineGeometry,\n BinaryPolygonGeometry\n} from '@loaders.gl/schema';\n\nconst NUM_DIMENSIONS = {\n 0: 2, // 2D\n 1: 3, // 3D (Z)\n 2: 3, // 3D (M)\n 3: 4 // 4D (ZM)\n};\n\nexport default function parseWKB(arrayBuffer: ArrayBuffer): BinaryGeometry {\n const view = new DataView(arrayBuffer);\n let offset = 0;\n\n // Check endianness of data\n const littleEndian = view.getUint8(offset) === 1;\n offset++;\n\n // 4-digit code representing dimension and type of geometry\n const geometryCode = view.getUint32(offset, littleEndian);\n offset += 4;\n\n const geometryType = geometryCode % 1000;\n const type = ((geometryCode - geometryType) / 1000) as 0 | 1 | 2 | 3;\n const dimension = NUM_DIMENSIONS[type];\n\n switch (geometryType) {\n case 1:\n const point = parsePoint(view, offset, dimension, littleEndian);\n return point.geometry;\n case 2:\n const line = parseLineString(view, offset, dimension, littleEndian);\n return line.geometry;\n case 3:\n const polygon = parsePolygon(view, offset, dimension, littleEndian);\n return polygon.geometry;\n case 4:\n const multiPoint = parseMultiPoint(view, offset, dimension, littleEndian);\n multiPoint.type = 'Point';\n return multiPoint;\n case 5:\n const multiLine = parseMultiLineString(view, offset, dimension, littleEndian);\n multiLine.type = 'LineString';\n return multiLine;\n case 6:\n const multiPolygon = parseMultiPolygon(view, offset, dimension, littleEndian);\n multiPolygon.type = 'Polygon';\n return multiPolygon;\n // case 7:\n // TODO: handle GeometryCollections\n // return parseGeometryCollection(view, offset, dimension, littleEndian);\n default:\n throw new Error(`WKB: Unsupported geometry type: ${geometryType}`);\n }\n}\n\n// Primitives; parse point and linear ring\nfunction parsePoint(\n view: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): {geometry: BinaryPointGeometry; offset: number} {\n const positions = new Float64Array(dimension);\n for (let i = 0; i < dimension; i++) {\n positions[i] = view.getFloat64(offset, littleEndian);\n offset += 8;\n }\n\n return {\n geometry: {type: 'Point', positions: {value: positions, size: dimension}},\n offset\n };\n}\n\nfunction parseLineString(\n view: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): {geometry: BinaryLineGeometry; offset: number} {\n const nPoints = view.getUint32(offset, littleEndian);\n offset += 4;\n\n // Instantiate array\n const positions = new Float64Array(nPoints * dimension);\n for (let i = 0; i < nPoints * dimension; i++) {\n positions[i] = view.getFloat64(offset, littleEndian);\n offset += 8;\n }\n\n const pathIndices = [0];\n if (nPoints > 0) {\n pathIndices.push(nPoints);\n }\n\n return {\n geometry: {\n type: 'LineString',\n positions: {value: positions, size: dimension},\n pathIndices: {value: new Uint16Array(pathIndices), size: 1}\n },\n offset\n };\n}\n\n// https://stackoverflow.com/a/55261098\nconst cumulativeSum = (sum: number) => (value: number) => (sum += value);\n\nfunction parsePolygon(\n view: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): {geometry: BinaryPolygonGeometry; offset: number} {\n const nRings = view.getUint32(offset, littleEndian);\n offset += 4;\n\n const rings: TypedArray[] = [];\n for (let i = 0; i < nRings; i++) {\n const parsed = parseLineString(view, offset, dimension, littleEndian);\n const {positions} = parsed.geometry;\n offset = parsed.offset;\n rings.push(positions.value);\n }\n\n const concatenatedPositions = new Float64Array(concatTypedArrays(rings).buffer);\n const polygonIndices = [0];\n if (concatenatedPositions.length > 0) {\n polygonIndices.push(concatenatedPositions.length / dimension);\n }\n const primitivePolygonIndices = rings.map((l) => l.length / dimension).map(cumulativeSum(0));\n primitivePolygonIndices.unshift(0);\n\n return {\n geometry: {\n type: 'Polygon',\n positions: {value: concatenatedPositions, size: dimension},\n polygonIndices: {\n value: new Uint16Array(polygonIndices),\n size: 1\n },\n primitivePolygonIndices: {value: new Uint16Array(primitivePolygonIndices), size: 1}\n },\n offset\n };\n}\n\nfunction parseMultiPoint(\n view: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): BinaryPointGeometry {\n const nPoints = view.getUint32(offset, littleEndian);\n offset += 4;\n\n const binaryPointGeometries: BinaryPointGeometry[] = [];\n for (let i = 0; i < nPoints; i++) {\n // Byte order for point\n const littleEndianPoint = view.getUint8(offset) === 1;\n offset++;\n\n // Assert point type\n if (view.getUint32(offset, littleEndianPoint) % 1000 !== 1) {\n throw new Error('WKB: Inner geometries of MultiPoint not of type Point');\n }\n\n offset += 4;\n\n const parsed = parsePoint(view, offset, dimension, littleEndianPoint);\n offset = parsed.offset;\n binaryPointGeometries.push(parsed.geometry);\n }\n\n return concatenateBinaryPointGeometries(binaryPointGeometries, dimension);\n}\n\nfunction parseMultiLineString(\n view: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): BinaryLineGeometry {\n const nLines = view.getUint32(offset, littleEndian);\n offset += 4;\n\n const binaryLineGeometries: BinaryLineGeometry[] = [];\n for (let i = 0; i < nLines; i++) {\n // Byte order for line\n const littleEndianLine = view.getUint8(offset) === 1;\n offset++;\n\n // Assert type LineString\n if (view.getUint32(offset, littleEndianLine) % 1000 !== 2) {\n throw new Error('WKB: Inner geometries of MultiLineString not of type LineString');\n }\n offset += 4;\n\n const parsed = parseLineString(view, offset, dimension, littleEndianLine);\n offset = parsed.offset;\n binaryLineGeometries.push(parsed.geometry);\n }\n\n return concatenateBinaryLineGeometries(binaryLineGeometries, dimension);\n}\n\nfunction parseMultiPolygon(\n view: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): BinaryPolygonGeometry {\n const nPolygons = view.getUint32(offset, littleEndian);\n offset += 4;\n\n const binaryPolygonGeometries: BinaryPolygonGeometry[] = [];\n for (let i = 0; i < nPolygons; i++) {\n // Byte order for polygon\n const littleEndianPolygon = view.getUint8(offset) === 1;\n offset++;\n\n // Assert type Polygon\n if (view.getUint32(offset, littleEndianPolygon) % 1000 !== 3) {\n throw new Error('WKB: Inner geometries of MultiPolygon not of type Polygon');\n }\n offset += 4;\n\n const parsed = parsePolygon(view, offset, dimension, littleEndianPolygon);\n offset = parsed.offset;\n binaryPolygonGeometries.push(parsed.geometry);\n }\n\n return concatenateBinaryPolygonGeometries(binaryPolygonGeometries, dimension);\n}\n\n// TODO - move to loaders.gl/schema/gis\n\nfunction concatenateBinaryPointGeometries(\n binaryPointGeometries: BinaryPointGeometry[],\n dimension: number\n): BinaryPointGeometry {\n const positions: TypedArray[] = binaryPointGeometries.map((geometry) => geometry.positions.value);\n const concatenatedPositions = new Float64Array(concatTypedArrays(positions).buffer);\n\n return {\n type: 'Point',\n positions: {value: concatenatedPositions, size: dimension}\n };\n}\n\nfunction concatenateBinaryLineGeometries(\n binaryLineGeometries: BinaryLineGeometry[],\n dimension: number\n): BinaryLineGeometry {\n const lines: TypedArray[] = binaryLineGeometries.map((geometry) => geometry.positions.value);\n const concatenatedPositions = new Float64Array(concatTypedArrays(lines).buffer);\n const pathIndices = lines.map((line) => line.length / dimension).map(cumulativeSum(0));\n pathIndices.unshift(0);\n\n return {\n type: 'LineString',\n positions: {value: concatenatedPositions, size: dimension},\n pathIndices: {value: new Uint16Array(pathIndices), size: 1}\n };\n}\n\nfunction concatenateBinaryPolygonGeometries(\n binaryPolygonGeometries: BinaryPolygonGeometry[],\n dimension: number\n): BinaryPolygonGeometry {\n const polygons: TypedArray[] = [];\n const primitivePolygons: TypedArray[] = [];\n\n for (const binaryPolygon of binaryPolygonGeometries) {\n const {positions, primitivePolygonIndices} = binaryPolygon;\n polygons.push(positions.value);\n primitivePolygons.push(primitivePolygonIndices.value);\n }\n\n const concatenatedPositions = new Float64Array(concatTypedArrays(polygons).buffer);\n const polygonIndices = polygons.map((p) => p.length / dimension).map(cumulativeSum(0));\n polygonIndices.unshift(0);\n\n // Combine primitivePolygonIndices from each individual polygon\n const primitivePolygonIndices = [0];\n for (const primitivePolygon of primitivePolygons) {\n primitivePolygonIndices.push(\n ...primitivePolygon\n .filter((x: number) => x > 0)\n .map((x: number) => x + primitivePolygonIndices[primitivePolygonIndices.length - 1])\n );\n }\n\n return {\n type: 'Polygon',\n positions: {value: concatenatedPositions, size: dimension},\n polygonIndices: {value: new Uint16Array(polygonIndices), size: 1},\n primitivePolygonIndices: {value: new Uint16Array(primitivePolygonIndices), size: 1}\n };\n}\n\n// TODO: remove copy; import from typed-array-utils\n// modules/math/src/geometry/typed-arrays/typed-array-utils.js\nfunction concatTypedArrays(arrays: TypedArray[]): TypedArray {\n let byteLength = 0;\n for (let i = 0; i < arrays.length; ++i) {\n byteLength += arrays[i].byteLength;\n }\n const buffer = new Uint8Array(byteLength);\n\n let byteOffset = 0;\n for (let i = 0; i < arrays.length; ++i) {\n const data = new Uint8Array(arrays[i].buffer);\n byteLength = data.length;\n for (let j = 0; j < byteLength; ++j) {\n buffer[byteOffset++] = data[j];\n }\n }\n return buffer;\n}\n"],"file":"parse-wkb.js"}
@@ -4,19 +4,19 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = parseWKT;
7
- const numberRegexp = /[-+]?([0-9]*\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/;
8
- const tuples = new RegExp('^' + numberRegexp.source + '(\\s' + numberRegexp.source + '){1,}');
7
+ var numberRegexp = /[-+]?([0-9]*\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/;
8
+ var tuples = new RegExp('^' + numberRegexp.source + '(\\s' + numberRegexp.source + '){1,}');
9
9
 
10
10
  function parseWKT(input) {
11
- const parts = input.split(';');
11
+ var parts = input.split(';');
12
12
 
13
- let _ = parts.pop();
13
+ var _ = parts.pop();
14
14
 
15
- const srid = (parts.shift() || '').split('=').pop();
16
- let i = 0;
15
+ var srid = (parts.shift() || '').split('=').pop();
16
+ var i = 0;
17
17
 
18
18
  function $(re) {
19
- const match = _.substring(i).match(re);
19
+ var match = _.substring(i).match(re);
20
20
 
21
21
  if (!match) return null;else {
22
22
  i += match[0].length;
@@ -43,11 +43,11 @@ function parseWKT(input) {
43
43
 
44
44
  function multicoords() {
45
45
  white();
46
- let depth = 0;
47
- const rings = [];
48
- const stack = [rings];
49
- let pointer = rings;
50
- let elem;
46
+ var depth = 0;
47
+ var rings = [];
48
+ var stack = [rings];
49
+ var pointer = rings;
50
+ var elem;
51
51
 
52
52
  while (elem = $(/^(\()/) || $(/^(\))/) || $(/^(,)/) || $(tuples)) {
53
53
  if (elem === '(') {
@@ -78,9 +78,9 @@ function parseWKT(input) {
78
78
  }
79
79
 
80
80
  function coords() {
81
- const list = [];
82
- let item;
83
- let pt;
81
+ var list = [];
82
+ var item;
83
+ var pt;
84
84
 
85
85
  while (pt = $(tuples) || $(/^(,)/)) {
86
86
  if (pt === ',') {
@@ -102,7 +102,7 @@ function parseWKT(input) {
102
102
  if (!$(/^(point(\sz)?)/i)) return null;
103
103
  white();
104
104
  if (!$(/^(\()/)) return null;
105
- const c = coords();
105
+ var c = coords();
106
106
  if (!c) return null;
107
107
  white();
108
108
  if (!$(/^(\))/)) return null;
@@ -116,10 +116,10 @@ function parseWKT(input) {
116
116
  if (!$(/^(multipoint)/i)) return null;
117
117
  white();
118
118
 
119
- const newCoordsFormat = _.substring(_.indexOf('(') + 1, _.length - 1).replace(/\(/g, '').replace(/\)/g, '');
119
+ var newCoordsFormat = _.substring(_.indexOf('(') + 1, _.length - 1).replace(/\(/g, '').replace(/\)/g, '');
120
120
 
121
121
  _ = 'MULTIPOINT (' + newCoordsFormat + ')';
122
- const c = multicoords();
122
+ var c = multicoords();
123
123
  if (!c) return null;
124
124
  white();
125
125
  return {
@@ -131,7 +131,7 @@ function parseWKT(input) {
131
131
  function multilinestring() {
132
132
  if (!$(/^(multilinestring)/i)) return null;
133
133
  white();
134
- const c = multicoords();
134
+ var c = multicoords();
135
135
  if (!c) return null;
136
136
  white();
137
137
  return {
@@ -144,7 +144,7 @@ function parseWKT(input) {
144
144
  if (!$(/^(linestring(\sz)?)/i)) return null;
145
145
  white();
146
146
  if (!$(/^(\()/)) return null;
147
- const c = coords();
147
+ var c = coords();
148
148
  if (!c) return null;
149
149
  if (!$(/^(\))/)) return null;
150
150
  return {
@@ -156,7 +156,7 @@ function parseWKT(input) {
156
156
  function polygon() {
157
157
  if (!$(/^(polygon(\sz)?)/i)) return null;
158
158
  white();
159
- const c = multicoords();
159
+ var c = multicoords();
160
160
  if (!c) return null;
161
161
  return {
162
162
  type: 'Polygon',
@@ -167,7 +167,7 @@ function parseWKT(input) {
167
167
  function multipolygon() {
168
168
  if (!$(/^(multipolygon)/i)) return null;
169
169
  white();
170
- const c = multicoords();
170
+ var c = multicoords();
171
171
  if (!c) return null;
172
172
  return {
173
173
  type: 'MultiPolygon',
@@ -176,8 +176,8 @@ function parseWKT(input) {
176
176
  }
177
177
 
178
178
  function geometrycollection() {
179
- const geometries = [];
180
- let geometry;
179
+ var geometries = [];
180
+ var geometry;
181
181
  if (!$(/^(geometrycollection)/i)) return null;
182
182
  white();
183
183
  if (!$(/^(\()/)) return null;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/parse-wkt.ts"],"names":["numberRegexp","tuples","RegExp","source","parseWKT","input","parts","split","_","pop","srid","shift","i","$","re","match","substring","length","crs","obj","type","properties","name","white","multicoords","depth","rings","stack","pointer","elem","push","some","isNaN","Array","prototype","apply","map","parseFloat","coords","list","item","pt","point","c","coordinates","multipoint","newCoordsFormat","indexOf","replace","multilinestring","linestring","polygon","multipolygon","geometrycollection","geometries","geometry","root"],"mappings":"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","sourcesContent":["// Fork of https://github.com/mapbox/wellknown under ISC license (MIT/BSD-2-clause equivalent)\n\n/* eslint-disable */\n// @ts-nocheck\n\nconst numberRegexp = /[-+]?([0-9]*\\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/;\n// Matches sequences like '100 100' or '100 100 100'.\nconst tuples = new RegExp('^' + numberRegexp.source + '(\\\\s' + numberRegexp.source + '){1,}');\n\n/**\n * Parse WKT and return GeoJSON.\n *\n * @param {string} _ A WKT geometry\n * @return {?Object} A GeoJSON geometry object\n **/\nexport default function parseWKT(input) {\n const parts = input.split(';');\n let _ = parts.pop();\n const srid = (parts.shift() || '').split('=').pop();\n\n let i = 0;\n\n function $(re) {\n const match = _.substring(i).match(re);\n if (!match) return null;\n else {\n i += match[0].length;\n return match[0];\n }\n }\n\n function crs(obj) {\n if (obj && srid.match(/\\d+/)) {\n obj.crs = {\n type: 'name',\n properties: {\n name: 'urn:ogc:def:crs:EPSG::' + srid\n }\n };\n }\n\n return obj;\n }\n\n function white() {\n $(/^\\s*/);\n }\n\n function multicoords() {\n white();\n let depth = 0;\n const rings = [];\n const stack = [rings];\n let pointer = rings;\n let elem;\n\n while ((elem = $(/^(\\()/) || $(/^(\\))/) || $(/^(,)/) || $(tuples))) {\n if (elem === '(') {\n stack.push(pointer);\n pointer = [];\n stack[stack.length - 1].push(pointer);\n depth++;\n } else if (elem === ')') {\n // For the case: Polygon(), ...\n if (pointer.length === 0) return null;\n\n // @ts-ignore\n pointer = stack.pop();\n // the stack was empty, input was malformed\n if (!pointer) return null;\n depth--;\n if (depth === 0) break;\n } else if (elem === ',') {\n pointer = [];\n stack[stack.length - 1].push(pointer);\n } else if (!elem.split(/\\s/g).some(isNaN)) {\n Array.prototype.push.apply(pointer, elem.split(/\\s/g).map(parseFloat));\n } else {\n return null;\n }\n white();\n }\n\n if (depth !== 0) return null;\n\n return rings;\n }\n\n function coords() {\n const list = [];\n let item;\n let pt;\n while ((pt = $(tuples) || $(/^(,)/))) {\n if (pt === ',') {\n list.push(item);\n item = [];\n } else if (!pt.split(/\\s/g).some(isNaN)) {\n if (!item) item = [];\n Array.prototype.push.apply(item, pt.split(/\\s/g).map(parseFloat));\n }\n white();\n }\n\n if (item) list.push(item);\n else return null;\n\n return list.length ? list : null;\n }\n\n function point() {\n if (!$(/^(point(\\sz)?)/i)) return null;\n white();\n if (!$(/^(\\()/)) return null;\n const c = coords();\n if (!c) return null;\n white();\n if (!$(/^(\\))/)) return null;\n return {\n type: 'Point',\n coordinates: c[0]\n };\n }\n\n function multipoint() {\n if (!$(/^(multipoint)/i)) return null;\n white();\n const newCoordsFormat = _.substring(_.indexOf('(') + 1, _.length - 1)\n .replace(/\\(/g, '')\n .replace(/\\)/g, '');\n _ = 'MULTIPOINT (' + newCoordsFormat + ')';\n const c = multicoords();\n if (!c) return null;\n white();\n return {\n type: 'MultiPoint',\n coordinates: c\n };\n }\n\n function multilinestring() {\n if (!$(/^(multilinestring)/i)) return null;\n white();\n const c = multicoords();\n if (!c) return null;\n white();\n return {\n type: 'MultiLineString',\n coordinates: c\n };\n }\n\n function linestring() {\n if (!$(/^(linestring(\\sz)?)/i)) return null;\n white();\n if (!$(/^(\\()/)) return null;\n const c = coords();\n if (!c) return null;\n if (!$(/^(\\))/)) return null;\n return {\n type: 'LineString',\n coordinates: c\n };\n }\n\n function polygon() {\n if (!$(/^(polygon(\\sz)?)/i)) return null;\n white();\n const c = multicoords();\n if (!c) return null;\n return {\n type: 'Polygon',\n coordinates: c\n };\n }\n\n function multipolygon() {\n if (!$(/^(multipolygon)/i)) return null;\n white();\n const c = multicoords();\n if (!c) return null;\n return {\n type: 'MultiPolygon',\n coordinates: c\n };\n }\n\n function geometrycollection() {\n const geometries = [];\n let geometry;\n\n if (!$(/^(geometrycollection)/i)) return null;\n white();\n\n if (!$(/^(\\()/)) return null;\n while ((geometry = root())) {\n geometries.push(geometry);\n white();\n $(/^(,)/);\n white();\n }\n if (!$(/^(\\))/)) return null;\n\n return {\n type: 'GeometryCollection',\n geometries: geometries\n };\n }\n\n function root() {\n return (\n point() ||\n linestring() ||\n polygon() ||\n multipoint() ||\n multilinestring() ||\n multipolygon() ||\n geometrycollection()\n );\n }\n\n return crs(root());\n}\n"],"file":"parse-wkt.js"}
1
+ {"version":3,"sources":["../../../src/lib/parse-wkt.ts"],"names":["numberRegexp","tuples","RegExp","source","parseWKT","input","parts","split","_","pop","srid","shift","i","$","re","match","substring","length","crs","obj","type","properties","name","white","multicoords","depth","rings","stack","pointer","elem","push","some","isNaN","Array","prototype","apply","map","parseFloat","coords","list","item","pt","point","c","coordinates","multipoint","newCoordsFormat","indexOf","replace","multilinestring","linestring","polygon","multipolygon","geometrycollection","geometries","geometry","root"],"mappings":"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","sourcesContent":["// Fork of https://github.com/mapbox/wellknown under ISC license (MIT/BSD-2-clause equivalent)\n\n/* eslint-disable */\n// @ts-nocheck\n\nconst numberRegexp = /[-+]?([0-9]*\\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/;\n// Matches sequences like '100 100' or '100 100 100'.\nconst tuples = new RegExp('^' + numberRegexp.source + '(\\\\s' + numberRegexp.source + '){1,}');\n\n/**\n * Parse WKT and return GeoJSON.\n *\n * @param {string} _ A WKT geometry\n * @return {?Object} A GeoJSON geometry object\n **/\nexport default function parseWKT(input) {\n const parts = input.split(';');\n let _ = parts.pop();\n const srid = (parts.shift() || '').split('=').pop();\n\n let i = 0;\n\n function $(re) {\n const match = _.substring(i).match(re);\n if (!match) return null;\n else {\n i += match[0].length;\n return match[0];\n }\n }\n\n function crs(obj) {\n if (obj && srid.match(/\\d+/)) {\n obj.crs = {\n type: 'name',\n properties: {\n name: 'urn:ogc:def:crs:EPSG::' + srid\n }\n };\n }\n\n return obj;\n }\n\n function white() {\n $(/^\\s*/);\n }\n\n function multicoords() {\n white();\n let depth = 0;\n const rings = [];\n const stack = [rings];\n let pointer = rings;\n let elem;\n\n while ((elem = $(/^(\\()/) || $(/^(\\))/) || $(/^(,)/) || $(tuples))) {\n if (elem === '(') {\n stack.push(pointer);\n pointer = [];\n stack[stack.length - 1].push(pointer);\n depth++;\n } else if (elem === ')') {\n // For the case: Polygon(), ...\n if (pointer.length === 0) return null;\n\n // @ts-ignore\n pointer = stack.pop();\n // the stack was empty, input was malformed\n if (!pointer) return null;\n depth--;\n if (depth === 0) break;\n } else if (elem === ',') {\n pointer = [];\n stack[stack.length - 1].push(pointer);\n } else if (!elem.split(/\\s/g).some(isNaN)) {\n Array.prototype.push.apply(pointer, elem.split(/\\s/g).map(parseFloat));\n } else {\n return null;\n }\n white();\n }\n\n if (depth !== 0) return null;\n\n return rings;\n }\n\n function coords() {\n const list = [];\n let item;\n let pt;\n while ((pt = $(tuples) || $(/^(,)/))) {\n if (pt === ',') {\n list.push(item);\n item = [];\n } else if (!pt.split(/\\s/g).some(isNaN)) {\n if (!item) item = [];\n Array.prototype.push.apply(item, pt.split(/\\s/g).map(parseFloat));\n }\n white();\n }\n\n if (item) list.push(item);\n else return null;\n\n return list.length ? list : null;\n }\n\n function point() {\n if (!$(/^(point(\\sz)?)/i)) return null;\n white();\n if (!$(/^(\\()/)) return null;\n const c = coords();\n if (!c) return null;\n white();\n if (!$(/^(\\))/)) return null;\n return {\n type: 'Point',\n coordinates: c[0]\n };\n }\n\n function multipoint() {\n if (!$(/^(multipoint)/i)) return null;\n white();\n const newCoordsFormat = _.substring(_.indexOf('(') + 1, _.length - 1)\n .replace(/\\(/g, '')\n .replace(/\\)/g, '');\n _ = 'MULTIPOINT (' + newCoordsFormat + ')';\n const c = multicoords();\n if (!c) return null;\n white();\n return {\n type: 'MultiPoint',\n coordinates: c\n };\n }\n\n function multilinestring() {\n if (!$(/^(multilinestring)/i)) return null;\n white();\n const c = multicoords();\n if (!c) return null;\n white();\n return {\n type: 'MultiLineString',\n coordinates: c\n };\n }\n\n function linestring() {\n if (!$(/^(linestring(\\sz)?)/i)) return null;\n white();\n if (!$(/^(\\()/)) return null;\n const c = coords();\n if (!c) return null;\n if (!$(/^(\\))/)) return null;\n return {\n type: 'LineString',\n coordinates: c\n };\n }\n\n function polygon() {\n if (!$(/^(polygon(\\sz)?)/i)) return null;\n white();\n const c = multicoords();\n if (!c) return null;\n return {\n type: 'Polygon',\n coordinates: c\n };\n }\n\n function multipolygon() {\n if (!$(/^(multipolygon)/i)) return null;\n white();\n const c = multicoords();\n if (!c) return null;\n return {\n type: 'MultiPolygon',\n coordinates: c\n };\n }\n\n function geometrycollection() {\n const geometries = [];\n let geometry;\n\n if (!$(/^(geometrycollection)/i)) return null;\n white();\n\n if (!$(/^(\\()/)) return null;\n while ((geometry = root())) {\n geometries.push(geometry);\n white();\n $(/^(,)/);\n white();\n }\n if (!$(/^(\\))/)) return null;\n\n return {\n type: 'GeometryCollection',\n geometries: geometries\n };\n }\n\n function root() {\n return (\n point() ||\n linestring() ||\n polygon() ||\n multipoint() ||\n multilinestring() ||\n multipolygon() ||\n geometrycollection()\n );\n }\n\n return crs(root());\n}\n"],"file":"parse-wkt.js"}
@@ -4,6 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.VERSION = void 0;
7
- const VERSION = typeof "3.1.0-beta.2" !== 'undefined' ? "3.1.0-beta.2" : 'latest';
7
+ var VERSION = typeof "3.1.0" !== 'undefined' ? "3.1.0" : 'latest';
8
8
  exports.VERSION = VERSION;
9
9
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/utils/version.ts"],"names":["VERSION"],"mappings":";;;;;;AAGO,MAAMA,OAAO,GAAG,0BAAuB,WAAvB,oBAAmD,QAAnE","sourcesContent":["// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nexport const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n"],"file":"version.js"}
1
+ {"version":3,"sources":["../../../../src/lib/utils/version.ts"],"names":["VERSION"],"mappings":";;;;;;AAGO,IAAMA,OAAO,GAAG,mBAAuB,WAAvB,aAAmD,QAAnE","sourcesContent":["// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nexport const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n"],"file":"version.js"}
@@ -7,11 +7,21 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports._typecheckWKBLoader = exports._typecheckWKBWorkerLoader = exports.WKBLoader = exports.WKBWorkerLoader = void 0;
9
9
 
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
10
16
  var _version = require("./lib/utils/version");
11
17
 
12
18
  var _parseWkb = _interopRequireDefault(require("./lib/parse-wkb"));
13
19
 
14
- const WKBWorkerLoader = {
20
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
21
+
22
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
23
+
24
+ var WKBWorkerLoader = {
15
25
  name: 'WKB',
16
26
  id: 'wkb',
17
27
  module: 'wkt',
@@ -25,13 +35,36 @@ const WKBWorkerLoader = {
25
35
  }
26
36
  };
27
37
  exports.WKBWorkerLoader = WKBWorkerLoader;
28
- const WKBLoader = { ...WKBWorkerLoader,
29
- parse: async arrayBuffer => (0, _parseWkb.default)(arrayBuffer),
38
+
39
+ var WKBLoader = _objectSpread(_objectSpread({}, WKBWorkerLoader), {}, {
40
+ parse: function () {
41
+ var _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer) {
42
+ return _regenerator.default.wrap(function _callee$(_context) {
43
+ while (1) {
44
+ switch (_context.prev = _context.next) {
45
+ case 0:
46
+ return _context.abrupt("return", (0, _parseWkb.default)(arrayBuffer));
47
+
48
+ case 1:
49
+ case "end":
50
+ return _context.stop();
51
+ }
52
+ }
53
+ }, _callee);
54
+ }));
55
+
56
+ function parse(_x) {
57
+ return _parse.apply(this, arguments);
58
+ }
59
+
60
+ return parse;
61
+ }(),
30
62
  parseSync: _parseWkb.default
31
- };
63
+ });
64
+
32
65
  exports.WKBLoader = WKBLoader;
33
- const _typecheckWKBWorkerLoader = WKBWorkerLoader;
66
+ var _typecheckWKBWorkerLoader = WKBWorkerLoader;
34
67
  exports._typecheckWKBWorkerLoader = _typecheckWKBWorkerLoader;
35
- const _typecheckWKBLoader = WKBLoader;
68
+ var _typecheckWKBLoader = WKBLoader;
36
69
  exports._typecheckWKBLoader = _typecheckWKBLoader;
37
70
  //# sourceMappingURL=wkb-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/wkb-loader.ts"],"names":["WKBWorkerLoader","name","id","module","version","VERSION","worker","category","extensions","mimeTypes","options","wkb","WKBLoader","parse","arrayBuffer","parseSync","parseWKB","_typecheckWKBWorkerLoader","_typecheckWKBLoader"],"mappings":";;;;;;;;;AACA;;AACA;;AAKO,MAAMA,eAAe,GAAG;AAC7BC,EAAAA,IAAI,EAAE,KADuB;AAE7BC,EAAAA,EAAE,EAAE,KAFyB;AAG7BC,EAAAA,MAAM,EAAE,KAHqB;AAI7BC,EAAAA,OAAO,EAAEC,gBAJoB;AAK7BC,EAAAA,MAAM,EAAE,IALqB;AAM7BC,EAAAA,QAAQ,EAAE,UANmB;AAO7BC,EAAAA,UAAU,EAAE,CAAC,KAAD,CAPiB;AAQ7BC,EAAAA,SAAS,EAAE,EARkB;AAS7BC,EAAAA,OAAO,EAAE;AACPC,IAAAA,GAAG,EAAE;AADE;AAToB,CAAxB;;AAiBA,MAAMC,SAAS,GAAG,EACvB,GAAGZ,eADoB;AAEvBa,EAAAA,KAAK,EAAE,MAAOC,WAAP,IAAoC,uBAASA,WAAT,CAFpB;AAGvBC,EAAAA,SAAS,EAAEC;AAHY,CAAlB;;AAMA,MAAMC,yBAAiC,GAAGjB,eAA1C;;AACA,MAAMkB,mBAAqC,GAAGN,SAA9C","sourcesContent":["import type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport parseWKB from './lib/parse-wkb';\n\n/**\n * Worker loader for WKB (Well-Known Binary)\n */\nexport const WKBWorkerLoader = {\n name: 'WKB',\n id: 'wkb',\n module: 'wkt',\n version: VERSION,\n worker: true,\n category: 'geometry',\n extensions: ['wkb'],\n mimeTypes: [],\n options: {\n wkb: {}\n }\n};\n\n/**\n * Loader for WKB (Well-Known Binary)\n */\nexport const WKBLoader = {\n ...WKBWorkerLoader,\n parse: async (arrayBuffer: ArrayBuffer) => parseWKB(arrayBuffer),\n parseSync: parseWKB\n};\n\nexport const _typecheckWKBWorkerLoader: Loader = WKBWorkerLoader;\nexport const _typecheckWKBLoader: LoaderWithParser = WKBLoader;\n"],"file":"wkb-loader.js"}
1
+ {"version":3,"sources":["../../src/wkb-loader.ts"],"names":["WKBWorkerLoader","name","id","module","version","VERSION","worker","category","extensions","mimeTypes","options","wkb","WKBLoader","parse","arrayBuffer","parseSync","parseWKB","_typecheckWKBWorkerLoader","_typecheckWKBLoader"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;;;;;AAKO,IAAMA,eAAe,GAAG;AAC7BC,EAAAA,IAAI,EAAE,KADuB;AAE7BC,EAAAA,EAAE,EAAE,KAFyB;AAG7BC,EAAAA,MAAM,EAAE,KAHqB;AAI7BC,EAAAA,OAAO,EAAEC,gBAJoB;AAK7BC,EAAAA,MAAM,EAAE,IALqB;AAM7BC,EAAAA,QAAQ,EAAE,UANmB;AAO7BC,EAAAA,UAAU,EAAE,CAAC,KAAD,CAPiB;AAQ7BC,EAAAA,SAAS,EAAE,EARkB;AAS7BC,EAAAA,OAAO,EAAE;AACPC,IAAAA,GAAG,EAAE;AADE;AAToB,CAAxB;;;AAiBA,IAAMC,SAAS,mCACjBZ,eADiB;AAEpBa,EAAAA,KAAK;AAAA,2EAAE,iBAAOC,WAAP;AAAA;AAAA;AAAA;AAAA;AAAA,+CAAoC,uBAASA,WAAT,CAApC;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAF;;AAAA;AAAA;AAAA;;AAAA;AAAA,KAFe;AAGpBC,EAAAA,SAAS,EAAEC;AAHS,EAAf;;;AAMA,IAAMC,yBAAiC,GAAGjB,eAA1C;;AACA,IAAMkB,mBAAqC,GAAGN,SAA9C","sourcesContent":["import type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport parseWKB from './lib/parse-wkb';\n\n/**\n * Worker loader for WKB (Well-Known Binary)\n */\nexport const WKBWorkerLoader = {\n name: 'WKB',\n id: 'wkb',\n module: 'wkt',\n version: VERSION,\n worker: true,\n category: 'geometry',\n extensions: ['wkb'],\n mimeTypes: [],\n options: {\n wkb: {}\n }\n};\n\n/**\n * Loader for WKB (Well-Known Binary)\n */\nexport const WKBLoader = {\n ...WKBWorkerLoader,\n parse: async (arrayBuffer: ArrayBuffer) => parseWKB(arrayBuffer),\n parseSync: parseWKB\n};\n\nexport const _typecheckWKBWorkerLoader: Loader = WKBWorkerLoader;\nexport const _typecheckWKBLoader: LoaderWithParser = WKBLoader;\n"],"file":"wkb-loader.js"}
@@ -7,11 +7,21 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.WKTLoader = exports.WKTWorkerLoader = void 0;
9
9
 
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
10
16
  var _version = require("./lib/utils/version");
11
17
 
12
18
  var _parseWkt = _interopRequireDefault(require("./lib/parse-wkt"));
13
19
 
14
- const WKTWorkerLoader = {
20
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
21
+
22
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
23
+
24
+ var WKTWorkerLoader = {
15
25
  name: 'WKT (Well-Known Text)',
16
26
  id: 'wkt',
17
27
  module: 'wkt',
@@ -26,9 +36,32 @@ const WKTWorkerLoader = {
26
36
  }
27
37
  };
28
38
  exports.WKTWorkerLoader = WKTWorkerLoader;
29
- const WKTLoader = { ...WKTWorkerLoader,
30
- parse: async arrayBuffer => (0, _parseWkt.default)(new TextDecoder().decode(arrayBuffer)),
39
+
40
+ var WKTLoader = _objectSpread(_objectSpread({}, WKTWorkerLoader), {}, {
41
+ parse: function () {
42
+ var _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer) {
43
+ return _regenerator.default.wrap(function _callee$(_context) {
44
+ while (1) {
45
+ switch (_context.prev = _context.next) {
46
+ case 0:
47
+ return _context.abrupt("return", (0, _parseWkt.default)(new TextDecoder().decode(arrayBuffer)));
48
+
49
+ case 1:
50
+ case "end":
51
+ return _context.stop();
52
+ }
53
+ }
54
+ }, _callee);
55
+ }));
56
+
57
+ function parse(_x) {
58
+ return _parse.apply(this, arguments);
59
+ }
60
+
61
+ return parse;
62
+ }(),
31
63
  parseTextSync: _parseWkt.default
32
- };
64
+ });
65
+
33
66
  exports.WKTLoader = WKTLoader;
34
67
  //# sourceMappingURL=wkt-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/wkt-loader.ts"],"names":["WKTWorkerLoader","name","id","module","version","VERSION","worker","extensions","mimeTypes","category","text","options","wkt","WKTLoader","parse","arrayBuffer","TextDecoder","decode","parseTextSync","parseWKT"],"mappings":";;;;;;;;;AACA;;AACA;;AAKO,MAAMA,eAAuB,GAAG;AACrCC,EAAAA,IAAI,EAAE,uBAD+B;AAErCC,EAAAA,EAAE,EAAE,KAFiC;AAGrCC,EAAAA,MAAM,EAAE,KAH6B;AAIrCC,EAAAA,OAAO,EAAEC,gBAJ4B;AAKrCC,EAAAA,MAAM,EAAE,IAL6B;AAMrCC,EAAAA,UAAU,EAAE,CAAC,KAAD,CANyB;AAOrCC,EAAAA,SAAS,EAAE,CAAC,YAAD,CAP0B;AAQrCC,EAAAA,QAAQ,EAAE,UAR2B;AASrCC,EAAAA,IAAI,EAAE,IAT+B;AAUrCC,EAAAA,OAAO,EAAE;AACPC,IAAAA,GAAG,EAAE;AADE;AAV4B,CAAhC;;AAkBA,MAAMC,SAA2B,GAAG,EACzC,GAAGb,eADsC;AAEzCc,EAAAA,KAAK,EAAE,MAAOC,WAAP,IAAuB,uBAAS,IAAIC,WAAJ,GAAkBC,MAAlB,CAAyBF,WAAzB,CAAT,CAFW;AAGzCG,EAAAA,aAAa,EAAEC;AAH0B,CAApC","sourcesContent":["import type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport parseWKT from './lib/parse-wkt';\n\n/**\n * Well-Known text loader\n */\nexport const WKTWorkerLoader: Loader = {\n name: 'WKT (Well-Known Text)',\n id: 'wkt',\n module: 'wkt',\n version: VERSION,\n worker: true,\n extensions: ['wkt'],\n mimeTypes: ['text/plain'],\n category: 'geometry',\n text: true,\n options: {\n wkt: {}\n }\n};\n\n/**\n * Well-Known text loader\n */\nexport const WKTLoader: LoaderWithParser = {\n ...WKTWorkerLoader,\n parse: async (arrayBuffer) => parseWKT(new TextDecoder().decode(arrayBuffer)),\n parseTextSync: parseWKT\n};\n"],"file":"wkt-loader.js"}
1
+ {"version":3,"sources":["../../src/wkt-loader.ts"],"names":["WKTWorkerLoader","name","id","module","version","VERSION","worker","extensions","mimeTypes","category","text","options","wkt","WKTLoader","parse","arrayBuffer","TextDecoder","decode","parseTextSync","parseWKT"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;;;;;AAKO,IAAMA,eAAuB,GAAG;AACrCC,EAAAA,IAAI,EAAE,uBAD+B;AAErCC,EAAAA,EAAE,EAAE,KAFiC;AAGrCC,EAAAA,MAAM,EAAE,KAH6B;AAIrCC,EAAAA,OAAO,EAAEC,gBAJ4B;AAKrCC,EAAAA,MAAM,EAAE,IAL6B;AAMrCC,EAAAA,UAAU,EAAE,CAAC,KAAD,CANyB;AAOrCC,EAAAA,SAAS,EAAE,CAAC,YAAD,CAP0B;AAQrCC,EAAAA,QAAQ,EAAE,UAR2B;AASrCC,EAAAA,IAAI,EAAE,IAT+B;AAUrCC,EAAAA,OAAO,EAAE;AACPC,IAAAA,GAAG,EAAE;AADE;AAV4B,CAAhC;;;AAkBA,IAAMC,SAA2B,mCACnCb,eADmC;AAEtCc,EAAAA,KAAK;AAAA,2EAAE,iBAAOC,WAAP;AAAA;AAAA;AAAA;AAAA;AAAA,+CAAuB,uBAAS,IAAIC,WAAJ,GAAkBC,MAAlB,CAAyBF,WAAzB,CAAT,CAAvB;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAF;;AAAA;AAAA;AAAA;;AAAA;AAAA,KAFiC;AAGtCG,EAAAA,aAAa,EAAEC;AAHuB,EAAjC","sourcesContent":["import type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport parseWKT from './lib/parse-wkt';\n\n/**\n * Well-Known text loader\n */\nexport const WKTWorkerLoader: Loader = {\n name: 'WKT (Well-Known Text)',\n id: 'wkt',\n module: 'wkt',\n version: VERSION,\n worker: true,\n extensions: ['wkt'],\n mimeTypes: ['text/plain'],\n category: 'geometry',\n text: true,\n options: {\n wkt: {}\n }\n};\n\n/**\n * Well-Known text loader\n */\nexport const WKTLoader: LoaderWithParser = {\n ...WKTWorkerLoader,\n parse: async (arrayBuffer) => parseWKT(new TextDecoder().decode(arrayBuffer)),\n parseTextSync: parseWKT\n};\n"],"file":"wkt-loader.js"}
@@ -11,7 +11,7 @@ var _version = require("./lib/utils/version");
11
11
 
12
12
  var _encodeWkt = _interopRequireDefault(require("./lib/encode-wkt"));
13
13
 
14
- const WKTWriter = {
14
+ var WKTWriter = {
15
15
  name: 'WKT (Well Known Text)',
16
16
  id: 'wkt',
17
17
  module: 'wkt',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/wkt-writer.ts"],"names":["WKTWriter","name","id","module","version","VERSION","extensions","encode","encodeWKT","options","wkt"],"mappings":";;;;;;;;;AACA;;AACA;;AAKO,MAAMA,SAAiB,GAAG;AAC/BC,EAAAA,IAAI,EAAE,uBADyB;AAE/BC,EAAAA,EAAE,EAAE,KAF2B;AAG/BC,EAAAA,MAAM,EAAE,KAHuB;AAI/BC,EAAAA,OAAO,EAAEC,gBAJsB;AAK/BC,EAAAA,UAAU,EAAE,CAAC,KAAD,CALmB;AAO/BC,EAAAA,MAAM,EAAEC,kBAPuB;AAQ/BC,EAAAA,OAAO,EAAE;AACPC,IAAAA,GAAG,EAAE;AADE;AARsB,CAA1B","sourcesContent":["import type {Writer} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport encodeWKT from './lib/encode-wkt';\n\n/**\n * WKT exporter\n */\nexport const WKTWriter: Writer = {\n name: 'WKT (Well Known Text)',\n id: 'wkt',\n module: 'wkt',\n version: VERSION,\n extensions: ['wkt'],\n // @ts-ignore\n encode: encodeWKT,\n options: {\n wkt: {}\n }\n};\n"],"file":"wkt-writer.js"}
1
+ {"version":3,"sources":["../../src/wkt-writer.ts"],"names":["WKTWriter","name","id","module","version","VERSION","extensions","encode","encodeWKT","options","wkt"],"mappings":";;;;;;;;;AACA;;AACA;;AAKO,IAAMA,SAAiB,GAAG;AAC/BC,EAAAA,IAAI,EAAE,uBADyB;AAE/BC,EAAAA,EAAE,EAAE,KAF2B;AAG/BC,EAAAA,MAAM,EAAE,KAHuB;AAI/BC,EAAAA,OAAO,EAAEC,gBAJsB;AAK/BC,EAAAA,UAAU,EAAE,CAAC,KAAD,CALmB;AAO/BC,EAAAA,MAAM,EAAEC,kBAPuB;AAQ/BC,EAAAA,OAAO,EAAE;AACPC,IAAAA,GAAG,EAAE;AADE;AARsB,CAA1B","sourcesContent":["import type {Writer} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport encodeWKT from './lib/encode-wkt';\n\n/**\n * WKT exporter\n */\nexport const WKTWriter: Writer = {\n name: 'WKT (Well Known Text)',\n id: 'wkt',\n module: 'wkt',\n version: VERSION,\n extensions: ['wkt'],\n // @ts-ignore\n encode: encodeWKT,\n options: {\n wkt: {}\n }\n};\n"],"file":"wkt-writer.js"}
@@ -1,2 +1,2 @@
1
- export const VERSION = typeof "3.1.0-beta.2" !== 'undefined' ? "3.1.0-beta.2" : 'latest';
1
+ export const VERSION = typeof "3.1.0" !== 'undefined' ? "3.1.0" : 'latest';
2
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/utils/version.ts"],"names":["VERSION"],"mappings":"AAGA,OAAO,MAAMA,OAAO,GAAG,0BAAuB,WAAvB,oBAAmD,QAAnE","sourcesContent":["// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nexport const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n"],"file":"version.js"}
1
+ {"version":3,"sources":["../../../../src/lib/utils/version.ts"],"names":["VERSION"],"mappings":"AAGA,OAAO,MAAMA,OAAO,GAAG,mBAAuB,WAAvB,aAAmD,QAAnE","sourcesContent":["// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nexport const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n"],"file":"version.js"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@loaders.gl/wkt",
3
3
  "description": "Loader and Writer for the WKT (Well Known Text) Format",
4
- "version": "3.1.0-beta.2",
4
+ "version": "3.1.0",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
7
7
  "access": "public"
@@ -35,8 +35,8 @@
35
35
  "fuzzer": "^0.2.1"
36
36
  },
37
37
  "dependencies": {
38
- "@loaders.gl/loader-utils": "3.1.0-beta.2",
39
- "@loaders.gl/schema": "3.1.0-beta.2"
38
+ "@loaders.gl/loader-utils": "3.1.0",
39
+ "@loaders.gl/schema": "3.1.0"
40
40
  },
41
- "gitHead": "90f487e7b3f15c554d57c92497d3a12d71676818"
41
+ "gitHead": "b02a011b5a6d6aa6c5870819045c70db168cb930"
42
42
  }