@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.
Files changed (54) hide show
  1. package/README.md +45 -15
  2. package/dist/builder-entry.cjs +561 -0
  3. package/dist/builder-entry.cjs.map +6 -0
  4. package/dist/builder-entry.d.ts +4 -0
  5. package/dist/builder-entry.d.ts.map +1 -0
  6. package/dist/builder-entry.js +5 -0
  7. package/dist/builder-entry.js.map +1 -0
  8. package/dist/builder.d.ts +12 -1
  9. package/dist/builder.d.ts.map +1 -1
  10. package/dist/builder.js +112 -10
  11. package/dist/builder.js.map +1 -1
  12. package/dist/codecs.d.ts.map +1 -1
  13. package/dist/codecs.js +205 -7
  14. package/dist/codecs.js.map +1 -1
  15. package/dist/index.cjs +904 -120
  16. package/dist/index.cjs.map +2 -2
  17. package/dist/index.d.ts +1 -1
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +1 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/kernels.d.ts +8 -3
  22. package/dist/kernels.d.ts.map +1 -1
  23. package/dist/kernels.js +610 -107
  24. package/dist/kernels.js.map +1 -1
  25. package/dist/layout.d.ts.map +1 -1
  26. package/dist/layout.js +28 -5
  27. package/dist/layout.js.map +1 -1
  28. package/dist/tessellation-entry.cjs +427 -0
  29. package/dist/tessellation-entry.cjs.map +6 -0
  30. package/dist/tessellation-entry.d.ts +4 -0
  31. package/dist/tessellation-entry.d.ts.map +1 -0
  32. package/dist/tessellation-entry.js +5 -0
  33. package/dist/tessellation-entry.js.map +1 -0
  34. package/dist/types.d.ts +37 -3
  35. package/dist/types.d.ts.map +1 -1
  36. package/dist/types.js.map +1 -1
  37. package/dist/wkb-entry.cjs +1005 -0
  38. package/dist/wkb-entry.cjs.map +6 -0
  39. package/dist/wkb-entry.d.ts +3 -0
  40. package/dist/wkb-entry.d.ts.map +1 -0
  41. package/dist/wkb-entry.js +6 -0
  42. package/dist/wkb-entry.js.map +1 -0
  43. package/dist/worker.cjs +4 -0
  44. package/dist/worker.cjs.map +1 -1
  45. package/package.json +21 -6
  46. package/src/builder-entry.ts +18 -0
  47. package/src/builder.ts +133 -19
  48. package/src/codecs.ts +251 -9
  49. package/src/index.ts +1 -0
  50. package/src/kernels.ts +811 -133
  51. package/src/layout.ts +38 -13
  52. package/src/tessellation-entry.ts +7 -0
  53. package/src/types.ts +23 -4
  54. 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,5 @@
1
+ // math.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ export { allocateGeoArrowBuilderTarget, GeoArrowBuilder, makeGeoArrowColumnFromGeometryRows } from "./builder.js";
5
+ //# sourceMappingURL=builder-entry.js.map
@@ -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 writeCoordinate;
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
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.writeCoordinate(coordinates);
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.writeCoordinate(new Array(getGeoArrowDimensionSize(this.dimension)).fill(0));
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.writeCoordinate(coordinate);
170
+ this.writeCoordinateValues(coordinate);
170
171
  }
