@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":"decoders.js","names":["decodeDataPages","buffer","options","cursor","offset","size","length","data","rlevels","dlevels","values","pageHeaders","count","dictionary","numValues","Number","decodePage","page","map","value","index","push","undefined","pageHeader","decodePageHeader","pageType","getThriftEnum","PageType","type","decodeDataPage","decodeDataPageV2","decodeDictionaryPage","Error","decodeSchema","schemaElements","len","schema","next","i","schemaElement","repetitionType","FieldRepetitionType","repetition_type","optional","repeated","num_children","res","name","fields","Type","logicalType","converted_type","ConvertedType","typeLength","type_length","presision","precision","scale","decodeValues","encoding","opts","PARQUET_CODECS","header","cursorEnd","compressed_page_size","valueCount","data_page_header","num_values","dataCursor","compression","decompress","slice","uncompressed_page_size","valuesBuf","rLevelEncoding","Encoding","repetition_level_encoding","rLevels","Array","column","rLevelMax","PARQUET_RDLVL_TYPE","bitWidth","getBitWidth","disableEnvelope","fill","dLevelEncoding","definition_level_encoding","dLevels","dLevelMax","valueCountNonNull","dlvl","valueEncoding","decodeOptions","primitiveType","data_page_header_v2","num_nulls","PARQUET_RDLVL_ENCODING","valuesBufCursor","is_compressed","dictCursor","dictionary_page_header","d","toString"],"sources":["../../../../src/parquetjs/parser/decoders.ts"],"sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\nimport {\n ParquetCodec,\n ParquetData,\n ParquetOptions,\n ParquetPageData,\n ParquetType,\n PrimitiveType,\n SchemaDefinition\n} from '../schema/declare';\nimport {CursorBuffer, ParquetCodecOptions, PARQUET_CODECS} from '../codecs';\nimport {\n ConvertedType,\n Encoding,\n FieldRepetitionType,\n PageHeader,\n PageType,\n SchemaElement,\n Type\n} from '../parquet-thrift';\nimport {decompress} from '../compression';\nimport {PARQUET_RDLVL_TYPE, PARQUET_RDLVL_ENCODING} from '../../constants';\nimport {decodePageHeader, getThriftEnum, getBitWidth} from '../utils/read-utils';\n\n/**\n * Decode data pages\n * @param buffer - input data\n * @param column - parquet column\n * @param compression - compression type\n * @returns parquet data page data\n */\nexport async function decodeDataPages(\n buffer: Buffer,\n options: ParquetOptions\n): Promise<ParquetData> {\n const cursor: CursorBuffer = {\n buffer,\n offset: 0,\n size: buffer.length\n };\n\n const data: ParquetData = {\n rlevels: [],\n dlevels: [],\n values: [],\n pageHeaders: [],\n count: 0\n };\n\n let dictionary = options.dictionary || [];\n\n while (\n // @ts-ignore size can be undefined\n cursor.offset < cursor.size &&\n (!options.numValues || data.dlevels.length < Number(options.numValues))\n ) {\n // Looks like we have to decode these in sequence due to cursor updates?\n const page = await decodePage(cursor, options);\n\n if (page.dictionary) {\n dictionary = page.dictionary;\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (dictionary.length) {\n // eslint-disable-next-line no-loop-func\n page.values = page.values.map((value) => dictionary[value]);\n }\n\n for (let index = 0; index < page.rlevels.length; index++) {\n data.rlevels.push(page.rlevels[index]);\n data.dlevels.push(page.dlevels[index]);\n const value = page.values[index];\n\n if (value !== undefined) {\n data.values.push(value);\n }\n }\n\n data.count += page.count;\n data.pageHeaders.push(page.pageHeader);\n }\n\n return data;\n}\n\n/**\n * Decode parquet page based on page type\n * @param cursor\n * @param options\n */\nexport async function decodePage(\n cursor: CursorBuffer,\n options: ParquetOptions\n): Promise<ParquetPageData> {\n let page;\n const {pageHeader, length} = decodePageHeader(cursor.buffer, cursor.offset);\n cursor.offset += length;\n\n const pageType = getThriftEnum(PageType, pageHeader.type);\n\n switch (pageType) {\n case 'DATA_PAGE':\n page = await decodeDataPage(cursor, pageHeader, options);\n break;\n case 'DATA_PAGE_V2':\n page = await decodeDataPageV2(cursor, pageHeader, options);\n break;\n case 'DICTIONARY_PAGE':\n page = {\n dictionary: await decodeDictionaryPage(cursor, pageHeader, options),\n pageHeader\n };\n break;\n default:\n throw new Error(`invalid page type: ${pageType}`);\n }\n\n return page;\n}\n\n/**\n * Decode parquet schema\n * @param schemaElements input schema elements data\n * @param offset offset to read from\n * @param len length of data\n * @returns result.offset\n * result.next - offset at the end of function\n * result.schema - schema read from the input data\n * @todo output offset is the same as input - possibly excess output field\n */\nexport function decodeSchema(\n schemaElements: SchemaElement[],\n offset: number,\n len: number\n): {\n offset: number;\n next: number;\n schema: SchemaDefinition;\n} {\n const schema: SchemaDefinition = {};\n let next = offset;\n for (let i = 0; i < len; i++) {\n const schemaElement = schemaElements[next];\n\n const repetitionType =\n next > 0 ? getThriftEnum(FieldRepetitionType, schemaElement.repetition_type!) : 'ROOT';\n\n let optional = false;\n let repeated = false;\n switch (repetitionType) {\n case 'REQUIRED':\n break;\n case 'OPTIONAL':\n optional = true;\n break;\n case 'REPEATED':\n repeated = true;\n break;\n default:\n throw new Error('parquet: unknown repetition type');\n }\n\n if (schemaElement.num_children! > 0) {\n const res = decodeSchema(schemaElements, next + 1, schemaElement.num_children!);\n next = res.next;\n schema[schemaElement.name] = {\n // type: undefined,\n optional,\n repeated,\n fields: res.schema\n };\n } else {\n const type = getThriftEnum(Type, schemaElement.type!);\n let logicalType = type;\n\n if (schemaElement.converted_type) {\n logicalType = getThriftEnum(ConvertedType, schemaElement.converted_type);\n }\n\n switch (logicalType) {\n case 'DECIMAL':\n logicalType = `${logicalType}_${type}` as ParquetType;\n break;\n default:\n }\n\n schema[schemaElement.name] = {\n type: logicalType as ParquetType,\n typeLength: schemaElement.type_length,\n presision: schemaElement.precision,\n scale: schemaElement.scale,\n optional,\n repeated\n };\n next++;\n }\n }\n return {schema, offset, next};\n}\n\n/**\n * Decode a consecutive array of data using one of the parquet encodings\n */\nfunction decodeValues(\n type: PrimitiveType,\n encoding: ParquetCodec,\n cursor: CursorBuffer,\n count: number,\n opts: ParquetCodecOptions\n): any[] {\n if (!(encoding in PARQUET_CODECS)) {\n throw new Error(`invalid encoding: ${encoding}`);\n }\n return PARQUET_CODECS[encoding].decodeValues(type, cursor, count, opts);\n}\n\n/**\n * Do decoding of parquet dataPage from column chunk\n * @param cursor\n * @param header\n * @param options\n */\nasync function decodeDataPage(\n cursor: CursorBuffer,\n header: PageHeader,\n options: ParquetOptions\n): Promise<ParquetPageData> {\n const cursorEnd = cursor.offset + header.compressed_page_size;\n const valueCount = header.data_page_header?.num_values;\n\n /* uncompress page */\n let dataCursor = cursor;\n\n if (options.compression !== 'UNCOMPRESSED') {\n const valuesBuf = await decompress(\n options.compression,\n cursor.buffer.slice(cursor.offset, cursorEnd),\n header.uncompressed_page_size\n );\n dataCursor = {\n buffer: valuesBuf,\n offset: 0,\n size: valuesBuf.length\n };\n cursor.offset = cursorEnd;\n }\n\n /* read repetition levels */\n const rLevelEncoding = getThriftEnum(\n Encoding,\n header.data_page_header?.repetition_level_encoding!\n ) as ParquetCodec;\n // tslint:disable-next-line:prefer-array-literal\n let rLevels = new Array(valueCount);\n\n if (options.column.rLevelMax > 0) {\n rLevels = decodeValues(PARQUET_RDLVL_TYPE, rLevelEncoding, dataCursor, valueCount!, {\n bitWidth: getBitWidth(options.column.rLevelMax),\n disableEnvelope: false\n // column: opts.column\n });\n } else {\n rLevels.fill(0);\n }\n\n /* read definition levels */\n const dLevelEncoding = getThriftEnum(\n Encoding,\n header.data_page_header?.definition_level_encoding!\n ) as ParquetCodec;\n // tslint:disable-next-line:prefer-array-literal\n let dLevels = new Array(valueCount);\n if (options.column.dLevelMax > 0) {\n dLevels = decodeValues(PARQUET_RDLVL_TYPE, dLevelEncoding, dataCursor, valueCount!, {\n bitWidth: getBitWidth(options.column.dLevelMax),\n disableEnvelope: false\n // column: opts.column\n });\n } else {\n dLevels.fill(0);\n }\n let valueCountNonNull = 0;\n for (const dlvl of dLevels) {\n if (dlvl === options.column.dLevelMax) {\n valueCountNonNull++;\n }\n }\n\n /* read values */\n const valueEncoding = getThriftEnum(Encoding, header.data_page_header?.encoding!) as ParquetCodec;\n const decodeOptions = {\n typeLength: options.column.typeLength,\n bitWidth: options.column.typeLength\n };\n\n const values = decodeValues(\n options.column.primitiveType!,\n valueEncoding,\n dataCursor,\n valueCountNonNull,\n decodeOptions\n );\n\n return {\n dlevels: dLevels,\n rlevels: rLevels,\n values,\n count: valueCount!,\n pageHeader: header\n };\n}\n\n/**\n * Do decoding of parquet dataPage in version 2 from column chunk\n * @param cursor\n * @param header\n * @param opts\n * @returns\n */\nasync function decodeDataPageV2(\n cursor: CursorBuffer,\n header: PageHeader,\n opts: any\n): Promise<ParquetPageData> {\n const cursorEnd = cursor.offset + header.compressed_page_size;\n\n const valueCount = header.data_page_header_v2?.num_values;\n // @ts-ignore\n const valueCountNonNull = valueCount - header.data_page_header_v2?.num_nulls;\n const valueEncoding = getThriftEnum(\n Encoding,\n header.data_page_header_v2?.encoding!\n ) as ParquetCodec;\n\n /* read repetition levels */\n // tslint:disable-next-line:prefer-array-literal\n let rLevels = new Array(valueCount);\n if (opts.column.rLevelMax > 0) {\n rLevels = decodeValues(PARQUET_RDLVL_TYPE, PARQUET_RDLVL_ENCODING, cursor, valueCount!, {\n bitWidth: getBitWidth(opts.column.rLevelMax),\n disableEnvelope: true\n });\n } else {\n rLevels.fill(0);\n }\n\n /* read definition levels */\n // tslint:disable-next-line:prefer-array-literal\n let dLevels = new Array(valueCount);\n if (opts.column.dLevelMax > 0) {\n dLevels = decodeValues(PARQUET_RDLVL_TYPE, PARQUET_RDLVL_ENCODING, cursor, valueCount!, {\n bitWidth: getBitWidth(opts.column.dLevelMax),\n disableEnvelope: true\n });\n } else {\n dLevels.fill(0);\n }\n\n /* read values */\n let valuesBufCursor = cursor;\n\n if (header.data_page_header_v2?.is_compressed) {\n const valuesBuf = await decompress(\n opts.compression,\n cursor.buffer.slice(cursor.offset, cursorEnd),\n header.uncompressed_page_size\n );\n\n valuesBufCursor = {\n buffer: valuesBuf,\n offset: 0,\n size: valuesBuf.length\n };\n\n cursor.offset = cursorEnd;\n }\n\n const decodeOptions = {\n typeLength: opts.column.typeLength,\n bitWidth: opts.column.typeLength\n };\n\n const values = decodeValues(\n opts.column.primitiveType!,\n valueEncoding,\n valuesBufCursor,\n valueCountNonNull,\n decodeOptions\n );\n\n return {\n dlevels: dLevels,\n rlevels: rLevels,\n values,\n count: valueCount!,\n pageHeader: header\n };\n}\n\n/**\n * Do decoding of dictionary page which helps to iterate over all indexes and get dataPage values.\n * @param cursor\n * @param pageHeader\n * @param options\n */\nasync function decodeDictionaryPage(\n cursor: CursorBuffer,\n pageHeader: PageHeader,\n options: ParquetOptions\n): Promise<string[]> {\n const cursorEnd = cursor.offset + pageHeader.compressed_page_size;\n\n let dictCursor = {\n offset: 0,\n buffer: cursor.buffer.slice(cursor.offset, cursorEnd),\n size: cursorEnd - cursor.offset\n };\n\n cursor.offset = cursorEnd;\n\n if (options.compression !== 'UNCOMPRESSED') {\n const valuesBuf = await decompress(\n options.compression,\n dictCursor.buffer.slice(dictCursor.offset, cursorEnd),\n pageHeader.uncompressed_page_size\n );\n\n dictCursor = {\n buffer: valuesBuf,\n offset: 0,\n size: valuesBuf.length\n };\n\n cursor.offset = cursorEnd;\n }\n\n const numValues = pageHeader?.dictionary_page_header?.num_values || 0;\n\n return decodeValues(\n options.column.primitiveType!,\n options.column.encoding!,\n dictCursor,\n numValues,\n options as ParquetCodecOptions\n ).map((d) => d.toString());\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"decoders.js","names":["_codecs","require","_parquetThrift","_compression","_constants","_readUtils","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","decodeDataPages","_x","_x2","_decodeDataPages","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","buffer","options","cursor","data","dictionary","page","index","wrap","_callee$","_context","prev","offset","size","rlevels","dlevels","values","pageHeaders","count","numValues","Number","decodePage","sent","abrupt","map","push","undefined","pageHeader","stop","_x3","_x4","_decodePage","_callee2","_decodePageHeader","pageType","_callee2$","_context2","decodePageHeader","getThriftEnum","PageType","type","t0","decodeDataPage","decodeDataPageV2","decodeDictionaryPage","t1","t2","Error","concat","decodeSchema","schemaElements","schema","schemaElement","repetitionType","FieldRepetitionType","repetition_type","optional","repeated","num_children","res","fields","Type","logicalType","converted_type","ConvertedType","typeLength","type_length","presision","precision","scale","decodeValues","encoding","opts","PARQUET_CODECS","_x5","_x6","_x7","_decodeDataPage","_callee3","header","_header$data_page_hea","_header$data_page_hea2","_header$data_page_hea3","_header$data_page_hea4","cursorEnd","valueCount","dataCursor","valuesBuf","rLevelEncoding","rLevels","dLevelEncoding","dLevels","valueCountNonNull","_iterator","_step","dlvl","valueEncoding","decodeOptions","_callee3$","_context3","compressed_page_size","data_page_header","num_values","compression","decompress","uncompressed_page_size","Encoding","repetition_level_encoding","column","rLevelMax","PARQUET_RDLVL_TYPE","bitWidth","getBitWidth","disableEnvelope","fill","definition_level_encoding","dLevelMax","primitiveType","_x8","_x9","_x10","_decodeDataPageV","_callee4","_header$data_page_hea5","_header$data_page_hea6","_header$data_page_hea7","_header$data_page_hea8","valuesBufCursor","_callee4$","_context4","data_page_header_v2","num_nulls","PARQUET_RDLVL_ENCODING","is_compressed","_x11","_x12","_x13","_decodeDictionaryPage","_callee5","_pageHeader$dictionar","dictCursor","_callee5$","_context5","dictionary_page_header","d"],"sources":["../../../../src/parquetjs/parser/decoders.ts"],"sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\nimport {\n ParquetCodec,\n ParquetData,\n ParquetOptions,\n ParquetPageData,\n ParquetType,\n PrimitiveType,\n SchemaDefinition\n} from '../schema/declare';\nimport {CursorBuffer, ParquetCodecOptions, PARQUET_CODECS} from '../codecs';\nimport {\n ConvertedType,\n Encoding,\n FieldRepetitionType,\n PageHeader,\n PageType,\n SchemaElement,\n Type\n} from '../parquet-thrift';\nimport {decompress} from '../compression';\nimport {PARQUET_RDLVL_TYPE, PARQUET_RDLVL_ENCODING} from '../../constants';\nimport {decodePageHeader, getThriftEnum, getBitWidth} from '../utils/read-utils';\n\n/**\n * Decode data pages\n * @param buffer - input data\n * @param column - parquet column\n * @param compression - compression type\n * @returns parquet data page data\n */\nexport async function decodeDataPages(\n buffer: Buffer,\n options: ParquetOptions\n): Promise<ParquetData> {\n const cursor: CursorBuffer = {\n buffer,\n offset: 0,\n size: buffer.length\n };\n\n const data: ParquetData = {\n rlevels: [],\n dlevels: [],\n values: [],\n pageHeaders: [],\n count: 0\n };\n\n let dictionary = options.dictionary || [];\n\n while (\n // @ts-ignore size can be undefined\n cursor.offset < cursor.size &&\n (!options.numValues || data.dlevels.length < Number(options.numValues))\n ) {\n // Looks like we have to decode these in sequence due to cursor updates?\n const page = await decodePage(cursor, options);\n\n if (page.dictionary) {\n dictionary = page.dictionary;\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (dictionary.length) {\n // eslint-disable-next-line no-loop-func\n page.values = page.values.map((value) => dictionary[value]);\n }\n\n for (let index = 0; index < page.rlevels.length; index++) {\n data.rlevels.push(page.rlevels[index]);\n data.dlevels.push(page.dlevels[index]);\n const value = page.values[index];\n\n if (value !== undefined) {\n data.values.push(value);\n }\n }\n\n data.count += page.count;\n data.pageHeaders.push(page.pageHeader);\n }\n\n return data;\n}\n\n/**\n * Decode parquet page based on page type\n * @param cursor\n * @param options\n */\nexport async function decodePage(\n cursor: CursorBuffer,\n options: ParquetOptions\n): Promise<ParquetPageData> {\n let page;\n const {pageHeader, length} = decodePageHeader(cursor.buffer, cursor.offset);\n cursor.offset += length;\n\n const pageType = getThriftEnum(PageType, pageHeader.type);\n\n switch (pageType) {\n case 'DATA_PAGE':\n page = await decodeDataPage(cursor, pageHeader, options);\n break;\n case 'DATA_PAGE_V2':\n page = await decodeDataPageV2(cursor, pageHeader, options);\n break;\n case 'DICTIONARY_PAGE':\n page = {\n dictionary: await decodeDictionaryPage(cursor, pageHeader, options),\n pageHeader\n };\n break;\n default:\n throw new Error(`invalid page type: ${pageType}`);\n }\n\n return page;\n}\n\n/**\n * Decode parquet schema\n * @param schemaElements input schema elements data\n * @param offset offset to read from\n * @param len length of data\n * @returns result.offset\n * result.next - offset at the end of function\n * result.schema - schema read from the input data\n * @todo output offset is the same as input - possibly excess output field\n */\nexport function decodeSchema(\n schemaElements: SchemaElement[],\n offset: number,\n len: number\n): {\n offset: number;\n next: number;\n schema: SchemaDefinition;\n} {\n const schema: SchemaDefinition = {};\n let next = offset;\n for (let i = 0; i < len; i++) {\n const schemaElement = schemaElements[next];\n\n const repetitionType =\n next > 0 ? getThriftEnum(FieldRepetitionType, schemaElement.repetition_type!) : 'ROOT';\n\n let optional = false;\n let repeated = false;\n switch (repetitionType) {\n case 'REQUIRED':\n break;\n case 'OPTIONAL':\n optional = true;\n break;\n case 'REPEATED':\n repeated = true;\n break;\n default:\n throw new Error('parquet: unknown repetition type');\n }\n\n if (schemaElement.num_children! > 0) {\n const res = decodeSchema(schemaElements, next + 1, schemaElement.num_children!);\n next = res.next;\n schema[schemaElement.name] = {\n // type: undefined,\n optional,\n repeated,\n fields: res.schema\n };\n } else {\n const type = getThriftEnum(Type, schemaElement.type!);\n let logicalType = type;\n\n if (schemaElement.converted_type) {\n logicalType = getThriftEnum(ConvertedType, schemaElement.converted_type);\n }\n\n switch (logicalType) {\n case 'DECIMAL':\n logicalType = `${logicalType}_${type}` as ParquetType;\n break;\n default:\n }\n\n schema[schemaElement.name] = {\n type: logicalType as ParquetType,\n typeLength: schemaElement.type_length,\n presision: schemaElement.precision,\n scale: schemaElement.scale,\n optional,\n repeated\n };\n next++;\n }\n }\n return {schema, offset, next};\n}\n\n/**\n * Decode a consecutive array of data using one of the parquet encodings\n */\nfunction decodeValues(\n type: PrimitiveType,\n encoding: ParquetCodec,\n cursor: CursorBuffer,\n count: number,\n opts: ParquetCodecOptions\n): any[] {\n if (!(encoding in PARQUET_CODECS)) {\n throw new Error(`invalid encoding: ${encoding}`);\n }\n return PARQUET_CODECS[encoding].decodeValues(type, cursor, count, opts);\n}\n\n/**\n * Do decoding of parquet dataPage from column chunk\n * @param cursor\n * @param header\n * @param options\n */\nasync function decodeDataPage(\n cursor: CursorBuffer,\n header: PageHeader,\n options: ParquetOptions\n): Promise<ParquetPageData> {\n const cursorEnd = cursor.offset + header.compressed_page_size;\n const valueCount = header.data_page_header?.num_values;\n\n /* uncompress page */\n let dataCursor = cursor;\n\n if (options.compression !== 'UNCOMPRESSED') {\n const valuesBuf = await decompress(\n options.compression,\n cursor.buffer.slice(cursor.offset, cursorEnd),\n header.uncompressed_page_size\n );\n dataCursor = {\n buffer: valuesBuf,\n offset: 0,\n size: valuesBuf.length\n };\n cursor.offset = cursorEnd;\n }\n\n /* read repetition levels */\n const rLevelEncoding = getThriftEnum(\n Encoding,\n header.data_page_header?.repetition_level_encoding!\n ) as ParquetCodec;\n // tslint:disable-next-line:prefer-array-literal\n let rLevels = new Array(valueCount);\n\n if (options.column.rLevelMax > 0) {\n rLevels = decodeValues(PARQUET_RDLVL_TYPE, rLevelEncoding, dataCursor, valueCount!, {\n bitWidth: getBitWidth(options.column.rLevelMax),\n disableEnvelope: false\n // column: opts.column\n });\n } else {\n rLevels.fill(0);\n }\n\n /* read definition levels */\n const dLevelEncoding = getThriftEnum(\n Encoding,\n header.data_page_header?.definition_level_encoding!\n ) as ParquetCodec;\n // tslint:disable-next-line:prefer-array-literal\n let dLevels = new Array(valueCount);\n if (options.column.dLevelMax > 0) {\n dLevels = decodeValues(PARQUET_RDLVL_TYPE, dLevelEncoding, dataCursor, valueCount!, {\n bitWidth: getBitWidth(options.column.dLevelMax),\n disableEnvelope: false\n // column: opts.column\n });\n } else {\n dLevels.fill(0);\n }\n let valueCountNonNull = 0;\n for (const dlvl of dLevels) {\n if (dlvl === options.column.dLevelMax) {\n valueCountNonNull++;\n }\n }\n\n /* read values */\n const valueEncoding = getThriftEnum(Encoding, header.data_page_header?.encoding!) as ParquetCodec;\n const decodeOptions = {\n typeLength: options.column.typeLength,\n bitWidth: options.column.typeLength\n };\n\n const values = decodeValues(\n options.column.primitiveType!,\n valueEncoding,\n dataCursor,\n valueCountNonNull,\n decodeOptions\n );\n\n return {\n dlevels: dLevels,\n rlevels: rLevels,\n values,\n count: valueCount!,\n pageHeader: header\n };\n}\n\n/**\n * Do decoding of parquet dataPage in version 2 from column chunk\n * @param cursor\n * @param header\n * @param opts\n * @returns\n */\nasync function decodeDataPageV2(\n cursor: CursorBuffer,\n header: PageHeader,\n opts: any\n): Promise<ParquetPageData> {\n const cursorEnd = cursor.offset + header.compressed_page_size;\n\n const valueCount = header.data_page_header_v2?.num_values;\n // @ts-ignore\n const valueCountNonNull = valueCount - header.data_page_header_v2?.num_nulls;\n const valueEncoding = getThriftEnum(\n Encoding,\n header.data_page_header_v2?.encoding!\n ) as ParquetCodec;\n\n /* read repetition levels */\n // tslint:disable-next-line:prefer-array-literal\n let rLevels = new Array(valueCount);\n if (opts.column.rLevelMax > 0) {\n rLevels = decodeValues(PARQUET_RDLVL_TYPE, PARQUET_RDLVL_ENCODING, cursor, valueCount!, {\n bitWidth: getBitWidth(opts.column.rLevelMax),\n disableEnvelope: true\n });\n } else {\n rLevels.fill(0);\n }\n\n /* read definition levels */\n // tslint:disable-next-line:prefer-array-literal\n let dLevels = new Array(valueCount);\n if (opts.column.dLevelMax > 0) {\n dLevels = decodeValues(PARQUET_RDLVL_TYPE, PARQUET_RDLVL_ENCODING, cursor, valueCount!, {\n bitWidth: getBitWidth(opts.column.dLevelMax),\n disableEnvelope: true\n });\n } else {\n dLevels.fill(0);\n }\n\n /* read values */\n let valuesBufCursor = cursor;\n\n if (header.data_page_header_v2?.is_compressed) {\n const valuesBuf = await decompress(\n opts.compression,\n cursor.buffer.slice(cursor.offset, cursorEnd),\n header.uncompressed_page_size\n );\n\n valuesBufCursor = {\n buffer: valuesBuf,\n offset: 0,\n size: valuesBuf.length\n };\n\n cursor.offset = cursorEnd;\n }\n\n const decodeOptions = {\n typeLength: opts.column.typeLength,\n bitWidth: opts.column.typeLength\n };\n\n const values = decodeValues(\n opts.column.primitiveType!,\n valueEncoding,\n valuesBufCursor,\n valueCountNonNull,\n decodeOptions\n );\n\n return {\n dlevels: dLevels,\n rlevels: rLevels,\n values,\n count: valueCount!,\n pageHeader: header\n };\n}\n\n/**\n * Do decoding of dictionary page which helps to iterate over all indexes and get dataPage values.\n * @param cursor\n * @param pageHeader\n * @param options\n */\nasync function decodeDictionaryPage(\n cursor: CursorBuffer,\n pageHeader: PageHeader,\n options: ParquetOptions\n): Promise<string[]> {\n const cursorEnd = cursor.offset + pageHeader.compressed_page_size;\n\n let dictCursor = {\n offset: 0,\n buffer: cursor.buffer.slice(cursor.offset, cursorEnd),\n size: cursorEnd - cursor.offset\n };\n\n cursor.offset = cursorEnd;\n\n if (options.compression !== 'UNCOMPRESSED') {\n const valuesBuf = await decompress(\n options.compression,\n dictCursor.buffer.slice(dictCursor.offset, cursorEnd),\n pageHeader.uncompressed_page_size\n );\n\n dictCursor = {\n buffer: valuesBuf,\n offset: 0,\n size: valuesBuf.length\n };\n\n cursor.offset = cursorEnd;\n }\n\n const numValues = pageHeader?.dictionary_page_header?.num_values || 0;\n\n return decodeValues(\n options.column.primitiveType!,\n options.column.encoding!,\n dictCursor,\n numValues,\n options as ParquetCodecOptions\n ).map((d) => d.toString());\n}\n"],"mappings":"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"}