@loaders.gl/arrow 4.0.4 → 4.1.0-alpha.2

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 (57) hide show
  1. package/dist/arrow-worker.js +237 -2
  2. package/dist/dist.dev.js +1465 -630
  3. package/dist/geoarrow/convert-geoarrow-to-binary-geometry.d.ts +8 -4
  4. package/dist/geoarrow/convert-geoarrow-to-binary-geometry.d.ts.map +1 -1
  5. package/dist/geoarrow/convert-geoarrow-to-binary-geometry.js +75 -54
  6. package/dist/geoarrow/convert-geoarrow-to-binary-geometry.js.map +1 -1
  7. package/dist/geoarrow/convert-geoarrow-to-geojson-geometry.d.ts +13 -0
  8. package/dist/geoarrow/convert-geoarrow-to-geojson-geometry.d.ts.map +1 -0
  9. package/dist/geoarrow/{convert-geoarrow-to-geojson.js → convert-geoarrow-to-geojson-geometry.js} +34 -27
  10. package/dist/geoarrow/convert-geoarrow-to-geojson-geometry.js.map +1 -0
  11. package/dist/geoarrow-loader.d.ts.map +1 -1
  12. package/dist/geoarrow-loader.js +0 -1
  13. package/dist/geoarrow-loader.js.map +1 -1
  14. package/dist/index.cjs +429 -347
  15. package/dist/index.d.ts +5 -3
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +4 -3
  18. package/dist/index.js.map +1 -1
  19. package/dist/parsers/parse-arrow-sync.d.ts.map +1 -1
  20. package/dist/parsers/parse-arrow-sync.js +2 -0
  21. package/dist/parsers/parse-arrow-sync.js.map +1 -1
  22. package/dist/tables/convert-arrow-to-columnar-table.d.ts.map +1 -1
  23. package/dist/tables/convert-arrow-to-columnar-table.js +1 -0
  24. package/dist/tables/convert-arrow-to-columnar-table.js.map +1 -1
  25. package/dist/tables/convert-arrow-to-geojson-table.d.ts +1 -1
  26. package/dist/tables/convert-arrow-to-geojson-table.d.ts.map +1 -1
  27. package/dist/tables/convert-arrow-to-geojson-table.js +14 -8
  28. package/dist/tables/convert-arrow-to-geojson-table.js.map +1 -1
  29. package/dist/tables/convert-columnar-to-row-table.d.ts.map +1 -1
  30. package/dist/tables/convert-columnar-to-row-table.js +1 -0
  31. package/dist/tables/convert-columnar-to-row-table.js.map +1 -1
  32. package/dist/triangulate-on-worker.d.ts +40 -6
  33. package/dist/triangulate-on-worker.d.ts.map +1 -1
  34. package/dist/triangulate-on-worker.js +11 -1
  35. package/dist/triangulate-on-worker.js.map +1 -1
  36. package/dist/triangulation-worker.js +11703 -34
  37. package/dist/workers/hard-clone.d.ts +23 -0
  38. package/dist/workers/hard-clone.d.ts.map +1 -0
  39. package/dist/workers/hard-clone.js +57 -0
  40. package/dist/workers/hard-clone.js.map +1 -0
  41. package/dist/workers/triangulation-worker.js +37 -2
  42. package/dist/workers/triangulation-worker.js.map +1 -1
  43. package/package.json +16 -10
  44. package/src/geoarrow/convert-geoarrow-to-binary-geometry.ts +103 -61
  45. package/src/geoarrow/{convert-geoarrow-to-geojson.ts → convert-geoarrow-to-geojson-geometry.ts} +56 -46
  46. package/src/geoarrow-loader.ts +0 -4
  47. package/src/index.ts +9 -3
  48. package/src/parsers/parse-arrow-sync.ts +6 -1
  49. package/src/tables/convert-arrow-to-columnar-table.ts +1 -0
  50. package/src/tables/convert-arrow-to-geojson-table.ts +18 -7
  51. package/src/tables/convert-columnar-to-row-table.ts +1 -0
  52. package/src/triangulate-on-worker.ts +51 -8
  53. package/src/workers/hard-clone.ts +162 -0
  54. package/src/workers/triangulation-worker.ts +57 -3
  55. package/dist/geoarrow/convert-geoarrow-to-geojson.d.ts +0 -20
  56. package/dist/geoarrow/convert-geoarrow-to-geojson.d.ts.map +0 -1
  57. package/dist/geoarrow/convert-geoarrow-to-geojson.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -9,9 +9,11 @@ export { GeoArrowLoader, GeoArrowWorkerLoader } from './geoarrow-loader';
9
9
  export { serializeArrowSchema, deserializeArrowSchema, serializeArrowMetadata, deserializeArrowMetadata, serializeArrowField, deserializeArrowField, serializeArrowType, deserializeArrowType } from './schema/convert-arrow-schema';
10
10
  export type { GeoArrowEncoding } from '@loaders.gl/gis';
11
11
  export type { BinaryDataFromGeoArrow, BinaryGeometriesFromArrowOptions } from './geoarrow/convert-geoarrow-to-binary-geometry';
12
- export { BINARY_GEOMETRY_TEMPLATE, getBinaryGeometriesFromArrow, getTriangleIndices, getMeanCentersFromBinaryGeometries } from './geoarrow/convert-geoarrow-to-binary-geometry';
12
+ export { getBinaryGeometryTemplate, getBinaryGeometriesFromArrow, getTriangleIndices, getMeanCentersFromBinaryGeometries } from './geoarrow/convert-geoarrow-to-binary-geometry';
13
13
  export { updateBoundsFromGeoArrowSamples } from './geoarrow/get-arrow-bounds';
14
- export { parseGeometryFromArrow } from './geoarrow/convert-geoarrow-to-geojson';
14
+ export { parseGeometryFromArrow } from './geoarrow/convert-geoarrow-to-geojson-geometry';
15
15
  export { convertArrowToGeoJSONTable } from './tables/convert-arrow-to-geojson-table';
16
- export { TriangulationWorker, triangulateOnWorker } from './triangulate-on-worker';
16
+ export { hardClone } from './workers/hard-clone';
17
+ export type { ParseGeoArrowInput, ParseGeoArrowResult } from './triangulate-on-worker';
18
+ export { TriangulationWorker, triangulateOnWorker, parseGeoArrowOnWorker } from './triangulate-on-worker';
17
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AASvD,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AAKvD,YAAY,EAAC,UAAU,EAAE,eAAe,EAAC,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAC,YAAY,EAAC,MAAM,SAAS,CAAC;AAIrC,YAAY,EAAC,kBAAkB,EAAC,CAAC;AACjC,OAAO,EAAC,WAAW,EAAE,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AAE9D,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAC,cAAc,EAAE,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AAGvE,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,+BAA+B,CAAC;AAKvC,YAAY,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AAItD,YAAY,EACV,sBAAsB,EACtB,gCAAgC,EACjC,MAAM,gDAAgD,CAAC;AACxD,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,kBAAkB,EAClB,kCAAkC,EACnC,MAAM,gDAAgD,CAAC;AAExD,OAAO,EAAC,+BAA+B,EAAC,MAAM,6BAA6B,CAAC;AAE5E,OAAO,EAAC,sBAAsB,EAAC,MAAM,wCAAwC,CAAC;AAE9E,OAAO,EAAC,0BAA0B,EAAC,MAAM,yCAAyC,CAAC;AAInF,OAAO,EAAC,mBAAmB,EAAE,mBAAmB,EAAC,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AASvD,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AAKvD,YAAY,EAAC,UAAU,EAAE,eAAe,EAAC,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAC,YAAY,EAAC,MAAM,SAAS,CAAC;AAIrC,YAAY,EAAC,kBAAkB,EAAC,CAAC;AACjC,OAAO,EAAC,WAAW,EAAE,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AAE9D,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAC,cAAc,EAAE,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AAGvE,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,+BAA+B,CAAC;AAKvC,YAAY,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AAItD,YAAY,EACV,sBAAsB,EACtB,gCAAgC,EACjC,MAAM,gDAAgD,CAAC;AACxD,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,kBAAkB,EAClB,kCAAkC,EACnC,MAAM,gDAAgD,CAAC;AAExD,OAAO,EAAC,+BAA+B,EAAC,MAAM,6BAA6B,CAAC;AAE5E,OAAO,EAAC,sBAAsB,EAAC,MAAM,iDAAiD,CAAC;AAEvF,OAAO,EAAC,0BAA0B,EAAC,MAAM,yCAAyC,CAAC;AAGnF,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAE/C,YAAY,EAAC,kBAAkB,EAAE,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AACrF,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC"}
package/dist/index.js CHANGED
@@ -7,9 +7,10 @@ export { ArrowLoader, ArrowWorkerLoader } from "./arrow-loader.js";
7
7
  export { ArrowWriter } from "./arrow-writer.js";
