@loaders.gl/arrow 4.1.0-alpha.1 → 4.1.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 (95) hide show
  1. package/dist/arrow-loader.d.ts.map +1 -1
  2. package/dist/arrow-loader.js +1 -1
  3. package/dist/arrow-loader.js.map +1 -1
  4. package/dist/arrow-worker.js +1 -1
  5. package/dist/arrow-writer.js +1 -1
  6. package/dist/arrow-writer.js.map +1 -1
  7. package/dist/dist.dev.js +113 -49
  8. package/dist/geoarrow/convert-geoarrow-to-binary-geometry.d.ts +4 -2
  9. package/dist/geoarrow/convert-geoarrow-to-binary-geometry.d.ts.map +1 -1
  10. package/dist/geoarrow/convert-geoarrow-to-binary-geometry.js +25 -23
  11. package/dist/geoarrow/convert-geoarrow-to-binary-geometry.js.map +1 -1
  12. package/dist/geoarrow/convert-geoarrow-to-geojson-geometry.d.ts.map +1 -1
  13. package/dist/geoarrow/convert-geoarrow-to-geojson-geometry.js.map +1 -1
  14. package/dist/geoarrow/get-arrow-bounds.d.ts.map +1 -1
  15. package/dist/geoarrow/get-arrow-bounds.js.map +1 -1
  16. package/dist/geoarrow-loader.d.ts.map +1 -1
  17. package/dist/geoarrow-loader.js.map +1 -1
  18. package/dist/geoarrow-writer.js +1 -1
  19. package/dist/geoarrow-writer.js.map +1 -1
  20. package/dist/index.cjs +69 -16
  21. package/dist/index.d.ts +4 -2
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +3 -2
  24. package/dist/index.js.map +1 -1
  25. package/dist/lib/arrow-table-batch.d.ts.map +1 -1
  26. package/dist/lib/arrow-table-batch.js.map +1 -1
  27. package/dist/lib/arrow-table.d.ts.map +1 -1
  28. package/dist/lib/arrow-table.js.map +1 -1
  29. package/dist/lib/encode-arrow.d.ts.map +1 -1
  30. package/dist/lib/encode-arrow.js.map +1 -1
  31. package/dist/lib/encode-geoarrow.d.ts.map +1 -1
  32. package/dist/lib/encode-geoarrow.js.map +1 -1
  33. package/dist/parsers/parse-arrow-in-batches.d.ts.map +1 -1
  34. package/dist/parsers/parse-arrow-in-batches.js.map +1 -1
  35. package/dist/parsers/parse-arrow-sync.d.ts.map +1 -1
  36. package/dist/parsers/parse-arrow-sync.js.map +1 -1
  37. package/dist/parsers/parse-geoarrow-in-batches.d.ts.map +1 -1
  38. package/dist/parsers/parse-geoarrow-in-batches.js.map +1 -1
  39. package/dist/parsers/parse-geoarrow-sync.d.ts.map +1 -1
  40. package/dist/parsers/parse-geoarrow-sync.js.map +1 -1
  41. package/dist/schema/arrow-type-utils.d.ts.map +1 -1
  42. package/dist/schema/arrow-type-utils.js.map +1 -1
  43. package/dist/schema/convert-arrow-schema.d.ts.map +1 -1
  44. package/dist/schema/convert-arrow-schema.js.map +1 -1
  45. package/dist/tables/convert-arrow-to-columnar-table.d.ts.map +1 -1
  46. package/dist/tables/convert-arrow-to-columnar-table.js.map +1 -1
  47. package/dist/tables/convert-arrow-to-geojson-table.d.ts.map +1 -1
  48. package/dist/tables/convert-arrow-to-geojson-table.js.map +1 -1
  49. package/dist/tables/convert-columnar-to-row-table.d.ts.map +1 -1
  50. package/dist/tables/convert-columnar-to-row-table.js.map +1 -1
  51. package/dist/tables/convert-table-to-arrow.d.ts.map +1 -1
  52. package/dist/tables/convert-table-to-arrow.js.map +1 -1
  53. package/dist/triangulate-on-worker.d.ts +39 -5
  54. package/dist/triangulate-on-worker.d.ts.map +1 -1
  55. package/dist/triangulate-on-worker.js +12 -2
  56. package/dist/triangulate-on-worker.js.map +1 -1
  57. package/dist/triangulation-worker.js +11672 -10
  58. package/dist/types.d.ts.map +1 -1
  59. package/dist/types.js.map +1 -1
  60. package/dist/workers/arrow-worker.js.map +1 -1
  61. package/dist/workers/hard-clone.d.ts +23 -0
  62. package/dist/workers/hard-clone.d.ts.map +1 -0
  63. package/dist/workers/hard-clone.js +57 -0
  64. package/dist/workers/hard-clone.js.map +1 -0
  65. package/dist/workers/triangulation-worker-node.d.ts.map +1 -1
  66. package/dist/workers/triangulation-worker-node.js.map +1 -1
  67. package/dist/workers/triangulation-worker.js +34 -1
  68. package/dist/workers/triangulation-worker.js.map +1 -1
  69. package/package.json +6 -6
  70. package/src/arrow-loader.ts +2 -1
  71. package/src/geoarrow/convert-geoarrow-to-binary-geometry.ts +28 -20
  72. package/src/geoarrow/convert-geoarrow-to-geojson-geometry.ts +2 -1
  73. package/src/geoarrow/get-arrow-bounds.ts +2 -1
  74. package/src/geoarrow-loader.ts +2 -1
  75. package/src/index.ts +10 -3
  76. package/src/lib/arrow-table-batch.ts +2 -1
  77. package/src/lib/arrow-table.ts +2 -1
  78. package/src/lib/encode-arrow.ts +2 -1
  79. package/src/lib/encode-geoarrow.ts +2 -1
  80. package/src/parsers/parse-arrow-in-batches.ts +2 -1
  81. package/src/parsers/parse-arrow-sync.ts +2 -1
  82. package/src/parsers/parse-geoarrow-in-batches.ts +2 -1
  83. package/src/parsers/parse-geoarrow-sync.ts +2 -1
  84. package/src/schema/arrow-type-utils.ts +2 -1
  85. package/src/schema/convert-arrow-schema.ts +2 -1
  86. package/src/tables/convert-arrow-to-columnar-table.ts +2 -1
  87. package/src/tables/convert-arrow-to-geojson-table.ts +2 -1
  88. package/src/tables/convert-columnar-to-row-table.ts +2 -1
  89. package/src/tables/convert-table-to-arrow.ts +2 -1
  90. package/src/triangulate-on-worker.ts +52 -8
  91. package/src/types.ts +2 -1
  92. package/src/workers/arrow-worker.ts +2 -1
  93. package/src/workers/hard-clone.ts +162 -0
  94. package/src/workers/triangulation-worker-node.ts +2 -1
  95. package/src/workers/triangulation-worker.ts +58 -3