171
- writeCoordinate(coordinate) {
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 { name: type, typeId: getGeometryTypeId(type), data };
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
- return ([
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) + 1);
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;
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
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;IAuB1B,YAAY,OAAmC;QAfvC,WAAM,GAAG,CAAC,CAAC;QACX,cAAS,GAAG,CAAC,CAAC;QACd,oBAAe,GAAG,CAAC,CAAC;QACpB,cAAS,GAAG,CAAC,CAAC;QACd,cAAS,GAAG,CAAC,CAAC;QACL,eAAU,GAQtB,EAAE,CAAC;QAGN,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,qBAAqB,CAAC,WAAgC,CAAC,CAAC;QAC/D,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,qBAAqB,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1F,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,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC/E,CAAC;IAEO,qBAAqB,CAAC,UAA6B;QACzD,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;IAED,+FAA+F;IAC/F,aAAa,CACX,IAAmC,EACnC,SAAS,GAAG,IAAI,CAAC,SAAS,EAC1B,MAAe;QAEf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gEAAgE;IAChE,YAAY;QACV,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QACD,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC;QAC1B,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC1C,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wDAAwD;IACxD,SAAS,CAAC,MAAe;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACnE,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;QACvB,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,cAAc;gBAAE,IAAI,CAAC,YAAY,EAAE,CAAC;YAC/C,KAAK,CAAC,cAAe,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kEAAkE;IAClE,eAAe,CAAC,CAA6B,EAAE,CAAU,EAAE,CAAU,EAAE,CAAU;QAC/E,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACR,CAAC,CAAC,CAAC,CAAC,EAAE,CAAE,EAAE,GAAG,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,IAAI,GAAG,wBAAwB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,UAAU,CAAC,MAAM,KAAK,IAAI;YAC5B,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,0BAA0B,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/E,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3B,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,WAAW;YAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QACzC,KAAK,CAAC,WAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4EAA4E;IAC5E,WAAW;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;QAChC,IAAI,QAA+B,CAAC;QACpC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,OAAO;gBACV,QAAQ,GAAG,EAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAC,CAAC;gBACnE,MAAM;YACR,KAAK,YAAY;gBACf,QAAQ,GAAG,EAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,EAAC,CAAC;gBACnE,MAAM;YACR,KAAK,YAAY;gBACf,QAAQ,GAAG,EAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE,EAAC,CAAC;gBACjE,MAAM;YACR,KAAK,SAAS;gBACZ,QAAQ,GAAG,EAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAC,CAAC;gBAC1C,MAAM;YACR,KAAK,iBAAiB;gBACpB,QAAQ,GAAG,EAAC,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAC,CAAC;gBAClD,MAAM;YACR,KAAK,cAAc;gBACjB,QAAQ,GAAG;oBACT,IAAI,EAAE,cAAc;oBACpB,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;iBACpE,CAAC;gBACF,MAAM;YACR,KAAK,oBAAoB;gBACvB,QAAQ,GAAG,EAAC,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAC,CAAC;gBACpE,MAAM;QACV,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3D,IAAI,MAAM,EAAE,IAAI,KAAK,oBAAoB;YAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;YACrE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,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,EAAE,SAAS,CAAC,CAAC;QACvD,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,CACH,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAC9F;SACA,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;YACL,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC;YAC1C,QAAQ,EAAE,8BAA8B,CAAC,IAAI,CAAC;YAC9C,SAAS;YACT,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,aAAa;YAC3D,IAAI;SACL,CAAC;IACJ,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,CACxB,IAAmC,EACnC,YAA+B,IAAI;IAEnC,MAAM,MAAM,GAAG;QACb,OAAO;QACP,YAAY;QACZ,SAAS;QACT,YAAY;QACZ,iBAAiB;QACjB,cAAc;QACd,oBAAoB;KACrB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvE,OAAO,MAAM,GAAG,CAAC,IAAI,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,cAAc,GAAG,CAAC,CAAC;AAChF,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 +1 @@
1
- {"version":3,"file":"codecs.d.ts","sourceRoot":"","sources":["../src/codecs.ts"],"names":[],"mappings":"AAKA,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,CAKxE;AAED,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAUxE;AAED,oEAAoE;AACpE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAOxE"}
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, writeWKB } from '@math.gl/wkb';
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, materializeGeoArrowRows } from "./layout.js";
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 rows = materializeGeoArrowRows(column);
22
- const values = rows.map(row => (row ? writeWKB(row, column.dimension) : null));
23
- return copyMetadata(column, makeSerializedColumn(values, 'geoarrow.wkb', column.dimension));
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 rows = materializeGeoArrowRows(column);
37
- const values = rows.map(row => row ? textEncoder.encode(formatWKT(row, column.dimension)) : null);
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;