8
8
  export { GeoArrowLoader, GeoArrowWorkerLoader } from "./geoarrow-loader.js";
9
9
  export { serializeArrowSchema, deserializeArrowSchema, serializeArrowMetadata, deserializeArrowMetadata, serializeArrowField, deserializeArrowField, serializeArrowType, deserializeArrowType } from "./schema/convert-arrow-schema.js";
10
- export { BINARY_GEOMETRY_TEMPLATE, getBinaryGeometriesFromArrow, getTriangleIndices, getMeanCentersFromBinaryGeometries } from "./geoarrow/convert-geoarrow-to-binary-geometry.js";
10
+ export { getBinaryGeometryTemplate, getBinaryGeometriesFromArrow, getTriangleIndices, getMeanCentersFromBinaryGeometries } from "./geoarrow/convert-geoarrow-to-binary-geometry.js";
11
11
  export { updateBoundsFromGeoArrowSamples } from "./geoarrow/get-arrow-bounds.js";
12
- export { parseGeometryFromArrow } from "./geoarrow/convert-geoarrow-to-geojson.js";
12
+ export { parseGeometryFromArrow } from "./geoarrow/convert-geoarrow-to-geojson-geometry.js";
13
13
  export { convertArrowToGeoJSONTable } from "./tables/convert-arrow-to-geojson-table.js";
