@loaders.gl/arrow 4.0.2 → 4.0.4

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 (119) hide show
  1. package/dist/arrow-loader.d.ts +6 -3
  2. package/dist/arrow-loader.d.ts.map +1 -1
  3. package/dist/arrow-loader.js +9 -1
  4. package/dist/arrow-loader.js.map +1 -1
  5. package/dist/arrow-worker.js +37 -537
  6. package/dist/arrow-writer.d.ts +2 -2
  7. package/dist/arrow-writer.d.ts.map +1 -1
  8. package/dist/arrow-writer.js.map +1 -1
  9. package/dist/dist.dev.js +1615 -246
  10. package/dist/geoarrow/convert-geoarrow-to-binary-geometry.d.ts +31 -1
  11. package/dist/geoarrow/convert-geoarrow-to-binary-geometry.d.ts.map +1 -1
  12. package/dist/geoarrow/convert-geoarrow-to-binary-geometry.js +133 -23
  13. package/dist/geoarrow/convert-geoarrow-to-binary-geometry.js.map +1 -1
  14. package/dist/geoarrow/convert-geoarrow-to-geojson.d.ts +2 -1
  15. package/dist/geoarrow/convert-geoarrow-to-geojson.d.ts.map +1 -1
  16. package/dist/geoarrow/convert-geoarrow-to-geojson.js +4 -0
  17. package/dist/geoarrow/convert-geoarrow-to-geojson.js.map +1 -1
  18. package/dist/geoarrow-loader.d.ts +19 -0
  19. package/dist/geoarrow-loader.d.ts.map +1 -0
  20. package/dist/geoarrow-loader.js +24 -0
  21. package/dist/geoarrow-loader.js.map +1 -0
  22. package/dist/geoarrow-writer.d.ts +9 -0
  23. package/dist/geoarrow-writer.d.ts.map +1 -0
  24. package/dist/geoarrow-writer.js +19 -0
  25. package/dist/geoarrow-writer.js.map +1 -0
  26. package/dist/index.cjs +508 -284
  27. package/dist/index.d.ts +9 -12
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +7 -13
  30. package/dist/index.js.map +1 -1
  31. package/dist/lib/arrow-table-batch.d.ts.map +1 -1
  32. package/dist/lib/arrow-table-batch.js.map +1 -1
  33. package/dist/lib/encode-arrow.d.ts.map +1 -1
  34. package/dist/lib/encode-arrow.js.map +1 -1
  35. package/dist/lib/encode-geoarrow.d.ts +15 -0
  36. package/dist/lib/encode-geoarrow.d.ts.map +1 -0
  37. package/dist/lib/encode-geoarrow.js +22 -0
  38. package/dist/lib/encode-geoarrow.js.map +1 -0
  39. package/dist/{lib → parsers}/parse-arrow-in-batches.d.ts +1 -1
  40. package/dist/parsers/parse-arrow-in-batches.d.ts.map +1 -0
  41. package/dist/parsers/parse-arrow-in-batches.js.map +1 -0
  42. package/dist/parsers/parse-arrow-sync.d.ts +6 -0
  43. package/dist/parsers/parse-arrow-sync.d.ts.map +1 -0
  44. package/dist/parsers/parse-arrow-sync.js +26 -0
  45. package/dist/parsers/parse-arrow-sync.js.map +1 -0
  46. package/dist/parsers/parse-geoarrow-in-batches.d.ts +6 -0
  47. package/dist/parsers/parse-geoarrow-in-batches.d.ts.map +1 -0
  48. package/dist/parsers/parse-geoarrow-in-batches.js +5 -0
  49. package/dist/parsers/parse-geoarrow-in-batches.js.map +1 -0
  50. package/dist/parsers/parse-geoarrow-sync.d.ts +6 -0
  51. package/dist/parsers/parse-geoarrow-sync.d.ts.map +1 -0
  52. package/dist/parsers/parse-geoarrow-sync.js +14 -0
  53. package/dist/parsers/parse-geoarrow-sync.js.map +1 -0
  54. package/dist/schema/convert-arrow-schema.d.ts.map +1 -1
  55. package/dist/schema/convert-arrow-schema.js +32 -5
  56. package/dist/schema/convert-arrow-schema.js.map +1 -1
  57. package/dist/tables/convert-arrow-to-columnar-table.d.ts +8 -0
  58. package/dist/tables/convert-arrow-to-columnar-table.d.ts.map +1 -0
  59. package/dist/tables/convert-arrow-to-columnar-table.js +14 -0
  60. package/dist/tables/convert-arrow-to-columnar-table.js.map +1 -0
  61. package/dist/tables/convert-arrow-to-geojson-table.d.ts +16 -0
  62. package/dist/tables/convert-arrow-to-geojson-table.d.ts.map +1 -0
  63. package/dist/tables/convert-arrow-to-geojson-table.js +33 -0
  64. package/dist/tables/convert-arrow-to-geojson-table.js.map +1 -0
  65. package/dist/tables/convert-columnar-to-row-table.d.ts +7 -0
  66. package/dist/tables/convert-columnar-to-row-table.d.ts.map +1 -0
  67. package/dist/tables/convert-columnar-to-row-table.js +18 -0
  68. package/dist/tables/convert-columnar-to-row-table.js.map +1 -0
  69. package/dist/triangulate-on-worker.d.ts +36 -0
  70. package/dist/triangulate-on-worker.d.ts.map +1 -0
  71. package/dist/triangulate-on-worker.js +14 -0
  72. package/dist/triangulate-on-worker.js.map +1 -0
  73. package/dist/triangulation-worker.js +880 -0
  74. package/dist/workers/arrow-worker.js +1 -1
  75. package/dist/workers/arrow-worker.js.map +1 -1
  76. package/dist/workers/triangulation-worker-node.d.ts +2 -0
  77. package/dist/workers/triangulation-worker-node.d.ts.map +1 -0
  78. package/dist/workers/triangulation-worker-node.js +2 -0
  79. package/dist/workers/triangulation-worker-node.js.map +1 -0
  80. package/dist/workers/triangulation-worker.d.ts +2 -0
  81. package/dist/workers/triangulation-worker.d.ts.map +1 -0
  82. package/dist/workers/triangulation-worker.js +24 -0
  83. package/dist/workers/triangulation-worker.js.map +1 -0
  84. package/package.json +9 -7
  85. package/src/arrow-loader.ts +25 -3
  86. package/src/arrow-writer.ts +2 -2
  87. package/src/geoarrow/convert-geoarrow-to-binary-geometry.ts +221 -30
  88. package/src/geoarrow/convert-geoarrow-to-geojson.ts +6 -2
  89. package/src/geoarrow-loader.ts +55 -0
  90. package/src/geoarrow-writer.ts +41 -0
  91. package/src/index.ts +30 -36
  92. package/src/lib/arrow-table-batch.ts +3 -0
  93. package/src/lib/encode-arrow.ts +3 -0
  94. package/src/lib/encode-geoarrow.ts +45 -0
  95. package/src/{lib → parsers}/parse-arrow-in-batches.ts +4 -2
  96. package/src/parsers/parse-arrow-sync.ts +38 -0
  97. package/src/parsers/parse-geoarrow-in-batches.ts +15 -0
  98. package/src/parsers/parse-geoarrow-sync.ts +22 -0
  99. package/src/schema/convert-arrow-schema.ts +32 -7
  100. package/src/tables/convert-arrow-to-columnar-table.ts +29 -0
  101. package/src/tables/convert-arrow-to-geojson-table.ts +54 -0
  102. package/src/tables/convert-columnar-to-row-table.ts +29 -0
  103. package/src/triangulate-on-worker.ts +47 -0
  104. package/src/workers/arrow-worker.ts +1 -1
  105. package/src/workers/triangulation-worker-node.ts +4 -0
  106. package/src/workers/triangulation-worker.ts +39 -0
  107. package/dist/lib/parse-arrow-in-batches.d.ts.map +0 -1
  108. package/dist/lib/parse-arrow-in-batches.js.map +0 -1
  109. package/dist/lib/parse-arrow-sync.d.ts +0 -5
  110. package/dist/lib/parse-arrow-sync.d.ts.map +0 -1
  111. package/dist/lib/parse-arrow-sync.js +0 -21
  112. package/dist/lib/parse-arrow-sync.js.map +0 -1
  113. package/dist/tables/convert-arrow-to-table.d.ts +0 -21
  114. package/dist/tables/convert-arrow-to-table.d.ts.map +0 -1
  115. package/dist/tables/convert-arrow-to-table.js +0 -37
  116. package/dist/tables/convert-arrow-to-table.js.map +0 -1
  117. package/src/lib/parse-arrow-sync.ts +0 -35
  118. package/src/tables/convert-arrow-to-table.ts +0 -68
  119. /package/dist/{lib → parsers}/parse-arrow-in-batches.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"convert-arrow-to-table.d.ts","sourceRoot":"","sources":["../../src/tables/convert-arrow-to-table.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,aAAa,EAAE,cAAc,EAAC,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAEnD;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAKlF;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,UAAU,GAAG,aAAa,CAkB5E;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,aAAa,EAAE,aAAa,GAAG,cAAc,CAmB5F"}