@@ -1 +1 @@
1
- {"version":3,"file":"arrow-loader.d.ts","sourceRoot":"","sources":["../src/arrow-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACtF,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,aAAa,EACb,cAAc,EACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAQlD,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG;IAC/C,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,aAAa,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;KAClF,CAAC;CACH,CAAC;AAEF,2BAA2B;AAC3B,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,kBAAkB,CAoB3E,CAAC;AAEF,2BAA2B;AAC3B,eAAO,MAAM,WAAW,EAAE,gBAAgB,CACxC,UAAU,GAAG,aAAa,GAAG,cAAc,GAAG,aAAa,EAC3D,eAAe,EACf,kBAAkB,CAQnB,CAAC"}
1
+ {"version":3,"file":"arrow-loader.d.ts","sourceRoot":"","sources":["../src/arrow-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACtF,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,aAAa,EACb,cAAc,EACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAQlD,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG;IAC/C,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,aAAa,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;KAClF,CAAC;CACH,CAAC;AAEF,2BAA2B;AAC3B,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,kBAAkB,CAoB3E,CAAC;AAEF,2BAA2B;AAC3B,eAAO,MAAM,WAAW,EAAE,gBAAgB,CACxC,UAAU,GAAG,aAAa,GAAG,cAAc,GAAG,aAAa,EAC3D,eAAe,EACf,kBAAkB,CAQnB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { parseArrowSync } from "./parsers/parse-arrow-sync.js";
2
2
  import { parseArrowInBatches } from "./parsers/parse-arrow-in-batches.js";
3
- const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
3
+ const VERSION = typeof "4.1.0-alpha.3" !== 'undefined' ? "4.1.0-alpha.3" : 'latest';
4
4
  export const ArrowWorkerLoader = {
5
5
  name: 'Apache Arrow',
6
6
  id: 'arrow',
@@ -1 +1 @@
1
- {"version":3,"file":"arrow-loader.js","names":["parseArrowSync","parseArrowInBatches","VERSION","__VERSION__","ArrowWorkerLoader","name","id","module","version","category","extensions","mimeTypes","binary","tests","options","arrow","shape","ArrowLoader","parse","arraybuffer","parseSync","parseInBatches"],"sources":["../src/arrow-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {\n ArrayRowTable,\n ArrowTableBatch,\n ColumnarTable,\n ObjectRowTable\n} from '@loaders.gl/schema';\nimport type {ArrowTable} from './lib/arrow-table';\nimport {parseArrowSync} from './parsers/parse-arrow-sync';\nimport {parseArrowInBatches} from './parsers/parse-arrow-in-batches';\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 ArrowLoaderOptions = LoaderOptions & {\n arrow?: {\n shape: 'arrow-table' | 'columnar-table' | 'array-row-table' | 'object-row-table';\n };\n};\n\n/** ArrowJS table loader */\nexport const ArrowWorkerLoader: Loader<ArrowTable, never, ArrowLoaderOptions> = {\n name: 'Apache Arrow',\n id: 'arrow',\n module: 'arrow',\n version: VERSION,\n // worker: true,\n category: 'table',\n extensions: ['arrow', 'feather'],\n mimeTypes: [\n 'application/vnd.apache.arrow.file',\n 'application/vnd.apache.arrow.stream',\n 'application/octet-stream'\n ],\n binary: true,\n tests: ['ARROW'],\n options: {\n arrow: {\n shape: 'columnar-table'\n }\n }\n};\n\n/** ArrowJS table loader */\nexport const ArrowLoader: LoaderWithParser<\n ArrowTable | ColumnarTable | ObjectRowTable | ArrayRowTable,\n ArrowTableBatch,\n ArrowLoaderOptions\n> = {\n ...ArrowWorkerLoader,\n parse: async (arraybuffer: ArrayBuffer, options?: ArrowLoaderOptions) =>\n parseArrowSync(arraybuffer, options?.arrow),\n parseSync: (arraybuffer: ArrayBuffer, options?: ArrowLoaderOptions) =>\n parseArrowSync(arraybuffer, options?.arrow),\n parseInBatches: parseArrowInBatches\n};\n"],"mappings":"SAWQA,cAAc;AAAA,SACdC,mBAAmB;AAI3B,MAAMC,OAAO,GAAG,OAAOC,WAAW,KAAK,WAAW,GAAGA,WAAW,GAAG,QAAQ;AAS3E,OAAO,MAAMC,iBAAgE,GAAG;EAC9EC,IAAI,EAAE,cAAc;EACpBC,EAAE,EAAE,OAAO;EACXC,MAAM,EAAE,OAAO;EACfC,OAAO,EAAEN,OAAO;EAEhBO,QAAQ,EAAE,OAAO;EACjBC,UAAU,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;EAChCC,SAAS,EAAE,CACT,mCAAmC,EACnC,qCAAqC,EACrC,0BAA0B,CAC3B;EACDC,MAAM,EAAE,IAAI;EACZC,KAAK,EAAE,CAAC,OAAO,CAAC;EAChBC,OAAO,EAAE;IACPC,KAAK,EAAE;MACLC,KAAK,EAAE;IACT;EACF;AACF,CAAC;AAGD,OAAO,MAAMC,WAIZ,GAAG;EACF,GAAGb,iBAAiB;EACpBc,KAAK,EAAE,MAAAA,CAAOC,WAAwB,EAAEL,OAA4B,KAClEd,cAAc,CAACmB,WAAW,EAAEL,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,KAAK,CAAC;EAC7CK,SAAS,EAAEA,CAACD,WAAwB,EAAEL,OAA4B,KAChEd,cAAc,CAACmB,WAAW,EAAEL,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,KAAK,CAAC;EAC7CM,cAAc,EAAEpB;AAClB,CAAC"}
1
+ {"version":3,"file":"arrow-loader.js","names":["parseArrowSync","parseArrowInBatches","VERSION","ArrowWorkerLoader","name","id","module","version","category","extensions","mimeTypes","binary","tests","options","arrow","shape","ArrowLoader","parse","arraybuffer","parseSync","parseInBatches"],"sources":["../src/arrow-loader.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {\n ArrayRowTable,\n ArrowTableBatch,\n ColumnarTable,\n ObjectRowTable\n} from '@loaders.gl/schema';\nimport type {ArrowTable} from './lib/arrow-table';\nimport {parseArrowSync} from './parsers/parse-arrow-sync';\nimport {parseArrowInBatches} from './parsers/parse-arrow-in-batches';\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 ArrowLoaderOptions = LoaderOptions & {\n arrow?: {\n shape: 'arrow-table' | 'columnar-table' | 'array-row-table' | 'object-row-table';\n };\n};\n\n/** ArrowJS table loader */\nexport const ArrowWorkerLoader: Loader<ArrowTable, never, ArrowLoaderOptions> = {\n name: 'Apache Arrow',\n id: 'arrow',\n module: 'arrow',\n version: VERSION,\n // worker: true,\n category: 'table',\n extensions: ['arrow', 'feather'],\n mimeTypes: [\n 'application/vnd.apache.arrow.file',\n 'application/vnd.apache.arrow.stream',\n 'application/octet-stream'\n ],\n binary: true,\n tests: ['ARROW'],\n options: {\n arrow: {\n shape: 'columnar-table'\n }\n }\n};\n\n/** ArrowJS table loader */\nexport const ArrowLoader: LoaderWithParser<\n ArrowTable | ColumnarTable | ObjectRowTable | ArrayRowTable,\n ArrowTableBatch,\n ArrowLoaderOptions\n> = {\n ...ArrowWorkerLoader,\n parse: async (arraybuffer: ArrayBuffer, options?: ArrowLoaderOptions) =>\n parseArrowSync(arraybuffer, options?.arrow),\n parseSync: (arraybuffer: ArrayBuffer, options?: ArrowLoaderOptions) =>\n parseArrowSync(arraybuffer, options?.arrow),\n parseInBatches: parseArrowInBatches\n};\n"],"mappings":"SAYQA,cAAc;AAAA,SACdC,mBAAmB;AAI3B,MAAMC,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;AAS3E,OAAO,MAAMC,iBAAgE,GAAG;EAC9EC,IAAI,EAAE,cAAc;EACpBC,EAAE,EAAE,OAAO;EACXC,MAAM,EAAE,OAAO;EACfC,OAAO,EAAEL,OAAO;EAEhBM,QAAQ,EAAE,OAAO;EACjBC,UAAU,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;EAChCC,SAAS,EAAE,CACT,mCAAmC,EACnC,qCAAqC,EACrC,0BAA0B,CAC3B;EACDC,MAAM,EAAE,IAAI;EACZC,KAAK,EAAE,CAAC,OAAO,CAAC;EAChBC,OAAO,EAAE;IACPC,KAAK,EAAE;MACLC,KAAK,EAAE;IACT;EACF;AACF,CAAC;AAGD,OAAO,MAAMC,WAIZ,GAAG;EACF,GAAGb,iBAAiB;EACpBc,KAAK,EAAE,MAAAA,CAAOC,WAAwB,EAAEL,OAA4B,KAClEb,cAAc,CAACkB,WAAW,EAAEL,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,KAAK,CAAC;EAC7CK,SAAS,EAAEA,CAACD,WAAwB,EAAEL,OAA4B,KAChEb,cAAc,CAACkB,WAAW,EAAEL,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,KAAK,CAAC;EAC7CM,cAAc,EAAEnB;AAClB,CAAC"}
@@ -12174,7 +12174,7 @@ return true;`);
12174
12174
  }
12175
12175
 
12176
12176
  // src/arrow-loader.ts
12177
- var VERSION = true ? "4.1.0-alpha.1" : "latest";
12177
+ var VERSION = true ? "4.1.0-alpha.3" : "latest";
12178
12178
  var ArrowWorkerLoader = {
12179
12179
  name: "Apache Arrow",
12180
12180
  id: "arrow",
@@ -1,5 +1,5 @@
1
1
  import { encodeArrowSync } from "./lib/encode-arrow.js";
2
- const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
2
+ const VERSION = typeof "4.1.0-alpha.3" !== 'undefined' ? "4.1.0-alpha.3" : 'latest';
3
3
  export const ArrowWriter = {
4
4
  name: 'Apache Arrow',
5
5
  id: 'arrow',
@@ -1 +1 @@
1
- {"version":3,"file":"arrow-writer.js","names":["encodeArrowSync","VERSION","__VERSION__","ArrowWriter","name","id","module","version","extensions","mimeTypes","binary","options","encode","encodeArrow","data","encodeSync"],"sources":["../src/arrow-writer.ts"],"sourcesContent":["// import type {} from '@loaders.gl/loader-utils';\n\nimport type {WriterWithEncoder, WriterOptions} from '@loaders.gl/loader-utils';\nimport {ColumnarTable} from './lib/encode-arrow';\nimport {encodeArrowSync} from './lib/encode-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\ntype ArrowWriterOptions = WriterOptions & {\n arrow?: {};\n};\n\n/** Apache Arrow writer */\nexport const ArrowWriter: WriterWithEncoder<ColumnarTable, never, ArrowWriterOptions> = {\n name: 'Apache Arrow',\n id: 'arrow',\n module: 'arrow',\n version: VERSION,\n extensions: ['arrow', 'feather'],\n mimeTypes: [\n 'application/vnd.apache.arrow.file',\n 'application/vnd.apache.arrow.stream',\n 'application/octet-stream'\n ],\n binary: true,\n options: {},\n encode: async function encodeArrow(data, options?): Promise<ArrayBuffer> {\n return encodeArrowSync(data);\n },\n encodeSync(data, options?) {\n return encodeArrowSync(data);\n }\n};\n"],"mappings":"SAIQA,eAAe;AAIvB,MAAMC,OAAO,GAAG,OAAOC,WAAW,KAAK,WAAW,GAAGA,WAAW,GAAG,QAAQ;AAO3E,OAAO,MAAMC,WAAwE,GAAG;EACtFC,IAAI,EAAE,cAAc;EACpBC,EAAE,EAAE,OAAO;EACXC,MAAM,EAAE,OAAO;EACfC,OAAO,EAAEN,OAAO;EAChBO,UAAU,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;EAChCC,SAAS,EAAE,CACT,mCAAmC,EACnC,qCAAqC,EACrC,0BAA0B,CAC3B;EACDC,MAAM,EAAE,IAAI;EACZC,OAAO,EAAE,CAAC,CAAC;EACXC,MAAM,EAAE,eAAeC,WAAWA,CAACC,IAAI,EAAEH,OAAQ,EAAwB;IACvE,OAAOX,eAAe,CAACc,IAAI,CAAC;EAC9B,CAAC;EACDC,UAAUA,CAACD,IAAI,EAAEH,OAAQ,EAAE;IACzB,OAAOX,eAAe,CAACc,IAAI,CAAC;EAC9B;AACF,CAAC"}
1
+ {"version":3,"file":"arrow-writer.js","names":["encodeArrowSync","VERSION","ArrowWriter","name","id","module","version","extensions","mimeTypes","binary","options","encode","encodeArrow","data","encodeSync"],"sources":["../src/arrow-writer.ts"],"sourcesContent":["// import type {} from '@loaders.gl/loader-utils';\n\nimport type {WriterWithEncoder, WriterOptions} from '@loaders.gl/loader-utils';\nimport {ColumnarTable} from './lib/encode-arrow';\nimport {encodeArrowSync} from './lib/encode-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\ntype ArrowWriterOptions = WriterOptions & {\n arrow?: {};\n};\n\n/** Apache Arrow writer */\nexport const ArrowWriter: WriterWithEncoder<ColumnarTable, never, ArrowWriterOptions> = {\n name: 'Apache Arrow',\n id: 'arrow',\n module: 'arrow',\n version: VERSION,\n extensions: ['arrow', 'feather'],\n mimeTypes: [\n 'application/vnd.apache.arrow.file',\n 'application/vnd.apache.arrow.stream',\n 'application/octet-stream'\n ],\n binary: true,\n options: {},\n encode: async function encodeArrow(data, options?): Promise<ArrayBuffer> {\n return encodeArrowSync(data);\n },\n encodeSync(data, options?) {\n return encodeArrowSync(data);\n }\n};\n"],"mappings":"SAIQA,eAAe;AAIvB,MAAMC,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;AAO3E,OAAO,MAAMC,WAAwE,GAAG;EACtFC,IAAI,EAAE,cAAc;EACpBC,EAAE,EAAE,OAAO;EACXC,MAAM,EAAE,OAAO;EACfC,OAAO,EAAEL,OAAO;EAChBM,UAAU,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;EAChCC,SAAS,EAAE,CACT,mCAAmC,EACnC,qCAAqC,EACrC,0BAA0B,CAC3B;EACDC,MAAM,EAAE,IAAI;EACZC,OAAO,EAAE,CAAC,CAAC;EACXC,MAAM,EAAE,eAAeC,WAAWA,CAACC,IAAI,EAAEH,OAAQ,EAAwB;IACvE,OAAOV,eAAe,CAACa,IAAI,CAAC;EAC9B,CAAC;EACDC,UAAUA,CAACD,IAAI,EAAEH,OAAQ,EAAE;IACzB,OAAOV,eAAe,CAACa,IAAI,CAAC;EAC9B;AACF,CAAC"}
package/dist/dist.dev.js CHANGED
@@ -30,7 +30,6 @@ var __exports__ = (() => {
30
30
  ArrowLoader: () => ArrowLoader,
31
31
  ArrowWorkerLoader: () => ArrowWorkerLoader,
32
32
  ArrowWriter: () => ArrowWriter,
33
- BINARY_GEOMETRY_TEMPLATE: () => BINARY_GEOMETRY_TEMPLATE,
34
33
  GeoArrowLoader: () => GeoArrowLoader,
35
34
  GeoArrowWorkerLoader: () => GeoArrowWorkerLoader,
36
35
  TriangulationWorker: () => TriangulationWorker,
@@ -42,8 +41,11 @@ var __exports__ = (() => {
42
41
  deserializeArrowType: () => deserializeArrowType,
43
42
  getArrowType: () => getArrowType,
44
43
  getBinaryGeometriesFromArrow: () => getBinaryGeometriesFromArrow,
44
+ getBinaryGeometryTemplate: () => getBinaryGeometryTemplate,
45
45
  getMeanCentersFromBinaryGeometries: () => getMeanCentersFromBinaryGeometries,
46
46
  getTriangleIndices: () => getTriangleIndices,
47
+ hardClone: () => hardClone,
48
+ parseGeoArrowOnWorker: () => parseGeoArrowOnWorker,
47
49
  parseGeometryFromArrow: () => parseGeometryFromArrow,
48
50
  serializeArrowField: () => serializeArrowField,
49
51
  serializeArrowMetadata: () => serializeArrowMetadata,
@@ -77,6 +79,7 @@ var __exports__ = (() => {
77
79
  if (Number.isFinite(cursor)) {
78
80
  this.cursor = cursor;
79
81
  }
82
+ this.shape = "array-row-table";
80
83
  this.rows = this.rows || new Array(DEFAULT_ROW_COUNT);
81
84
  this.rows[this.length] = row;
82
85
  this.length++;
@@ -85,6 +88,7 @@ var __exports__ = (() => {
85
88
  if (Number.isFinite(cursor)) {
86
89
  this.cursor = cursor;
87
90
  }
91
+ this.shape = "object-row-table";
88
92
  this.rows = this.rows || new Array(DEFAULT_ROW_COUNT);
89
93
  this.rows[this.length] = row;
90
94
  this.length++;
@@ -97,7 +101,7 @@ var __exports__ = (() => {
97
101
  rows = rows.slice(0, this.length);
98
102
  this.rows = null;
99
103
  const batch = {
100
- shape: this.options.shape,
104
+ shape: this.shape || "array-row-table",
101
105
  batchType: "data",
102
106
  data: rows,
103
107
  length: this.length,
@@ -113,12 +117,16 @@ var __exports__ = (() => {
113
117
  if (!arrayRow) {
114
118
  throw new Error("null row");
115
119
  }
116
- if (!headers) {
117
- throw new Error("no headers");
118
- }
119
120
  const objectRow = {};
120
- for (let i = 0; i < headers.length; i++) {
121
- objectRow[headers[i]] = arrayRow[i];
121
+ if (headers) {
122
+ for (let i = 0; i < headers.length; i++) {
123
+ objectRow[headers[i]] = arrayRow[i];
124
+ }
125
+ } else {
126
+ for (let i = 0; i < arrayRow.length; i++) {
127
+ const columnName = `column-${i}`;
128
+ objectRow[columnName] = arrayRow[i];
129
+ }
122
130
  }
123
131
  return objectRow;
124
132
  }
@@ -126,14 +134,25 @@ var __exports__ = (() => {
126
134
  if (!objectRow) {
127
135
  throw new Error("null row");
128
136
  }
129
- if (!headers) {
130
- throw new Error("no headers");
137
+ if (headers) {
138
+ const arrayRow = new Array(headers.length);
139
+ for (let i = 0; i < headers.length; i++) {
140
+ arrayRow[i] = objectRow[headers[i]];
141
+ }
142
+ return arrayRow;
131
143
  }
132
- const arrayRow = new Array(headers.length);
133
- for (let i = 0; i < headers.length; i++) {
134
- arrayRow[i] = objectRow[headers[i]];
144
+ return Object.values(objectRow);
145
+ }
146
+ function inferHeadersFromArrayRow(arrayRow) {
147
+ const headers = [];
148
+ for (let i = 0; i < arrayRow.length; i++) {
149
+ const columnName = `column-${i}`;
150
+ headers.push(columnName);
135
151
  }
136
- return arrayRow;
152
+ return headers;
153
+ }
154
+ function inferHeadersFromObjectRow(row) {
155
+ return Object.keys(row);
137
156
  }
138
157
 
139
158
  // ../schema/src/lib/table/batches/row-table-batch-aggregator.ts
@@ -143,11 +162,11 @@ var __exports__ = (() => {
143
162
  objectRows = null;
144
163
  arrayRows = null;
145
164
  cursor = 0;
146
- _headers = [];
165
+ _headers = null;
147
166
  constructor(schema, options) {
148
167
  this.options = options;
149
168
  this.schema = schema;
150
- if (!Array.isArray(schema)) {
169
+ if (schema) {
151
170
  this._headers = [];
152
171
  for (const key in schema) {
153
172
  this._headers[schema[key].index] = schema[key].name;
@@ -161,6 +180,7 @@ var __exports__ = (() => {
161
180
  if (Number.isFinite(cursor)) {
162
181
  this.cursor = cursor;
163
182
  }
183
+ this._headers ||= inferHeadersFromArrayRow(row);
164
184
  switch (this.options.shape) {
165
185
  case "object-row-table":
166
186
  const rowObject = convertToObjectRow(row, this._headers);
@@ -177,6 +197,7 @@ var __exports__ = (() => {
177
197
  if (Number.isFinite(cursor)) {
178
198
  this.cursor = cursor;
179
199
  }
200
+ this._headers ||= inferHeadersFromObjectRow(row);
180
201
  switch (this.options.shape) {
181
202
  case "array-row-table":
182
203
  const rowArray = convertToArrayRow(row, this._headers);
@@ -286,7 +307,7 @@ var __exports__ = (() => {
286
307
 
287
308
  // ../schema/src/lib/table/batches/table-batch-builder.ts
288
309
  var DEFAULT_OPTIONS = {
289
- shape: "array-row-table",
310
+ shape: void 0,
290
311
  batchSize: "auto",
291
312
  batchDebounceMs: 0,
292
313
  limit: 0,
@@ -398,8 +419,6 @@ var __exports__ = (() => {
398
419
  }
399
420
  _getTableBatchType() {
400
421
  switch (this.options.shape) {
401
- case "row-table":
402
- return BaseTableBatchAggregator;
403
422
  case "array-row-table":
404
423
  case "object-row-table":
405
424
  return RowTableBatchAggregator;
@@ -411,7 +430,7 @@ var __exports__ = (() => {
411
430
  }
412
431
  return TableBatchBuilder.ArrowBatch;
413
432
  default:
414
- throw new Error(ERR_MESSAGE);
433
+ return BaseTableBatchAggregator;
415
434
  }
416
435
  }
417
436
  };
@@ -12737,7 +12756,7 @@ return true;`);
12737
12756
  }
12738
12757
 
12739
12758
  // src/arrow-loader.ts
12740
- var VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
12759
+ var VERSION = true ? "4.1.0-alpha.3" : "latest";
12741
12760
  var ArrowWorkerLoader = {
12742
12761
  name: "Apache Arrow",
12743
12762
  id: "arrow",
@@ -12783,7 +12802,7 @@ return true;`);
12783
12802
  }
12784
12803
 
12785
12804
  // src/arrow-writer.ts
12786
- var VERSION2 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
12805
+ var VERSION2 = true ? "4.1.0-alpha.3" : "latest";
12787
12806
  var ArrowWriter = {
12788
12807
  name: "Apache Arrow",
12789
12808
  id: "arrow",
@@ -13603,31 +13622,33 @@ return true;`);
13603
13622
  BinaryGeometryType2["polygons"] = "polygons";
13604
13623
  return BinaryGeometryType2;
13605
13624
  }(BinaryGeometryType || {});
13606
- var BINARY_GEOMETRY_TEMPLATE = {
13607
- globalFeatureIds: {
13608
- value: new Uint32Array(0),
13609
- size: 1
13610
- },
13611
- positions: {
13612
- value: new Float32Array(0),
13613
- size: 2
13614
- },
13615
- properties: [],
13616
- numericProps: {},
13617
- featureIds: {
13618
- value: new Uint32Array(0),
13619
- size: 1
13620
- }
13621
- };
13625
+ function getBinaryGeometryTemplate() {
13626
+ return {
13627
+ globalFeatureIds: {
13628
+ value: new Uint32Array(0),
13629
+ size: 1
13630
+ },
13631
+ positions: {
13632
+ value: new Float32Array(0),
13633
+ size: 2
13634
+ },
13635
+ properties: [],
13636
+ numericProps: {},
13637
+ featureIds: {
13638
+ value: new Uint32Array(0),
13639
+ size: 1
13640
+ }
13641
+ };
13642
+ }
13622
13643
  function getBinaryGeometriesFromArrow(geoColumn, geoEncoding, options) {
13623
13644
  const featureTypes = {
13624
13645
  polygon: geoEncoding === "geoarrow.multipolygon" || geoEncoding === "geoarrow.polygon",
13625
13646
  point: geoEncoding === "geoarrow.multipoint" || geoEncoding === "geoarrow.point",
13626
13647
  line: geoEncoding === "geoarrow.multilinestring" || geoEncoding === "geoarrow.linestring"
13627
13648
  };
13628
- const chunks = options?.chunkIndex ? [geoColumn.data[options?.chunkIndex]] : geoColumn.data;
13649
+ const chunks = options?.chunkIndex !== void 0 && options?.chunkIndex >= 0 ? [geoColumn.data[options?.chunkIndex]] : geoColumn.data;
13629
13650
  let bounds = [Infinity, Infinity, -Infinity, -Infinity];
13630
- let globalFeatureIdOffset = 0;
13651
+ let globalFeatureIdOffset = options?.chunkOffset || 0;
13631
13652
  const binaryGeometries = [];
13632
13653
  chunks.forEach((chunk) => {
13633
13654
  const {
@@ -13663,12 +13684,12 @@ return true;`);
13663
13684
  shape: "binary-feature-collection",
13664
13685
  points: {
13665
13686
  type: "Point",
13666
- ...BINARY_GEOMETRY_TEMPLATE,
13687
+ ...getBinaryGeometryTemplate(),
13667
13688
  ...featureTypes.point ? binaryContent : {}
13668
13689
  },
13669
13690
  lines: {
13670
13691
  type: "LineString",
13671
- ...BINARY_GEOMETRY_TEMPLATE,
13692
+ ...getBinaryGeometryTemplate(),
13672
13693
  ...featureTypes.line ? binaryContent : {},
13673
13694
  pathIndices: {
13674
13695
  value: featureTypes.line ? geomOffset : new Uint16Array(0),
@@ -13677,7 +13698,7 @@ return true;`);
13677
13698
  },
13678
13699
  polygons: {
13679
13700
  type: "Polygon",
13680
- ...BINARY_GEOMETRY_TEMPLATE,
13701
+ ...getBinaryGeometryTemplate(),
13681
13702
  ...featureTypes.polygon ? binaryContent : {},
13682
13703
  polygonIndices: {
13683
13704
  value: featureTypes.polygon ? geomOffset : new Uint16Array(0),
@@ -13791,7 +13812,7 @@ return true;`);
13791
13812
  }
13792
13813
  const triangleIndices = earcut(slicedFlatCoords, holeIndices.length > 0 ? holeIndices : void 0, nDim);
13793
13814
  if (triangleIndices.length === 0) {
13794
- throw Error("can not tesselate invalid polygon");
13815
+ throw Error("earcut failed e.g. invalid polygon");
13795
13816
  }
13796
13817
  for (let j = 0; j < triangleIndices.length; j++) {
13797
13818
  triangles.push(triangleIndices[j] + startIdx);
@@ -13833,8 +13854,8 @@ return true;`);
13833
13854
  const triangles = options?.triangulate ? getTriangleIndices(geometryIndicies, geomOffset, flatCoordinateArray, nDim) : null;
13834
13855
  return {
13835
13856
  featureIds,
13836
- flatCoordinateArray,
13837
13857
  nDim,
13858
+ flatCoordinateArray,
13838
13859
  geomOffset,
13839
13860
  geometryIndicies,
13840
13861
  ...options?.triangulate && triangles ? {
@@ -13913,7 +13934,7 @@ return true;`);
13913
13934
  }
13914
13935
 
13915
13936
  // ../wkt/src/lib/utils/version.ts
13916
- var VERSION3 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
13937
+ var VERSION3 = true ? "4.1.0-alpha.3" : "latest";
13917
13938
 
13918
13939
  // ../wkt/src/lib/parse-wkt.ts
13919
13940
  var numberRegexp = /[-+]?([0-9]*\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/;
@@ -14709,16 +14730,50 @@ return true;`);
14709
14730
  };
14710
14731
  }
14711
14732
 
14733
+ // src/workers/hard-clone.ts
14734
+ function hardClone(data, force = false) {
14735
+ if ("data" in data) {
14736
+ return new Vector(data.data.map((data2) => hardClone(data2, force)));
14737
+ }
14738
+ const clonedChildren = [];
14739
+ for (const childData of data.children) {
14740
+ clonedChildren.push(hardClone(childData, force));
14741
+ }
14742
+ let clonedDictionary;
14743
+ if (data.dictionary !== void 0) {
14744
+ clonedDictionary = hardClone(data.dictionary, force);
14745
+ }
14746
+ const clonedBuffers = {
14747
+ [BufferType.OFFSET]: cloneBuffer(data.buffers[BufferType.OFFSET], force),
14748
+ [BufferType.DATA]: cloneBuffer(data.buffers[BufferType.DATA], force),
14749
+ [BufferType.VALIDITY]: cloneBuffer(data.buffers[BufferType.VALIDITY], force),
14750
+ [BufferType.TYPE]: cloneBuffer(data.buffers[BufferType.TYPE], force)
14751
+ };
14752
+ return new Data(data.type, data.offset, data.length, data._nullCount, clonedBuffers, clonedChildren, clonedDictionary);
14753
+ }
14754
+ function isTypedArraySliced(arr) {
14755
+ return !(arr.byteOffset === 0 && arr.byteLength === arr.buffer.byteLength);
14756
+ }
14757
+ function cloneBuffer(arr, force) {
14758
+ if (arr === void 0) {
14759
+ return arr;
14760
+ }
14761
+ if (!force && !isTypedArraySliced(arr)) {
14762
+ return arr;
14763
+ }
14764
+ return arr.slice();
14765
+ }
14766
+
14712
14767
  // ../worker-utils/src/lib/env-utils/version.ts
14713
14768
  var NPM_TAG = "latest";
14714
14769
  function getVersion() {
14715
14770
  if (!globalThis._loadersgl_?.version) {
14716
14771
  globalThis._loadersgl_ = globalThis._loadersgl_ || {};
14717
- if (typeof __VERSION__ === "undefined") {
14772
+ if (false) {
14718
14773
  console.warn("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
14719
14774
  globalThis._loadersgl_.version = NPM_TAG;
14720
14775
  } else {
14721
- globalThis._loadersgl_.version = __VERSION__;
14776
+ globalThis._loadersgl_.version = "4.1.0-alpha.3";
14722
14777
  }
14723
14778
  }
14724
14779
  return globalThis._loadersgl_.version;
@@ -15260,7 +15315,7 @@ return true;`);
15260
15315
  }
15261
15316
 
15262
15317
  // src/triangulate-on-worker.ts
15263
- var VERSION5 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
15318
+ var VERSION5 = true ? "4.1.0-alpha.3" : "latest";
15264
15319
  var TriangulationWorker = {
15265
15320
  id: "triangulation",
15266
15321
  name: "Triangulate",
@@ -15269,7 +15324,16 @@ return true;`);
15269
15324
  options: {}
15270
15325
  };
15271
15326
  function triangulateOnWorker(data, options = {}) {
15272
- return processOnWorker(TriangulationWorker, data, options);
15327
+ return processOnWorker(TriangulationWorker, {
15328
+ ...data,
15329
+ operation: "triangulate"
15330
+ }, options);
15331
+ }
15332
+ function parseGeoArrowOnWorker(data, options = {}) {
15333
+ return processOnWorker(TriangulationWorker, {
15334
+ ...data,
15335
+ operation: "parse-geoarrow"
15336
+ }, options);
15273
15337
  }
15274
15338
 
15275
15339
  // src/index.ts
@@ -21,7 +21,7 @@ export type BinaryDataFromGeoArrow = {
21
21
  /**
22
22
  * binary geometry template, see deck.gl BinaryGeometry
23
23
  */
24
- export declare const BINARY_GEOMETRY_TEMPLATE: {
24
+ export declare function getBinaryGeometryTemplate(): {
25
25
  globalFeatureIds: {
26
26
  value: Uint32Array;
27
27
  size: number;
@@ -40,6 +40,8 @@ export declare const BINARY_GEOMETRY_TEMPLATE: {
40
40
  export type BinaryGeometriesFromArrowOptions = {
41
41
  /** option to specify which chunk to get binary geometries from, for progressive rendering */
42
42
  chunkIndex?: number;
43
+ /** The offset (beginning index of rows) of input chunk. Used for reconstructing globalFeatureIds in web workers */
44
+ chunkOffset?: number;
43
45
  /** option to get mean centers from geometries, for polygon filtering */
44
46
  calculateMeanCenters?: boolean;
45
47
  /** option to compute the triangle indices by tesselating polygons */
@@ -66,7 +68,7 @@ export declare function getMeanCentersFromBinaryGeometries(binaryGeometries: Bin
66
68
  * @param primitivePolygonIndices Indices within positions of the start of each primitive Polygon/ring
67
69
  * @param flatCoordinateArray Array of x, y or x, y, z positions
68
70
  * @param nDim - number of dimensions per position
69
- * @returns
71
+ * @returns triangle indices or null if invalid polygon and earcut fails
70
72
  */
71
73
  export declare function getTriangleIndices(polygonIndices: Uint16Array, primitivePolygonIndices: Int32Array, flatCoordinateArray: Float64Array, nDim: number): Uint32Array | null;
72
74
  //# sourceMappingURL=convert-geoarrow-to-binary-geometry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"convert-geoarrow-to-binary-geometry.d.ts","sourceRoot":"","sources":["../../src/geoarrow/convert-geoarrow-to-binary-geometry.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAC,uBAAuB,IAAI,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AAajD;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,oEAAoE;IACpE,gBAAgB,EAAE,cAAc,EAAE,CAAC;IACnC,wCAAwC;IACxC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,6CAA6C;IAC7C,YAAY,EAAE;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAC,CAAC;IAChE,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;CAC1B,CAAC;AAsBF;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;CAMpC,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,6FAA6F;IAC7F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,qEAAqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,KAAK,CAAC,MAAM,EACvB,WAAW,EAAE,gBAAgB,EAC7B,OAAO,CAAC,EAAE,gCAAgC,GACzC,sBAAsB,CA6ExB;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAAC,gBAAgB,EAAE,cAAc,EAAE,GAAG,MAAM,EAAE,EAAE,CAiCjG;AA2ED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,cAAc,EAAE,WAAW,EAC3B,uBAAuB,EAAE,UAAU,EACnC,mBAAmB,EAAE,YAAY,EACjC,IAAI,EAAE,MAAM,GACX,WAAW,GAAG,IAAI,CA0CpB"}
1
+ {"version":3,"file":"convert-geoarrow-to-binary-geometry.d.ts","sourceRoot":"","sources":["../../src/geoarrow/convert-geoarrow-to-binary-geometry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAC,uBAAuB,IAAI,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AAajD;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,oEAAoE;IACpE,gBAAgB,EAAE,cAAc,EAAE,CAAC;IACnC,wCAAwC;IACxC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,6CAA6C;IAC7C,YAAY,EAAE;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAC,CAAC;IAChE,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;CAC1B,CAAC;AAsBF;;GAEG;AACH,wBAAgB,yBAAyB;;;;;;;;;;;;;;;EAQxC;AAED,MAAM,MAAM,gCAAgC,GAAG;IAC7C,6FAA6F;IAC7F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mHAAmH;IACnH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,qEAAqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,KAAK,CAAC,MAAM,EACvB,WAAW,EAAE,gBAAgB,EAC7B,OAAO,CAAC,EAAE,gCAAgC,GACzC,sBAAsB,CAiFxB;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAAC,gBAAgB,EAAE,cAAc,EAAE,GAAG,MAAM,EAAE,EAAE,CAiCjG;AA2ED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,cAAc,EAAE,WAAW,EAC3B,uBAAuB,EAAE,UAAU,EACnC,mBAAmB,EAAE,YAAY,EACjC,IAAI,EAAE,MAAM,GACX,WAAW,GAAG,IAAI,CAyCpB"}
@@ -6,31 +6,33 @@ var BinaryGeometryType = function (BinaryGeometryType) {
6
6
  BinaryGeometryType["polygons"] = "polygons";
7
7
  return BinaryGeometryType;
8
8
  }(BinaryGeometryType || {});
9
- export const BINARY_GEOMETRY_TEMPLATE = {
10
- globalFeatureIds: {
11
- value: new Uint32Array(0),
12
- size: 1
13
- },
14
- positions: {
15
- value: new Float32Array(0),
16
- size: 2
17
- },
18
- properties: [],
19
- numericProps: {},
20
- featureIds: {
21
- value: new Uint32Array(0),
22
- size: 1
23
- }
24
- };
9
+ export function getBinaryGeometryTemplate() {
10
+ return {
11
+ globalFeatureIds: {
12
+ value: new Uint32Array(0),
13
+ size: 1
14
+ },
15
+ positions: {
16
+ value: new Float32Array(0),
17
+ size: 2
18
+ },
19
+ properties: [],
20
+ numericProps: {},
21
+ featureIds: {
22
+ value: new Uint32Array(0),
23
+ size: 1
24
+ }
25
+ };
26
+ }
25
27
  export function getBinaryGeometriesFromArrow(geoColumn, geoEncoding, options) {
26
28
  const featureTypes = {
27
29
  polygon: geoEncoding === 'geoarrow.multipolygon' || geoEncoding === 'geoarrow.polygon',
28
30
  point: geoEncoding === 'geoarrow.multipoint' || geoEncoding === 'geoarrow.point',
29
31
  line: geoEncoding === 'geoarrow.multilinestring' || geoEncoding === 'geoarrow.linestring'
30
32
  };
31
- const chunks = options !== null && options !== void 0 && options.chunkIndex ? [geoColumn.data[options === null || options === void 0 ? void 0 : options.chunkIndex]] : geoColumn.data;
33
+ const chunks = (options === null || options === void 0 ? void 0 : options.chunkIndex) !== undefined && (options === null || options === void 0 ? void 0 : options.chunkIndex) >= 0 ? [geoColumn.data[options === null || options === void 0 ? void 0 : options.chunkIndex]] : geoColumn.data;
32
34
  let bounds = [Infinity, Infinity, -Infinity, -Infinity];
33
- let globalFeatureIdOffset = 0;
35
+ let globalFeatureIdOffset = (options === null || options === void 0 ? void 0 : options.chunkOffset) || 0;
34
36
  const binaryGeometries = [];
35
37
  chunks.forEach(chunk => {
36
38
  const {
@@ -66,12 +68,12 @@ export function getBinaryGeometriesFromArrow(geoColumn, geoEncoding, options) {
66
68
  shape: 'binary-feature-collection',
67
69
  points: {
68
70
  type: 'Point',
69
- ...BINARY_GEOMETRY_TEMPLATE,
71
+ ...getBinaryGeometryTemplate(),
70
72
  ...(featureTypes.point ? binaryContent : {})
71
73
  },
72
74
  lines: {
73
75
  type: 'LineString',
74
- ...BINARY_GEOMETRY_TEMPLATE,
76
+ ...getBinaryGeometryTemplate(),
75
77
  ...(featureTypes.line ? binaryContent : {}),
76
78
  pathIndices: {
77
79
  value: featureTypes.line ? geomOffset : new Uint16Array(0),
@@ -80,7 +82,7 @@ export function getBinaryGeometriesFromArrow(geoColumn, geoEncoding, options) {
80
82
  },
81
83
  polygons: {
82
84
  type: 'Polygon',
83
- ...BINARY_GEOMETRY_TEMPLATE,
85
+ ...getBinaryGeometryTemplate(),
84
86
  ...(featureTypes.polygon ? binaryContent : {}),
85
87
  polygonIndices: {
86
88
  value: featureTypes.polygon ? geomOffset : new Uint16Array(0),
@@ -195,7 +197,7 @@ export function getTriangleIndices(polygonIndices, primitivePolygonIndices, flat
195
197
  }
196
198
  const triangleIndices = earcut(slicedFlatCoords, holeIndices.length > 0 ? holeIndices : undefined, nDim);
197
199
  if (triangleIndices.length === 0) {
198
- throw Error('can not tesselate invalid polygon');
200
+ throw Error('earcut failed e.g. invalid polygon');
199
201
  }
200
202
  for (let j = 0; j < triangleIndices.length; j++) {
201
203
  triangles.push(triangleIndices[j] + startIdx);
@@ -237,8 +239,8 @@ function getBinaryPolygonsFromChunk(chunk, geoEncoding, options) {
237
239
  const triangles = options !== null && options !== void 0 && options.triangulate ? getTriangleIndices(geometryIndicies, geomOffset, flatCoordinateArray, nDim) : null;
238
240
  return {
239
241
  featureIds,
240
- flatCoordinateArray,
241
242
  nDim,
243
+ flatCoordinateArray,
242
244
  geomOffset,
243
245
  geometryIndicies,
244
246
  ...(options !== null && options !== void 0 && options.triangulate && triangles ? {