14
- export { TriangulationWorker, triangulateOnWorker } from "./triangulate-on-worker.js";
14
+ export { hardClone } from "./workers/hard-clone.js";
15
+ export { TriangulationWorker, triangulateOnWorker, parseGeoArrowOnWorker } from "./triangulate-on-worker.js";
15
16
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["TableBatchBuilder","ArrowTableBatchAggregator","ArrowBatch","getArrowType","VECTOR_TYPES","ArrowLoader","ArrowWorkerLoader","ArrowWriter","GeoArrowLoader","GeoArrowWorkerLoader","serializeArrowSchema","deserializeArrowSchema","serializeArrowMetadata","deserializeArrowMetadata","serializeArrowField","deserializeArrowField","serializeArrowType","deserializeArrowType","BINARY_GEOMETRY_TEMPLATE","getBinaryGeometriesFromArrow","getTriangleIndices","getMeanCentersFromBinaryGeometries","updateBoundsFromGeoArrowSamples","parseGeometryFromArrow","convertArrowToGeoJSONTable","TriangulationWorker","triangulateOnWorker"],"sources":["../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {ArrowLoaderOptions} from './arrow-loader';\nimport {TableBatchBuilder} from '@loaders.gl/schema';\nimport {ArrowTableBatchAggregator} from './lib/arrow-table-batch';\n\n// Make the ArrowBatch type available\nTableBatchBuilder.ArrowBatch = ArrowTableBatchAggregator;\n\n// TYPES\n\nexport {getArrowType} from './schema/arrow-type-utils';\n\n// SCHEMA\n\n// Types\nexport type {ArrowTable, ArrowTableBatch} from './lib/arrow-table';\nexport {VECTOR_TYPES} from './types';\n\n// Arrow loader / Writer\n\nexport type {ArrowLoaderOptions};\nexport {ArrowLoader, ArrowWorkerLoader} from './arrow-loader';\n\nexport {ArrowWriter} from './arrow-writer';\n\n// Geoarrow loader\nexport {GeoArrowLoader, GeoArrowWorkerLoader} from './geoarrow-loader';\n\n// Schema utils\nexport {\n serializeArrowSchema,\n deserializeArrowSchema,\n serializeArrowMetadata,\n deserializeArrowMetadata,\n serializeArrowField,\n deserializeArrowField,\n serializeArrowType,\n deserializeArrowType\n} from './schema/convert-arrow-schema';\n\n// EXPERIMENTAL\n\n// Arrow Utils\nexport type {GeoArrowEncoding} from '@loaders.gl/gis';\n// getGeometryColumnsFromArrowTable,\n// getGeoArrowEncoding\n\nexport type {\n BinaryDataFromGeoArrow,\n BinaryGeometriesFromArrowOptions\n} from './geoarrow/convert-geoarrow-to-binary-geometry';\nexport {\n BINARY_GEOMETRY_TEMPLATE,\n getBinaryGeometriesFromArrow,\n getTriangleIndices,\n getMeanCentersFromBinaryGeometries\n} from './geoarrow/convert-geoarrow-to-binary-geometry';\n\nexport {updateBoundsFromGeoArrowSamples} from './geoarrow/get-arrow-bounds';\n\nexport {parseGeometryFromArrow} from './geoarrow/convert-geoarrow-to-geojson';\n\nexport {convertArrowToGeoJSONTable} from './tables/convert-arrow-to-geojson-table';\n\n// EXPERIMENTAL WORKER\n\nexport {TriangulationWorker, triangulateOnWorker} from './triangulate-on-worker';\n"],"mappings":"AAIA,SAAQA,iBAAiB,QAAO,oBAAoB;AAAC,SAC7CC,yBAAyB;AAGjCD,iBAAiB,CAACE,UAAU,GAAGD,yBAAyB;AAAC,SAIjDE,YAAY;AAAA,SAMZC,YAAY;AAAA,SAKZC,WAAW,EAAEC,iBAAiB;AAAA,SAE9BC,WAAW;AAAA,SAGXC,cAAc,EAAEC,oBAAoB;AAAA,SAI1CC,oBAAoB,EACpBC,sBAAsB,EACtBC,sBAAsB,EACtBC,wBAAwB,EACxBC,mBAAmB,EACnBC,qBAAqB,EACrBC,kBAAkB,EAClBC,oBAAoB;AAAA,SAepBC,wBAAwB,EACxBC,4BAA4B,EAC5BC,kBAAkB,EAClBC,kCAAkC;AAAA,SAG5BC,+BAA+B;AAAA,SAE/BC,sBAAsB;AAAA,SAEtBC,0BAA0B;AAAA,SAI1BC,mBAAmB,EAAEC,mBAAmB"}
1
+ {"version":3,"file":"index.js","names":["TableBatchBuilder","ArrowTableBatchAggregator","ArrowBatch","getArrowType","VECTOR_TYPES","ArrowLoader","ArrowWorkerLoader","ArrowWriter","GeoArrowLoader","GeoArrowWorkerLoader","serializeArrowSchema","deserializeArrowSchema","serializeArrowMetadata","deserializeArrowMetadata","serializeArrowField","deserializeArrowField","serializeArrowType","deserializeArrowType","getBinaryGeometryTemplate","getBinaryGeometriesFromArrow","getTriangleIndices","getMeanCentersFromBinaryGeometries","updateBoundsFromGeoArrowSamples","parseGeometryFromArrow","convertArrowToGeoJSONTable","hardClone","TriangulationWorker","triangulateOnWorker","parseGeoArrowOnWorker"],"sources":["../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {ArrowLoaderOptions} from './arrow-loader';\nimport {TableBatchBuilder} from '@loaders.gl/schema';\nimport {ArrowTableBatchAggregator} from './lib/arrow-table-batch';\n\n// Make the ArrowBatch type available\nTableBatchBuilder.ArrowBatch = ArrowTableBatchAggregator;\n\n// TYPES\n\nexport {getArrowType} from './schema/arrow-type-utils';\n\n// SCHEMA\n\n// Types\nexport type {ArrowTable, ArrowTableBatch} from './lib/arrow-table';\nexport {VECTOR_TYPES} from './types';\n\n// Arrow loader / Writer\n\nexport type {ArrowLoaderOptions};\nexport {ArrowLoader, ArrowWorkerLoader} from './arrow-loader';\n\nexport {ArrowWriter} from './arrow-writer';\n\n// Geoarrow loader\nexport {GeoArrowLoader, GeoArrowWorkerLoader} from './geoarrow-loader';\n\n// Schema utils\nexport {\n serializeArrowSchema,\n deserializeArrowSchema,\n serializeArrowMetadata,\n deserializeArrowMetadata,\n serializeArrowField,\n deserializeArrowField,\n serializeArrowType,\n deserializeArrowType\n} from './schema/convert-arrow-schema';\n\n// EXPERIMENTAL\n\n// Arrow Utils\nexport type {GeoArrowEncoding} from '@loaders.gl/gis';\n// getGeometryColumnsFromArrowTable,\n// getGeoArrowEncoding\n\nexport type {\n BinaryDataFromGeoArrow,\n BinaryGeometriesFromArrowOptions\n} from './geoarrow/convert-geoarrow-to-binary-geometry';\nexport {\n getBinaryGeometryTemplate,\n getBinaryGeometriesFromArrow,\n getTriangleIndices,\n getMeanCentersFromBinaryGeometries\n} from './geoarrow/convert-geoarrow-to-binary-geometry';\n\nexport {updateBoundsFromGeoArrowSamples} from './geoarrow/get-arrow-bounds';\n\nexport {parseGeometryFromArrow} from './geoarrow/convert-geoarrow-to-geojson-geometry';\n\nexport {convertArrowToGeoJSONTable} from './tables/convert-arrow-to-geojson-table';\n\n// EXPERIMENTAL WORKER\nexport {hardClone} from './workers/hard-clone';\n\nexport type {ParseGeoArrowInput, ParseGeoArrowResult} from './triangulate-on-worker';\nexport {\n TriangulationWorker,\n triangulateOnWorker,\n parseGeoArrowOnWorker\n} from './triangulate-on-worker';\n"],"mappings":"AAIA,SAAQA,iBAAiB,QAAO,oBAAoB;AAAC,SAC7CC,yBAAyB;AAGjCD,iBAAiB,CAACE,UAAU,GAAGD,yBAAyB;AAAC,SAIjDE,YAAY;AAAA,SAMZC,YAAY;AAAA,SAKZC,WAAW,EAAEC,iBAAiB;AAAA,SAE9BC,WAAW;AAAA,SAGXC,cAAc,EAAEC,oBAAoB;AAAA,SAI1CC,oBAAoB,EACpBC,sBAAsB,EACtBC,sBAAsB,EACtBC,wBAAwB,EACxBC,mBAAmB,EACnBC,qBAAqB,EACrBC,kBAAkB,EAClBC,oBAAoB;AAAA,SAepBC,yBAAyB,EACzBC,4BAA4B,EAC5BC,kBAAkB,EAClBC,kCAAkC;AAAA,SAG5BC,+BAA+B;AAAA,SAE/BC,sBAAsB;AAAA,SAEtBC,0BAA0B;AAAA,SAG1BC,SAAS;AAAA,SAIfC,mBAAmB,EACnBC,mBAAmB,EACnBC,qBAAqB"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-arrow-sync.d.ts","sourceRoot":"","sources":["../../src/parsers/parse-arrow-sync.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,aAAa,EAAE,aAAa,EAAE,cAAc,EAAC,MAAM,oBAAoB,CAAC;AACrF,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAMnD,wBAAgB,cAAc,CAC5B,WAAW,KAAA,EACX,OAAO,CAAC,EAAE;IAAC,KAAK,CAAC,EAAE,aAAa,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,iBAAiB,CAAA;CAAC,GAC5F,UAAU,GAAG,aAAa,GAAG,cAAc,GAAG,aAAa,CAwB7D"}
1
+ {"version":3,"file":"parse-arrow-sync.d.ts","sourceRoot":"","sources":["../../src/parsers/parse-arrow-sync.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,aAAa,EAAE,aAAa,EAAE,cAAc,EAAC,MAAM,oBAAoB,CAAC;AACrF,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAOnD,wBAAgB,cAAc,CAC5B,WAAW,KAAA,EACX,OAAO,CAAC,EAAE;IAAC,KAAK,CAAC,EAAE,aAAa,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,iBAAiB,CAAA;CAAC,GAC5F,UAAU,GAAG,aAAa,GAAG,cAAc,GAAG,aAAa,CA4B7D"}
@@ -1,10 +1,12 @@
1
1
  import { convertTable } from '@loaders.gl/schema';
2
2
  import * as arrow from 'apache-arrow';
3
3
  import { convertArrowToColumnarTable } from "../tables/convert-arrow-to-columnar-table.js";
4
+ import { serializeArrowSchema } from "../schema/convert-arrow-schema.js";
4
5
  export function parseArrowSync(arrayBuffer, options) {
5
6
  const apacheArrowTable = arrow.tableFromIPC([new Uint8Array(arrayBuffer)]);
6
7
  const arrowTable = {
7
8
  shape: 'arrow-table',
9
+ schema: serializeArrowSchema(apacheArrowTable.schema),
8
10
  data: apacheArrowTable
9
11
  };
10
12
  const shape = (options === null || options === void 0 ? void 0 : options.shape) || 'arrow-table';
@@ -1 +1 @@
1
- {"version":3,"file":"parse-arrow-sync.js","names":["convertTable","arrow","convertArrowToColumnarTable","parseArrowSync","arrayBuffer","options","apacheArrowTable","tableFromIPC","Uint8Array","arrowTable","shape","data","columnarTable","Error"],"sources":["../../src/parsers/parse-arrow-sync.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {ArrayRowTable, ColumnarTable, ObjectRowTable} from '@loaders.gl/schema';\nimport type {ArrowTable} from '../lib/arrow-table';\nimport {convertTable} from '@loaders.gl/schema';\nimport * as arrow from 'apache-arrow';\nimport {convertArrowToColumnarTable} from '../tables/convert-arrow-to-columnar-table';\n\n// Parses arrow to a columnar table\nexport function parseArrowSync(\n arrayBuffer,\n options?: {shape?: 'arrow-table' | 'columnar-table' | 'object-row-table' | 'array-row-table'}\n): ArrowTable | ColumnarTable | ObjectRowTable | ArrayRowTable {\n const apacheArrowTable = arrow.tableFromIPC([new Uint8Array(arrayBuffer)]);\n const arrowTable: ArrowTable = {shape: 'arrow-table', data: apacheArrowTable};\n\n const shape = options?.shape || 'arrow-table';\n switch (shape) {\n case 'arrow-table':\n return arrowTable;\n\n case 'columnar-table':\n return convertArrowToColumnarTable(arrowTable);\n\n case 'object-row-table':\n let columnarTable = convertArrowToColumnarTable(arrowTable);\n return convertTable(columnarTable, 'object-row-table');\n\n case 'array-row-table':\n columnarTable = convertArrowToColumnarTable(arrowTable);\n return convertTable(columnarTable, 'array-row-table');\n\n default:\n // TODO\n throw new Error(shape);\n }\n}\n"],"mappings":"AAKA,SAAQA,YAAY,QAAO,oBAAoB;AAC/C,OAAO,KAAKC,KAAK,MAAM,cAAc;AAAC,SAC9BC,2BAA2B;AAGnC,OAAO,SAASC,cAAcA,CAC5BC,WAAW,EACXC,OAA6F,EAChC;EAC7D,MAAMC,gBAAgB,GAAGL,KAAK,CAACM,YAAY,CAAC,CAAC,IAAIC,UAAU,CAACJ,WAAW,CAAC,CAAC,CAAC;EAC1E,MAAMK,UAAsB,GAAG;IAACC,KAAK,EAAE,aAAa;IAAEC,IAAI,EAAEL;EAAgB,CAAC;EAE7E,MAAMI,KAAK,GAAG,CAAAL,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEK,KAAK,KAAI,aAAa;EAC7C,QAAQA,KAAK;IACX,KAAK,aAAa;MAChB,OAAOD,UAAU;IAEnB,KAAK,gBAAgB;MACnB,OAAOP,2BAA2B,CAACO,UAAU,CAAC;IAEhD,KAAK,kBAAkB;MACrB,IAAIG,aAAa,GAAGV,2BAA2B,CAACO,UAAU,CAAC;MAC3D,OAAOT,YAAY,CAACY,aAAa,EAAE,kBAAkB,CAAC;IAExD,KAAK,iBAAiB;MACpBA,aAAa,GAAGV,2BAA2B,CAACO,UAAU,CAAC;MACvD,OAAOT,YAAY,CAACY,aAAa,EAAE,iBAAiB,CAAC;IAEvD;MAEE,MAAM,IAAIC,KAAK,CAACH,KAAK,CAAC;EAC1B;AACF"}
1
+ {"version":3,"file":"parse-arrow-sync.js","names":["convertTable","arrow","convertArrowToColumnarTable","serializeArrowSchema","parseArrowSync","arrayBuffer","options","apacheArrowTable","tableFromIPC","Uint8Array","arrowTable","shape","schema","data","columnarTable","Error"],"sources":["../../src/parsers/parse-arrow-sync.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {ArrayRowTable, ColumnarTable, ObjectRowTable} from '@loaders.gl/schema';\nimport type {ArrowTable} from '../lib/arrow-table';\nimport {convertTable} from '@loaders.gl/schema';\nimport * as arrow from 'apache-arrow';\nimport {convertArrowToColumnarTable} from '../tables/convert-arrow-to-columnar-table';\nimport {serializeArrowSchema} from '../schema/convert-arrow-schema';\n\n// Parses arrow to a columnar table\nexport function parseArrowSync(\n arrayBuffer,\n options?: {shape?: 'arrow-table' | 'columnar-table' | 'object-row-table' | 'array-row-table'}\n): ArrowTable | ColumnarTable | ObjectRowTable | ArrayRowTable {\n const apacheArrowTable = arrow.tableFromIPC([new Uint8Array(arrayBuffer)]);\n const arrowTable: ArrowTable = {\n shape: 'arrow-table',\n schema: serializeArrowSchema(apacheArrowTable.schema),\n data: apacheArrowTable\n };\n\n const shape = options?.shape || 'arrow-table';\n switch (shape) {\n case 'arrow-table':\n return arrowTable;\n\n case 'columnar-table':\n return convertArrowToColumnarTable(arrowTable);\n\n case 'object-row-table':\n let columnarTable = convertArrowToColumnarTable(arrowTable);\n return convertTable(columnarTable, 'object-row-table');\n\n case 'array-row-table':\n columnarTable = convertArrowToColumnarTable(arrowTable);\n return convertTable(columnarTable, 'array-row-table');\n\n default:\n // TODO\n throw new Error(shape);\n }\n}\n"],"mappings":"AAKA,SAAQA,YAAY,QAAO,oBAAoB;AAC/C,OAAO,KAAKC,KAAK,MAAM,cAAc;AAAC,SAC9BC,2BAA2B;AAAA,SAC3BC,oBAAoB;AAG5B,OAAO,SAASC,cAAcA,CAC5BC,WAAW,EACXC,OAA6F,EAChC;EAC7D,MAAMC,gBAAgB,GAAGN,KAAK,CAACO,YAAY,CAAC,CAAC,IAAIC,UAAU,CAACJ,WAAW,CAAC,CAAC,CAAC;EAC1E,MAAMK,UAAsB,GAAG;IAC7BC,KAAK,EAAE,aAAa;IACpBC,MAAM,EAAET,oBAAoB,CAACI,gBAAgB,CAACK,MAAM,CAAC;IACrDC,IAAI,EAAEN;EACR,CAAC;EAED,MAAMI,KAAK,GAAG,CAAAL,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEK,KAAK,KAAI,aAAa;EAC7C,QAAQA,KAAK;IACX,KAAK,aAAa;MAChB,OAAOD,UAAU;IAEnB,KAAK,gBAAgB;MACnB,OAAOR,2BAA2B,CAACQ,UAAU,CAAC;IAEhD,KAAK,kBAAkB;MACrB,IAAII,aAAa,GAAGZ,2BAA2B,CAACQ,UAAU,CAAC;MAC3D,OAAOV,YAAY,CAACc,aAAa,EAAE,kBAAkB,CAAC;IAExD,KAAK,iBAAiB;MACpBA,aAAa,GAAGZ,2BAA2B,CAACQ,UAAU,CAAC;MACvD,OAAOV,YAAY,CAACc,aAAa,EAAE,iBAAiB,CAAC;IAEvD;MAEE,MAAM,IAAIC,KAAK,CAACJ,KAAK,CAAC;EAC1B;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"convert-arrow-to-columnar-table.d.ts","sourceRoot":"","sources":["../../src/tables/convert-arrow-to-columnar-table.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAEnD;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,UAAU,GAAG,aAAa,CAkB5E"}
1
+ {"version":3,"file":"convert-arrow-to-columnar-table.d.ts","sourceRoot":"","sources":["../../src/tables/convert-arrow-to-columnar-table.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAEnD;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,UAAU,GAAG,aAAa,CAmB5E"}
@@ -8,6 +8,7 @@ export function convertArrowToColumnarTable(table) {
8
8
  }
9
9
  return {
10
10
  shape: 'columnar-table',
11
+ schema: table.schema,
11
12
  data: columnarTable
12
13
  };
13
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"convert-arrow-to-columnar-table.js","names":["convertArrowToColumnarTable","table","arrowTable","data","columnarTable","field","schema","fields","arrowColumn","getChild","name","values","toArray","shape"],"sources":["../../src/tables/convert-arrow-to-columnar-table.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {ColumnarTable} from '@loaders.gl/schema';\nimport type {ArrowTable} from '../lib/arrow-table';\n\n/**\n * Convert an Apache Arrow table to a ColumnarTable\n * @note Currently does not convert schema\n */\nexport function convertArrowToColumnarTable(table: ArrowTable): ColumnarTable {\n // TODO - avoid calling `getColumn` on columns we are not interested in?\n // Add options object?\n\n const arrowTable = table.data;\n const columnarTable = {};\n\n for (const field of arrowTable.schema.fields) {\n // This (is intended to) coalesce all record batches into a single typed array\n const arrowColumn = arrowTable.getChild(field.name);\n const values = arrowColumn?.toArray();\n columnarTable[field.name] = values;\n }\n\n return {\n shape: 'columnar-table',\n data: columnarTable\n };\n}\n"],"mappings":"AAUA,OAAO,SAASA,2BAA2BA,CAACC,KAAiB,EAAiB;EAI5E,MAAMC,UAAU,GAAGD,KAAK,CAACE,IAAI;EAC7B,MAAMC,aAAa,GAAG,CAAC,CAAC;EAExB,KAAK,MAAMC,KAAK,IAAIH,UAAU,CAACI,MAAM,CAACC,MAAM,EAAE;IAE5C,MAAMC,WAAW,GAAGN,UAAU,CAACO,QAAQ,CAACJ,KAAK,CAACK,IAAI,CAAC;IACnD,MAAMC,MAAM,GAAGH,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEI,OAAO,CAAC,CAAC;IACrCR,aAAa,CAACC,KAAK,CAACK,IAAI,CAAC,GAAGC,MAAM;EACpC;EAEA,OAAO;IACLE,KAAK,EAAE,gBAAgB;IACvBV,IAAI,EAAEC;EACR,CAAC;AACH"}
1
+ {"version":3,"file":"convert-arrow-to-columnar-table.js","names":["convertArrowToColumnarTable","table","arrowTable","data","columnarTable","field","schema","fields","arrowColumn","getChild","name","values","toArray","shape"],"sources":["../../src/tables/convert-arrow-to-columnar-table.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {ColumnarTable} from '@loaders.gl/schema';\nimport type {ArrowTable} from '../lib/arrow-table';\n\n/**\n * Convert an Apache Arrow table to a ColumnarTable\n * @note Currently does not convert schema\n */\nexport function convertArrowToColumnarTable(table: ArrowTable): ColumnarTable {\n // TODO - avoid calling `getColumn` on columns we are not interested in?\n // Add options object?\n\n const arrowTable = table.data;\n const columnarTable = {};\n\n for (const field of arrowTable.schema.fields) {\n // This (is intended to) coalesce all record batches into a single typed array\n const arrowColumn = arrowTable.getChild(field.name);\n const values = arrowColumn?.toArray();\n columnarTable[field.name] = values;\n }\n\n return {\n shape: 'columnar-table',\n schema: table.schema,\n data: columnarTable\n };\n}\n"],"mappings":"AAUA,OAAO,SAASA,2BAA2BA,CAACC,KAAiB,EAAiB;EAI5E,MAAMC,UAAU,GAAGD,KAAK,CAACE,IAAI;EAC7B,MAAMC,aAAa,GAAG,CAAC,CAAC;EAExB,KAAK,MAAMC,KAAK,IAAIH,UAAU,CAACI,MAAM,CAACC,MAAM,EAAE;IAE5C,MAAMC,WAAW,GAAGN,UAAU,CAACO,QAAQ,CAACJ,KAAK,CAACK,IAAI,CAAC;IACnD,MAAMC,MAAM,GAAGH,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEI,OAAO,CAAC,CAAC;IACrCR,aAAa,CAACC,KAAK,CAACK,IAAI,CAAC,GAAGC,MAAM;EACpC;EAEA,OAAO;IACLE,KAAK,EAAE,gBAAgB;IACvBP,MAAM,EAAEL,KAAK,CAACK,MAAM;IACpBH,IAAI,EAAEC;EACR,CAAC;AACH"}
@@ -1,5 +1,5 @@
1
1
  import type { GeoJSONTable } from '@loaders.gl/schema';
2
- import type * as arrow from 'apache-arrow';
2
+ import * as arrow from 'apache-arrow';
3
3
  import type { ArrowTable } from '../lib/arrow-table';
4
4
  /**
5
5
  * Wrap an apache arrow table in a loaders.gl table wrapper.
@@ -1 +1 @@
1
- {"version":3,"file":"convert-arrow-to-geojson-table.d.ts","sourceRoot":"","sources":["../../src/tables/convert-arrow-to-geojson-table.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAU,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAInD;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAKlF;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,UAAU,GAAG,YAAY,CA2B1E"}
1
+ {"version":3,"file":"convert-arrow-to-geojson-table.d.ts","sourceRoot":"","sources":["../../src/tables/convert-arrow-to-geojson-table.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAU,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAInD;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAMlF;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,UAAU,GAAG,YAAY,CAqC1E"}
@@ -3,6 +3,7 @@ import { getGeometryColumnsFromSchema } from '@loaders.gl/gis';
3
3
  export function convertApacheArrowToArrowTable(arrowTable) {
4
4
  return {
5
5
  shape: 'arrow-table',
6
+ schema: serializeArrowSchema(arrowTable.schema),
6
7
  data: arrowTable
7
8
  };
8
9
  }
@@ -12,21 +13,26 @@ export function convertArrowToGeoJSONTable(table) {
12
13
  const geometryColumns = getGeometryColumnsFromSchema(schema);
13
14
  const encoding = geometryColumns.geometry.encoding;
14
15
  const features = [];
16
+ const propertyColumnNames = arrowTable.schema.fields.map(field => field.name).filter(name => !(name in geometryColumns));
17
+ const propertiesTable = arrowTable.select(propertyColumnNames);
18
+ const arrowGeometryColumn = arrowTable.getChild('geometry');
15
19
  for (let row = 0; row < arrowTable.numRows; row++) {
16
- var _arrowTable$getChild;
17
- const arrowGeometry = (_arrowTable$getChild = arrowTable.getChild('geometry')) === null || _arrowTable$getChild === void 0 ? void 0 : _arrowTable$getChild.get(row);
18
- const arrowGeometryObject = {
19
- encoding,
20
- data: arrowGeometry
21
- };
22
- const feature = parseGeometryFromArrow(arrowGeometryObject);
20
+ const arrowGeometry = arrowGeometryColumn === null || arrowGeometryColumn === void 0 ? void 0 : arrowGeometryColumn.get(row);
21
+ const feature = parseGeometryFromArrow(arrowGeometry, encoding);
23
22
  if (feature) {
24
- features.push(feature);
23
+ var _propertiesTable$get;
24
+ const properties = ((_propertiesTable$get = propertiesTable.get(row)) === null || _propertiesTable$get === void 0 ? void 0 : _propertiesTable$get.toJSON()) || {};
25
+ features.push({
26
+ type: 'Feature',
27
+ geometry: feature,
28
+ properties
29
+ });
25
30
  }
26
31
  }
27
32
  return {
28
33
  shape: 'geojson-table',
29
34
  type: 'FeatureCollection',
35
+ schema: table.schema,
30
36
  features
31
37
  };
32
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"convert-arrow-to-geojson-table.js","names":["serializeArrowSchema","parseGeometryFromArrow","getGeometryColumnsFromSchema","convertApacheArrowToArrowTable","arrowTable","shape","data","convertArrowToGeoJSONTable","table","schema","geometryColumns","encoding","geometry","features","row","numRows","_arrowTable$getChild","arrowGeometry","getChild","get","arrowGeometryObject","feature","push","type"],"sources":["../../src/tables/convert-arrow-to-geojson-table.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {Feature, GeoJSONTable} from '@loaders.gl/schema';\nimport type * as arrow from 'apache-arrow';\nimport type {ArrowTable} from '../lib/arrow-table';\nimport {serializeArrowSchema, parseGeometryFromArrow} from '@loaders.gl/arrow';\nimport {getGeometryColumnsFromSchema} from '@loaders.gl/gis';\n\n/**\n * Wrap an apache arrow table in a loaders.gl table wrapper.\n * From this additional conversions are available.\n * @param arrowTable\n * @returns\n */\nexport function convertApacheArrowToArrowTable(arrowTable: arrow.Table): ArrowTable {\n return {\n shape: 'arrow-table',\n data: arrowTable\n };\n}\n\n/**\n * Convert an Apache Arrow table to a GeoJSONTable\n * @note Currently does not convert schema\n */\nexport function convertArrowToGeoJSONTable(table: ArrowTable): GeoJSONTable {\n const arrowTable = table.data;\n const schema = serializeArrowSchema(arrowTable.schema);\n const geometryColumns = getGeometryColumnsFromSchema(schema);\n\n // get encoding from geometryColumns['geometry']\n const encoding = geometryColumns.geometry.encoding;\n\n const features: Feature[] = [];\n\n for (let row = 0; row < arrowTable.numRows; row++) {\n // get first geometry from arrow geometry column\n const arrowGeometry = arrowTable.getChild('geometry')?.get(row);\n const arrowGeometryObject = {encoding, data: arrowGeometry};\n\n // parse arrow geometry to geojson feature\n const feature = parseGeometryFromArrow(arrowGeometryObject);\n if (feature) {\n features.push(feature);\n }\n }\n\n return {\n shape: 'geojson-table',\n type: 'FeatureCollection',\n features\n };\n}\n"],"mappings":"AAMA,SAAQA,oBAAoB,EAAEC,sBAAsB,QAAO,mBAAmB;AAC9E,SAAQC,4BAA4B,QAAO,iBAAiB;AAQ5D,OAAO,SAASC,8BAA8BA,CAACC,UAAuB,EAAc;EAClF,OAAO;IACLC,KAAK,EAAE,aAAa;IACpBC,IAAI,EAAEF;EACR,CAAC;AACH;AAMA,OAAO,SAASG,0BAA0BA,CAACC,KAAiB,EAAgB;EAC1E,MAAMJ,UAAU,GAAGI,KAAK,CAACF,IAAI;EAC7B,MAAMG,MAAM,GAAGT,oBAAoB,CAACI,UAAU,CAACK,MAAM,CAAC;EACtD,MAAMC,eAAe,GAAGR,4BAA4B,CAACO,MAAM,CAAC;EAG5D,MAAME,QAAQ,GAAGD,eAAe,CAACE,QAAQ,CAACD,QAAQ;EAElD,MAAME,QAAmB,GAAG,EAAE;EAE9B,KAAK,IAAIC,GAAG,GAAG,CAAC,EAAEA,GAAG,GAAGV,UAAU,CAACW,OAAO,EAAED,GAAG,EAAE,EAAE;IAAA,IAAAE,oBAAA;IAEjD,MAAMC,aAAa,IAAAD,oBAAA,GAAGZ,UAAU,CAACc,QAAQ,CAAC,UAAU,CAAC,cAAAF,oBAAA,uBAA/BA,oBAAA,CAAiCG,GAAG,CAACL,GAAG,CAAC;IAC/D,MAAMM,mBAAmB,GAAG;MAACT,QAAQ;MAAEL,IAAI,EAAEW;IAAa,CAAC;IAG3D,MAAMI,OAAO,GAAGpB,sBAAsB,CAACmB,mBAAmB,CAAC;IAC3D,IAAIC,OAAO,EAAE;MACXR,QAAQ,CAACS,IAAI,CAACD,OAAO,CAAC;IACxB;EACF;EAEA,OAAO;IACLhB,KAAK,EAAE,eAAe;IACtBkB,IAAI,EAAE,mBAAmB;IACzBV;EACF,CAAC;AACH"}
1
+ {"version":3,"file":"convert-arrow-to-geojson-table.js","names":["serializeArrowSchema","parseGeometryFromArrow","getGeometryColumnsFromSchema","convertApacheArrowToArrowTable","arrowTable","shape","schema","data","convertArrowToGeoJSONTable","table","geometryColumns","encoding","geometry","features","propertyColumnNames","fields","map","field","name","filter","propertiesTable","select","arrowGeometryColumn","getChild","row","numRows","arrowGeometry","get","feature","_propertiesTable$get","properties","toJSON","push","type"],"sources":["../../src/tables/convert-arrow-to-geojson-table.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {Feature, GeoJSONTable} from '@loaders.gl/schema';\nimport * as arrow from 'apache-arrow';\nimport type {ArrowTable} from '../lib/arrow-table';\nimport {serializeArrowSchema, parseGeometryFromArrow} from '@loaders.gl/arrow';\nimport {getGeometryColumnsFromSchema} from '@loaders.gl/gis';\n\n/**\n * Wrap an apache arrow table in a loaders.gl table wrapper.\n * From this additional conversions are available.\n * @param arrowTable\n * @returns\n */\nexport function convertApacheArrowToArrowTable(arrowTable: arrow.Table): ArrowTable {\n return {\n shape: 'arrow-table',\n schema: serializeArrowSchema(arrowTable.schema),\n data: arrowTable\n };\n}\n\n/**\n * Convert an Apache Arrow table to a GeoJSONTable\n * @note Currently does not convert schema\n */\nexport function convertArrowToGeoJSONTable(table: ArrowTable): GeoJSONTable {\n const arrowTable = table.data;\n const schema = serializeArrowSchema(arrowTable.schema);\n const geometryColumns = getGeometryColumnsFromSchema(schema);\n\n // get encoding from geometryColumns['geometry']\n const encoding = geometryColumns.geometry.encoding;\n\n const features: Feature[] = [];\n\n // Remove geometry columns\n const propertyColumnNames = arrowTable.schema.fields\n .map((field) => field.name)\n // TODO - this deletes all geometry columns\n .filter((name) => !(name in geometryColumns));\n const propertiesTable = arrowTable.select(propertyColumnNames);\n\n const arrowGeometryColumn = arrowTable.getChild('geometry');\n\n for (let row = 0; row < arrowTable.numRows; row++) {\n // get the geometry value from arrow geometry column\n // Note that type can vary\n const arrowGeometry = arrowGeometryColumn?.get(row);\n // parse arrow geometry to geojson feature\n const feature = parseGeometryFromArrow(arrowGeometry, encoding);\n if (feature) {\n const properties = propertiesTable.get(row)?.toJSON() || {};\n features.push({type: 'Feature', geometry: feature, properties});\n }\n }\n\n return {\n shape: 'geojson-table',\n type: 'FeatureCollection',\n schema: table.schema,\n features\n };\n}\n"],"mappings":"AAMA,SAAQA,oBAAoB,EAAEC,sBAAsB,QAAO,mBAAmB;AAC9E,SAAQC,4BAA4B,QAAO,iBAAiB;AAQ5D,OAAO,SAASC,8BAA8BA,CAACC,UAAuB,EAAc;EAClF,OAAO;IACLC,KAAK,EAAE,aAAa;IACpBC,MAAM,EAAEN,oBAAoB,CAACI,UAAU,CAACE,MAAM,CAAC;IAC/CC,IAAI,EAAEH;EACR,CAAC;AACH;AAMA,OAAO,SAASI,0BAA0BA,CAACC,KAAiB,EAAgB;EAC1E,MAAML,UAAU,GAAGK,KAAK,CAACF,IAAI;EAC7B,MAAMD,MAAM,GAAGN,oBAAoB,CAACI,UAAU,CAACE,MAAM,CAAC;EACtD,MAAMI,eAAe,GAAGR,4BAA4B,CAACI,MAAM,CAAC;EAG5D,MAAMK,QAAQ,GAAGD,eAAe,CAACE,QAAQ,CAACD,QAAQ;EAElD,MAAME,QAAmB,GAAG,EAAE;EAG9B,MAAMC,mBAAmB,GAAGV,UAAU,CAACE,MAAM,CAACS,MAAM,CACjDC,GAAG,CAAEC,KAAK,IAAKA,KAAK,CAACC,IAAI,CAAC,CAE1BC,MAAM,CAAED,IAAI,IAAK,EAAEA,IAAI,IAAIR,eAAe,CAAC,CAAC;EAC/C,MAAMU,eAAe,GAAGhB,UAAU,CAACiB,MAAM,CAACP,mBAAmB,CAAC;EAE9D,MAAMQ,mBAAmB,GAAGlB,UAAU,CAACmB,QAAQ,CAAC,UAAU,CAAC;EAE3D,KAAK,IAAIC,GAAG,GAAG,CAAC,EAAEA,GAAG,GAAGpB,UAAU,CAACqB,OAAO,EAAED,GAAG,EAAE,EAAE;IAGjD,MAAME,aAAa,GAAGJ,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAEK,GAAG,CAACH,GAAG,CAAC;IAEnD,MAAMI,OAAO,GAAG3B,sBAAsB,CAACyB,aAAa,EAAEf,QAAQ,CAAC;IAC/D,IAAIiB,OAAO,EAAE;MAAA,IAAAC,oBAAA;MACX,MAAMC,UAAU,GAAG,EAAAD,oBAAA,GAAAT,eAAe,CAACO,GAAG,CAACH,GAAG,CAAC,cAAAK,oBAAA,uBAAxBA,oBAAA,CAA0BE,MAAM,CAAC,CAAC,KAAI,CAAC,CAAC;MAC3DlB,QAAQ,CAACmB,IAAI,CAAC;QAACC,IAAI,EAAE,SAAS;QAAErB,QAAQ,EAAEgB,OAAO;QAAEE;MAAU,CAAC,CAAC;IACjE;EACF;EAEA,OAAO;IACLzB,KAAK,EAAE,eAAe;IACtB4B,IAAI,EAAE,mBAAmB;IACzB3B,MAAM,EAAEG,KAAK,CAACH,MAAM;IACpBO;EACF,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"convert-columnar-to-row-table.d.ts","sourceRoot":"","sources":["../../src/tables/convert-columnar-to-row-table.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,aAAa,EAAE,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAEtE;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,aAAa,EAAE,aAAa,GAAG,cAAc,CAmB5F"}
1
+ {"version":3,"file":"convert-columnar-to-row-table.d.ts","sourceRoot":"","sources":["../../src/tables/convert-columnar-to-row-table.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,aAAa,EAAE,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAEtE;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,aAAa,EAAE,aAAa,GAAG,cAAc,CAoB5F"}
@@ -12,6 +12,7 @@ export function convertColumnarToRowFormatTable(columnarTable) {
12
12
  }
13
13
  return {
14
14
  shape: 'object-row-table',
15
+ schema: columnarTable.schema,
15
16
  data: rowFormatTable
16
17
  };
17
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"convert-columnar-to-row-table.js","names":["convertColumnarToRowFormatTable","columnarTable","tableKeys","Object","keys","tableRowsCount","length","rowFormatTable","index","tableItem","keyIndex","fieldName","push","shape","data"],"sources":["../../src/tables/convert-columnar-to-row-table.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {ColumnarTable, ObjectRowTable} from '@loaders.gl/schema';\n\n/**\n *\n * @note - should be part of schema module\n */\nexport function convertColumnarToRowFormatTable(columnarTable: ColumnarTable): ObjectRowTable {\n const tableKeys = Object.keys(columnarTable);\n const tableRowsCount = columnarTable[tableKeys[0]].length;\n\n const rowFormatTable: {}[] = [];\n\n for (let index = 0; index < tableRowsCount; index++) {\n const tableItem = {};\n for (let keyIndex = 0; keyIndex < tableKeys.length; keyIndex++) {\n const fieldName = tableKeys[keyIndex];\n tableItem[fieldName] = columnarTable[fieldName][index];\n }\n rowFormatTable.push(tableItem);\n }\n\n return {\n shape: 'object-row-table',\n data: rowFormatTable\n };\n}\n"],"mappings":"AASA,OAAO,SAASA,+BAA+BA,CAACC,aAA4B,EAAkB;EAC5F,MAAMC,SAAS,GAAGC,MAAM,CAACC,IAAI,CAACH,aAAa,CAAC;EAC5C,MAAMI,cAAc,GAAGJ,aAAa,CAACC,SAAS,CAAC,CAAC,CAAC,CAAC,CAACI,MAAM;EAEzD,MAAMC,cAAoB,GAAG,EAAE;EAE/B,KAAK,IAAIC,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGH,cAAc,EAAEG,KAAK,EAAE,EAAE;IACnD,MAAMC,SAAS,GAAG,CAAC,CAAC;IACpB,KAAK,IAAIC,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAGR,SAAS,CAACI,MAAM,EAAEI,QAAQ,EAAE,EAAE;MAC9D,MAAMC,SAAS,GAAGT,SAAS,CAACQ,QAAQ,CAAC;MACrCD,SAAS,CAACE,SAAS,CAAC,GAAGV,aAAa,CAACU,SAAS,CAAC,CAACH,KAAK,CAAC;IACxD;IACAD,cAAc,CAACK,IAAI,CAACH,SAAS,CAAC;EAChC;EAEA,OAAO;IACLI,KAAK,EAAE,kBAAkB;IACzBC,IAAI,EAAEP;EACR,CAAC;AACH"}
1
+ {"version":3,"file":"convert-columnar-to-row-table.js","names":["convertColumnarToRowFormatTable","columnarTable","tableKeys","Object","keys","tableRowsCount","length","rowFormatTable","index","tableItem","keyIndex","fieldName","push","shape","schema","data"],"sources":["../../src/tables/convert-columnar-to-row-table.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {ColumnarTable, ObjectRowTable} from '@loaders.gl/schema';\n\n/**\n *\n * @note - should be part of schema module\n */\nexport function convertColumnarToRowFormatTable(columnarTable: ColumnarTable): ObjectRowTable {\n const tableKeys = Object.keys(columnarTable);\n const tableRowsCount = columnarTable[tableKeys[0]].length;\n\n const rowFormatTable: {}[] = [];\n\n for (let index = 0; index < tableRowsCount; index++) {\n const tableItem = {};\n for (let keyIndex = 0; keyIndex < tableKeys.length; keyIndex++) {\n const fieldName = tableKeys[keyIndex];\n tableItem[fieldName] = columnarTable[fieldName][index];\n }\n rowFormatTable.push(tableItem);\n }\n\n return {\n shape: 'object-row-table',\n schema: columnarTable.schema,\n data: rowFormatTable\n };\n}\n"],"mappings":"AASA,OAAO,SAASA,+BAA+BA,CAACC,aAA4B,EAAkB;EAC5F,MAAMC,SAAS,GAAGC,MAAM,CAACC,IAAI,CAACH,aAAa,CAAC;EAC5C,MAAMI,cAAc,GAAGJ,aAAa,CAACC,SAAS,CAAC,CAAC,CAAC,CAAC,CAACI,MAAM;EAEzD,MAAMC,cAAoB,GAAG,EAAE;EAE/B,KAAK,IAAIC,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGH,cAAc,EAAEG,KAAK,EAAE,EAAE;IACnD,MAAMC,SAAS,GAAG,CAAC,CAAC;IACpB,KAAK,IAAIC,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAGR,SAAS,CAACI,MAAM,EAAEI,QAAQ,EAAE,EAAE;MAC9D,MAAMC,SAAS,GAAGT,SAAS,CAACQ,QAAQ,CAAC;MACrCD,SAAS,CAACE,SAAS,CAAC,GAAGV,aAAa,CAACU,SAAS,CAAC,CAACH,KAAK,CAAC;IACxD;IACAD,cAAc,CAACK,IAAI,CAACH,SAAS,CAAC;EAChC;EAEA,OAAO;IACLI,KAAK,EAAE,kBAAkB;IACzBC,MAAM,EAAEb,aAAa,CAACa,MAAM;IAC5BC,IAAI,EAAER;EACR,CAAC;AACH"}
@@ -1,15 +1,44 @@
1
+ import * as arrow from 'apache-arrow';
1
2
  import type { WorkerOptions } from '@loaders.gl/worker-utils';
2
- export type TriangulationWorkerInput = TriangulateInput | {
3
+ import { BinaryDataFromGeoArrow, GeoArrowEncoding } from '@loaders.gl/arrow';
4
+ export type TriangulationWorkerInput = ({
5
+ operation: 'triangulate';
6
+ } & TriangulateInput) | ParseGeoArrowInput | {
3
7
  operation: 'test';
4
8
  data: any;
5
9
  };
6
- export type TriangulationWorkerOutput = TriangulateResult | {
10
+ export type TriangulationWorkerOutput = ({
11
+ operation: 'triangulate';
12
+ } & TriangulateResult) | ({
13
+ operation: 'parse-geoarrow';
14
+ } & ParseGeoArrowResult) | {
7
15
  operation: 'test';
8
16
  data: any;
9
17
  };
18
+ type GeoArrowChunkData = {
19
+ type: arrow.DataType;
20
+ offset: number;
21
+ length: number;
22
+ nullCount: number;
23
+ buffers: any;
24
+ children: arrow.Data[];
25
+ dictionary?: arrow.Vector;
26
+ };
27
+ export type ParseGeoArrowInput = {
28
+ operation: 'parse-geoarrow';
29
+ chunkData: GeoArrowChunkData;
30
+ chunkIndex: number;
31
+ chunkOffset: number;
32
+ geometryEncoding: GeoArrowEncoding;
33
+ calculateMeanCenters: boolean;
34
+ triangle: boolean;
35
+ };
36
+ export type ParseGeoArrowResult = {
37
+ chunkIndex: number;
38
+ binaryDataFromGeoArrow: BinaryDataFromGeoArrow | null;
39
+ };
10
40
  /** Input data for operation: 'triangulate' */
11
41
  export type TriangulateInput = {
12
- operation: 'triangulate';
13
42
  polygonIndices: Uint16Array;
14
43
  primitivePolygonIndices: Int32Array;
15
44
  flatCoordinateArray: Float64Array;
@@ -17,7 +46,7 @@ export type TriangulateInput = {
17
46
  };
18
47
  /** Result type for operation: 'triangulate' */
19
48
  export type TriangulateResult = TriangulateInput & {
20
- triangleIndices: Uint32Array;
49
+ triangleIndices?: Uint32Array;
21
50
  };
22
51
  /**
23
52
  * Worker for tessellating geometries. Normally called through triangulateOnWorker
@@ -30,7 +59,12 @@ export declare const TriangulationWorker: {
30
59
  options: {};
31
60
  };
32
61
  /**
33
- * Provide type safety
62
+ * Triangulate a set of polygons on worker, type safe API
63
+ */
64
+ export declare function triangulateOnWorker(data: TriangulateInput, options?: WorkerOptions): Promise<TriangulateResult>;
65
+ /**
66
+ * Parse GeoArrow geometry colum on worker, type safe API
34
67
  */
35
- export declare function triangulateOnWorker(data: TriangulationWorkerInput, options?: WorkerOptions): Promise<TriangulationWorkerOutput>;
68
+ export declare function parseGeoArrowOnWorker(data: ParseGeoArrowInput, options?: WorkerOptions): Promise<ParseGeoArrowResult>;
69
+ export {};
36
70
  //# sourceMappingURL=triangulate-on-worker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"triangulate-on-worker.d.ts","sourceRoot":"","sources":["../src/triangulate-on-worker.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAO5D,MAAM,MAAM,wBAAwB,GAAG,gBAAgB,GAAG;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAC,CAAC;AACzF,MAAM,MAAM,yBAAyB,GAAG,iBAAiB,GAAG;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAC,CAAC;AAE3F,8CAA8C;AAC9C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,aAAa,CAAC;IACzB,cAAc,EAAE,WAAW,CAAC;IAC5B,uBAAuB,EAAE,UAAU,CAAC;IACpC,mBAAmB,EAAE,YAAY,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG;IACjD,eAAe,EAAE,WAAW,CAAC;CAC9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;CAM/B,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,wBAAwB,EAC9B,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,yBAAyB,CAAC,CAEpC"}
1
+ {"version":3,"file":"triangulate-on-worker.d.ts","sourceRoot":"","sources":["../src/triangulate-on-worker.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAAC,sBAAsB,EAAE,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAM3E,MAAM,MAAM,wBAAwB,GAChC,CAAC;IAAC,SAAS,EAAE,aAAa,CAAA;CAAC,GAAG,gBAAgB,CAAC,GAC/C,kBAAkB,GAClB;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAC,CAAC;AAEnC,MAAM,MAAM,yBAAyB,GACjC,CAAC;IAAC,SAAS,EAAE,aAAa,CAAA;CAAC,GAAG,iBAAiB,CAAC,GAChD,CAAC;IAAC,SAAS,EAAE,gBAAgB,CAAA;CAAC,GAAG,mBAAmB,CAAC,GACrD;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAC,CAAC;AAEnC,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,GAAG,CAAC;IACb,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB,EAAE,sBAAsB,GAAG,IAAI,CAAC;CACvD,CAAC;AAEF,8CAA8C;AAC9C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,cAAc,EAAE,WAAW,CAAC;IAC5B,uBAAuB,EAAE,UAAU,CAAC;IACpC,mBAAmB,EAAE,YAAY,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG;IACjD,eAAe,CAAC,EAAE,WAAW,CAAC;CAC/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;CAM/B,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,gBAAgB,EACtB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAE5B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,kBAAkB,EACxB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAE9B"}
@@ -9,6 +9,16 @@ export const TriangulationWorker = {
9
9
  };
10
10
  export function triangulateOnWorker(data) {
11
11
  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
12
- return processOnWorker(TriangulationWorker, data, options);
12
+ return processOnWorker(TriangulationWorker, {
13
+ ...data,
14
+ operation: 'triangulate'
15
+ }, options);
16
+ }
17
+ export function parseGeoArrowOnWorker(data) {
18
+ let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
19
+ return processOnWorker(TriangulationWorker, {
20
+ ...data,
21
+ operation: 'parse-geoarrow'
22
+ }, options);
13
23
  }
14
24
  //# sourceMappingURL=triangulate-on-worker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"triangulate-on-worker.js","names":["processOnWorker","VERSION","__VERSION__","TriangulationWorker","id","name","module","version","options","triangulateOnWorker","data","arguments","length","undefined"],"sources":["../src/triangulate-on-worker.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {WorkerOptions} from '@loaders.gl/worker-utils';\nimport {processOnWorker} from '@loaders.gl/worker-utils';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type TriangulationWorkerInput = TriangulateInput | {operation: 'test'; data: any};\nexport type TriangulationWorkerOutput = TriangulateResult | {operation: 'test'; data: any};\n\n/** Input data for operation: 'triangulate' */\nexport type TriangulateInput = {\n operation: 'triangulate';\n polygonIndices: Uint16Array;\n primitivePolygonIndices: Int32Array;\n flatCoordinateArray: Float64Array;\n nDim: number;\n};\n\n/** Result type for operation: 'triangulate' */\nexport type TriangulateResult = TriangulateInput & {\n triangleIndices: Uint32Array;\n};\n\n/**\n * Worker for tessellating geometries. Normally called through triangulateOnWorker\n */\nexport const TriangulationWorker = {\n id: 'triangulation',\n name: 'Triangulate',\n module: 'arrow',\n version: VERSION,\n options: {}\n};\n\n/**\n * Provide type safety\n */\nexport function triangulateOnWorker(\n data: TriangulationWorkerInput,\n options: WorkerOptions = {}\n): Promise<TriangulationWorkerOutput> {\n return processOnWorker(TriangulationWorker, data, options);\n}\n"],"mappings":"AAIA,SAAQA,eAAe,QAAO,0BAA0B;AAIxD,MAAMC,OAAO,GAAG,OAAOC,WAAW,KAAK,WAAW,GAAGA,WAAW,GAAG,QAAQ;AAsB3E,OAAO,MAAMC,mBAAmB,GAAG;EACjCC,EAAE,EAAE,eAAe;EACnBC,IAAI,EAAE,aAAa;EACnBC,MAAM,EAAE,OAAO;EACfC,OAAO,EAAEN,OAAO;EAChBO,OAAO,EAAE,CAAC;AACZ,CAAC;AAKD,OAAO,SAASC,mBAAmBA,CACjCC,IAA8B,EAEM;EAAA,IADpCF,OAAsB,GAAAG,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAE3B,OAAOX,eAAe,CAACG,mBAAmB,EAAEO,IAAI,EAAEF,OAAO,CAAC;AAC5D"}
1
+ {"version":3,"file":"triangulate-on-worker.js","names":["processOnWorker","VERSION","__VERSION__","TriangulationWorker","id","name","module","version","options","triangulateOnWorker","data","arguments","length","undefined","operation","parseGeoArrowOnWorker"],"sources":["../src/triangulate-on-worker.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport * as arrow from 'apache-arrow';\nimport type {WorkerOptions} from '@loaders.gl/worker-utils';\nimport {processOnWorker} from '@loaders.gl/worker-utils';\nimport {BinaryDataFromGeoArrow, GeoArrowEncoding} from '@loaders.gl/arrow';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type TriangulationWorkerInput =\n | ({operation: 'triangulate'} & TriangulateInput)\n | ParseGeoArrowInput\n | {operation: 'test'; data: any};\n\nexport type TriangulationWorkerOutput =\n | ({operation: 'triangulate'} & TriangulateResult)\n | ({operation: 'parse-geoarrow'} & ParseGeoArrowResult)\n | {operation: 'test'; data: any};\n\ntype GeoArrowChunkData = {\n type: arrow.DataType;\n offset: number;\n length: number;\n nullCount: number;\n buffers: any;\n children: arrow.Data[];\n dictionary?: arrow.Vector;\n};\n\nexport type ParseGeoArrowInput = {\n operation: 'parse-geoarrow';\n chunkData: GeoArrowChunkData;\n chunkIndex: number;\n chunkOffset: number;\n geometryEncoding: GeoArrowEncoding;\n calculateMeanCenters: boolean;\n triangle: boolean;\n};\n\nexport type ParseGeoArrowResult = {\n chunkIndex: number;\n binaryDataFromGeoArrow: BinaryDataFromGeoArrow | null;\n};\n\n/** Input data for operation: 'triangulate' */\nexport type TriangulateInput = {\n polygonIndices: Uint16Array;\n primitivePolygonIndices: Int32Array;\n flatCoordinateArray: Float64Array;\n nDim: number;\n};\n\n/** Result type for operation: 'triangulate' */\nexport type TriangulateResult = TriangulateInput & {\n triangleIndices?: Uint32Array;\n};\n\n/**\n * Worker for tessellating geometries. Normally called through triangulateOnWorker\n */\nexport const TriangulationWorker = {\n id: 'triangulation',\n name: 'Triangulate',\n module: 'arrow',\n version: VERSION,\n options: {}\n};\n\n/**\n * Triangulate a set of polygons on worker, type safe API\n */\nexport function triangulateOnWorker(\n data: TriangulateInput,\n options: WorkerOptions = {}\n): Promise<TriangulateResult> {\n return processOnWorker(TriangulationWorker, {...data, operation: 'triangulate'}, options);\n}\n\n/**\n * Parse GeoArrow geometry colum on worker, type safe API\n */\nexport function parseGeoArrowOnWorker(\n data: ParseGeoArrowInput,\n options: WorkerOptions = {}\n): Promise<ParseGeoArrowResult> {\n return processOnWorker(TriangulationWorker, {...data, operation: 'parse-geoarrow'}, options);\n}\n"],"mappings":"AAKA,SAAQA,eAAe,QAAO,0BAA0B;AAKxD,MAAMC,OAAO,GAAG,OAAOC,WAAW,KAAK,WAAW,GAAGA,WAAW,GAAG,QAAQ;AAqD3E,OAAO,MAAMC,mBAAmB,GAAG;EACjCC,EAAE,EAAE,eAAe;EACnBC,IAAI,EAAE,aAAa;EACnBC,MAAM,EAAE,OAAO;EACfC,OAAO,EAAEN,OAAO;EAChBO,OAAO,EAAE,CAAC;AACZ,CAAC;AAKD,OAAO,SAASC,mBAAmBA,CACjCC,IAAsB,EAEM;EAAA,IAD5BF,OAAsB,GAAAG,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAE3B,OAAOX,eAAe,CAACG,mBAAmB,EAAE;IAAC,GAAGO,IAAI;IAAEI,SAAS,EAAE;EAAa,CAAC,EAAEN,OAAO,CAAC;AAC3F;AAKA,OAAO,SAASO,qBAAqBA,CACnCL,IAAwB,EAEM;EAAA,IAD9BF,OAAsB,GAAAG,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAE3B,OAAOX,eAAe,CAACG,mBAAmB,EAAE;IAAC,GAAGO,IAAI;IAAEI,SAAS,EAAE;EAAgB,CAAC,EAAEN,OAAO,CAAC;AAC9F"}