@loaders.gl/wkt 4.0.0-alpha.5 → 4.0.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/dist/bundle.js +2 -2
  2. package/dist/dist.min.js +9 -3
  3. package/dist/es5/bundle.js +6 -0
  4. package/dist/es5/bundle.js.map +1 -0
  5. package/dist/es5/index.js +46 -0
  6. package/dist/es5/index.js.map +1 -0
  7. package/dist/es5/lib/encode-wkb.js +373 -0
  8. package/dist/es5/lib/encode-wkb.js.map +1 -0
  9. package/dist/es5/lib/encode-wkt.js +45 -0
  10. package/dist/es5/lib/encode-wkt.js.map +1 -0
  11. package/dist/es5/lib/parse-wkb.js +290 -0
  12. package/dist/es5/lib/parse-wkb.js.map +1 -0
  13. package/dist/es5/lib/parse-wkt.js +176 -0
  14. package/dist/es5/lib/parse-wkt.js.map +1 -0
  15. package/dist/es5/lib/utils/binary-writer.js +161 -0
  16. package/dist/es5/lib/utils/binary-writer.js.map +1 -0
  17. package/dist/es5/lib/utils/version.js +9 -0
  18. package/dist/es5/lib/utils/version.js.map +1 -0
  19. package/dist/es5/wkb-loader.js +54 -0
  20. package/dist/es5/wkb-loader.js.map +1 -0
  21. package/dist/es5/wkb-writer.js +25 -0
  22. package/dist/es5/wkb-writer.js.map +1 -0
  23. package/dist/es5/wkt-loader.js +51 -0
  24. package/dist/es5/wkt-loader.js.map +1 -0
  25. package/dist/es5/wkt-writer.js +22 -0
  26. package/dist/es5/wkt-writer.js.map +1 -0
  27. package/dist/es5/workers/wkb-worker.js +6 -0
  28. package/dist/es5/workers/wkb-worker.js.map +1 -0
  29. package/dist/es5/workers/wkt-worker.js +6 -0
  30. package/dist/es5/workers/wkt-worker.js.map +1 -0
  31. package/dist/esm/bundle.js +4 -0
  32. package/dist/esm/bundle.js.map +1 -0
  33. package/dist/esm/index.js +5 -0
  34. package/dist/esm/index.js.map +1 -0
  35. package/dist/esm/lib/encode-wkb.js +252 -0
  36. package/dist/esm/lib/encode-wkb.js.map +1 -0
  37. package/dist/esm/lib/encode-wkt.js +39 -0
  38. package/dist/esm/lib/encode-wkt.js.map +1 -0
  39. package/dist/esm/lib/parse-wkb.js +255 -0
  40. package/dist/esm/lib/parse-wkb.js.map +1 -0
  41. package/dist/esm/lib/parse-wkt.js +170 -0
  42. package/dist/esm/lib/parse-wkt.js.map +1 -0
  43. package/dist/esm/lib/utils/binary-writer.js +114 -0
  44. package/dist/esm/lib/utils/binary-writer.js.map +1 -0
  45. package/dist/esm/lib/utils/version.js +2 -0
  46. package/dist/esm/lib/utils/version.js.map +1 -0
  47. package/dist/esm/wkb-loader.js +23 -0
  48. package/dist/esm/wkb-loader.js.map +1 -0
  49. package/dist/esm/wkb-writer.js +17 -0
  50. package/dist/esm/wkb-writer.js.map +1 -0
  51. package/dist/esm/wkt-loader.js +22 -0
  52. package/dist/esm/wkt-loader.js.map +1 -0
  53. package/dist/esm/wkt-writer.js +14 -0
  54. package/dist/esm/wkt-writer.js.map +1 -0
  55. package/dist/esm/workers/wkb-worker.js +4 -0
  56. package/dist/esm/workers/wkb-worker.js.map +1 -0
  57. package/dist/esm/workers/wkt-worker.js +4 -0
  58. package/dist/esm/workers/wkt-worker.js.map +1 -0
  59. package/dist/index.js +13 -5
  60. package/dist/lib/encode-wkb.d.ts +6 -1
  61. package/dist/lib/encode-wkb.d.ts.map +1 -1
  62. package/dist/lib/encode-wkb.js +250 -278
  63. package/dist/lib/encode-wkt.js +35 -41
  64. package/dist/lib/parse-wkb.js +208 -276
  65. package/dist/lib/parse-wkt.js +218 -189
  66. package/dist/lib/utils/binary-writer.js +117 -150
  67. package/dist/lib/utils/version.js +7 -2
  68. package/dist/wkb-loader.js +32 -20
  69. package/dist/wkb-writer.d.ts +1 -1
  70. package/dist/wkb-writer.d.ts.map +1 -1
  71. package/dist/wkb-writer.js +25 -13
  72. package/dist/wkt-loader.js +31 -19
  73. package/dist/wkt-worker.js +48 -16
  74. package/dist/wkt-writer.js +22 -13
  75. package/dist/workers/wkb-worker.js +5 -4
  76. package/dist/workers/wkt-worker.js +5 -4
  77. package/package.json +6 -6
  78. package/src/lib/encode-wkb.ts +12 -1
  79. package/src/wkb-writer.ts +6 -3
  80. package/dist/bundle.js.map +0 -1
  81. package/dist/index.js.map +0 -1
  82. package/dist/lib/encode-wkb.js.map +0 -1
  83. package/dist/lib/encode-wkt.js.map +0 -1
  84. package/dist/lib/parse-wkb.js.map +0 -1
  85. package/dist/lib/parse-wkt.js.map +0 -1
  86. package/dist/lib/utils/binary-writer.js.map +0 -1
  87. package/dist/lib/utils/version.js.map +0 -1
  88. package/dist/wkb-loader.js.map +0 -1
  89. package/dist/wkb-writer.js.map +0 -1
  90. package/dist/wkt-loader.js.map +0 -1
  91. package/dist/wkt-writer.js.map +0 -1
  92. package/dist/workers/wkb-worker.js.map +0 -1
  93. package/dist/workers/wkt-worker.js.map +0 -1
