@math.gl/geoarrow 5.0.0-alpha.2 → 5.0.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +45 -15
- package/dist/builder-entry.cjs +561 -0
- package/dist/builder-entry.cjs.map +6 -0
- package/dist/builder-entry.d.ts +4 -0
- package/dist/builder-entry.d.ts.map +1 -0
- package/dist/builder-entry.js +5 -0
- package/dist/builder-entry.js.map +1 -0
- package/dist/builder.d.ts +12 -1
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +112 -10
- package/dist/builder.js.map +1 -1
- package/dist/codecs.d.ts.map +1 -1
- package/dist/codecs.js +205 -7
- package/dist/codecs.js.map +1 -1
- package/dist/index.cjs +904 -120
- package/dist/index.cjs.map +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/kernels.d.ts +8 -3
- package/dist/kernels.d.ts.map +1 -1
- package/dist/kernels.js +610 -107
- package/dist/kernels.js.map +1 -1
- package/dist/layout.d.ts.map +1 -1
- package/dist/layout.js +28 -5
- package/dist/layout.js.map +1 -1
- package/dist/tessellation-entry.cjs +427 -0
- package/dist/tessellation-entry.cjs.map +6 -0
- package/dist/tessellation-entry.d.ts +4 -0
- package/dist/tessellation-entry.d.ts.map +1 -0
- package/dist/tessellation-entry.js +5 -0
- package/dist/tessellation-entry.js.map +1 -0
- package/dist/types.d.ts +37 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/wkb-entry.cjs +1005 -0
- package/dist/wkb-entry.cjs.map +6 -0
- package/dist/wkb-entry.d.ts +3 -0
- package/dist/wkb-entry.d.ts.map +1 -0
- package/dist/wkb-entry.js +6 -0
- package/dist/wkb-entry.js.map +1 -0
- package/dist/worker.cjs +4 -0
- package/dist/worker.cjs.map +1 -1
- package/package.json +21 -6
- package/src/builder-entry.ts +18 -0
- package/src/builder.ts +133 -19
- package/src/codecs.ts +251 -9
- package/src/index.ts +1 -0
- package/src/kernels.ts +811 -133
- package/src/layout.ts +38 -13
- package/src/tessellation-entry.ts +7 -0
- package/src/types.ts +23 -4
- package/src/wkb-entry.ts +11 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/builder-entry.ts", "../src/types.ts", "../src/builder.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Optional builder subpath. Importing it avoids pulling codec and tessellation helpers. */
|
|
2
|
+
export type { GeoArrowBuilderEncoding, GeoArrowBuilderMeasurement, GeoArrowBuilderModeOptions, GeoArrowBuilderOptions, GeoArrowColumnFromRowsOptions, GeoArrowBuilderTarget } from "./builder.js";
|
|
3
|
+
export { allocateGeoArrowBuilderTarget, GeoArrowBuilder, makeGeoArrowColumnFromGeometryRows } from "./builder.js";
|
|
4
|
+
//# sourceMappingURL=builder-entry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder-entry.d.ts","sourceRoot":"","sources":["../src/builder-entry.ts"],"names":[],"mappings":"AAIA,4FAA4F;AAC5F,YAAY,EACV,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,EAC1B,sBAAsB,EACtB,6BAA6B,EAC7B,qBAAqB,EACtB,qBAAkB;AACnB,OAAO,EACL,6BAA6B,EAC7B,eAAe,EACf,kCAAkC,EACnC,qBAAkB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder-entry.js","sourceRoot":"","sources":["../src/builder-entry.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAWpC,OAAO,EACL,6BAA6B,EAC7B,eAAe,EACf,kCAAkC,EACnC,qBAAkB"}
|
package/dist/builder.d.ts
CHANGED
|
@@ -66,6 +66,7 @@ export declare class GeoArrowBuilder {
|
|
|
66
66
|
private coordinateCount;
|
|
67
67
|
private partCount;
|
|
68
68
|
private ringCount;
|
|
69
|
+
private readonly eventStack;
|
|
69
70
|
constructor(options: GeoArrowBuilderModeOptions);
|
|
70
71
|
/** Appends one geometry row or null. */
|
|
71
72
|
append(geometry: GeoArrowGeometryValue | null | undefined): this;
|
|
@@ -79,7 +80,17 @@ export declare class GeoArrowBuilder {
|
|
|
79
80
|
static build(rows: readonly (GeoArrowGeometryValue | null | undefined)[], options: GeoArrowBuilderOptions): GeoArrowColumn;
|
|
80
81
|
private appendNull;
|
|
81
82
|
private writeCoordinateList;
|
|
82
|
-
private
|
|
83
|
+
private writeCoordinateValues;
|
|
84
|
+
/** Begins an event-driven geometry. Events are accepted by both measure and write builders. */
|
|
85
|
+
beginGeometry(type: GeoArrowGeometryValue['type'], dimension?: GeoArrowDimension, _count?: number): this;
|
|
86
|
+
/** Begins a polygon part inside an event-built MultiPolygon. */
|
|
87
|
+
beginPolygon(): this;
|
|
88
|
+
/** Begins a ring/part in the current event geometry. */
|
|
89
|
+
beginRing(_count?: number): this;
|
|
90
|
+
/** Writes one coordinate into the current event ring or point. */
|
|
91
|
+
writeCoordinate(x: number | readonly number[], y?: number, z?: number, m?: number): this;
|
|
92
|
+
/** Ends the current event geometry and appends it to the builder/parent. */
|
|
93
|
+
endGeometry(): this;
|
|
83
94
|
private writeOffset;
|
|
84
95
|
private initializeTargetOffsets;
|
|
85
96
|
}
|
package/dist/builder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,cAAc,EACd,wBAAwB,EAExB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EAEhB,mBAAgB;AAOjB,qEAAqE;AACrE,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAC3C,gBAAgB,EACd,mBAAmB,GACnB,6BAA6B,GAC7B,cAAc,GACd,cAAc,GACd,cAAc,CACjB,CAAC;AAEF,gDAAgD;AAChD,MAAM,MAAM,0BAA0B,GAAG,QAAQ,CAAC;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC,CAAC;AAEH,2DAA2D;AAC3D,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,UAAU,CAAC;IACrB,WAAW,EACP,YAAY,GACZ,YAAY,GACZ;QACE,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;QAC/B,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;QAC/B,CAAC,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;QAChC,CAAC,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;KACjC,CAAC;IACN,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B,CAAC;AAEF,8BAA8B;AAC9B,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC5C,QAAQ,EAAE,uBAAuB,CAAC;IAClC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;IAC5C,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACxC,CAAC,CAAC;AAEH,+DAA+D;AAC/D,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAAC,sBAAsB,EAAE,UAAU,CAAC,GAClF,QAAQ,CAAC;IACP,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC,CAAC,CAAC;AAEL,4BAA4B;AAC5B,MAAM,MAAM,6BAA6B,GAAG,sBAAsB,GAAG,QAAQ,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAC,CAAC,CAAC;AAEjG,0BAA0B;AAC1B,MAAM,MAAM,2BAA2B,GAAG,sBAAsB,GAC9D,QAAQ,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAA;CAAC,CAAC,CAAC;AAE3D,mDAAmD;AACnD,MAAM,MAAM,0BAA0B,GAClC,6BAA6B,GAC7B,2BAA2B,CAAC;AAEhC;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;IACpD,QAAQ,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC;IACvC,QAAQ,CAAC,cAAc,EAAE,SAAS,GAAG,SAAS,CAAC;IAC/C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAwB;IAChD,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,SAAS,CAAK;
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
|
package/dist/builder.js
CHANGED
|
@@ -15,6 +15,7 @@ export class GeoArrowBuilder {
|
|
|
15
15
|
this.coordinateCount = 0;
|
|
16
16
|
this.partCount = 0;
|
|
17
17
|
this.ringCount = 0;
|
|
18
|
+
this.eventStack = [];
|
|
18
19
|
this.mode = options.mode;
|
|
19
20
|
this.encoding = options.encoding;
|
|
20
21
|
this.dimension = options.dimension || 'xy';
|
|
@@ -45,7 +46,7 @@ export class GeoArrowBuilder {
|
|
|
45
46
|
const depth = getBuilderDepth(this.encoding);
|
|
46
47
|
const coordinates = geometry.coordinates;
|
|
47
48
|
if (depth === 0) {
|
|
48
|
-
this.
|
|
49
|
+
this.writeCoordinateValues(coordinates);
|
|
49
50
|
}
|
|
50
51
|
else if (depth === 1) {
|
|
51
52
|
this.writeCoordinateList(coordinates);
|
|
@@ -158,7 +159,7 @@ export class GeoArrowBuilder {
|
|
|
158
159
|
appendNull(rowIndex) {
|
|
159
160
|
const depth = getBuilderDepth(this.encoding);
|
|
160
161
|
if (depth === 0) {
|
|
161
|
-
this.
|
|
162
|
+
this.writeCoordinateValues(new Array(getGeoArrowDimensionSize(this.dimension)).fill(0));
|
|
162
163
|
}
|
|
163
164
|
else {
|
|
164
165
|
this.writeOffset(this.target?.geometryOffsets, rowIndex + 1, depth === 1 ? this.coordinateCount : this.partCount);
|
|
@@ -166,9 +167,9 @@ export class GeoArrowBuilder {
|
|
|
166
167
|
}
|
|
167
168
|
writeCoordinateList(coordinates) {
|
|
168
169
|
for (const coordinate of coordinates)
|
|
169
|
-
this.
|
|
170
|
+
this.writeCoordinateValues(coordinate);
|
|
170
171
|
}
|
|
171
|
-
|
|
172
|
+
writeCoordinateValues(coordinate) {
|
|
172
173
|
const size = getGeoArrowDimensionSize(this.dimension);
|
|
173
174
|
if (coordinate.length !== size) {
|
|
174
175
|
throw new Error(`Expected ${size} coordinate values for ${this.dimension}`);
|
|
@@ -177,6 +178,98 @@ export class GeoArrowBuilder {
|
|
|
177
178
|
writeCoordinate(this.target.coordinates, this.coordinateCount, coordinate, this.dimension);
|
|
178
179
|
this.coordinateCount++;
|
|
179
180
|
}
|
|
181
|
+
/** Begins an event-driven geometry. Events are accepted by both measure and write builders. */
|
|
182
|
+
beginGeometry(type, dimension = this.dimension, _count) {
|
|
183
|
+
this.eventStack.push({ type, dimension, rings: [], polygons: [], children: [] });
|
|
184
|
+
return this;
|
|
185
|
+
}
|
|
186
|
+
/** Begins a polygon part inside an event-built MultiPolygon. */
|
|
187
|
+
beginPolygon() {
|
|
188
|
+
const state = this.eventStack[this.eventStack.length - 1];
|
|
189
|
+
if (!state || state.type !== 'MultiPolygon') {
|
|
190
|
+
throw new Error("beginPolygon must follow beginGeometry('MultiPolygon')");
|
|
191
|
+
}
|
|
192
|
+
state.currentPolygon = [];
|
|
193
|
+
state.polygons.push(state.currentPolygon);
|
|
194
|
+
state.currentRing = undefined;
|
|
195
|
+
return this;
|
|
196
|
+
}
|
|
197
|
+
/** Begins a ring/part in the current event geometry. */
|
|
198
|
+
beginRing(_count) {
|
|
199
|
+
const state = this.eventStack[this.eventStack.length - 1];
|
|
200
|
+
if (!state)
|
|
201
|
+
throw new Error('beginRing must follow beginGeometry');
|
|
202
|
+
state.currentRing = [];
|
|
203
|
+
if (state.type === 'MultiPolygon') {
|
|
204
|
+
if (!state.currentPolygon)
|
|
205
|
+
this.beginPolygon();
|
|
206
|
+
state.currentPolygon.push(state.currentRing);
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
state.rings.push(state.currentRing);
|
|
210
|
+
}
|
|
211
|
+
return this;
|
|
212
|
+
}
|
|
213
|
+
/** Writes one coordinate into the current event ring or point. */
|
|
214
|
+
writeCoordinate(x, y, z, m) {
|
|
215
|
+
const state = this.eventStack[this.eventStack.length - 1];
|
|
216
|
+
if (!state)
|
|
217
|
+
throw new Error('writeCoordinate must follow beginGeometry');
|
|
218
|
+
const coordinate = Array.isArray(x)
|
|
219
|
+
? [...x]
|
|
220
|
+
: [x, y, ...(z === undefined ? [] : [z]), ...(m === undefined ? [] : [m])];
|
|
221
|
+
const size = getGeoArrowDimensionSize(state.dimension);
|
|
222
|
+
if (coordinate.length !== size)
|
|
223
|
+
throw new Error(`Expected ${size} coordinate values for ${state.dimension}`);
|
|
224
|
+
if (state.type === 'Point') {
|
|
225
|
+
state.rings = [[coordinate]];
|
|
226
|
+
return this;
|
|
227
|
+
}
|
|
228
|
+
if (!state.currentRing)
|
|
229
|
+
this.beginRing();
|
|
230
|
+
state.currentRing.push(coordinate);
|
|
231
|
+
return this;
|
|
232
|
+
}
|
|
233
|
+
/** Ends the current event geometry and appends it to the builder/parent. */
|
|
234
|
+
endGeometry() {
|
|
235
|
+
const state = this.eventStack.pop();
|
|
236
|
+
if (!state)
|
|
237
|
+
throw new Error('endGeometry without beginGeometry');
|
|
238
|
+
const coordinates = state.rings;
|
|
239
|
+
let geometry;
|
|
240
|
+
switch (state.type) {
|
|
241
|
+
case 'Point':
|
|
242
|
+
geometry = { type: 'Point', coordinates: coordinates[0]?.[0] || [] };
|
|
243
|
+
break;
|
|
244
|
+
case 'LineString':
|
|
245
|
+
geometry = { type: 'LineString', coordinates: coordinates[0] || [] };
|
|
246
|
+
break;
|
|
247
|
+
case 'MultiPoint':
|
|
248
|
+
geometry = { type: 'MultiPoint', coordinates: coordinates.flat() };
|
|
249
|
+
break;
|
|
250
|
+
case 'Polygon':
|
|
251
|
+
geometry = { type: 'Polygon', coordinates };
|
|
252
|
+
break;
|
|
253
|
+
case 'MultiLineString':
|
|
254
|
+
geometry = { type: 'MultiLineString', coordinates };
|
|
255
|
+
break;
|
|
256
|
+
case 'MultiPolygon':
|
|
257
|
+
geometry = {
|
|
258
|
+
type: 'MultiPolygon',
|
|
259
|
+
coordinates: state.polygons.length ? state.polygons : [coordinates]
|
|
260
|
+
};
|
|
261
|
+
break;
|
|
262
|
+
case 'GeometryCollection':
|
|
263
|
+
geometry = { type: 'GeometryCollection', geometries: state.children };
|
|
264
|
+
break;
|
|
265
|
+
}
|
|
266
|
+
const parent = this.eventStack[this.eventStack.length - 1];
|
|
267
|
+
if (parent?.type === 'GeometryCollection')
|
|
268
|
+
parent.children.push(geometry);
|
|
269
|
+
else
|
|
270
|
+
this.append(geometry);
|
|
271
|
+
return this;
|
|
272
|
+
}
|
|
180
273
|
writeOffset(target, index, value) {
|
|
181
274
|
if (!target)
|
|
182
275
|
return;
|
|
@@ -265,7 +358,7 @@ function makeDenseUnionArray(rows, options, dimension) {
|
|
|
265
358
|
const geometry = rows[rowIndex];
|
|
266
359
|
const type = geometry?.type || fallbackType;
|
|
267
360
|
const values = childRows.get(type) || [];
|
|
268
|
-
typeIds[rowIndex] = getGeometryTypeId(type);
|
|
361
|
+
typeIds[rowIndex] = getGeometryTypeId(type, dimension);
|
|
269
362
|
valueOffsets[rowIndex] = values.length;
|
|
270
363
|
if (geometry) {
|
|
271
364
|
values.push(geometry);
|
|
@@ -274,7 +367,7 @@ function makeDenseUnionArray(rows, options, dimension) {
|
|
|
274
367
|
}
|
|
275
368
|
}
|
|
276
369
|
const children = [...childRows.entries()]
|
|
277
|
-
.sort(([left], [right]) => getGeometryTypeId(left) - getGeometryTypeId(right))
|
|
370
|
+
.sort(([left], [right]) => getGeometryTypeId(left, dimension) - getGeometryTypeId(right, dimension))
|
|
278
371
|
.map(([type, values]) => {
|
|
279
372
|
const data = type === 'GeometryCollection'
|
|
280
373
|
? makeGeometryCollectionArray(values, options, dimension)
|
|
@@ -283,7 +376,14 @@ function makeDenseUnionArray(rows, options, dimension) {
|
|
|
283
376
|
dimension,
|
|
284
377
|
encoding: getGeoArrowEncodingForGeometry(type)
|
|
285
378
|
}).chunks[0];
|
|
286
|
-
return {
|
|
379
|
+
return {
|
|
380
|
+
name: type,
|
|
381
|
+
typeId: getGeometryTypeId(type, dimension),
|
|
382
|
+
encoding: getGeoArrowEncodingForGeometry(type),
|
|
383
|
+
dimension,
|
|
384
|
+
coordinateLayout: options.coordinateLayout || 'interleaved',
|
|
385
|
+
data
|
|
386
|
+
};
|
|
287
387
|
});
|
|
288
388
|
return {
|
|
289
389
|
kind: 'dense-union',
|
|
@@ -379,8 +479,8 @@ function getBuilderDepth(encoding) {
|
|
|
379
479
|
return 3;
|
|
380
480
|
}
|
|
381
481
|
}
|
|
382
|
-
function getGeometryTypeId(type) {
|
|
383
|
-
|
|
482
|
+
function getGeometryTypeId(type, dimension = 'xy') {
|
|
483
|
+
const family = [
|
|
384
484
|
'Point',
|
|
385
485
|
'LineString',
|
|
386
486
|
'Polygon',
|
|
@@ -388,7 +488,9 @@ function getGeometryTypeId(type) {
|
|
|
388
488
|
'MultiLineString',
|
|
389
489
|
'MultiPolygon',
|
|
390
490
|
'GeometryCollection'
|
|
391
|
-
].indexOf(type)
|
|
491
|
+
].indexOf(type);
|
|
492
|
+
const dimensionIndex = ['xy', 'xyz', 'xym', 'xyzm'].indexOf(dimension);
|
|
493
|
+
return family < 0 || dimensionIndex < 0 ? 1 : family * 4 + dimensionIndex + 1;
|
|
392
494
|
}
|
|
393
495
|
function inferRowsDimension(rows) {
|
|
394
496
|
let size = 2;
|
package/dist/builder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAapC,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC9B,uBAAuB,EACxB,mBAAgB;AAmEjB;;;;;GAKG;AACH,MAAM,OAAO,eAAe;IAc1B,YAAY,OAAmC;QANvC,WAAM,GAAG,CAAC,CAAC;QACX,cAAS,GAAG,CAAC,CAAC;QACd,oBAAe,GAAG,CAAC,CAAC;QACpB,cAAS,GAAG,CAAC,CAAC;QACd,cAAS,GAAG,CAAC,CAAC;QAGpB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC;QAC3C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,aAAa,CAAC;QAClE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC;QAChD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,SAAS,CAAC;QAC1D,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACpE,IAAI,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED,wCAAwC;IACxC,MAAM,CAAC,QAAkD;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5D,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAC,QAAQ,kBAAkB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACzF,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,IAAI,CAAC,MAAM;YAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEhE,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAiC,CAAC;QAC/D,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,eAAe,CAAC,WAAgC,CAAC,CAAC;QACzD,CAAC;aAAM,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,mBAAmB,CAAC,WAA6C,CAAC,CAAC;YACxE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,GAAG,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACrF,CAAC;aAAM,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YACvB,KAAK,MAAM,IAAI,IAAI,WAA0D,EAAE,CAAC;gBAC9E,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YACnF,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,OAAO,IAAI,WAAuE,EAAE,CAAC;gBAC9F,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;oBAC3B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;oBAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;oBACjB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;gBACnF,CAAC;gBACD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7E,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/E,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+CAA+C;IAC/C,cAAc;QACZ,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,mBAAmB,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,eAAe,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,eAAe,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACrD,CAAC;IACJ,CAAC;IAED,8DAA8D;IAC9D,cAAc;QACZ,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAC7F,OAAO,6BAA6B,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE;YAC1D,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;IACL,CAAC;IAED,qEAAqE;IACrE,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9E,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACzF,MAAM,WAAW,GAAG,mBAAmB,CACrC,IAAI,CAAC,MAAM,CAAC,WAAW,EACvB,WAAW,CAAC,eAAe,EAC3B,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,gBAAgB,CACtB,CAAC;QACF,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,KAAK,GAAkB,WAAW,CAAC;QACvC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,KAAK,GAAG;gBACN,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,IAAI,CAAC,SAAS;gBACtB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,WAAY;gBACjC,KAAK,EAAE,KAAK;aACb,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,KAAK,GAAG;gBACN,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,IAAI,CAAC,SAAS;gBACtB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,WAAY;gBACjC,KAAK,EAAE,KAAK;aACb,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,KAAK,GAAG;gBACN,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,eAAgB;gBACrC,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAC;aACzC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,EAAC,GAAG,KAAK,EAAE,QAAQ,EAAE,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAC,EAAC,CAAC;QAC/D,CAAC;QACD,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,MAAM,EAAE,CAAC,KAAK,CAAC;SAChB,CAAC;IACJ,CAAC;IAED,wEAAwE;IACxE,MAAM,CAAC,KAAK,CACV,IAA2D,EAC3D,OAA+B;QAE/B,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,EAAC,GAAG,OAAO,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC,CAAC;QACnE,KAAK,MAAM,GAAG,IAAI,IAAI;YAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC;YAChC,GAAG,OAAO;YACV,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,OAAO,CAAC,cAAc,EAAE;SACjC,CAAC,CAAC;QACH,KAAK,MAAM,GAAG,IAAI,IAAI;YAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1C,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;IAEO,UAAU,CAAC,QAAgB;QACjC,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,CACd,IAAI,CAAC,MAAM,EAAE,eAAe,EAC5B,QAAQ,GAAG,CAAC,EACZ,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CACpD,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,WAA2C;QACrE,KAAK,MAAM,UAAU,IAAI,WAAW;YAAE,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IACzE,CAAC;IAEO,eAAe,CAAC,UAA6B;QACnD,MAAM,IAAI,GAAG,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,UAAU,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,0BAA0B,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,IAAI,CAAC,MAAM;YACb,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7F,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAEO,WAAW,CAAC,MAAmC,EAAE,KAAa,EAAE,KAAa;QACnF,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,MAAM,YAAY,aAAa;YAAE,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;;YAC9D,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;IAC7B,CAAC;IAEO,uBAAuB,CAAC,MAA6B;QAC3D,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;CACF;AAED,6DAA6D;AAC7D,MAAM,UAAU,6BAA6B,CAC3C,WAAuC,EACvC,OAA+B;IAE/B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC;IAC5C,MAAM,IAAI,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;IACtF,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,aAAa,CAAC;IACnE,MAAM,WAAW,GACf,gBAAgB,KAAK,aAAa;QAChC,CAAC,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,eAAe,GAAG,IAAI,CAAC;QACpD,CAAC,CAAC,6BAA6B,CAAC,UAAU,EAAE,WAAW,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IACxF,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC;IAChF,OAAO;QACL,QAAQ,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3D,WAAW;QACX,eAAe,EAAE,WAAW,CAAC,mBAAmB;YAC9C,CAAC,CAAC,IAAI,WAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC;YAClD,CAAC,CAAC,SAAS;QACb,WAAW,EAAE,WAAW,CAAC,eAAe;YACtC,CAAC,CAAC,IAAI,WAAW,CAAC,WAAW,CAAC,eAAe,CAAC;YAC9C,CAAC,CAAC,SAAS;QACb,WAAW,EAAE,WAAW,CAAC,eAAe;YACtC,CAAC,CAAC,IAAI,WAAW,CAAC,WAAW,CAAC,eAAe,CAAC;YAC9C,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,kCAAkC,CAChD,IAA+C,EAC/C,UAAyC,EAAE;IAE3C,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/E,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAChE,IAAI,OAAO,CAAC,QAAQ,KAAK,mBAAmB,EAAE,CAAC;QAC7C,OAAO;YACL,QAAQ,EAAE,mBAAmB;YAC7B,SAAS;YACT,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,aAAa;YAC3D,MAAM,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;SACxD,CAAC;IACJ,CAAC;IACD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,EAAC,GAAG,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAC,CAAC,CAAC;IAC1F,CAAC;IACD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,oBAAoB,EAAE,CAAC;QAC5E,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE;YACjC,GAAG,OAAO;YACV,SAAS;YACT,QAAQ,EAAE,8BAA8B,CAAC,aAAa,CAAC,CAAC,CAAC,CAA4B;SACtF,CAAC,CAAC;IACL,CAAC;IACD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,oBAAoB,EAAE,CAAC;QAC5E,OAAO;YACL,QAAQ,EAAE,6BAA6B;YACvC,SAAS;YACT,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,aAAa;YAC3D,MAAM,EAAE,CAAC,2BAA2B,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;SAChE,CAAC;IACJ,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,mBAAmB;QAC7B,SAAS;QACT,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,aAAa;QAC3D,MAAM,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;KACxD,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAA+C,EAC/C,OAAsC,EACtC,SAA4B;IAE5B,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9E,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;IAChD,MAAM,SAAS,GAAG,IAAI,GAAG,EAA0D,CAAC;IACpF,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAAE,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAChG,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5D,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,QAAQ,EAAE,IAAI,IAAI,YAAY,CAAC;QAC5C,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC5C,YAAY,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QACvC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtB,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC5B,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;SACtC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;SAC7E,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE;QACtB,MAAM,IAAI,GACR,IAAI,KAAK,oBAAoB;YAC3B,CAAC,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC;YACzD,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE;gBAC5B,GAAG,OAAO;gBACV,SAAS;gBACT,QAAQ,EAAE,8BAA8B,CAAC,IAAI,CAA4B;aAC1E,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IACL,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO;QACP,YAAY;QACZ,QAAQ;QACR,QAAQ,EAAE,EAAC,MAAM,EAAE,QAAQ,EAAC;KAC7B,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAClC,IAA+C,EAC/C,OAAsC,EACtC,SAA4B;IAE5B,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5D,MAAM,SAAS,GAA4B,EAAE,CAAC;IAC9C,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,IAAI,GAAG,EAAE,IAAI,KAAK,oBAAoB,EAAE,CAAC;YACvC,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;YAClC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;IAC3C,CAAC;IACD,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO;QACP,KAAK,EAAE,mBAAmB,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC;QACzD,QAAQ,EAAE,EAAC,MAAM,EAAE,QAAQ,EAAC;KAC7B,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,WAAiD,EACjD,eAAuB,EACvB,SAA4B,EAC5B,MAAgC;IAEhC,MAAM,IAAI,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;IACjD,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,WAA0C,CAAC;QAC1D,OAAO;YACL,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE,eAAe;YACvB,IAAI;YACJ,KAAK,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI,EAAE,MAAM,EAAC;SACnE,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,WAGjB,CAAC;IACF,MAAM,QAAQ,GAAkC;QAC9C,CAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,EAAC;QACpE,CAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,EAAC;KACrE,CAAC;IACF,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC;QAChB,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,EAAC,CAAC;IACpF,CAAC;IACD,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC;QAChB,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,EAAC,CAAC;IACpF,CAAC;IACD,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAmB,CAAC;AAC/E,CAAC;AAED,SAAS,6BAA6B,CACpC,UAA6D,EAC7D,KAAa,EACb,SAA4B;IAE5B,OAAO;QACL,CAAC,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC;QACxB,CAAC,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC;QACxB,CAAC,EAAE,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;QAClF,CAAC,EAAE,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;KACnF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,MAA4C,EAC5C,eAAuB,EACvB,UAA6B,EAC7B,SAA4B;IAE5B,IAAI,MAAM,YAAY,YAAY,IAAI,MAAM,YAAY,YAAY,EAAE,CAAC;QACrE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5D,OAAO;IACT,CAAC;IACD,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC1C,IAAI,SAAS,KAAK,KAAK;QAAE,MAAM,CAAC,CAAE,CAAC,eAAe,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;SAC/D,IAAI,SAAS,KAAK,KAAK;QAAE,MAAM,CAAC,CAAE,CAAC,eAAe,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;SACpE,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QAC9B,MAAM,CAAC,CAAE,CAAC,eAAe,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,CAAE,CAAC,eAAe,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,QAAoB,EAAE,KAAa;IACzD,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,eAAe,CAAC,QAAiC;IACxD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,gBAAgB;YACnB,OAAO,CAAC,CAAC;QACX,KAAK,qBAAqB,CAAC;QAC3B,KAAK,qBAAqB;YACxB,OAAO,CAAC,CAAC;QACX,KAAK,kBAAkB,CAAC;QACxB,KAAK,0BAA0B;YAC7B,OAAO,CAAC,CAAC;QACX,KAAK,uBAAuB;YAC1B,OAAO,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAmC;IAC5D,OAAO,CACL;QACE,OAAO;QACP,YAAY;QACZ,SAAS;QACT,YAAY;QACZ,iBAAiB;QACjB,cAAc;QACd,oBAAoB;KACrB,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CACpB,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,IAA+C;IACzE,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,KAAK,GAAG,CAAC,KAAc,EAAQ,EAAE;QACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACxD,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ;YAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;;YACjE,KAAK,MAAM,KAAK,IAAI,KAAK;gBAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,CAAC,QAA+B,EAAQ,EAAE;QAC9D,IAAI,QAAQ,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;YAC3C,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,UAAU;gBAAE,aAAa,CAAC,KAAK,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG;YAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAED,SAAS,oBAAoB,CAC3B,MAA6B,EAC7B,WAAuC,EACvC,IAAY;IAEZ,MAAM,gBAAgB,GACpB,MAAM,CAAC,WAAW,YAAY,YAAY,IAAI,MAAM,CAAC,WAAW,YAAY,YAAY;QACtF,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI;QAClC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;IAClC,IACE,gBAAgB,GAAG,WAAW,CAAC,eAAe;QAC9C,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,EAC/C,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
|
package/dist/codecs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codecs.d.ts","sourceRoot":"","sources":["../src/codecs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"codecs.d.ts","sourceRoot":"","sources":["../src/codecs.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,cAAc,EAIf,mBAAgB;AAQjB,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAUxE;AAED,oEAAoE;AACpE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAsCxE;AAED,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAUxE;AAED,oEAAoE;AACpE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAYxE"}
|
package/dist/codecs.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
// math.gl
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
|
-
import { formatWKT, parseWKB, parseWKT
|
|
4
|
+
import { formatWKT, parseWKB, parseWKT } from '@math.gl/wkb';
|
|
5
|
+
import { WKBBuilder } from '@math.gl/wkb';
|
|
5
6
|
import { getGeoArrowDimensionSize } from "./types.js";
|
|
6
7
|
import { makeGeoArrowColumnFromGeometryRows } from "./builder.js";
|
|
7
|
-
import { getGeoArrowOffset, isGeoArrowValueValid,
|
|
8
|
+
import { getGeoArrowOffset, isGeoArrowValueValid, materializeGeometryRow } from "./layout.js";
|
|
8
9
|
const textEncoder = new TextEncoder();
|
|
9
10
|
const textDecoder = new TextDecoder();
|
|
10
11
|
/** Decodes a GeoArrow WKB column into native physical geometry buffers. */
|
|
@@ -18,9 +19,38 @@ export function decodeGeoArrowWKB(column) {
|
|
|
18
19
|
export function encodeGeoArrowWKB(column) {
|
|
19
20
|
if (column.encoding === 'geoarrow.wkb')
|
|
20
21
|
return column;
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
|
|
22
|
+
const writers = [];
|
|
23
|
+
const dimensions = [];
|
|
24
|
+
for (const chunk of column.chunks) {
|
|
25
|
+
for (let rowIndex = 0; rowIndex < chunk.length; rowIndex++) {
|
|
26
|
+
if (!isGeoArrowValueValid(chunk.validity, rowIndex)) {
|
|
27
|
+
writers.push(null);
|
|
28
|
+
dimensions.push(column.dimension);
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
dimensions.push(getPhysicalGeometryDimension(chunk, rowIndex, column.encoding, column.dimension));
|
|
32
|
+
writers.push(builder => writePhysicalGeometry(builder, chunk, rowIndex, column.encoding, column.dimension));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const built = WKBBuilder.buildGeometryArray(writers, {
|
|
36
|
+
dimension: column.dimension,
|
|
37
|
+
dimensionResolver: index => dimensions[index] || column.dimension
|
|
38
|
+
});
|
|
39
|
+
return copyMetadata(column, {
|
|
40
|
+
encoding: 'geoarrow.wkb',
|
|
41
|
+
dimension: column.dimension,
|
|
42
|
+
coordinateLayout: null,
|
|
43
|
+
chunks: [
|
|
44
|
+
{
|
|
45
|
+
kind: 'serialized',
|
|
46
|
+
encoding: 'binary',
|
|
47
|
+
length: writers.length,
|
|
48
|
+
offsets: built.valueOffsets,
|
|
49
|
+
values: built.values,
|
|
50
|
+
...(built.nullBitmap ? { validity: { values: built.nullBitmap } } : {})
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
});
|
|
24
54
|
}
|
|
25
55
|
/** Decodes a GeoArrow WKT column into native physical geometry buffers. */
|
|
26
56
|
export function decodeGeoArrowWKT(column) {
|
|
@@ -33,10 +63,163 @@ export function decodeGeoArrowWKT(column) {
|
|
|
33
63
|
export function encodeGeoArrowWKT(column) {
|
|
34
64
|
if (column.encoding === 'geoarrow.wkt')
|
|
35
65
|
return column;
|
|
36
|
-
const
|
|
37
|
-
|
|
66
|
+
const values = [];
|
|
67
|
+
for (const chunk of column.chunks) {
|
|
68
|
+
for (let rowIndex = 0; rowIndex < chunk.length; rowIndex++) {
|
|
69
|
+
const row = isGeoArrowValueValid(chunk.validity, rowIndex)
|
|
70
|
+
? materializeGeometryRow(chunk, rowIndex, column.encoding)
|
|
71
|
+
: null;
|
|
72
|
+
values.push(row ? textEncoder.encode(formatWKT(row, column.dimension)) : null);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
38
75
|
return copyMetadata(column, makeSerializedColumn(values, 'geoarrow.wkt', column.dimension));
|
|
39
76
|
}
|
|
77
|
+
function writePhysicalGeometry(builder, array, rowIndex, encoding, dimension) {
|
|
78
|
+
const depth = getEncodingDepth(encoding);
|
|
79
|
+
if (encoding === 'geoarrow.geometry' && array.kind === 'dense-union') {
|
|
80
|
+
const physical = (array.offset || 0) + rowIndex;
|
|
81
|
+
const typeId = array.typeIds[physical];
|
|
82
|
+
const child = array.children.find(candidate => candidate.typeId === typeId);
|
|
83
|
+
if (!child)
|
|
84
|
+
throw new Error('Dense-union row references an unknown child');
|
|
85
|
+
const childDimension = child.dimension || dimension;
|
|
86
|
+
builder.withDimension(childDimension, () => writePhysicalGeometry(builder, child.data, array.valueOffsets[physical], child.encoding || encodingFromName(child.name), childDimension));
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
if (encoding === 'geoarrow.geometrycollection' && array.kind === 'list') {
|
|
90
|
+
const [first, last] = getListRange(array, rowIndex);
|
|
91
|
+
builder.beginGeometry('GeometryCollection', last - first);
|
|
92
|
+
if (array.child.kind !== 'dense-union')
|
|
93
|
+
throw new Error('GeometryCollection requires dense union child');
|
|
94
|
+
const union = array.child;
|
|
95
|
+
for (let index = first; index < last; index++) {
|
|
96
|
+
const physical = (union.offset || 0) + index;
|
|
97
|
+
const child = union.children.find(candidate => candidate.typeId === union.typeIds[physical]);
|
|
98
|
+
if (child) {
|
|
99
|
+
const childDimension = child.dimension || dimension;
|
|
100
|
+
builder.withDimension(childDimension, () => writePhysicalGeometry(builder, child.data, union.valueOffsets[physical], child.encoding || encodingFromName(child.name), childDimension));
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
if (array.kind !== 'list' && depth > 0)
|
|
106
|
+
throw new Error(`Invalid ${encoding} storage`);
|
|
107
|
+
const writeCoordinate = (leaf, index) => {
|
|
108
|
+
const coordinate = readPhysicalCoordinate(leaf, index);
|
|
109
|
+
if (!coordinate)
|
|
110
|
+
throw new Error('Invalid GeoArrow coordinate storage');
|
|
111
|
+
if (dimension === 'xym')
|
|
112
|
+
builder.writeCoordinate(coordinate[0], coordinate[1], undefined, coordinate[2]);
|
|
113
|
+
else if (dimension === 'xyzm')
|
|
114
|
+
builder.writeCoordinate(coordinate[0], coordinate[1], coordinate[2], coordinate[3]);
|
|
115
|
+
else
|
|
116
|
+
builder.writeCoordinate(coordinate[0], coordinate[1], coordinate[2]);
|
|
117
|
+
};
|
|
118
|
+
const writeSequence = (leaf, first, last) => {
|
|
119
|
+
for (let index = first; index < last; index++)
|
|
120
|
+
writeCoordinate(leaf, index);
|
|
121
|
+
};
|
|
122
|
+
if (encoding === 'geoarrow.point') {
|
|
123
|
+
builder.beginPoint();
|
|
124
|
+
writeCoordinate(array, rowIndex);
|
|
125
|
+
}
|
|
126
|
+
else if (encoding === 'geoarrow.linestring' || encoding === 'geoarrow.multipoint') {
|
|
127
|
+
const [first, last] = getListRange(array, rowIndex);
|
|
128
|
+
if (encoding === 'geoarrow.linestring') {
|
|
129
|
+
builder.beginLineString(last - first);
|
|
130
|
+
writeSequence(array.child, first, last);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
builder.beginMultiPoint(last - first);
|
|
134
|
+
const leaf = array.child;
|
|
135
|
+
for (let index = first; index < last; index++) {
|
|
136
|
+
builder.beginPoint();
|
|
137
|
+
writeCoordinate(leaf, index);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
else if (encoding === 'geoarrow.polygon' || encoding === 'geoarrow.multilinestring') {
|
|
142
|
+
const [first, last] = getListRange(array, rowIndex);
|
|
143
|
+
const parts = array.child;
|
|
144
|
+
if (encoding === 'geoarrow.polygon')
|
|
145
|
+
builder.beginPolygon(last - first);
|
|
146
|
+
else
|
|
147
|
+
builder.beginMultiLineString(last - first);
|
|
148
|
+
for (let partIndex = first; partIndex < last; partIndex++) {
|
|
149
|
+
const [ringFirst, ringLast] = getListRange(parts, partIndex);
|
|
150
|
+
const leaf = parts.child;
|
|
151
|
+
if (encoding === 'geoarrow.polygon')
|
|
152
|
+
builder.beginLinearRing(ringLast - ringFirst);
|
|
153
|
+
else
|
|
154
|
+
builder.beginLineString(ringLast - ringFirst);
|
|
155
|
+
writeSequence(leaf, ringFirst, ringLast);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
else if (encoding === 'geoarrow.multipolygon') {
|
|
159
|
+
const [first, last] = getListRange(array, rowIndex);
|
|
160
|
+
const polygons = array.child;
|
|
161
|
+
builder.beginMultiPolygon(last - first);
|
|
162
|
+
for (let polygonIndex = first; polygonIndex < last; polygonIndex++) {
|
|
163
|
+
const [partFirst, partLast] = getListRange(polygons, polygonIndex);
|
|
164
|
+
const parts = polygons.child;
|
|
165
|
+
builder.beginPolygon(partLast - partFirst);
|
|
166
|
+
for (let partIndex = partFirst; partIndex < partLast; partIndex++) {
|
|
167
|
+
const [ringFirst, ringLast] = getListRange(parts, partIndex);
|
|
168
|
+
builder.beginLinearRing(ringLast - ringFirst);
|
|
169
|
+
writeSequence(parts.child, ringFirst, ringLast);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
function getPhysicalGeometryDimension(array, rowIndex, encoding, dimension) {
|
|
175
|
+
if (encoding !== 'geoarrow.geometry' || array.kind !== 'dense-union')
|
|
176
|
+
return dimension;
|
|
177
|
+
const physical = (array.offset || 0) + rowIndex;
|
|
178
|
+
const child = array.children.find(candidate => candidate.typeId === array.typeIds[physical]);
|
|
179
|
+
return child?.dimension || dimension;
|
|
180
|
+
}
|
|
181
|
+
function readPhysicalCoordinate(array, index) {
|
|
182
|
+
if (array.kind === 'fixed-size-list' && array.child.kind === 'primitive') {
|
|
183
|
+
const logical = (array.offset || 0) + index;
|
|
184
|
+
const values = [];
|
|
185
|
+
for (let component = 0; component < array.size; component++)
|
|
186
|
+
values.push(Number(array.child.values[(array.child.offset || 0) +
|
|
187
|
+
(logical * array.size + component) * (array.child.stride || 1)]));
|
|
188
|
+
return values;
|
|
189
|
+
}
|
|
190
|
+
if (array.kind === 'struct') {
|
|
191
|
+
const logical = (array.offset || 0) + index;
|
|
192
|
+
return ['x', 'y', 'z', 'm'].flatMap(name => {
|
|
193
|
+
const child = array.children[name];
|
|
194
|
+
return child?.kind === 'primitive'
|
|
195
|
+
? [Number(child.values[(child.offset || 0) + logical * (child.stride || 1)])]
|
|
196
|
+
: [];
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
return null;
|
|
200
|
+
}
|
|
201
|
+
function getListRange(list, index) {
|
|
202
|
+
const offset = (list.offset || 0) + index;
|
|
203
|
+
const base = typeof (list.offsetBase ?? 0) === 'bigint'
|
|
204
|
+
? Number(list.offsetBase)
|
|
205
|
+
: Number(list.offsetBase ?? 0);
|
|
206
|
+
return [
|
|
207
|
+
getGeoArrowOffset(list.offsets, offset) - base,
|
|
208
|
+
getGeoArrowOffset(list.offsets, offset + 1) - base
|
|
209
|
+
];
|
|
210
|
+
}
|
|
211
|
+
function getEncodingDepth(encoding) {
|
|
212
|
+
return encoding === 'geoarrow.point'
|
|
213
|
+
? 0
|
|
214
|
+
: encoding === 'geoarrow.linestring' || encoding === 'geoarrow.multipoint'
|
|
215
|
+
? 1
|
|
216
|
+
: encoding === 'geoarrow.polygon' || encoding === 'geoarrow.multilinestring'
|
|
217
|
+
? 2
|
|
218
|
+
: 3;
|
|
219
|
+
}
|
|
220
|
+
function encodingFromName(name) {
|
|
221
|
+
return `geoarrow.${name.toLowerCase()}`;
|
|
222
|
+
}
|
|
40
223
|
function normalizeRowsToDimension(rows, dimension) {
|
|
41
224
|
const size = getGeoArrowDimensionSize(dimension);
|
|
42
225
|
const normalizeGeometry = (geometry) => {
|
|
@@ -77,6 +260,21 @@ function decodeSerializedRows(column, decoder) {
|
|
|
77
260
|
return rows;
|
|
78
261
|
}
|
|
79
262
|
function getSerializedBytes(array, rowIndex) {
|
|
263
|
+
if (array.views) {
|
|
264
|
+
const viewIndex = ((array.offset || 0) + rowIndex) * 4;
|
|
265
|
+
const length = array.views[viewIndex];
|
|
266
|
+
// Arrow BinaryView stores short values inline in the 16-byte view record.
|
|
267
|
+
if (length <= 12) {
|
|
268
|
+
const byteOffset = array.views.byteOffset + viewIndex * 4 + 4;
|
|
269
|
+
return new Uint8Array(array.views.buffer, byteOffset, length);
|
|
270
|
+
}
|
|
271
|
+
const bufferIndex = array.views[viewIndex + 2];
|
|
272
|
+
const byteOffset = array.views[viewIndex + 3];
|
|
273
|
+
const data = array.dataBuffers?.[bufferIndex];
|
|
274
|
+
if (!data)
|
|
275
|
+
throw new Error(`Serialized view references missing data buffer ${bufferIndex}`);
|
|
276
|
+
return data.subarray(byteOffset, byteOffset + length);
|
|
277
|
+
}
|
|
80
278
|
const offsetIndex = (array.offset || 0) + rowIndex;
|
|
81
279
|
const baseValue = array.offsetBase ?? 0;
|
|
82
280
|
const base = typeof baseValue === 'bigint' ? Number(baseValue) : baseValue;
|