@loaders.gl/parquet 3.4.0-alpha.1 → 3.4.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 (378) hide show
  1. package/dist/dist.min.js +22 -29
  2. package/dist/dist.min.js.map +3 -3
  3. package/dist/es5/constants.js +0 -2
  4. package/dist/es5/constants.js.map +1 -1
  5. package/dist/es5/index.js +47 -9
  6. package/dist/es5/index.js.map +1 -1
  7. package/dist/es5/lib/arrow/convert-columns-to-row-group.js +2 -0
  8. package/dist/es5/lib/arrow/convert-columns-to-row-group.js.map +1 -0
  9. package/dist/es5/lib/arrow/convert-row-group-to-columns.js +19 -0
  10. package/dist/es5/lib/arrow/convert-row-group-to-columns.js.map +1 -0
  11. package/dist/es5/lib/arrow/convert-schema-from-parquet.js +98 -0
  12. package/dist/es5/lib/arrow/convert-schema-from-parquet.js.map +1 -0
  13. package/dist/es5/lib/{convert-schema.js → arrow/convert-schema-to-parquet.js} +4 -32
  14. package/dist/es5/lib/arrow/convert-schema-to-parquet.js.map +1 -0
  15. package/dist/es5/lib/geo/decode-geo-metadata.js +77 -0
  16. package/dist/es5/lib/geo/decode-geo-metadata.js.map +1 -0
  17. package/dist/es5/lib/geo/geoparquet-schema.js +83 -0
  18. package/dist/es5/lib/geo/geoparquet-schema.js.map +1 -0
  19. package/dist/es5/lib/parsers/parse-parquet-to-columns.js +173 -0
  20. package/dist/es5/lib/parsers/parse-parquet-to-columns.js.map +1 -0
  21. package/dist/es5/lib/parsers/parse-parquet-to-rows.js +150 -0
  22. package/dist/es5/lib/parsers/parse-parquet-to-rows.js.map +1 -0
  23. package/dist/es5/lib/wasm/encode-parquet-wasm.js +14 -16
  24. package/dist/es5/lib/wasm/encode-parquet-wasm.js.map +1 -1
  25. package/dist/es5/lib/wasm/load-wasm/index.js.map +1 -1
  26. package/dist/es5/lib/wasm/load-wasm/load-wasm-browser.js +16 -18
  27. package/dist/es5/lib/wasm/load-wasm/load-wasm-browser.js.map +1 -1
  28. package/dist/es5/lib/wasm/load-wasm/load-wasm-node.js +6 -8
  29. package/dist/es5/lib/wasm/load-wasm/load-wasm-node.js.map +1 -1
  30. package/dist/es5/lib/wasm/parse-parquet-wasm.js +16 -18
  31. package/dist/es5/lib/wasm/parse-parquet-wasm.js.map +1 -1
  32. package/dist/es5/lib/wip/convert-schema-deep.java.disabled +910 -0
  33. package/dist/es5/lib/wip/convert-schema-deep.rs.disabled +976 -0
  34. package/dist/es5/parquet-loader.js +4 -3
  35. package/dist/es5/parquet-loader.js.map +1 -1
  36. package/dist/es5/parquet-wasm-loader.js +1 -2
  37. package/dist/es5/parquet-wasm-loader.js.map +1 -1
  38. package/dist/es5/parquet-wasm-writer.js +1 -1
  39. package/dist/es5/parquet-wasm-writer.js.map +1 -1
  40. package/dist/es5/parquet-writer.js +1 -1
  41. package/dist/es5/parquet-writer.js.map +1 -1
  42. package/dist/es5/parquetjs/codecs/dictionary.js.map +1 -1
  43. package/dist/es5/parquetjs/codecs/index.js +0 -1
  44. package/dist/es5/parquetjs/codecs/index.js.map +1 -1
  45. package/dist/es5/parquetjs/codecs/plain.js +0 -3
  46. package/dist/es5/parquetjs/codecs/plain.js.map +1 -1
  47. package/dist/es5/parquetjs/codecs/rle.js +0 -4
  48. package/dist/es5/parquetjs/codecs/rle.js.map +1 -1
  49. package/dist/es5/parquetjs/compression.js +58 -58
  50. package/dist/es5/parquetjs/compression.js.map +1 -1
  51. package/dist/es5/parquetjs/encoder/parquet-encoder.js +625 -0
  52. package/dist/es5/parquetjs/encoder/parquet-encoder.js.map +1 -0
  53. package/dist/es5/parquetjs/parquet-thrift/BoundaryOrder.js +4 -4
  54. package/dist/es5/parquetjs/parquet-thrift/BoundaryOrder.js.map +1 -1
  55. package/dist/es5/parquetjs/parquet-thrift/BsonType.js.map +1 -1
  56. package/dist/es5/parquetjs/parquet-thrift/ColumnChunk.js.map +1 -1
  57. package/dist/es5/parquetjs/parquet-thrift/ColumnIndex.js.map +1 -1
  58. package/dist/es5/parquetjs/parquet-thrift/ColumnMetaData.js.map +1 -1
  59. package/dist/es5/parquetjs/parquet-thrift/ColumnOrder.js.map +1 -1
  60. package/dist/es5/parquetjs/parquet-thrift/CompressionCodec.js +4 -4
  61. package/dist/es5/parquetjs/parquet-thrift/CompressionCodec.js.map +1 -1
  62. package/dist/es5/parquetjs/parquet-thrift/ConvertedType.js +4 -4
  63. package/dist/es5/parquetjs/parquet-thrift/ConvertedType.js.map +1 -1
  64. package/dist/es5/parquetjs/parquet-thrift/DataPageHeader.js.map +1 -1
  65. package/dist/es5/parquetjs/parquet-thrift/DataPageHeaderV2.js.map +1 -1
  66. package/dist/es5/parquetjs/parquet-thrift/DateType.js.map +1 -1
  67. package/dist/es5/parquetjs/parquet-thrift/DecimalType.js.map +1 -1
  68. package/dist/es5/parquetjs/parquet-thrift/DictionaryPageHeader.js.map +1 -1
  69. package/dist/es5/parquetjs/parquet-thrift/Encoding.js +4 -4
  70. package/dist/es5/parquetjs/parquet-thrift/Encoding.js.map +1 -1
  71. package/dist/es5/parquetjs/parquet-thrift/EnumType.js.map +1 -1
  72. package/dist/es5/parquetjs/parquet-thrift/FieldRepetitionType.js +4 -4
  73. package/dist/es5/parquetjs/parquet-thrift/FieldRepetitionType.js.map +1 -1
  74. package/dist/es5/parquetjs/parquet-thrift/FileMetaData.js.map +1 -1
  75. package/dist/es5/parquetjs/parquet-thrift/IndexPageHeader.js.map +1 -1
  76. package/dist/es5/parquetjs/parquet-thrift/IntType.js.map +1 -1
  77. package/dist/es5/parquetjs/parquet-thrift/JsonType.js.map +1 -1
  78. package/dist/es5/parquetjs/parquet-thrift/KeyValue.js.map +1 -1
  79. package/dist/es5/parquetjs/parquet-thrift/ListType.js.map +1 -1
  80. package/dist/es5/parquetjs/parquet-thrift/LogicalType.js.map +1 -1
  81. package/dist/es5/parquetjs/parquet-thrift/MapType.js.map +1 -1
  82. package/dist/es5/parquetjs/parquet-thrift/MicroSeconds.js.map +1 -1
  83. package/dist/es5/parquetjs/parquet-thrift/MilliSeconds.js.map +1 -1
  84. package/dist/es5/parquetjs/parquet-thrift/NullType.js.map +1 -1
  85. package/dist/es5/parquetjs/parquet-thrift/OffsetIndex.js.map +1 -1
  86. package/dist/es5/parquetjs/parquet-thrift/PageEncodingStats.js.map +1 -1
  87. package/dist/es5/parquetjs/parquet-thrift/PageHeader.js.map +1 -1
  88. package/dist/es5/parquetjs/parquet-thrift/PageLocation.js.map +1 -1
  89. package/dist/es5/parquetjs/parquet-thrift/PageType.js +4 -4
  90. package/dist/es5/parquetjs/parquet-thrift/PageType.js.map +1 -1
  91. package/dist/es5/parquetjs/parquet-thrift/RowGroup.js.map +1 -1
  92. package/dist/es5/parquetjs/parquet-thrift/SchemaElement.js.map +1 -1
  93. package/dist/es5/parquetjs/parquet-thrift/SortingColumn.js.map +1 -1
  94. package/dist/es5/parquetjs/parquet-thrift/Statistics.js.map +1 -1
  95. package/dist/es5/parquetjs/parquet-thrift/StringType.js.map +1 -1
  96. package/dist/es5/parquetjs/parquet-thrift/TimeType.js.map +1 -1
  97. package/dist/es5/parquetjs/parquet-thrift/TimeUnit.js.map +1 -1
  98. package/dist/es5/parquetjs/parquet-thrift/TimestampType.js.map +1 -1
  99. package/dist/es5/parquetjs/parquet-thrift/Type.js +4 -4
  100. package/dist/es5/parquetjs/parquet-thrift/Type.js.map +1 -1
  101. package/dist/es5/parquetjs/parquet-thrift/TypeDefinedOrder.js.map +1 -1
  102. package/dist/es5/parquetjs/parquet-thrift/UUIDType.js.map +1 -1
  103. package/dist/es5/parquetjs/parquet-thrift/index.js.map +1 -1
  104. package/dist/es5/parquetjs/parser/decoders.js +244 -261
  105. package/dist/es5/parquetjs/parser/decoders.js.map +1 -1
  106. package/dist/es5/parquetjs/parser/parquet-reader.js +555 -256
  107. package/dist/es5/parquetjs/parser/parquet-reader.js.map +1 -1
  108. package/dist/es5/parquetjs/schema/declare.js.map +1 -1
  109. package/dist/es5/parquetjs/schema/schema.js +2 -12
  110. package/dist/es5/parquetjs/schema/schema.js.map +1 -1
  111. package/dist/es5/parquetjs/schema/shred.js +40 -46
  112. package/dist/es5/parquetjs/schema/shred.js.map +1 -1
  113. package/dist/es5/parquetjs/schema/types.js +6 -11
  114. package/dist/es5/parquetjs/schema/types.js.map +1 -1
  115. package/dist/es5/parquetjs/utils/file-utils.js +2 -4
  116. package/dist/es5/parquetjs/utils/file-utils.js.map +1 -1
  117. package/dist/es5/parquetjs/utils/read-utils.js +0 -7
  118. package/dist/es5/parquetjs/utils/read-utils.js.map +1 -1
  119. package/dist/es5/workers/parquet-worker.js.map +1 -1
  120. package/dist/esm/bundle.js +0 -1
  121. package/dist/esm/bundle.js.map +1 -1
  122. package/dist/esm/constants.js +0 -3
  123. package/dist/esm/constants.js.map +1 -1
  124. package/dist/esm/index.js +11 -9
  125. package/dist/esm/index.js.map +1 -1
  126. package/dist/esm/lib/arrow/convert-columns-to-row-group.js +2 -0
  127. package/dist/esm/lib/arrow/convert-columns-to-row-group.js.map +1 -0
  128. package/dist/esm/lib/arrow/convert-row-group-to-columns.js +8 -0
  129. package/dist/esm/lib/arrow/convert-row-group-to-columns.js.map +1 -0
  130. package/dist/esm/lib/{convert-schema.js → arrow/convert-schema-from-parquet.js} +30 -16
  131. package/dist/esm/lib/arrow/convert-schema-from-parquet.js.map +1 -0
  132. package/dist/esm/lib/arrow/convert-schema-to-parquet.js +37 -0
  133. package/dist/esm/lib/arrow/convert-schema-to-parquet.js.map +1 -0
  134. package/dist/esm/lib/geo/decode-geo-metadata.js +58 -0
  135. package/dist/esm/lib/geo/decode-geo-metadata.js.map +1 -0
  136. package/dist/esm/lib/geo/geoparquet-schema.js +76 -0
  137. package/dist/esm/lib/geo/geoparquet-schema.js.map +1 -0
  138. package/dist/esm/lib/parsers/parse-parquet-to-columns.js +35 -0
  139. package/dist/esm/lib/parsers/parse-parquet-to-columns.js.map +1 -0
  140. package/dist/esm/lib/parsers/parse-parquet-to-rows.js +18 -0
  141. package/dist/esm/lib/parsers/parse-parquet-to-rows.js.map +1 -0
  142. package/dist/esm/lib/wasm/encode-parquet-wasm.js +0 -1
  143. package/dist/esm/lib/wasm/encode-parquet-wasm.js.map +1 -1
  144. package/dist/esm/lib/wasm/load-wasm/load-wasm-browser.js +0 -1
  145. package/dist/esm/lib/wasm/load-wasm/load-wasm-browser.js.map +1 -1
  146. package/dist/esm/lib/wasm/load-wasm/load-wasm-node.js.map +1 -1
  147. package/dist/esm/lib/wasm/parse-parquet-wasm.js +0 -3
  148. package/dist/esm/lib/wasm/parse-parquet-wasm.js.map +1 -1
  149. package/dist/esm/lib/wip/convert-schema-deep.java.disabled +910 -0
  150. package/dist/esm/lib/wip/convert-schema-deep.rs.disabled +976 -0
  151. package/dist/esm/parquet-loader.js +4 -4
  152. package/dist/esm/parquet-loader.js.map +1 -1
  153. package/dist/esm/parquet-wasm-loader.js +1 -3
  154. package/dist/esm/parquet-wasm-loader.js.map +1 -1
  155. package/dist/esm/parquet-wasm-writer.js +1 -2
  156. package/dist/esm/parquet-wasm-writer.js.map +1 -1
  157. package/dist/esm/parquet-writer.js +1 -2
  158. package/dist/esm/parquet-writer.js.map +1 -1
  159. package/dist/esm/parquetjs/codecs/dictionary.js.map +1 -1
  160. package/dist/esm/parquetjs/codecs/index.js +0 -2
  161. package/dist/esm/parquetjs/codecs/index.js.map +1 -1
  162. package/dist/esm/parquetjs/codecs/plain.js +0 -4
  163. package/dist/esm/parquetjs/codecs/plain.js.map +1 -1
  164. package/dist/esm/parquetjs/codecs/rle.js +0 -6
  165. package/dist/esm/parquetjs/codecs/rle.js.map +1 -1
  166. package/dist/esm/parquetjs/compression.js +10 -10
  167. package/dist/esm/parquetjs/compression.js.map +1 -1
  168. package/dist/esm/parquetjs/encoder/{writer.js → parquet-encoder.js} +6 -74
  169. package/dist/esm/parquetjs/encoder/parquet-encoder.js.map +1 -0
  170. package/dist/esm/parquetjs/parquet-thrift/BoundaryOrder.js +3 -4
  171. package/dist/esm/parquetjs/parquet-thrift/BoundaryOrder.js.map +1 -1
  172. package/dist/esm/parquetjs/parquet-thrift/BsonType.js +0 -1
  173. package/dist/esm/parquetjs/parquet-thrift/BsonType.js.map +1 -1
  174. package/dist/esm/parquetjs/parquet-thrift/ColumnChunk.js.map +1 -1
  175. package/dist/esm/parquetjs/parquet-thrift/ColumnIndex.js.map +1 -1
  176. package/dist/esm/parquetjs/parquet-thrift/ColumnMetaData.js.map +1 -1
  177. package/dist/esm/parquetjs/parquet-thrift/ColumnOrder.js.map +1 -1
  178. package/dist/esm/parquetjs/parquet-thrift/CompressionCodec.js +3 -4
  179. package/dist/esm/parquetjs/parquet-thrift/CompressionCodec.js.map +1 -1
  180. package/dist/esm/parquetjs/parquet-thrift/ConvertedType.js +3 -4
  181. package/dist/esm/parquetjs/parquet-thrift/ConvertedType.js.map +1 -1
  182. package/dist/esm/parquetjs/parquet-thrift/DataPageHeader.js.map +1 -1
  183. package/dist/esm/parquetjs/parquet-thrift/DataPageHeaderV2.js.map +1 -1
  184. package/dist/esm/parquetjs/parquet-thrift/DateType.js +0 -1
  185. package/dist/esm/parquetjs/parquet-thrift/DateType.js.map +1 -1
  186. package/dist/esm/parquetjs/parquet-thrift/DecimalType.js.map +1 -1
  187. package/dist/esm/parquetjs/parquet-thrift/DictionaryPageHeader.js.map +1 -1
  188. package/dist/esm/parquetjs/parquet-thrift/Encoding.js +3 -4
  189. package/dist/esm/parquetjs/parquet-thrift/Encoding.js.map +1 -1
  190. package/dist/esm/parquetjs/parquet-thrift/EnumType.js +0 -1
  191. package/dist/esm/parquetjs/parquet-thrift/EnumType.js.map +1 -1
  192. package/dist/esm/parquetjs/parquet-thrift/FieldRepetitionType.js +3 -4
  193. package/dist/esm/parquetjs/parquet-thrift/FieldRepetitionType.js.map +1 -1
  194. package/dist/esm/parquetjs/parquet-thrift/FileMetaData.js.map +1 -1
  195. package/dist/esm/parquetjs/parquet-thrift/IndexPageHeader.js +0 -1
  196. package/dist/esm/parquetjs/parquet-thrift/IndexPageHeader.js.map +1 -1
  197. package/dist/esm/parquetjs/parquet-thrift/IntType.js.map +1 -1
  198. package/dist/esm/parquetjs/parquet-thrift/JsonType.js +0 -1
  199. package/dist/esm/parquetjs/parquet-thrift/JsonType.js.map +1 -1
  200. package/dist/esm/parquetjs/parquet-thrift/KeyValue.js.map +1 -1
  201. package/dist/esm/parquetjs/parquet-thrift/ListType.js +0 -1
  202. package/dist/esm/parquetjs/parquet-thrift/ListType.js.map +1 -1
  203. package/dist/esm/parquetjs/parquet-thrift/LogicalType.js.map +1 -1
  204. package/dist/esm/parquetjs/parquet-thrift/MapType.js +0 -1
  205. package/dist/esm/parquetjs/parquet-thrift/MapType.js.map +1 -1
  206. package/dist/esm/parquetjs/parquet-thrift/MicroSeconds.js +0 -1
  207. package/dist/esm/parquetjs/parquet-thrift/MicroSeconds.js.map +1 -1
  208. package/dist/esm/parquetjs/parquet-thrift/MilliSeconds.js +0 -1
  209. package/dist/esm/parquetjs/parquet-thrift/MilliSeconds.js.map +1 -1
  210. package/dist/esm/parquetjs/parquet-thrift/NullType.js +0 -1
  211. package/dist/esm/parquetjs/parquet-thrift/NullType.js.map +1 -1
  212. package/dist/esm/parquetjs/parquet-thrift/OffsetIndex.js.map +1 -1
  213. package/dist/esm/parquetjs/parquet-thrift/PageEncodingStats.js.map +1 -1
  214. package/dist/esm/parquetjs/parquet-thrift/PageHeader.js.map +1 -1
  215. package/dist/esm/parquetjs/parquet-thrift/PageLocation.js.map +1 -1
  216. package/dist/esm/parquetjs/parquet-thrift/PageType.js +3 -4
  217. package/dist/esm/parquetjs/parquet-thrift/PageType.js.map +1 -1
  218. package/dist/esm/parquetjs/parquet-thrift/RowGroup.js.map +1 -1
  219. package/dist/esm/parquetjs/parquet-thrift/SchemaElement.js.map +1 -1
  220. package/dist/esm/parquetjs/parquet-thrift/SortingColumn.js.map +1 -1
  221. package/dist/esm/parquetjs/parquet-thrift/Statistics.js.map +1 -1
  222. package/dist/esm/parquetjs/parquet-thrift/StringType.js +0 -1
  223. package/dist/esm/parquetjs/parquet-thrift/StringType.js.map +1 -1
  224. package/dist/esm/parquetjs/parquet-thrift/TimeType.js.map +1 -1
  225. package/dist/esm/parquetjs/parquet-thrift/TimeUnit.js.map +1 -1
  226. package/dist/esm/parquetjs/parquet-thrift/TimestampType.js.map +1 -1
  227. package/dist/esm/parquetjs/parquet-thrift/Type.js +3 -4
  228. package/dist/esm/parquetjs/parquet-thrift/Type.js.map +1 -1
  229. package/dist/esm/parquetjs/parquet-thrift/TypeDefinedOrder.js +0 -1
  230. package/dist/esm/parquetjs/parquet-thrift/TypeDefinedOrder.js.map +1 -1
  231. package/dist/esm/parquetjs/parquet-thrift/UUIDType.js +0 -1
  232. package/dist/esm/parquetjs/parquet-thrift/UUIDType.js.map +1 -1
  233. package/dist/esm/parquetjs/parquet-thrift/index.js +0 -1
  234. package/dist/esm/parquetjs/parquet-thrift/index.js.map +1 -1
  235. package/dist/esm/parquetjs/parser/decoders.js +1 -18
  236. package/dist/esm/parquetjs/parser/decoders.js.map +1 -1
  237. package/dist/esm/parquetjs/parser/parquet-reader.js +153 -80
  238. package/dist/esm/parquetjs/parser/parquet-reader.js.map +1 -1
  239. package/dist/esm/parquetjs/schema/declare.js +0 -1
  240. package/dist/esm/parquetjs/schema/declare.js.map +1 -1
  241. package/dist/esm/parquetjs/schema/schema.js +0 -10
  242. package/dist/esm/parquetjs/schema/schema.js.map +1 -1
  243. package/dist/esm/parquetjs/schema/shred.js +42 -48
  244. package/dist/esm/parquetjs/schema/shred.js.map +1 -1
  245. package/dist/esm/parquetjs/schema/types.js +6 -10
  246. package/dist/esm/parquetjs/schema/types.js.map +1 -1
  247. package/dist/esm/parquetjs/utils/file-utils.js +1 -2
  248. package/dist/esm/parquetjs/utils/file-utils.js.map +1 -1
  249. package/dist/esm/parquetjs/utils/read-utils.js +0 -8
  250. package/dist/esm/parquetjs/utils/read-utils.js.map +1 -1
  251. package/dist/index.d.ts +24 -4
  252. package/dist/index.d.ts.map +1 -1
  253. package/dist/index.js +26 -9
  254. package/dist/lib/arrow/convert-columns-to-row-group.d.ts +1 -0
  255. package/dist/lib/arrow/convert-columns-to-row-group.d.ts.map +1 -0
  256. package/dist/lib/arrow/convert-columns-to-row-group.js +1 -0
  257. package/dist/lib/arrow/convert-row-group-to-columns.d.ts +4 -0
  258. package/dist/lib/arrow/convert-row-group-to-columns.d.ts.map +1 -0
  259. package/dist/lib/arrow/convert-row-group-to-columns.js +12 -0
  260. package/dist/lib/arrow/convert-schema-from-parquet.d.ts +9 -0
  261. package/dist/lib/arrow/convert-schema-from-parquet.d.ts.map +1 -0
  262. package/dist/lib/{convert-schema.js → arrow/convert-schema-from-parquet.js} +30 -18
  263. package/dist/lib/arrow/convert-schema-to-parquet.d.ts +7 -0
  264. package/dist/lib/arrow/convert-schema-to-parquet.d.ts.map +1 -0
  265. package/dist/lib/arrow/convert-schema-to-parquet.js +72 -0
  266. package/dist/lib/geo/decode-geo-metadata.d.ts +31 -0
  267. package/dist/lib/geo/decode-geo-metadata.d.ts.map +1 -0
  268. package/dist/lib/geo/decode-geo-metadata.js +73 -0
  269. package/dist/lib/geo/geoparquet-schema.d.ts +80 -0
  270. package/dist/lib/geo/geoparquet-schema.d.ts.map +1 -0
  271. package/dist/lib/geo/geoparquet-schema.js +69 -0
  272. package/dist/lib/parsers/parse-parquet-to-columns.d.ts +5 -0
  273. package/dist/lib/parsers/parse-parquet-to-columns.d.ts.map +1 -0
  274. package/dist/lib/parsers/parse-parquet-to-columns.js +40 -0
  275. package/dist/lib/parsers/parse-parquet-to-rows.d.ts +4 -0
  276. package/dist/lib/parsers/parse-parquet-to-rows.d.ts.map +1 -0
  277. package/dist/lib/parsers/parse-parquet-to-rows.js +40 -0
  278. package/dist/parquet-loader.d.ts +2 -0
  279. package/dist/parquet-loader.d.ts.map +1 -1
  280. package/dist/parquet-loader.js +3 -1
  281. package/dist/parquet-worker.js +25 -32
  282. package/dist/parquet-worker.js.map +3 -3
  283. package/dist/parquetjs/compression.d.ts.map +1 -1
  284. package/dist/parquetjs/compression.js +16 -5
  285. package/dist/parquetjs/encoder/{writer.d.ts → parquet-encoder.d.ts} +10 -19
  286. package/dist/parquetjs/encoder/parquet-encoder.d.ts.map +1 -0
  287. package/dist/parquetjs/encoder/{writer.js → parquet-encoder.js} +39 -37
  288. package/dist/parquetjs/parser/parquet-reader.d.ts +47 -57
  289. package/dist/parquetjs/parser/parquet-reader.d.ts.map +1 -1
  290. package/dist/parquetjs/parser/parquet-reader.js +168 -102
  291. package/dist/parquetjs/schema/declare.d.ts +14 -7
  292. package/dist/parquetjs/schema/declare.d.ts.map +1 -1
  293. package/dist/parquetjs/schema/declare.js +2 -0
  294. package/dist/parquetjs/schema/shred.d.ts +115 -0
  295. package/dist/parquetjs/schema/shred.d.ts.map +1 -1
  296. package/dist/parquetjs/schema/shred.js +161 -43
  297. package/dist/parquetjs/schema/types.d.ts +2 -2
  298. package/dist/parquetjs/schema/types.d.ts.map +1 -1
  299. package/dist/parquetjs/schema/types.js +4 -6
  300. package/dist/parquetjs/utils/file-utils.d.ts +3 -4
  301. package/dist/parquetjs/utils/file-utils.d.ts.map +1 -1
  302. package/dist/parquetjs/utils/file-utils.js +2 -5
  303. package/package.json +8 -7
  304. package/src/index.ts +24 -4
  305. package/src/lib/arrow/convert-columns-to-row-group.ts +0 -0
  306. package/src/lib/arrow/convert-row-group-to-columns.ts +15 -0
  307. package/src/lib/{convert-schema.ts → arrow/convert-schema-from-parquet.ts} +41 -22
  308. package/src/lib/arrow/convert-schema-to-parquet.ts +102 -0
  309. package/src/lib/geo/decode-geo-metadata.ts +99 -0
  310. package/src/lib/geo/geoparquet-schema.ts +69 -0
  311. package/src/lib/parsers/parse-parquet-to-columns.ts +49 -0
  312. package/src/lib/parsers/parse-parquet-to-rows.ts +40 -0
  313. package/src/lib/wip/convert-schema-deep.java.disabled +910 -0
  314. package/src/lib/wip/convert-schema-deep.rs.disabled +976 -0
  315. package/src/parquet-loader.ts +5 -1
  316. package/src/parquetjs/compression.ts +14 -1
  317. package/src/parquetjs/encoder/{writer.ts → parquet-encoder.ts} +22 -28
  318. package/src/parquetjs/parser/parquet-reader.ts +239 -122
  319. package/src/parquetjs/schema/declare.ts +17 -9
  320. package/src/parquetjs/schema/shred.ts +157 -28
  321. package/src/parquetjs/schema/types.ts +25 -30
  322. package/src/parquetjs/utils/file-utils.ts +3 -4
  323. package/dist/es5/lib/convert-schema.js.map +0 -1
  324. package/dist/es5/lib/parse-parquet.js +0 -130
  325. package/dist/es5/lib/parse-parquet.js.map +0 -1
  326. package/dist/es5/lib/read-array-buffer.js +0 -43
  327. package/dist/es5/lib/read-array-buffer.js.map +0 -1
  328. package/dist/es5/parquetjs/encoder/writer.js +0 -757
  329. package/dist/es5/parquetjs/encoder/writer.js.map +0 -1
  330. package/dist/es5/parquetjs/file.js +0 -94
  331. package/dist/es5/parquetjs/file.js.map +0 -1
  332. package/dist/es5/parquetjs/parser/parquet-cursor.js +0 -183
  333. package/dist/es5/parquetjs/parser/parquet-cursor.js.map +0 -1
  334. package/dist/es5/parquetjs/parser/parquet-envelope-reader.js +0 -327
  335. package/dist/es5/parquetjs/parser/parquet-envelope-reader.js.map +0 -1
  336. package/dist/es5/parquetjs/utils/buffer-utils.js +0 -19
  337. package/dist/es5/parquetjs/utils/buffer-utils.js.map +0 -1
  338. package/dist/esm/lib/convert-schema.js.map +0 -1
  339. package/dist/esm/lib/parse-parquet.js +0 -25
  340. package/dist/esm/lib/parse-parquet.js.map +0 -1
  341. package/dist/esm/lib/read-array-buffer.js +0 -10
  342. package/dist/esm/lib/read-array-buffer.js.map +0 -1
  343. package/dist/esm/parquetjs/encoder/writer.js.map +0 -1
  344. package/dist/esm/parquetjs/file.js +0 -81
  345. package/dist/esm/parquetjs/file.js.map +0 -1
  346. package/dist/esm/parquetjs/parser/parquet-cursor.js +0 -78
  347. package/dist/esm/parquetjs/parser/parquet-cursor.js.map +0 -1
  348. package/dist/esm/parquetjs/parser/parquet-envelope-reader.js +0 -129
  349. package/dist/esm/parquetjs/parser/parquet-envelope-reader.js.map +0 -1
  350. package/dist/esm/parquetjs/utils/buffer-utils.js +0 -13
  351. package/dist/esm/parquetjs/utils/buffer-utils.js.map +0 -1
  352. package/dist/lib/convert-schema.d.ts +0 -8
  353. package/dist/lib/convert-schema.d.ts.map +0 -1
  354. package/dist/lib/parse-parquet.d.ts +0 -4
  355. package/dist/lib/parse-parquet.d.ts.map +0 -1
  356. package/dist/lib/parse-parquet.js +0 -28
  357. package/dist/lib/read-array-buffer.d.ts +0 -19
  358. package/dist/lib/read-array-buffer.d.ts.map +0 -1
  359. package/dist/lib/read-array-buffer.js +0 -29
  360. package/dist/parquetjs/encoder/writer.d.ts.map +0 -1
  361. package/dist/parquetjs/file.d.ts +0 -10
  362. package/dist/parquetjs/file.d.ts.map +0 -1
  363. package/dist/parquetjs/file.js +0 -99
  364. package/dist/parquetjs/parser/parquet-cursor.d.ts +0 -36
  365. package/dist/parquetjs/parser/parquet-cursor.d.ts.map +0 -1
  366. package/dist/parquetjs/parser/parquet-cursor.js +0 -74
  367. package/dist/parquetjs/parser/parquet-envelope-reader.d.ts +0 -40
  368. package/dist/parquetjs/parser/parquet-envelope-reader.d.ts.map +0 -1
  369. package/dist/parquetjs/parser/parquet-envelope-reader.js +0 -136
  370. package/dist/parquetjs/utils/buffer-utils.d.ts +0 -10
  371. package/dist/parquetjs/utils/buffer-utils.d.ts.map +0 -1
  372. package/dist/parquetjs/utils/buffer-utils.js +0 -22
  373. package/src/lib/parse-parquet.ts +0 -27
  374. package/src/lib/read-array-buffer.ts +0 -31
  375. package/src/parquetjs/file.ts +0 -90
  376. package/src/parquetjs/parser/parquet-cursor.ts +0 -94
  377. package/src/parquetjs/parser/parquet-envelope-reader.ts +0 -199
  378. package/src/parquetjs/utils/buffer-utils.ts +0 -18