package/dist/bundle.js CHANGED
@@ -1,5 +1,5 @@
1
+ "use strict";
2
+ // @ts-nocheck
1
3
  const moduleExports = require('./index');
2
-
3
4
  globalThis.loaders = globalThis.loaders || {};
4
5
  module.exports = Object.assign(globalThis.loaders, moduleExports);
5
- //# sourceMappingURL=bundle.js.map
package/dist/dist.min.js CHANGED
@@ -683,10 +683,13 @@
683
683
  });
684
684
 
685
685
  // src/lib/encode-wkb.ts
686
- function encodeWKB(geometry, options = { hasZ: false, hasM: false }) {
686
+ function encodeWKB(geometry, options) {
687
687
  if (geometry.type === "Feature") {
688
688
  geometry = geometry.geometry;
689
689
  }
690
+ if ("wkb" in options) {
691
+ options = options.wkb;
692
+ }
690
693
  switch (geometry.type) {
691
694
  case "Point":
692
695
  return encodePoint(geometry.coordinates, options);
@@ -944,9 +947,12 @@
944
947
  module: "wkt",
945
948
  version: VERSION,
946
949
  extensions: ["wkb"],
947
- encode: encodeWKB,
950
+ encodeSync: encodeWKB,
948
951
  options: {
949
- wkt: {}
952
+ wkb: {
953
+ hasZ: false,
954
+ hasM: false
955
+ }
950
956
  }
951
957
  };
952
958
  }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ var moduleExports = require('./index');
4
+ globalThis.loaders = globalThis.loaders || {};
5
+ module.exports = Object.assign(globalThis.loaders, moduleExports);
6
+ //# sourceMappingURL=bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle.js","names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"sources":["../../src/bundle.ts"],"sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"mappings":";;AACA,IAAMA,aAAa,GAAGC,OAAO,CAAC,SAAS,CAAC;AACxCC,UAAU,CAACC,OAAO,GAAGD,UAAU,CAACC,OAAO,IAAI,CAAC,CAAC;AAC7CC,MAAM,CAACC,OAAO,GAAGC,MAAM,CAACC,MAAM,CAACL,UAAU,CAACC,OAAO,EAAEH,aAAa,CAAC"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "WKBLoader", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _wkbLoader.WKBLoader;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "WKBWorkerLoader", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _wkbLoader.WKBWorkerLoader;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "WKBWriter", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _wkbWriter.WKBWriter;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "WKTLoader", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _wktLoader.WKTLoader;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "WKTWorkerLoader", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _wktLoader.WKTWorkerLoader;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "WKTWriter", {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _wktWriter.WKTWriter;
40
+ }
41
+ });
42
+ var _wkbLoader = require("./wkb-loader");
43
+ var _wktLoader = require("./wkt-loader");
44
+ var _wktWriter = require("./wkt-writer");
45
+ var _wkbWriter = require("./wkb-writer");
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_wkbLoader","require","_wktLoader","_wktWriter","_wkbWriter"],"sources":["../../src/index.ts"],"sourcesContent":["export {WKBLoader, WKBWorkerLoader} from './wkb-loader';\nexport {WKTLoader, WKTWorkerLoader} from './wkt-loader';\nexport {WKTWriter} from './wkt-writer';\nexport {WKBWriter} from './wkb-writer';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA"}
@@ -0,0 +1,373 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = encodeWKB;
8
+ var _toArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toArray"));
9
+ var _binaryWriter = _interopRequireDefault(require("./utils/binary-writer"));
10
+ 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; } } }; }
11
+ 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); }
12
+ 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; }
13
+ var WKB = function (WKB) {
14
+ WKB[WKB["Point"] = 1] = "Point";
15
+ WKB[WKB["LineString"] = 2] = "LineString";
16
+ WKB[WKB["Polygon"] = 3] = "Polygon";
17
+ WKB[WKB["MultiPoint"] = 4] = "MultiPoint";
18
+ WKB[WKB["MultiLineString"] = 5] = "MultiLineString";
19
+ WKB[WKB["MultiPolygon"] = 6] = "MultiPolygon";
20
+ WKB[WKB["GeometryCollection"] = 7] = "GeometryCollection";
21
+ return WKB;
22
+ }(WKB || {});
23
+ function encodeWKB(geometry, options) {
24
+ if (geometry.type === 'Feature') {
25
+ geometry = geometry.geometry;
26
+ }
27
+ if ('wkb' in options) {
28
+ options = options.wkb;
29
+ }
30
+ switch (geometry.type) {
31
+ case 'Point':
32
+ return encodePoint(geometry.coordinates, options);
33
+ case 'LineString':
34
+ return encodeLineString(geometry.coordinates, options);
35
+ case 'Polygon':
36
+ return encodePolygon(geometry.coordinates, options);
37
+ case 'MultiPoint':
38
+ return encodeMultiPoint(geometry, options);
39
+ case 'MultiPolygon':
40
+ return encodeMultiPolygon(geometry, options);
41
+ case 'MultiLineString':
42
+ return encodeMultiLineString(geometry, options);
43
+ case 'GeometryCollection':
44
+ return encodeGeometryCollection(geometry, options);
45
+ default:
46
+ var exhaustiveCheck = geometry;
47
+ throw new Error("Unhandled case: ".concat(exhaustiveCheck));
48
+ }
49
+ }
50
+ function getGeometrySize(geometry, options) {
51
+ switch (geometry.type) {
52
+ case 'Point':
53
+ return getPointSize(options);
54
+ case 'LineString':
55
+ return getLineStringSize(geometry.coordinates, options);
56
+ case 'Polygon':
57
+ return getPolygonSize(geometry.coordinates, options);
58
+ case 'MultiPoint':
59
+ return getMultiPointSize(geometry, options);
60
+ case 'MultiPolygon':
61
+ return getMultiPolygonSize(geometry, options);
62
+ case 'MultiLineString':
63
+ return getMultiLineStringSize(geometry, options);
64
+ case 'GeometryCollection':
65
+ return getGeometryCollectionSize(geometry, options);
66
+ default:
67
+ var exhaustiveCheck = geometry;
68
+ throw new Error("Unhandled case: ".concat(exhaustiveCheck));
69
+ }
70
+ }
71
+ function encodePoint(coordinates, options) {
72
+ var writer = new _binaryWriter.default(getPointSize(options));
73
+ writer.writeInt8(1);
74
+ writeWkbType(writer, WKB.Point, options);
75
+ if (typeof coordinates[0] === 'undefined' && typeof coordinates[1] === 'undefined') {
76
+ writer.writeDoubleLE(NaN);
77
+ writer.writeDoubleLE(NaN);
78
+ if (options.hasZ) {
79
+ writer.writeDoubleLE(NaN);
80
+ }
81
+ if (options.hasM) {
82
+ writer.writeDoubleLE(NaN);
83
+ }
84
+ } else {
85
+ writeCoordinate(writer, coordinates, options);
86
+ }
87
+ return writer.arrayBuffer;
88
+ }
89
+ function writeCoordinate(writer, coordinate, options) {
90
+ writer.writeDoubleLE(coordinate[0]);
91
+ writer.writeDoubleLE(coordinate[1]);
92
+ if (options.hasZ) {
93
+ writer.writeDoubleLE(coordinate[2]);
94
+ }
95
+ if (options.hasM) {
96
+ writer.writeDoubleLE(coordinate[3]);
97
+ }
98
+ }
99
+ function getPointSize(options) {
100
+ var coordinateSize = getCoordinateSize(options);
101
+ return 1 + 4 + coordinateSize;
102
+ }
103
+ function encodeLineString(coordinates, options) {
104
+ var size = getLineStringSize(coordinates, options);
105
+ var writer = new _binaryWriter.default(size);
106
+ writer.writeInt8(1);
107
+ writeWkbType(writer, WKB.LineString, options);
108
+ writer.writeUInt32LE(coordinates.length);
109
+ var _iterator = _createForOfIteratorHelper(coordinates),
110
+ _step;
111
+ try {
112
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
113
+ var coordinate = _step.value;
114
+ writeCoordinate(writer, coordinate, options);
115
+ }
116
+ } catch (err) {
117
+ _iterator.e(err);
118
+ } finally {
119
+ _iterator.f();
120
+ }
121
+ return writer.arrayBuffer;
122
+ }
123
+ function getLineStringSize(coordinates, options) {
124
+ var coordinateSize = getCoordinateSize(options);
125
+ return 1 + 4 + 4 + coordinates.length * coordinateSize;
126
+ }
127
+ function encodePolygon(coordinates, options) {
128
+ var writer = new _binaryWriter.default(getPolygonSize(coordinates, options));
129
+ writer.writeInt8(1);
130
+ writeWkbType(writer, WKB.Polygon, options);
131
+ var _coordinates = (0, _toArray2.default)(coordinates),
132
+ exteriorRing = _coordinates[0],
133
+ interiorRings = _coordinates.slice(1);
134
+ if (exteriorRing.length > 0) {
135
+ writer.writeUInt32LE(1 + interiorRings.length);
136
+ writer.writeUInt32LE(exteriorRing.length);
137
+ } else {
138
+ writer.writeUInt32LE(0);
139
+ }
140
+ var _iterator2 = _createForOfIteratorHelper(exteriorRing),
141
+ _step2;
142
+ try {
143
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
144
+ var coordinate = _step2.value;
145
+ writeCoordinate(writer, coordinate, options);
146
+ }
147
+ } catch (err) {
148
+ _iterator2.e(err);
149
+ } finally {
150
+ _iterator2.f();
151
+ }
152
+ var _iterator3 = _createForOfIteratorHelper(interiorRings),
153
+ _step3;
154
+ try {
155
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
156
+ var interiorRing = _step3.value;
157
+ writer.writeUInt32LE(interiorRing.length);
158
+ var _iterator4 = _createForOfIteratorHelper(interiorRing),
159
+ _step4;
160
+ try {
161
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
162
+ var _coordinate = _step4.value;
163
+ writeCoordinate(writer, _coordinate, options);
164
+ }
165
+ } catch (err) {
166
+ _iterator4.e(err);
167
+ } finally {
168
+ _iterator4.f();
169
+ }
170
+ }
171
+ } catch (err) {
172
+ _iterator3.e(err);
173
+ } finally {
174
+ _iterator3.f();
175
+ }
176
+ return writer.arrayBuffer;
177
+ }
178
+ function getPolygonSize(coordinates, options) {
179
+ var coordinateSize = getCoordinateSize(options);
180
+ var _coordinates2 = (0, _toArray2.default)(coordinates),
181
+ exteriorRing = _coordinates2[0],
182
+ interiorRings = _coordinates2.slice(1);
183
+ var size = 1 + 4 + 4;
184
+ if (exteriorRing.length > 0) {
185
+ size += 4 + exteriorRing.length * coordinateSize;
186
+ }
187
+ var _iterator5 = _createForOfIteratorHelper(interiorRings),
188
+ _step5;
189
+ try {
190
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
191
+ var interiorRing = _step5.value;
192
+ size += 4 + interiorRing.length * coordinateSize;
193
+ }
194
+ } catch (err) {
195
+ _iterator5.e(err);
196
+ } finally {
197
+ _iterator5.f();
198
+ }
199
+ return size;
200
+ }
201
+ function encodeMultiPoint(multiPoint, options) {
202
+ var writer = new _binaryWriter.default(getMultiPointSize(multiPoint, options));
203
+ var points = multiPoint.coordinates;
204
+ writer.writeInt8(1);
205
+ writeWkbType(writer, WKB.MultiPoint, options);
206
+ writer.writeUInt32LE(points.length);
207
+ var _iterator6 = _createForOfIteratorHelper(points),
208
+ _step6;
209
+ try {
210
+ for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
211
+ var point = _step6.value;
212
+ var arrayBuffer = encodePoint(point, options);
213
+ writer.writeBuffer(arrayBuffer);
214
+ }
215
+ } catch (err) {
216
+ _iterator6.e(err);
217
+ } finally {
218
+ _iterator6.f();
219
+ }
220
+ return writer.arrayBuffer;
221
+ }
222
+ function getMultiPointSize(multiPoint, options) {
223
+ var coordinateSize = getCoordinateSize(options);
224
+ var points = multiPoint.coordinates;
225
+ coordinateSize += 5;
226
+ return 1 + 4 + 4 + points.length * coordinateSize;
227
+ }
228
+ function encodeMultiLineString(multiLineString, options) {
229
+ var writer = new _binaryWriter.default(getMultiLineStringSize(multiLineString, options));
230
+ var lineStrings = multiLineString.coordinates;
231
+ writer.writeInt8(1);
232
+ writeWkbType(writer, WKB.MultiLineString, options);
233
+ writer.writeUInt32LE(lineStrings.length);
234
+ var _iterator7 = _createForOfIteratorHelper(lineStrings),
235
+ _step7;
236
+ try {
237
+ for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
238
+ var lineString = _step7.value;
239
+ var encodedLineString = encodeLineString(lineString, options);
240
+ writer.writeBuffer(encodedLineString);
241
+ }
242
+ } catch (err) {
243
+ _iterator7.e(err);
244
+ } finally {
245
+ _iterator7.f();
246
+ }
247
+ return writer.arrayBuffer;
248
+ }
249
+ function getMultiLineStringSize(multiLineString, options) {
250
+ var size = 1 + 4 + 4;
251
+ var lineStrings = multiLineString.coordinates;
252
+ var _iterator8 = _createForOfIteratorHelper(lineStrings),
253
+ _step8;
254
+ try {
255
+ for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
256
+ var lineString = _step8.value;
257
+ size += getLineStringSize(lineString, options);
258
+ }
259
+ } catch (err) {
260
+ _iterator8.e(err);
261
+ } finally {
262
+ _iterator8.f();
263
+ }
264
+ return size;
265
+ }
266
+ function encodeMultiPolygon(multiPolygon, options) {
267
+ var writer = new _binaryWriter.default(getMultiPolygonSize(multiPolygon, options));
268
+ var polygons = multiPolygon.coordinates;
269
+ writer.writeInt8(1);
270
+ writeWkbType(writer, WKB.MultiPolygon, options);
271
+ writer.writeUInt32LE(polygons.length);
272
+ var _iterator9 = _createForOfIteratorHelper(polygons),
273
+ _step9;
274
+ try {
275
+ for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
276
+ var polygon = _step9.value;
277
+ var encodedPolygon = encodePolygon(polygon, options);
278
+ writer.writeBuffer(encodedPolygon);
279
+ }
280
+ } catch (err) {
281
+ _iterator9.e(err);
282
+ } finally {
283
+ _iterator9.f();
284
+ }
285
+ return writer.arrayBuffer;
286
+ }
287
+ function getMultiPolygonSize(multiPolygon, options) {
288
+ var size = 1 + 4 + 4;
289
+ var polygons = multiPolygon.coordinates;
290
+ var _iterator10 = _createForOfIteratorHelper(polygons),
291
+ _step10;
292
+ try {
293
+ for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
294
+ var polygon = _step10.value;
295
+ size += getPolygonSize(polygon, options);
296
+ }
297
+ } catch (err) {
298
+ _iterator10.e(err);
299
+ } finally {
300
+ _iterator10.f();
301
+ }
302
+ return size;
303
+ }
304
+ function encodeGeometryCollection(collection, options) {
305
+ var writer = new _binaryWriter.default(getGeometryCollectionSize(collection, options));
306
+ writer.writeInt8(1);
307
+ writeWkbType(writer, WKB.GeometryCollection, options);
308
+ writer.writeUInt32LE(collection.geometries.length);
309
+ var _iterator11 = _createForOfIteratorHelper(collection.geometries),
310
+ _step11;
311
+ try {
312
+ for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
313
+ var geometry = _step11.value;
314
+ var arrayBuffer = encodeWKB(geometry, options);
315
+ writer.writeBuffer(arrayBuffer);
316
+ }
317
+ } catch (err) {
318
+ _iterator11.e(err);
319
+ } finally {
320
+ _iterator11.f();
321
+ }
322
+ return writer.arrayBuffer;
323
+ }
324
+ function getGeometryCollectionSize(collection, options) {
325
+ var size = 1 + 4 + 4;
326
+ var _iterator12 = _createForOfIteratorHelper(collection.geometries),
327
+ _step12;
328
+ try {
329
+ for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
330
+ var geometry = _step12.value;
331
+ size += getGeometrySize(geometry, options);
332
+ }
333
+ } catch (err) {
334
+ _iterator12.e(err);
335
+ } finally {
336
+ _iterator12.f();
337
+ }
338
+ return size;
339
+ }
340
+ function writeWkbType(writer, geometryType, options) {
341
+ var hasZ = options.hasZ,
342
+ hasM = options.hasM,
343
+ srid = options.srid;
344
+ var dimensionType = 0;
345
+ if (!srid) {
346
+ if (hasZ && hasM) {
347
+ dimensionType += 3000;
348
+ } else if (hasZ) {
349
+ dimensionType += 1000;
350
+ } else if (hasM) {
351
+ dimensionType += 2000;
352
+ }
353
+ } else {
354
+ if (hasZ) {
355
+ dimensionType |= 0x80000000;
356
+ }
357
+ if (hasM) {
358
+ dimensionType |= 0x40000000;
359
+ }
360
+ }
361
+ writer.writeUInt32LE(dimensionType + geometryType >>> 0);
362
+ }
363
+ function getCoordinateSize(options) {
364
+ var coordinateSize = 16;
365
+ if (options.hasZ) {
366
+ coordinateSize += 8;
367
+ }
368
+ if (options.hasM) {
369
+ coordinateSize += 8;
370
+ }
371
+ return coordinateSize;
372
+ }
373
+ //# sourceMappingURL=encode-wkb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode-wkb.js","names":["_binaryWriter","_interopRequireDefault","require","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","WKB","encodeWKB","geometry","options","type","wkb","encodePoint","coordinates","encodeLineString","encodePolygon","encodeMultiPoint","encodeMultiPolygon","encodeMultiLineString","encodeGeometryCollection","exhaustiveCheck","Error","concat","getGeometrySize","getPointSize","getLineStringSize","getPolygonSize","getMultiPointSize","getMultiPolygonSize","getMultiLineStringSize","getGeometryCollectionSize","writer","BinaryWriter","writeInt8","writeWkbType","Point","writeDoubleLE","NaN","hasZ","hasM","writeCoordinate","arrayBuffer","coordinate","coordinateSize","getCoordinateSize","size","LineString","writeUInt32LE","_iterator","_step","Polygon","_coordinates","_toArray2","default","exteriorRing","interiorRings","_iterator2","_step2","_iterator3","_step3","interiorRing","_iterator4","_step4","_coordinates2","_iterator5","_step5","multiPoint","points","MultiPoint","_iterator6","_step6","point","writeBuffer","multiLineString","lineStrings","MultiLineString","_iterator7","_step7","lineString","encodedLineString","_iterator8","_step8","multiPolygon","polygons","MultiPolygon","_iterator9","_step9","polygon","encodedPolygon","_iterator10","_step10","collection","GeometryCollection","geometries","_iterator11","_step11","_iterator12","_step12","geometryType","srid","dimensionType"],"sources":["../../../src/lib/encode-wkb.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Forked from https://github.com/cschwarz/wkx under MIT license, Copyright (c) 2013 Christian Schwarz\n// Reference: https://www.ogc.org/standards/sfa\n\nimport type {\n Feature,\n Geometry,\n Point,\n MultiPoint,\n LineString,\n MultiLineString,\n Polygon,\n MultiPolygon,\n GeometryCollection\n} from '@loaders.gl/schema';\n\nimport BinaryWriter from './utils/binary-writer';\n\n/**\n * Integer code for geometry type\n * Reference: https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry#Well-known_binary\n */\nenum WKB {\n Point = 1,\n LineString = 2,\n Polygon = 3,\n MultiPoint = 4,\n MultiLineString = 5,\n MultiPolygon = 6,\n GeometryCollection = 7\n}\n\n/**\n * Options for encodeWKB\n */\ninterface WKBOptions {\n /** Does the GeoJSON input have Z values? */\n hasZ?: boolean;\n\n /** Does the GeoJSON input have M values? */\n hasM?: boolean;\n\n /** Spatial reference for input GeoJSON */\n srid?: any;\n}\n\n/**\n * Encodes a GeoJSON object into WKB\n * @param geojson A GeoJSON Feature or Geometry\n * @returns string\n */\nexport default function encodeWKB(\n geometry: Geometry | Feature,\n options: WKBOptions | {wkb: WKBOptions}\n): ArrayBuffer {\n if (geometry.type === 'Feature') {\n geometry = geometry.geometry;\n }\n\n // Options should be wrapped in a `wkb` key, but we allow top-level options here for backwards\n // compatibility\n if ('wkb' in options) {\n options = options.wkb;\n }\n\n switch (geometry.type) {\n case 'Point':\n return encodePoint(geometry.coordinates, options);\n case 'LineString':\n return encodeLineString(geometry.coordinates, options);\n case 'Polygon':\n return encodePolygon(geometry.coordinates, options);\n case 'MultiPoint':\n return encodeMultiPoint(geometry, options);\n case 'MultiPolygon':\n return encodeMultiPolygon(geometry, options);\n case 'MultiLineString':\n return encodeMultiLineString(geometry, options);\n case 'GeometryCollection':\n return encodeGeometryCollection(geometry, options);\n default:\n const exhaustiveCheck: never = geometry;\n throw new Error(`Unhandled case: ${exhaustiveCheck}`);\n }\n}\n\n/** Calculate the binary size (in the WKB encoding) of a specific GeoJSON geometry */\nfunction getGeometrySize(geometry: Geometry, options: WKBOptions): number {\n switch (geometry.type) {\n case 'Point':\n return getPointSize(options);\n case 'LineString':\n return getLineStringSize(geometry.coordinates, options);\n case 'Polygon':\n return getPolygonSize(geometry.coordinates, options);\n case 'MultiPoint':\n return getMultiPointSize(geometry, options);\n case 'MultiPolygon':\n return getMultiPolygonSize(geometry, options);\n case 'MultiLineString':\n return getMultiLineStringSize(geometry, options);\n case 'GeometryCollection':\n return getGeometryCollectionSize(geometry, options);\n default:\n const exhaustiveCheck: never = geometry;\n throw new Error(`Unhandled case: ${exhaustiveCheck}`);\n }\n}\n\n/** Encode Point geometry as WKB ArrayBuffer */\nfunction encodePoint(coordinates: Point['coordinates'], options: WKBOptions): ArrayBuffer {\n const writer = new BinaryWriter(getPointSize(options));\n\n writer.writeInt8(1);\n writeWkbType(writer, WKB.Point, options);\n\n // I believe this special case is to handle writing Point(NaN, NaN) correctly\n if (typeof coordinates[0] === 'undefined' && typeof coordinates[1] === 'undefined') {\n writer.writeDoubleLE(NaN);\n writer.writeDoubleLE(NaN);\n\n if (options.hasZ) {\n writer.writeDoubleLE(NaN);\n }\n if (options.hasM) {\n writer.writeDoubleLE(NaN);\n }\n } else {\n writeCoordinate(writer, coordinates, options);\n }\n\n return writer.arrayBuffer;\n}\n\n/** Write coordinate to buffer */\nfunction writeCoordinate(\n writer: BinaryWriter,\n coordinate: Point['coordinates'],\n options: WKBOptions\n): void {\n writer.writeDoubleLE(coordinate[0]);\n writer.writeDoubleLE(coordinate[1]);\n\n if (options.hasZ) {\n writer.writeDoubleLE(coordinate[2]);\n }\n if (options.hasM) {\n writer.writeDoubleLE(coordinate[3]);\n }\n}\n\n/** Get encoded size of Point geometry */\nfunction getPointSize(options: WKBOptions): number {\n const coordinateSize = getCoordinateSize(options);\n return 1 + 4 + coordinateSize;\n}\n\n/** Encode LineString geometry as WKB ArrayBuffer */\nfunction encodeLineString(\n coordinates: LineString['coordinates'],\n options: WKBOptions\n): ArrayBuffer {\n const size = getLineStringSize(coordinates, options);\n\n const writer = new BinaryWriter(size);\n\n writer.writeInt8(1);\n\n writeWkbType(writer, WKB.LineString, options);\n writer.writeUInt32LE(coordinates.length);\n\n for (const coordinate of coordinates) {\n writeCoordinate(writer, coordinate, options);\n }\n\n return writer.arrayBuffer;\n}\n\n/** Get encoded size of LineString geometry */\nfunction getLineStringSize(coordinates: LineString['coordinates'], options: WKBOptions): number {\n const coordinateSize = getCoordinateSize(options);\n\n return 1 + 4 + 4 + coordinates.length * coordinateSize;\n}\n\n/** Encode Polygon geometry as WKB ArrayBuffer */\nfunction encodePolygon(coordinates: Polygon['coordinates'], options: WKBOptions): ArrayBuffer {\n const writer = new BinaryWriter(getPolygonSize(coordinates, options));\n\n writer.writeInt8(1);\n\n writeWkbType(writer, WKB.Polygon, options);\n const [exteriorRing, ...interiorRings] = coordinates;\n\n if (exteriorRing.length > 0) {\n writer.writeUInt32LE(1 + interiorRings.length);\n writer.writeUInt32LE(exteriorRing.length);\n } else {\n writer.writeUInt32LE(0);\n }\n\n for (const coordinate of exteriorRing) {\n writeCoordinate(writer, coordinate, options);\n }\n\n for (const interiorRing of interiorRings) {\n writer.writeUInt32LE(interiorRing.length);\n\n for (const coordinate of interiorRing) {\n writeCoordinate(writer, coordinate, options);\n }\n }\n\n return writer.arrayBuffer;\n}\n\n/** Get encoded size of Polygon geometry */\nfunction getPolygonSize(coordinates: Polygon['coordinates'], options: WKBOptions): number {\n const coordinateSize = getCoordinateSize(options);\n const [exteriorRing, ...interiorRings] = coordinates;\n\n let size = 1 + 4 + 4;\n\n if (exteriorRing.length > 0) {\n size += 4 + exteriorRing.length * coordinateSize;\n }\n\n for (const interiorRing of interiorRings) {\n size += 4 + interiorRing.length * coordinateSize;\n }\n\n return size;\n}\n\n/** Encode MultiPoint geometry as WKB ArrayBufer */\nfunction encodeMultiPoint(multiPoint: MultiPoint, options: WKBOptions) {\n const writer = new BinaryWriter(getMultiPointSize(multiPoint, options));\n const points = multiPoint.coordinates;\n\n writer.writeInt8(1);\n\n writeWkbType(writer, WKB.MultiPoint, options);\n writer.writeUInt32LE(points.length);\n\n for (const point of points) {\n // TODO: add srid to this options object? {srid: multiPoint.srid}\n const arrayBuffer = encodePoint(point, options);\n writer.writeBuffer(arrayBuffer);\n }\n\n return writer.arrayBuffer;\n}\n\n/** Get encoded size of MultiPoint geometry */\nfunction getMultiPointSize(multiPoint: MultiPoint, options: WKBOptions) {\n let coordinateSize = getCoordinateSize(options);\n const points = multiPoint.coordinates;\n\n // This is because each point has a 5-byte header?\n coordinateSize += 5;\n\n return 1 + 4 + 4 + points.length * coordinateSize;\n}\n\n/** Encode MultiLineString geometry as WKB ArrayBufer */\nfunction encodeMultiLineString(multiLineString: MultiLineString, options: WKBOptions) {\n const writer = new BinaryWriter(getMultiLineStringSize(multiLineString, options));\n const lineStrings = multiLineString.coordinates;\n\n writer.writeInt8(1);\n\n writeWkbType(writer, WKB.MultiLineString, options);\n writer.writeUInt32LE(lineStrings.length);\n\n for (const lineString of lineStrings) {\n // TODO: Handle srid?\n const encodedLineString = encodeLineString(lineString, options);\n writer.writeBuffer(encodedLineString);\n }\n\n return writer.arrayBuffer;\n}\n\n/** Get encoded size of MultiLineString geometry */\nfunction getMultiLineStringSize(multiLineString: MultiLineString, options: WKBOptions): number {\n let size = 1 + 4 + 4;\n const lineStrings = multiLineString.coordinates;\n\n for (const lineString of lineStrings) {\n size += getLineStringSize(lineString, options);\n }\n\n return size;\n}\n\nfunction encodeMultiPolygon(multiPolygon: MultiPolygon, options: WKBOptions): ArrayBuffer {\n const writer = new BinaryWriter(getMultiPolygonSize(multiPolygon, options));\n const polygons = multiPolygon.coordinates;\n\n writer.writeInt8(1);\n\n writeWkbType(writer, WKB.MultiPolygon, options);\n writer.writeUInt32LE(polygons.length);\n\n for (const polygon of polygons) {\n const encodedPolygon = encodePolygon(polygon, options);\n writer.writeBuffer(encodedPolygon);\n }\n\n return writer.arrayBuffer;\n}\n\nfunction getMultiPolygonSize(multiPolygon: MultiPolygon, options: WKBOptions): number {\n let size = 1 + 4 + 4;\n const polygons = multiPolygon.coordinates;\n\n for (const polygon of polygons) {\n size += getPolygonSize(polygon, options);\n }\n\n return size;\n}\n\nfunction encodeGeometryCollection(\n collection: GeometryCollection,\n options: WKBOptions\n): ArrayBuffer {\n const writer = new BinaryWriter(getGeometryCollectionSize(collection, options));\n\n writer.writeInt8(1);\n\n writeWkbType(writer, WKB.GeometryCollection, options);\n writer.writeUInt32LE(collection.geometries.length);\n\n for (const geometry of collection.geometries) {\n // TODO: handle srid? {srid: collection.srid}\n const arrayBuffer = encodeWKB(geometry, options);\n writer.writeBuffer(arrayBuffer);\n }\n\n return writer.arrayBuffer;\n}\n\nfunction getGeometryCollectionSize(collection: GeometryCollection, options: WKBOptions): number {\n let size = 1 + 4 + 4;\n\n for (const geometry of collection.geometries) {\n size += getGeometrySize(geometry, options);\n }\n\n return size;\n}\n\n// HELPERS\n\n/**\n * Construct and write WKB integer code\n * Reference: https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry#Well-known_binary\n */\nfunction writeWkbType(writer: BinaryWriter, geometryType: number, options: WKBOptions): void {\n const {hasZ, hasM, srid} = options;\n\n let dimensionType = 0;\n\n if (!srid) {\n if (hasZ && hasM) {\n dimensionType += 3000;\n } else if (hasZ) {\n dimensionType += 1000;\n } else if (hasM) {\n dimensionType += 2000;\n }\n } else {\n if (hasZ) {\n dimensionType |= 0x80000000;\n }\n if (hasM) {\n dimensionType |= 0x40000000;\n }\n }\n\n writer.writeUInt32LE((dimensionType + geometryType) >>> 0);\n}\n\n/** Get coordinate size given Z/M dimensions */\nfunction getCoordinateSize(options: WKBOptions): number {\n let coordinateSize = 16;\n\n if (options.hasZ) {\n coordinateSize += 8;\n }\n if (options.hasM) {\n coordinateSize += 8;\n }\n\n return coordinateSize;\n}\n"],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = encodeWKT;
7
+ function encodeWKT(geometry) {
8
+ if (geometry.type === 'Feature') {
9
+ geometry = geometry.geometry;
10
+ }
11
+ switch (geometry.type) {
12
+ case 'Point':
13
+ return "POINT ".concat(wrapParens(pairWKT(geometry.coordinates)));
14
+ case 'LineString':
15
+ return "LINESTRING ".concat(wrapParens(ringWKT(geometry.coordinates)));
16
+ case 'Polygon':
17
+ return "POLYGON ".concat(wrapParens(ringsWKT(geometry.coordinates)));
18
+ case 'MultiPoint':
19
+ return "MULTIPOINT ".concat(wrapParens(ringWKT(geometry.coordinates)));
20
+ case 'MultiPolygon':
21
+ return "MULTIPOLYGON ".concat(wrapParens(multiRingsWKT(geometry.coordinates)));
22
+ case 'MultiLineString':
23
+ return "MULTILINESTRING ".concat(wrapParens(ringsWKT(geometry.coordinates)));
24
+ case 'GeometryCollection':
25
+ return "GEOMETRYCOLLECTION ".concat(wrapParens(geometry.geometries.map(encodeWKT).join(', ')));
26
+ default:
27
+ throw new Error('stringify requires a valid GeoJSON Feature or geometry object as input');
28
+ }
29
+ }
30
+ function pairWKT(c) {
31
+ return c.join(' ');
32
+ }
33
+ function ringWKT(r) {
34
+ return r.map(pairWKT).join(', ');
35
+ }
36
+ function ringsWKT(r) {
37
+ return r.map(ringWKT).map(wrapParens).join(', ');
38
+ }
39
+ function multiRingsWKT(r) {
40
+ return r.map(ringsWKT).map(wrapParens).join(', ');
41
+ }
42
+ function wrapParens(s) {
43
+ return "(".concat(s, ")");
44
+ }
45
+ //# sourceMappingURL=encode-wkt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode-wkt.js","names":["encodeWKT","geometry","type","concat","wrapParens","pairWKT","coordinates","ringWKT","ringsWKT","multiRingsWKT","geometries","map","join","Error","c","r","s"],"sources":["../../../src/lib/encode-wkt.ts"],"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 '@loaders.gl/schema';\n\n/**\n * Stringifies a GeoJSON object into WKT\n * @param geojson\n * @returns string\n */\nexport default function encodeWKT(geometry: Geometry | Feature): string {\n if (geometry.type === 'Feature') {\n geometry = geometry.geometry;\n }\n\n switch (geometry.type) {\n case 'Point':\n return `POINT ${wrapParens(pairWKT(geometry.coordinates))}`;\n case 'LineString':\n return `LINESTRING ${wrapParens(ringWKT(geometry.coordinates))}`;\n case 'Polygon':\n return `POLYGON ${wrapParens(ringsWKT(geometry.coordinates))}`;\n case 'MultiPoint':\n return `MULTIPOINT ${wrapParens(ringWKT(geometry.coordinates))}`;\n case 'MultiPolygon':\n return `MULTIPOLYGON ${wrapParens(multiRingsWKT(geometry.coordinates))}`;\n case 'MultiLineString':\n return `MULTILINESTRING ${wrapParens(ringsWKT(geometry.coordinates))}`;\n case 'GeometryCollection':\n return `GEOMETRYCOLLECTION ${wrapParens(geometry.geometries.map(encodeWKT).join(', '))}`;\n default:\n throw new Error('stringify requires a valid GeoJSON Feature or geometry object as input');\n }\n}\n\nfunction pairWKT(c: number[]): string {\n return c.join(' ');\n}\n\nfunction ringWKT(r: number[][]): string {\n return r.map(pairWKT).join(', ');\n}\n\nfunction ringsWKT(r: number[][][]): string {\n return r.map(ringWKT).map(wrapParens).join(', ');\n}\n\nfunction multiRingsWKT(r: number[][][][]): string {\n return r.map(ringsWKT).map(wrapParens).join(', ');\n}\n\nfunction wrapParens(s: string): string {\n return `(${s})`;\n}\n"],"mappings":";;;;;;AASe,SAASA,SAASA,CAACC,QAA4B,EAAU;EACtE,IAAIA,QAAQ,CAACC,IAAI,KAAK,SAAS,EAAE;IAC/BD,QAAQ,GAAGA,QAAQ,CAACA,QAAQ;EAC9B;EAEA,QAAQA,QAAQ,CAACC,IAAI;IACnB,KAAK,OAAO;MACV,gBAAAC,MAAA,CAAgBC,UAAU,CAACC,OAAO,CAACJ,QAAQ,CAACK,WAAW,CAAC,CAAC;IAC3D,KAAK,YAAY;MACf,qBAAAH,MAAA,CAAqBC,UAAU,CAACG,OAAO,CAACN,QAAQ,CAACK,WAAW,CAAC,CAAC;IAChE,KAAK,SAAS;MACZ,kBAAAH,MAAA,CAAkBC,UAAU,CAACI,QAAQ,CAACP,QAAQ,CAACK,WAAW,CAAC,CAAC;IAC9D,KAAK,YAAY;MACf,qBAAAH,MAAA,CAAqBC,UAAU,CAACG,OAAO,CAACN,QAAQ,CAACK,WAAW,CAAC,CAAC;IAChE,KAAK,cAAc;MACjB,uBAAAH,MAAA,CAAuBC,UAAU,CAACK,aAAa,CAACR,QAAQ,CAACK,WAAW,CAAC,CAAC;IACxE,KAAK,iBAAiB;MACpB,0BAAAH,MAAA,CAA0BC,UAAU,CAACI,QAAQ,CAACP,QAAQ,CAACK,WAAW,CAAC,CAAC;IACtE,KAAK,oBAAoB;MACvB,6BAAAH,MAAA,CAA6BC,UAAU,CAACH,QAAQ,CAACS,UAAU,CAACC,GAAG,CAACX,SAAS,CAAC,CAACY,IAAI,CAAC,IAAI,CAAC,CAAC;IACxF;MACE,MAAM,IAAIC,KAAK,CAAC,wEAAwE,CAAC;EAC7F;AACF;AAEA,SAASR,OAAOA,CAACS,CAAW,EAAU;EACpC,OAAOA,CAAC,CAACF,IAAI,CAAC,GAAG,CAAC;AACpB;AAEA,SAASL,OAAOA,CAACQ,CAAa,EAAU;EACtC,OAAOA,CAAC,CAACJ,GAAG,CAACN,OAAO,CAAC,CAACO,IAAI,CAAC,IAAI,CAAC;AAClC;AAEA,SAASJ,QAAQA,CAACO,CAAe,EAAU;EACzC,OAAOA,CAAC,CAACJ,GAAG,CAACJ,OAAO,CAAC,CAACI,GAAG,CAACP,UAAU,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;AAClD;AAEA,SAASH,aAAaA,CAACM,CAAiB,EAAU;EAChD,OAAOA,CAAC,CAACJ,GAAG,CAACH,QAAQ,CAAC,CAACG,GAAG,CAACP,UAAU,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;AACnD;AAEA,SAASR,UAAUA,CAACY,CAAS,EAAU;EACrC,WAAAb,MAAA,CAAWa,CAAC;AACd"}