@@ -1,37 +0,0 @@
1
- export function convertApacheArrowToArrowTable(arrowTable) {
2
- return {
3
- shape: 'arrow-table',
4
- data: arrowTable
5
- };
6
- }
7
- export function convertArrowToColumnarTable(table) {
8
- const arrowTable = table.data;
9
- const columnarTable = {};
10
- for (const field of arrowTable.schema.fields) {
11
- const arrowColumn = arrowTable.getChild(field.name);
12
- const values = arrowColumn === null || arrowColumn === void 0 ? void 0 : arrowColumn.toArray();
13
- columnarTable[field.name] = values;
14
- }
15
- return {
16
- shape: 'columnar-table',
17
- data: columnarTable
18
- };
19
- }
20
- export function convertColumnarToRowFormatTable(columnarTable) {
21
- const tableKeys = Object.keys(columnarTable);
22
- const tableRowsCount = columnarTable[tableKeys[0]].length;
23
- const rowFormatTable = [];
24
- for (let index = 0; index < tableRowsCount; index++) {
25
- const tableItem = {};
26
- for (let keyIndex = 0; keyIndex < tableKeys.length; keyIndex++) {
27
- const fieldName = tableKeys[keyIndex];
28
- tableItem[fieldName] = columnarTable[fieldName][index];
29
- }
30
- rowFormatTable.push(tableItem);
31
- }
32
- return {
33
- shape: 'object-row-table',
34
- data: rowFormatTable
35
- };
36
- }
37
- //# sourceMappingURL=convert-arrow-to-table.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"convert-arrow-to-table.js","names":["convertApacheArrowToArrowTable","arrowTable","shape","data","convertArrowToColumnarTable","table","columnarTable","field","schema","fields","arrowColumn","getChild","name","values","toArray","convertColumnarToRowFormatTable","tableKeys","Object","keys","tableRowsCount","length","rowFormatTable","index","tableItem","keyIndex","fieldName","push"],"sources":["../../src/tables/convert-arrow-to-table.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {ColumnarTable, ObjectRowTable} from '@loaders.gl/schema';\nimport type * as arrow from 'apache-arrow';\nimport type {ArrowTable} from '../lib/arrow-table';\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 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\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":"AAaA,OAAO,SAASA,8BAA8BA,CAACC,UAAuB,EAAc;EAClF,OAAO;IACLC,KAAK,EAAE,aAAa;IACpBC,IAAI,EAAEF;EACR,CAAC;AACH;AAMA,OAAO,SAASG,2BAA2BA,CAACC,KAAiB,EAAiB;EAI5E,MAAMJ,UAAU,GAAGI,KAAK,CAACF,IAAI;EAC7B,MAAMG,aAAa,GAAG,CAAC,CAAC;EAExB,KAAK,MAAMC,KAAK,IAAIN,UAAU,CAACO,MAAM,CAACC,MAAM,EAAE;IAE5C,MAAMC,WAAW,GAAGT,UAAU,CAACU,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;IACLX,KAAK,EAAE,gBAAgB;IACvBC,IAAI,EAAEG;EACR,CAAC;AACH;AAMA,OAAO,SAASS,+BAA+BA,CAACT,aAA4B,EAAkB;EAC5F,MAAMU,SAAS,GAAGC,MAAM,CAACC,IAAI,CAACZ,aAAa,CAAC;EAC5C,MAAMa,cAAc,GAAGb,aAAa,CAACU,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,GAAGnB,aAAa,CAACmB,SAAS,CAAC,CAACH,KAAK,CAAC;IACxD;IACAD,cAAc,CAACK,IAAI,CAACH,SAAS,CAAC;EAChC;EAEA,OAAO;IACLrB,KAAK,EAAE,kBAAkB;IACzBC,IAAI,EAAEkB;EACR,CAAC;AACH"}
@@ -1,35 +0,0 @@
1
- import type {ColumnarTable, ObjectRowTable} from '@loaders.gl/schema';
2
- import type {ArrowTable} from './arrow-table';
3
- import {convertTable} from '@loaders.gl/schema';
4
- import * as arrow from 'apache-arrow';
5
- import type {ArrowLoaderOptions} from '../arrow-loader';
6
- import {
7
- convertApacheArrowToArrowTable,
8
- convertArrowToColumnarTable
9
- } from '../tables/convert-arrow-to-table';
10
-
11
- // Parses arrow to a columnar table
12
- export default function parseArrowSync(
13
- arrayBuffer,
14
- options?: ArrowLoaderOptions
15
- ): ArrowTable | ColumnarTable | ObjectRowTable {
16
- const apacheArrowTable = arrow.tableFromIPC([new Uint8Array(arrayBuffer)]);
17
- const arrowTable = convertApacheArrowToArrowTable(apacheArrowTable);
18
-
19
- const shape = options?.arrow?.shape || 'arrow-table';
20
- switch (shape) {
21
- case 'arrow-table':
22
- return arrowTable;
23
-
24
- case 'columnar-table':
25
- return convertArrowToColumnarTable(arrowTable);
26
-
27
- case 'object-row-table':
28
- const columnarTable = convertArrowToColumnarTable(arrowTable);
29
- return convertTable(columnarTable, 'object-row-table');
30
-
31
- default:
32
- // TODO
33
- throw new Error(shape);
34
- }
35
- }
@@ -1,68 +0,0 @@
1
- // loaders.gl, MIT license
2
- // Copyright (c) vis.gl contributors
3
-
4
- import type {ColumnarTable, ObjectRowTable} from '@loaders.gl/schema';
5
- import type * as arrow from 'apache-arrow';
6
- import type {ArrowTable} from '../lib/arrow-table';
7
-
8
- /**
9
- * Wrap an apache arrow table in a loaders.gl table wrapper.
10
- * From this additional conversions are available.
11
- * @param arrowTable
12
- * @returns
13
- */
14
- export function convertApacheArrowToArrowTable(arrowTable: arrow.Table): ArrowTable {
15
- return {
16
- shape: 'arrow-table',
17
- data: arrowTable
18
- };
19
- }
20
-
21
- /**
22
- * Convert an Apache Arrow table to a ColumnarTable
23
- * @note Currently does not convert schema
24
- */
25
- export function convertArrowToColumnarTable(table: ArrowTable): ColumnarTable {
26
- // TODO - avoid calling `getColumn` on columns we are not interested in?
27
- // Add options object?
28
-
29
- const arrowTable = table.data;
30
- const columnarTable = {};
31
-
32
- for (const field of arrowTable.schema.fields) {
33
- // This (is intended to) coalesce all record batches into a single typed array
34
- const arrowColumn = arrowTable.getChild(field.name);
35
- const values = arrowColumn?.toArray();
36
- columnarTable[field.name] = values;
37
- }
38
-
39
- return {
40
- shape: 'columnar-table',
41
- data: columnarTable
42
- };
43
- }
44
-
45
- /**
46
- *
47
- * @note - should be part of schema module
48
- */
49
- export function convertColumnarToRowFormatTable(columnarTable: ColumnarTable): ObjectRowTable {
50
- const tableKeys = Object.keys(columnarTable);
51
- const tableRowsCount = columnarTable[tableKeys[0]].length;
52
-
53
- const rowFormatTable: {}[] = [];
54
-
55
- for (let index = 0; index < tableRowsCount; index++) {
56
- const tableItem = {};
57
- for (let keyIndex = 0; keyIndex < tableKeys.length; keyIndex++) {
58
- const fieldName = tableKeys[keyIndex];
59
- tableItem[fieldName] = columnarTable[fieldName][index];
60
- }
61
- rowFormatTable.push(tableItem);
62
- }
63
-
64
- return {
65
- shape: 'object-row-table',
66
- data: rowFormatTable
67
- };
68
- }
File without changes