@@ -1 +1 @@
1
- {"version":3,"file":"read-utils.js","names":["TBufferedTransport","TCompactProtocol","TFramedTransport","FileMetaData","PageHeader","UFramedTransport","serializeThrift","obj","output","transport","undefined","buf","push","protocol","write","flush","Buffer","concat","decodeThrift","offset","readPos","read","getThriftEnum","klass","value","k","Error","decodeFileMetadata","metadata","length","decodePageHeader","pageHeader","getBitWidth","val","Math","ceil","log2","fieldIndexOf","arr","elem","j","m","i"],"sources":["../../../../src/parquetjs/utils/read-utils.ts"],"sourcesContent":["import {TBufferedTransport, TCompactProtocol, TFramedTransport} from 'thrift';\nimport {FileMetaData, PageHeader} from '../parquet-thrift';\n\nclass UFramedTransport extends TFramedTransport {\n public readPos: number = 0;\n}\n\n/**\n * Helper function that serializes a thrift object into a buffer\n */\nexport function serializeThrift(obj: any): Buffer {\n const output: Buffer[] = [];\n\n const transport = new TBufferedTransport(undefined, (buf) => {\n output.push(buf as Buffer);\n });\n\n const protocol = new TCompactProtocol(transport);\n obj.write(protocol);\n transport.flush();\n\n return Buffer.concat(output);\n}\n\nexport function decodeThrift(obj: any, buf: Buffer, offset?: number) {\n if (!offset) {\n // tslint:disable-next-line:no-parameter-reassignment\n offset = 0;\n }\n\n const transport = new UFramedTransport(buf);\n transport.readPos = offset;\n const protocol = new TCompactProtocol(transport);\n obj.read(protocol);\n return transport.readPos - offset;\n}\n\n/**\n * FIXME not ideal that this is linear\n */\nexport function getThriftEnum(klass: any, value: number | string): string {\n for (const k in klass) {\n if (klass[k] === value) {\n return k;\n }\n }\n throw new Error('Invalid ENUM value');\n}\n\nexport function decodeFileMetadata(buf: Buffer, offset?: number) {\n if (!offset) {\n // tslint:disable-next-line:no-parameter-reassignment\n offset = 0;\n }\n\n const transport = new UFramedTransport(buf);\n transport.readPos = offset;\n const protocol = new TCompactProtocol(transport);\n const metadata = FileMetaData.read(protocol);\n return {length: transport.readPos - offset, metadata};\n}\n\nexport function decodePageHeader(buf: Buffer, offset?: number) {\n if (!offset) {\n // tslint:disable-next-line:no-parameter-reassignment\n offset = 0;\n }\n\n const transport = new UFramedTransport(buf);\n transport.readPos = offset;\n const protocol = new TCompactProtocol(transport);\n const pageHeader = PageHeader.read(protocol);\n return {length: transport.readPos - offset, pageHeader};\n}\n\n/**\n * Get the number of bits required to store a given value\n */\nexport function getBitWidth(val: number): number {\n if (val === 0) {\n return 0;\n // tslint:disable-next-line:no-else-after-return\n }\n return Math.ceil(Math.log2(val + 1));\n}\n\n// Supports MQTT path wildcards\n// + all immediate children\n// # all descendents\nexport function fieldIndexOf(arr: string[][], elem: string[]): number {\n for (let j = 0; j < arr.length; j++) {\n if (arr[j].length > elem.length) {\n continue; // eslint-disable-line no-continue\n }\n let m = true;\n for (let i = 0; i < elem.length; i++) {\n if (arr[j][i] === elem[i] || arr[j][i] === '+' || arr[j][i] === '#') {\n continue; // eslint-disable-line no-continue\n }\n if (i >= arr[j].length && arr[j][arr[j].length - 1] === '#') {\n continue; // eslint-disable-line no-continue\n }\n m = false;\n break;\n }\n if (m) return j;\n }\n return -1;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"read-utils.js","names":["TBufferedTransport","TCompactProtocol","TFramedTransport","FileMetaData","PageHeader","UFramedTransport","constructor","arguments","_defineProperty","serializeThrift","obj","output","transport","undefined","buf","push","protocol","write","flush","Buffer","concat","decodeThrift","offset","readPos","read","getThriftEnum","klass","value","k","Error","decodeFileMetadata","metadata","length","decodePageHeader","pageHeader","getBitWidth","val","Math","ceil","log2","fieldIndexOf","arr","elem","j","m","i"],"sources":["../../../../src/parquetjs/utils/read-utils.ts"],"sourcesContent":["import {TBufferedTransport, TCompactProtocol, TFramedTransport} from 'thrift';\nimport {FileMetaData, PageHeader} from '../parquet-thrift';\n\nclass UFramedTransport extends TFramedTransport {\n public readPos: number = 0;\n}\n\n/**\n * Helper function that serializes a thrift object into a buffer\n */\nexport function serializeThrift(obj: any): Buffer {\n const output: Buffer[] = [];\n\n const transport = new TBufferedTransport(undefined, (buf) => {\n output.push(buf as Buffer);\n });\n\n const protocol = new TCompactProtocol(transport);\n obj.write(protocol);\n transport.flush();\n\n return Buffer.concat(output);\n}\n\nexport function decodeThrift(obj: any, buf: Buffer, offset?: number) {\n if (!offset) {\n // tslint:disable-next-line:no-parameter-reassignment\n offset = 0;\n }\n\n const transport = new UFramedTransport(buf);\n transport.readPos = offset;\n const protocol = new TCompactProtocol(transport);\n obj.read(protocol);\n return transport.readPos - offset;\n}\n\n/**\n * FIXME not ideal that this is linear\n */\nexport function getThriftEnum(klass: any, value: number | string): string {\n for (const k in klass) {\n if (klass[k] === value) {\n return k;\n }\n }\n throw new Error('Invalid ENUM value');\n}\n\nexport function decodeFileMetadata(buf: Buffer, offset?: number) {\n if (!offset) {\n // tslint:disable-next-line:no-parameter-reassignment\n offset = 0;\n }\n\n const transport = new UFramedTransport(buf);\n transport.readPos = offset;\n const protocol = new TCompactProtocol(transport);\n const metadata = FileMetaData.read(protocol);\n return {length: transport.readPos - offset, metadata};\n}\n\nexport function decodePageHeader(buf: Buffer, offset?: number) {\n if (!offset) {\n // tslint:disable-next-line:no-parameter-reassignment\n offset = 0;\n }\n\n const transport = new UFramedTransport(buf);\n transport.readPos = offset;\n const protocol = new TCompactProtocol(transport);\n const pageHeader = PageHeader.read(protocol);\n return {length: transport.readPos - offset, pageHeader};\n}\n\n/**\n * Get the number of bits required to store a given value\n */\nexport function getBitWidth(val: number): number {\n if (val === 0) {\n return 0;\n // tslint:disable-next-line:no-else-after-return\n }\n return Math.ceil(Math.log2(val + 1));\n}\n\n// Supports MQTT path wildcards\n// + all immediate children\n// # all descendents\nexport function fieldIndexOf(arr: string[][], elem: string[]): number {\n for (let j = 0; j < arr.length; j++) {\n if (arr[j].length > elem.length) {\n continue; // eslint-disable-line no-continue\n }\n let m = true;\n for (let i = 0; i < elem.length; i++) {\n if (arr[j][i] === elem[i] || arr[j][i] === '+' || arr[j][i] === '#') {\n continue; // eslint-disable-line no-continue\n }\n if (i >= arr[j].length && arr[j][arr[j].length - 1] === '#') {\n continue; // eslint-disable-line no-continue\n }\n m = false;\n break;\n }\n if (m) return j;\n }\n return -1;\n}\n"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import type { LoaderWithParser } from '@loaders.gl/loader-utils';
2
2
  import { ParquetWasmLoader as ParquetWasmWorkerLoader } from './parquet-wasm-loader';
3
3
  import { ParquetLoader as ParquetWorkerLoader } from './parquet-loader';
4
- import { parseParquet, parseParquetFileInBatches } from './lib/parse-parquet';
4
+ import { parseParquet, parseParquetFileInBatches } from './lib/parsers/parse-parquet-to-rows';
5
+ import { parseParquetInColumns, parseParquetFileInColumnarBatches } from './lib/parsers/parse-parquet-to-columns';
5
6
  import { parseParquet as parseParquetWasm } from './lib/wasm/parse-parquet-wasm';
6
7
  export { ParquetWorkerLoader, ParquetWasmWorkerLoader };
7
8
  /** ParquetJS table loader */
@@ -10,7 +11,23 @@ export declare const ParquetLoader: {
10
11
  parseFileInBatches: typeof parseParquetFileInBatches;
11
12
  name: string;
12
13
  id: string;
13
- module: string;
14
+ module: string; /** ParquetJS table loader */
15
+ version: any;
16
+ worker: boolean;
17
+ category: string;
18
+ extensions: string[];
19
+ mimeTypes: string[];
20
+ binary: boolean;
21
+ tests: string[];
22
+ options: import("./parquet-loader").ParquetLoaderOptions;
23
+ };
24
+ /** ParquetJS table loader */
25
+ export declare const ParquetColumnarLoader: {
26
+ parse: typeof parseParquetInColumns;
27
+ parseFileInBatches: typeof parseParquetFileInColumnarBatches;
28
+ name: string;
29
+ id: string;
30
+ module: string; /** ParquetJS table loader */
14
31
  version: any;
15
32
  worker: boolean;
16
33
  category: string;
@@ -39,7 +56,10 @@ export { ParquetWasmWriter } from './parquet-wasm-writer';
39
56
  export { preloadCompressions } from './parquetjs/compression';
40
57
  export { ParquetSchema } from './parquetjs/schema/schema';
41
58
  export { ParquetReader } from './parquetjs/parser/parquet-reader';
42
- export { ParquetEnvelopeReader } from './parquetjs/parser/parquet-envelope-reader';
43
- export { convertParquetToArrowSchema } from './lib/convert-schema';
59
+ export { ParquetEncoder } from './parquetjs/encoder/parquet-encoder';
60
+ export { convertSchemaFromParquet, convertSchemaFromParquet as convertParquetToArrowSchema } from './lib/arrow/convert-schema-from-parquet';
44
61
  export declare const _typecheckParquetLoader: LoaderWithParser;
62
+ export { default as geoJSONSchema } from './lib/geo/geoparquet-schema';
63
+ export type { GeoMetadata } from './lib/geo/decode-geo-metadata';
64
+ export { getGeoMetadata, setGeoMetadata, unpackGeoMetadata } from './lib/geo/decode-geo-metadata';
45
65
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAI/D,OAAO,EAAC,iBAAiB,IAAI,uBAAuB,EAAC,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAC,aAAa,IAAI,mBAAmB,EAAC,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAC,YAAY,EAAE,yBAAyB,EAAC,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAC,YAAY,IAAI,gBAAgB,EAAC,MAAM,+BAA+B,CAAC;AAE/E,OAAO,EAAC,mBAAmB,EAAE,uBAAuB,EAAC,CAAC;AAEtD,6BAA6B;AAC7B,eAAO,MAAM,aAAa;;;;;;;;;;;;;;CAIzB,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAG7B,CAAC;AAIF,OAAO,EAAC,aAAa,IAAI,cAAc,EAAC,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AAIxD,OAAO,EAAC,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAC,aAAa,EAAC,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAC,qBAAqB,EAAC,MAAM,4CAA4C,CAAC;AAEjF,OAAO,EAAC,2BAA2B,EAAC,MAAM,sBAAsB,CAAC;AAGjE,eAAO,MAAM,uBAAuB,EAAE,gBAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAI/D,OAAO,EAAC,iBAAiB,IAAI,uBAAuB,EAAC,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAC,aAAa,IAAI,mBAAmB,EAAC,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAC,YAAY,EAAE,yBAAyB,EAAC,MAAM,qCAAqC,CAAC;AAC5F,OAAO,EACL,qBAAqB,EACrB,iCAAiC,EAClC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAC,YAAY,IAAI,gBAAgB,EAAC,MAAM,+BAA+B,CAAC;AAE/E,OAAO,EAAC,mBAAmB,EAAE,uBAAuB,EAAC,CAAC;AAEtD,6BAA6B;AAC7B,eAAO,MAAM,aAAa;;;;;oBAM1B,6BAA6B;;;;;;;;;CAF5B,CAAC;AAEF,6BAA6B;AAC7B,eAAO,MAAM,qBAAqB;;;;;oBADlC,6BAA6B;;;;;;;;;CAK5B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAG7B,CAAC;AAIF,OAAO,EAAC,aAAa,IAAI,cAAc,EAAC,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AAIxD,OAAO,EAAC,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAC,aAAa,EAAC,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAC,cAAc,EAAC,MAAM,qCAAqC,CAAC;AAEnE,OAAO,EACL,wBAAwB,EACxB,wBAAwB,IAAI,2BAA2B,EACxD,MAAM,yCAAyC,CAAC;AAGjD,eAAO,MAAM,uBAAuB,EAAE,gBAAgC,CAAC;AAGvE,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,MAAM,6BAA6B,CAAC;AAErE,YAAY,EAAC,WAAW,EAAC,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAC,MAAM,+BAA+B,CAAC"}
package/dist/index.js CHANGED
@@ -1,18 +1,28 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports._typecheckParquetLoader = exports.convertParquetToArrowSchema = exports.ParquetEnvelopeReader = exports.ParquetReader = exports.ParquetSchema = exports.preloadCompressions = exports.ParquetWasmWriter = exports._ParquetWriter = exports.ParquetWasmLoader = exports.ParquetLoader = exports.ParquetWasmWorkerLoader = exports.ParquetWorkerLoader = void 0;
6
+ exports.unpackGeoMetadata = exports.setGeoMetadata = exports.getGeoMetadata = exports.geoJSONSchema = exports._typecheckParquetLoader = exports.convertParquetToArrowSchema = exports.convertSchemaFromParquet = exports.ParquetEncoder = exports.ParquetReader = exports.ParquetSchema = exports.preloadCompressions = exports.ParquetWasmWriter = exports._ParquetWriter = exports.ParquetWasmLoader = exports.ParquetColumnarLoader = exports.ParquetLoader = exports.ParquetWasmWorkerLoader = exports.ParquetWorkerLoader = void 0;
4
7
  // ParquetLoader
5
8
  const parquet_wasm_loader_1 = require("./parquet-wasm-loader");
6
9
  Object.defineProperty(exports, "ParquetWasmWorkerLoader", { enumerable: true, get: function () { return parquet_wasm_loader_1.ParquetWasmLoader; } });
7
10
  const parquet_loader_1 = require("./parquet-loader");
8
11
  Object.defineProperty(exports, "ParquetWorkerLoader", { enumerable: true, get: function () { return parquet_loader_1.ParquetLoader; } });
9
- const parse_parquet_1 = require("./lib/parse-parquet");
12
+ const parse_parquet_to_rows_1 = require("./lib/parsers/parse-parquet-to-rows");
13
+ const parse_parquet_to_columns_1 = require("./lib/parsers/parse-parquet-to-columns");
10
14
  const parse_parquet_wasm_1 = require("./lib/wasm/parse-parquet-wasm");
11
15
  /** ParquetJS table loader */
12
16
  exports.ParquetLoader = {
13
17
  ...parquet_loader_1.ParquetLoader,
14
- parse: parse_parquet_1.parseParquet,
15
- parseFileInBatches: parse_parquet_1.parseParquetFileInBatches
18
+ parse: parse_parquet_to_rows_1.parseParquet,
19
+ parseFileInBatches: parse_parquet_to_rows_1.parseParquetFileInBatches
20
+ };
21
+ /** ParquetJS table loader */
22
+ exports.ParquetColumnarLoader = {
23
+ ...parquet_loader_1.ParquetLoader,
24
+ parse: parse_parquet_to_columns_1.parseParquetInColumns,
25
+ parseFileInBatches: parse_parquet_to_columns_1.parseParquetFileInColumnarBatches
16
26
  };
17
27
  exports.ParquetWasmLoader = {
18
28
  ...parquet_wasm_loader_1.ParquetWasmLoader,
@@ -30,10 +40,17 @@ var schema_1 = require("./parquetjs/schema/schema");
30
40
  Object.defineProperty(exports, "ParquetSchema", { enumerable: true, get: function () { return schema_1.ParquetSchema; } });
31
41
  var parquet_reader_1 = require("./parquetjs/parser/parquet-reader");
32
42
  Object.defineProperty(exports, "ParquetReader", { enumerable: true, get: function () { return parquet_reader_1.ParquetReader; } });
33
- var parquet_envelope_reader_1 = require("./parquetjs/parser/parquet-envelope-reader");
34
- Object.defineProperty(exports, "ParquetEnvelopeReader", { enumerable: true, get: function () { return parquet_envelope_reader_1.ParquetEnvelopeReader; } });
35
- // export {ParquetWriter, ParquetEnvelopeWriter, ParquetTransformer} from './parquetjs/encoder/writer';
36
- var convert_schema_1 = require("./lib/convert-schema");
37
- Object.defineProperty(exports, "convertParquetToArrowSchema", { enumerable: true, get: function () { return convert_schema_1.convertParquetToArrowSchema; } });
43
+ var parquet_encoder_1 = require("./parquetjs/encoder/parquet-encoder");
44
+ Object.defineProperty(exports, "ParquetEncoder", { enumerable: true, get: function () { return parquet_encoder_1.ParquetEncoder; } });
45
+ var convert_schema_from_parquet_1 = require("./lib/arrow/convert-schema-from-parquet");
46
+ Object.defineProperty(exports, "convertSchemaFromParquet", { enumerable: true, get: function () { return convert_schema_from_parquet_1.convertSchemaFromParquet; } });
47
+ Object.defineProperty(exports, "convertParquetToArrowSchema", { enumerable: true, get: function () { return convert_schema_from_parquet_1.convertSchemaFromParquet; } });
38
48
  // TESTS
39
49
  exports._typecheckParquetLoader = exports.ParquetLoader;
50
+ // Geo Metadata
51
+ var geoparquet_schema_1 = require("./lib/geo/geoparquet-schema");
52
+ Object.defineProperty(exports, "geoJSONSchema", { enumerable: true, get: function () { return __importDefault(geoparquet_schema_1).default; } });
53
+ var decode_geo_metadata_1 = require("./lib/geo/decode-geo-metadata");
54
+ Object.defineProperty(exports, "getGeoMetadata", { enumerable: true, get: function () { return decode_geo_metadata_1.getGeoMetadata; } });
55
+ Object.defineProperty(exports, "setGeoMetadata", { enumerable: true, get: function () { return decode_geo_metadata_1.setGeoMetadata; } });
56
+ Object.defineProperty(exports, "unpackGeoMetadata", { enumerable: true, get: function () { return decode_geo_metadata_1.unpackGeoMetadata; } });
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=convert-columns-to-row-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert-columns-to-row-group.d.ts","sourceRoot":"","sources":["../../../src/lib/arrow/convert-columns-to-row-group.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,4 @@
1
+ import { Schema } from '@loaders.gl/schema';
2
+ import { ParquetBuffer } from '@loaders.gl/parquet/parquetjs/schema/declare';
3
+ export declare function convertParquetRowGroupToColumns(schema: Schema, rowGroup: ParquetBuffer): Record<string, any[]>;
4
+ //# sourceMappingURL=convert-row-group-to-columns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert-row-group-to-columns.d.ts","sourceRoot":"","sources":["../../../src/lib/arrow/convert-row-group-to-columns.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAC,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAC,aAAa,EAAC,MAAM,8CAA8C,CAAC;AAE3E,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,aAAa,GACtB,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAMvB"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ // loaders.gl, MIT license
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.convertParquetRowGroupToColumns = void 0;
5
+ function convertParquetRowGroupToColumns(schema, rowGroup) {
6
+ const columns = {};
7
+ for (const [columnName, data] of Object.entries(rowGroup.columnData)) {
8
+ columns[columnName] = columns[columnName] || data.values;
9
+ }
10
+ return columns;
11
+ }
12
+ exports.convertParquetRowGroupToColumns = convertParquetRowGroupToColumns;
@@ -0,0 +1,9 @@
1
+ import type { ParquetSchema } from '../../parquetjs/schema/schema';
2
+ import type { ParquetType } from '../../parquetjs/schema/declare';
3
+ import { FileMetaData } from '@loaders.gl/parquet/parquetjs/parquet-thrift';
4
+ import { Schema, DataType } from '@loaders.gl/schema';
5
+ export declare const PARQUET_TYPE_MAPPING: {
6
+ [type in ParquetType]: typeof DataType;
7
+ };
8
+ export declare function convertSchemaFromParquet(parquetSchema: ParquetSchema, parquetMetadata?: FileMetaData): Schema;
9
+ //# sourceMappingURL=convert-schema-from-parquet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert-schema-from-parquet.d.ts","sourceRoot":"","sources":["../../../src/lib/arrow/convert-schema-from-parquet.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAgC,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAC/F,OAAO,EAAC,YAAY,EAAC,MAAM,8CAA8C,CAAC;AAE1E,OAAO,EACL,MAAM,EAGN,QAAQ,EAaT,MAAM,oBAAoB,CAAC;AAE5B,eAAO,MAAM,oBAAoB,EAAE;KAAE,IAAI,IAAI,WAAW,GAAG,OAAO,QAAQ;CA+BzE,CAAC;AAEF,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,aAAa,EAC5B,eAAe,CAAC,EAAE,YAAY,GAC7B,MAAM,CAIR"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
+ // loaders.gl, MIT license
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.convertParquetToArrowSchema = exports.PARQUET_TYPE_MAPPING = void 0;
4
+ exports.convertSchemaFromParquet = exports.PARQUET_TYPE_MAPPING = void 0;
4
5
  const schema_1 = require("@loaders.gl/schema");
5
6
  exports.PARQUET_TYPE_MAPPING = {
6
7
  BOOLEAN: schema_1.Bool,
@@ -27,36 +28,26 @@ exports.PARQUET_TYPE_MAPPING = {
27
28
  INT_64: schema_1.Int64,
28
29
  JSON: schema_1.Binary,
29
30
  BSON: schema_1.Binary,
30
- // TODO check interal type
31
+ // TODO check interval type
31
32
  INTERVAL: schema_1.Binary,
32
33
  DECIMAL_INT32: schema_1.Float32,
33
34
  DECIMAL_INT64: schema_1.Float64,
34
35
  DECIMAL_BYTE_ARRAY: schema_1.Float64,
35
36
  DECIMAL_FIXED_LEN_BYTE_ARRAY: schema_1.Float64
36
37
  };
37
- function convertParquetToArrowSchema(parquetSchema) {
38
+ function convertSchemaFromParquet(parquetSchema, parquetMetadata) {
38
39
  const fields = getFields(parquetSchema.schema);
39
- // TODO add metadata if needed.
40
- return new schema_1.Schema(fields);
41
- }
42
- exports.convertParquetToArrowSchema = convertParquetToArrowSchema;
43
- function getFieldMetadata(field) {
44
- const metadata = new Map();
45
- for (const key in field) {
46
- if (key !== 'name') {
47
- const value = typeof field[key] !== 'string' ? JSON.stringify(field[key]) : field[key];
48
- metadata.set(key, value);
49
- }
50
- }
51
- return metadata;
40
+ const metadata = parquetMetadata && getSchemaMetadata(parquetMetadata);
41
+ return new schema_1.Schema(fields, metadata);
52
42
  }
43
+ exports.convertSchemaFromParquet = convertSchemaFromParquet;
53
44
  function getFields(schema) {
54
45
  const fields = [];
55
46
  for (const name in schema) {
56
47
  const field = schema[name];
57
48
  if (field.fields) {
58
- const childField = getFields(field.fields);
59
- const nestedField = new schema_1.Field(name, new schema_1.Struct(childField), field.optional);
49
+ const childFields = getFields(field.fields);
50
+ const nestedField = new schema_1.Field(name, new schema_1.Struct(childFields), field.optional);
60
51
  fields.push(nestedField);
61
52
  }
62
53
  else {
@@ -68,3 +59,24 @@ function getFields(schema) {
68
59
  }
69
60
  return fields;
70
61
  }
62
+ function getFieldMetadata(field) {
63
+ const metadata = new Map();
64
+ for (const key in field) {
65
+ if (key !== 'name') {
66
+ let value = field[key] || '';
67
+ value = typeof field[key] !== 'string' ? JSON.stringify(field[key]) : field[key];
68
+ metadata.set(key, value);
69
+ }
70
+ }
71
+ return metadata;
72
+ }
73
+ function getSchemaMetadata(parquetMetadata) {
74
+ const metadata = new Map();
75
+ const keyValueList = parquetMetadata.key_value_metadata || [];
76
+ for (const { key, value } of keyValueList) {
77
+ if (typeof value === 'string') {
78
+ metadata.set(key, value);
79
+ }
80
+ }
81
+ return metadata;
82
+ }
@@ -0,0 +1,7 @@
1
+ import type { ParquetType } from '../../parquetjs/schema/declare';
2
+ import { Schema, DataType } from '@loaders.gl/schema';
3
+ export declare const PARQUET_TYPE_MAPPING: {
4
+ [type in ParquetType]: typeof DataType;
5
+ };
6
+ export declare function convertToParquetSchema(schema: Schema): Schema;
7
+ //# sourceMappingURL=convert-schema-to-parquet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert-schema-to-parquet.d.ts","sourceRoot":"","sources":["../../../src/lib/arrow/convert-schema-to-parquet.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,WAAW,EACZ,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,MAAM,EAGN,QAAQ,EAaT,MAAM,oBAAoB,CAAC;AAE5B,eAAO,MAAM,oBAAoB,EAAE;KAAE,IAAI,IAAI,WAAW,GAAG,OAAO,QAAQ;CA+BzE,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAK7D"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ // loaders.gl, MIT license
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.convertToParquetSchema = exports.PARQUET_TYPE_MAPPING = void 0;
5
+ const schema_1 = require("@loaders.gl/schema");
6
+ exports.PARQUET_TYPE_MAPPING = {
7
+ BOOLEAN: schema_1.Bool,
8
+ INT32: schema_1.Int32,
9
+ INT64: schema_1.Float64,
10
+ INT96: schema_1.Float64,
11
+ FLOAT: schema_1.Float32,
12
+ DOUBLE: schema_1.Float64,
13
+ BYTE_ARRAY: schema_1.Binary,
14
+ FIXED_LEN_BYTE_ARRAY: schema_1.Binary,
15
+ UTF8: schema_1.Utf8,
16
+ DATE: schema_1.Int32,
17
+ TIME_MILLIS: schema_1.Int64,
18
+ TIME_MICROS: schema_1.Int64,
19
+ TIMESTAMP_MILLIS: schema_1.Int64,
20
+ TIMESTAMP_MICROS: schema_1.Int64,
21
+ UINT_8: schema_1.Int32,
22
+ UINT_16: schema_1.Uint16,
23
+ UINT_32: schema_1.Uint32,
24
+ UINT_64: schema_1.Uint64,
25
+ INT_8: schema_1.Int8,
26
+ INT_16: schema_1.Int16,
27
+ INT_32: schema_1.Int32,
28
+ INT_64: schema_1.Int64,
29
+ JSON: schema_1.Binary,
30
+ BSON: schema_1.Binary,
31
+ // TODO check interval type
32
+ INTERVAL: schema_1.Binary,
33
+ DECIMAL_INT32: schema_1.Float32,
34
+ DECIMAL_INT64: schema_1.Float64,
35
+ DECIMAL_BYTE_ARRAY: schema_1.Float64,
36
+ DECIMAL_FIXED_LEN_BYTE_ARRAY: schema_1.Float64
37
+ };
38
+ function convertToParquetSchema(schema) {
39
+ const fields = []; // getFields(schema.fields);
40
+ // TODO add metadata if needed.
41
+ return new schema_1.Schema(fields);
42
+ }
43
+ exports.convertToParquetSchema = convertToParquetSchema;
44
+ // function getFields(schema: Field[]): Definition[] {
45
+ // const fields: Field[] = [];
46
+ // for (const name in schema) {
47
+ // const field = schema[name];
48
+ // // @ts-ignore
49
+ // const children = field.children as DataType[];
50
+ // if (children) {
51
+ // const childField = getFields(field.fields);
52
+ // const nestedField = new Field(name, new Struct(childField), field.optional);
53
+ // fields.push(nestedField);
54
+ // } else {
55
+ // const FieldType = PARQUET_TYPE_MAPPING[field.type];
56
+ // const metadata = getFieldMetadata(field);
57
+ // const arrowField = new Field(name, new FieldType(), field.optional, metadata);
58
+ // fields.push(arrowField);
59
+ // }
60
+ // }
61
+ // return fields;
62
+ // }
63
+ // function getFieldMetadata(field: ParquetField): Map<string, string> {
64
+ // const metadata = new Map();
65
+ // for (const key in field) {
66
+ // if (key !== 'name') {
67
+ // const value = typeof field[key] !== 'string' ? JSON.stringify(field[key]) : field[key];
68
+ // metadata.set(key, value);
69
+ // }
70
+ // }
71
+ // return metadata;
72
+ // }
@@ -0,0 +1,31 @@
1
+ import { Schema } from '@loaders.gl/schema';
2
+ /** A geoarrow / geoparquet geo metadata object (stored in stringified form in the top level metadata 'geo' key) */
3
+ export type GeoMetadata = {
4
+ version?: string;
5
+ primary_column?: string;
6
+ columns: Record<string, GeoColumnMetadata>;
7
+ [key: string]: unknown;
8
+ };
9
+ /** A geoarrow / geoparquet geo metadata for one geometry column */
10
+ export type GeoColumnMetadata = {
11
+ bounding_box?: [number, number, number, number] | [number, number, number, number, number, number];
12
+ crs?: string;
13
+ geometry_type?: string[];
14
+ edges?: string;
15
+ [key: string]: unknown;
16
+ };
17
+ /**
18
+ * Reads the GeoMetadata object from the metadata
19
+ * @note geoarrow / parquet schema is stringified into a single key-value pair in the parquet metadata */
20
+ export declare function getGeoMetadata(schema: Schema): GeoMetadata | null;
21
+ /**
22
+ * Stores a geoarrow / geoparquet geo metadata object in the schema
23
+ * @note geoarrow / geoparquet geo metadata is a single stringified JSON field
24
+ */
25
+ export declare function setGeoMetadata(schema: Schema, geoMetadata: GeoMetadata): void;
26
+ /**
27
+ * Unpacks geo metadata into separate metadata fields (parses the long JSON string)
28
+ * @note geoarrow / parquet schema is stringified into a single key-value pair in the parquet metadata
29
+ */
30
+ export declare function unpackGeoMetadata(schema: Schema): void;
31
+ //# sourceMappingURL=decode-geo-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decode-geo-metadata.d.ts","sourceRoot":"","sources":["../../../src/lib/geo/decode-geo-metadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAQ,MAAM,oBAAoB,CAAC;AAIjD,mHAAmH;AACnH,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC3C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,oEAAoE;AACpE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,YAAY,CAAC,EACT,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAChC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF;;yGAEyG;AACzG,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAYjE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI,CAG7E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CA6BtD"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.unpackGeoMetadata = exports.setGeoMetadata = exports.getGeoMetadata = void 0;
4
+ /**
5
+ * Reads the GeoMetadata object from the metadata
6
+ * @note geoarrow / parquet schema is stringified into a single key-value pair in the parquet metadata */
7
+ function getGeoMetadata(schema) {
8
+ const stringifiedGeoMetadata = schema.metadata.get('geo');
9
+ if (!stringifiedGeoMetadata) {
10
+ return null;
11
+ }
12
+ try {
13
+ const geoMetadata = JSON.parse(stringifiedGeoMetadata);
14
+ return geoMetadata;
15
+ }
16
+ catch {
17
+ return null;
18
+ }
19
+ }
20
+ exports.getGeoMetadata = getGeoMetadata;
21
+ /**
22
+ * Stores a geoarrow / geoparquet geo metadata object in the schema
23
+ * @note geoarrow / geoparquet geo metadata is a single stringified JSON field
24
+ */
25
+ function setGeoMetadata(schema, geoMetadata) {
26
+ const stringifiedGeoMetadata = JSON.stringify(geoMetadata);
27
+ schema.metadata.set('geo', stringifiedGeoMetadata);
28
+ }
29
+ exports.setGeoMetadata = setGeoMetadata;
30
+ /**
31
+ * Unpacks geo metadata into separate metadata fields (parses the long JSON string)
32
+ * @note geoarrow / parquet schema is stringified into a single key-value pair in the parquet metadata
33
+ */
34
+ function unpackGeoMetadata(schema) {
35
+ const geoMetadata = getGeoMetadata(schema);
36
+ if (!geoMetadata) {
37
+ return;
38
+ }
39
+ // Store Parquet Schema Level Metadata
40
+ const { version, primary_column, columns } = geoMetadata;
41
+ if (version) {
42
+ schema.metadata.set('geo.version', version);
43
+ }
44
+ if (primary_column) {
45
+ schema.metadata.set('geo.primary_column', primary_column);
46
+ }
47
+ // store column names as comma separated list
48
+ schema.metadata.set('geo.columns', Object.keys(columns || {}).join(''));
49
+ for (const [columnName, columnMetadata] of Object.entries(columns || {})) {
50
+ const field = schema.fields.find((field) => field.name === columnName);
51
+ if (field) {
52
+ if (field.name === primary_column) {
53
+ field.metadata.set('geo.primary_field', 'true');
54
+ }
55
+ unpackGeoFieldMetadata(field, columnMetadata);
56
+ }
57
+ }
58
+ }
59
+ exports.unpackGeoMetadata = unpackGeoMetadata;
60
+ function unpackGeoFieldMetadata(field, columnMetadata) {
61
+ for (const [key, value] of Object.entries(columnMetadata || {})) {
62
+ switch (key) {
63
+ case 'geometry_type':
64
+ field.metadata.set(`geo.${key}`, value.join(','));
65
+ break;
66
+ case 'bbox':
67
+ case 'crs':
68
+ case 'edges':
69
+ default:
70
+ field.metadata.set(`geo.${key}`, typeof value === 'string' ? value : JSON.stringify(value));
71
+ }
72
+ }
73
+ }
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Geoparquet JSON schema for geo metadata
3
+ * @see https://github.com/geoarrow/geoarrow/blob/main/metadata.md
4
+ * @see https://github.com/opengeospatial/geoparquet/blob/main/format-specs/geoparquet.md
5
+ */
6
+ declare const _default: {
7
+ $schema: string;
8
+ title: string;
9
+ description: string;
10
+ type: string;
11
+ required: string[];
12
+ properties: {
13
+ version: {
14
+ type: string;
15
+ const: string;
16
+ };
17
+ primary_column: {
18
+ type: string;
19
+ minLength: number;
20
+ };
21
+ columns: {
22
+ type: string;
23
+ minProperties: number;
24
+ patternProperties: {
25
+ '.+': {
26
+ type: string;
27
+ required: string[];
28
+ properties: {
29
+ encoding: {
30
+ type: string;
31
+ const: string;
32
+ };
33
+ geometry_types: {
34
+ type: string;
35
+ uniqueItems: boolean;
36
+ items: {
37
+ type: string;
38
+ pattern: string;
39
+ };
40
+ };
41
+ crs: {
42
+ oneOf: ({
43
+ $ref: string;
44
+ type?: undefined;
45
+ } | {
46
+ type: string;
47
+ $ref?: undefined;
48
+ })[];
49
+ };
50
+ edges: {
51
+ type: string;
52
+ enum: string[];
53
+ };
54
+ orientation: {
55
+ type: string;
56
+ const: string;
57
+ };
58
+ bbox: {
59
+ type: string;
60
+ items: {
61
+ type: string;
62
+ };
63
+ oneOf: {
64
+ description: string;
65
+ minItems: number;
66
+ maxItems: number;
67
+ }[];
68
+ };
69
+ epoch: {
70
+ type: string;
71
+ };
72
+ };
73
+ };
74
+ };
75
+ additionalProperties: boolean;
76
+ };
77
+ };
78
+ };
79
+ export default _default;
80
+ //# sourceMappingURL=geoparquet-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geoparquet-schema.d.ts","sourceRoot":"","sources":["../../../src/lib/geo/geoparquet-schema.ts"],"names":[],"mappings":"AAIA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACH,wBA2DE"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ // loaders.gl, MIT license
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ /* eslint-disable camelcase */
5
+ /**
6
+ * Geoparquet JSON schema for geo metadata
7
+ * @see https://github.com/geoarrow/geoarrow/blob/main/metadata.md
8
+ * @see https://github.com/opengeospatial/geoparquet/blob/main/format-specs/geoparquet.md
9
+ */
10
+ exports.default = {
11
+ $schema: 'http://json-schema.org/draft-07/schema#',
12
+ title: 'GeoParquet',
13
+ description: 'Parquet metadata included in the geo field.',
14
+ type: 'object',
15
+ required: ['version', 'primary_column', 'columns'],
16
+ properties: {
17
+ version: { type: 'string', const: '1.0.0-beta.1' },
18
+ primary_column: { type: 'string', minLength: 1 },
19
+ columns: {
20
+ type: 'object',
21
+ minProperties: 1,
22
+ patternProperties: {
23
+ '.+': {
24
+ type: 'object',
25
+ required: ['encoding', 'geometry_types'],
26
+ properties: {
27
+ encoding: { type: 'string', const: 'WKB' },
28
+ geometry_types: {
29
+ type: 'array',
30
+ uniqueItems: true,
31
+ items: {
32
+ type: 'string',
33
+ pattern: '^(GeometryCollection|(Multi)?(Point|LineString|Polygon))( Z)?$'
34
+ }
35
+ },
36
+ crs: {
37
+ oneOf: [
38
+ {
39
+ $ref: 'https://proj.org/schemas/v0.5/projjson.schema.json'
40
+ },
41
+ { type: 'null' }
42
+ ]
43
+ },
44
+ edges: { type: 'string', enum: ['planar', 'spherical'] },
45
+ orientation: { type: 'string', const: 'counterclockwise' },
46
+ bbox: {
47
+ type: 'array',
48
+ items: { type: 'number' },
49
+ oneOf: [
50
+ {
51
+ description: '2D bbox consisting of (xmin, ymin, xmax, ymax)',
52
+ minItems: 4,
53
+ maxItems: 4
54
+ },
55
+ {
56
+ description: '3D bbox consisting of (xmin, ymin, zmin, xmax, ymax, zmax)',
57
+ minItems: 6,
58
+ maxItems: 6
59
+ }
60
+ ]
61
+ },
62
+ epoch: { type: 'number' }
63
+ }
64
+ }
65
+ },
66
+ additionalProperties: false
67
+ }
68
+ }
69
+ };
@@ -0,0 +1,5 @@
1
+ import { ColumnarTableBatch } from '@loaders.gl/schema';
2
+ import type { ParquetLoaderOptions } from '../../parquet-loader';
3
+ export declare function parseParquetInColumns(arrayBuffer: ArrayBuffer, options?: ParquetLoaderOptions): Promise<ColumnarTableBatch | null>;
4
+ export declare function parseParquetFileInColumnarBatches(blob: Blob, options?: ParquetLoaderOptions): AsyncIterable<ColumnarTableBatch>;
5
+ //# sourceMappingURL=parse-parquet-to-columns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-parquet-to-columns.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-columns.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,kBAAkB,EAAS,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAO/D,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,oBAAoB,sCAO/B;AAED,wBAAuB,iCAAiC,CACtD,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE,oBAAoB,GAC7B,aAAa,CAAC,kBAAkB,CAAC,CAWnC"}