@loaders.gl/parquet 4.0.0-alpha.9 → 4.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (463) hide show
  1. package/dist/dist.min.js +21 -32
  2. package/dist/dist.min.js.map +3 -3
  3. package/dist/es5/buffer-polyfill/buffer-polyfill.browser.js +12 -0
  4. package/dist/es5/buffer-polyfill/buffer-polyfill.browser.js.map +1 -0
  5. package/dist/es5/buffer-polyfill/buffer-polyfill.node.js +16 -0
  6. package/dist/es5/buffer-polyfill/buffer-polyfill.node.js.map +1 -0
  7. package/dist/es5/buffer-polyfill/buffer.js +1665 -0
  8. package/dist/es5/buffer-polyfill/buffer.js.map +1 -0
  9. package/dist/es5/buffer-polyfill/index.js +27 -0
  10. package/dist/es5/buffer-polyfill/index.js.map +1 -0
  11. package/dist/es5/buffer-polyfill/install-buffer-polyfill.js +10 -0
  12. package/dist/es5/buffer-polyfill/install-buffer-polyfill.js.map +1 -0
  13. package/dist/es5/index.js +25 -28
  14. package/dist/es5/index.js.map +1 -1
  15. package/dist/es5/lib/geo/decode-geo-column.js +53 -0
  16. package/dist/es5/lib/geo/decode-geo-column.js.map +1 -0
  17. package/dist/es5/lib/geo/decode-geo-metadata.js +52 -16
  18. package/dist/es5/lib/geo/decode-geo-metadata.js.map +1 -1
  19. package/dist/es5/lib/geo/{geoparquet-schema.js → geoparquet-metadata-schema.js} +4 -4
  20. package/dist/es5/lib/geo/geoparquet-metadata-schema.js.map +1 -0
  21. package/dist/es5/lib/geo/geoparquet-metadata-schema.json +60 -0
  22. package/dist/es5/lib/parsers/get-parquet-schema.js +41 -0
  23. package/dist/es5/lib/parsers/get-parquet-schema.js.map +1 -0
  24. package/dist/es5/lib/parsers/parse-parquet-to-columns.js +71 -72
  25. package/dist/es5/lib/parsers/parse-parquet-to-columns.js.map +1 -1
  26. package/dist/es5/lib/parsers/parse-parquet-to-rows.js +95 -62
  27. package/dist/es5/lib/parsers/parse-parquet-to-rows.js.map +1 -1
  28. package/dist/es5/parquet-loader.js +14 -14
  29. package/dist/es5/parquet-loader.js.map +1 -1
  30. package/dist/es5/parquet-wasm-loader.js +8 -11
  31. package/dist/es5/parquet-wasm-loader.js.map +1 -1
  32. package/dist/es5/parquet-wasm-writer.js +6 -7
  33. package/dist/es5/parquet-wasm-writer.js.map +1 -1
  34. package/dist/es5/parquet-writer.js +2 -3
  35. package/dist/es5/parquet-writer.js.map +1 -1
  36. package/dist/es5/parquetjs/codecs/plain.js.map +1 -1
  37. package/dist/es5/parquetjs/codecs/rle.js.map +1 -1
  38. package/dist/es5/parquetjs/encoder/parquet-encoder.js.map +1 -1
  39. package/dist/es5/parquetjs/parquet-thrift/index.js +75 -0
  40. package/dist/es5/parquetjs/parquet-thrift/index.js.map +1 -1
  41. package/dist/es5/parquetjs/parser/decoders.js +53 -36
  42. package/dist/es5/parquetjs/parser/decoders.js.map +1 -1
  43. package/dist/es5/parquetjs/parser/parquet-reader.js +15 -13
  44. package/dist/es5/parquetjs/parser/parquet-reader.js.map +1 -1
  45. package/dist/es5/parquetjs/schema/declare.js.map +1 -1
  46. package/dist/es5/parquetjs/utils/read-utils.js +6 -7
  47. package/dist/es5/parquetjs/utils/read-utils.js.map +1 -1
  48. package/dist/esm/buffer-polyfill/buffer-polyfill.browser.js +6 -0
  49. package/dist/esm/buffer-polyfill/buffer-polyfill.browser.js.map +1 -0
  50. package/dist/esm/buffer-polyfill/buffer-polyfill.node.js +10 -0
  51. package/dist/esm/buffer-polyfill/buffer-polyfill.node.js.map +1 -0
  52. package/dist/esm/buffer-polyfill/buffer.js +1489 -0
  53. package/dist/esm/buffer-polyfill/buffer.js.map +1 -0
  54. package/dist/esm/buffer-polyfill/index.js +4 -0
  55. package/dist/esm/buffer-polyfill/index.js.map +1 -0
  56. package/dist/esm/buffer-polyfill/install-buffer-polyfill.js +3 -0
  57. package/dist/esm/buffer-polyfill/install-buffer-polyfill.js.map +1 -0
  58. package/dist/esm/index.js +4 -10
  59. package/dist/esm/index.js.map +1 -1
  60. package/dist/esm/lib/geo/decode-geo-column.js +47 -0
  61. package/dist/esm/lib/geo/decode-geo-column.js.map +1 -0
  62. package/dist/esm/lib/geo/decode-geo-metadata.js +32 -5
  63. package/dist/esm/lib/geo/decode-geo-metadata.js.map +1 -1
  64. package/dist/esm/lib/geo/{geoparquet-schema.js → geoparquet-metadata-schema.js} +2 -2
  65. package/dist/esm/lib/geo/geoparquet-metadata-schema.js.map +1 -0
  66. package/dist/esm/lib/geo/geoparquet-metadata-schema.json +60 -0
  67. package/dist/esm/lib/parsers/get-parquet-schema.js +11 -0
  68. package/dist/esm/lib/parsers/get-parquet-schema.js.map +1 -0
  69. package/dist/esm/lib/parsers/parse-parquet-to-columns.js +10 -11
  70. package/dist/esm/lib/parsers/parse-parquet-to-columns.js.map +1 -1
  71. package/dist/esm/lib/parsers/parse-parquet-to-rows.js +32 -7
  72. package/dist/esm/lib/parsers/parse-parquet-to-rows.js.map +1 -1
  73. package/dist/esm/parquet-loader.js +12 -12
  74. package/dist/esm/parquet-loader.js.map +1 -1
  75. package/dist/esm/parquet-wasm-loader.js +7 -9
  76. package/dist/esm/parquet-wasm-loader.js.map +1 -1
  77. package/dist/esm/parquet-wasm-writer.js +6 -7
  78. package/dist/esm/parquet-wasm-writer.js.map +1 -1
  79. package/dist/esm/parquet-writer.js +2 -3
  80. package/dist/esm/parquet-writer.js.map +1 -1
  81. package/dist/esm/parquetjs/codecs/plain.js.map +1 -1
  82. package/dist/esm/parquetjs/codecs/rle.js.map +1 -1
  83. package/dist/esm/parquetjs/encoder/parquet-encoder.js.map +1 -1
  84. package/dist/esm/parquetjs/parquet-thrift/index.js +2 -0
  85. package/dist/esm/parquetjs/parquet-thrift/index.js.map +1 -1
  86. package/dist/esm/parquetjs/parser/decoders.js +48 -32
  87. package/dist/esm/parquetjs/parser/decoders.js.map +1 -1
  88. package/dist/esm/parquetjs/parser/parquet-reader.js +14 -12
  89. package/dist/esm/parquetjs/parser/parquet-reader.js.map +1 -1
  90. package/dist/esm/parquetjs/schema/declare.js.map +1 -1
  91. package/dist/esm/parquetjs/utils/read-utils.js +1 -1
  92. package/dist/esm/parquetjs/utils/read-utils.js.map +1 -1
  93. package/dist/parquet-worker.js +23 -34
  94. package/dist/parquet-worker.js.map +3 -3
  95. package/dist/src/buffer-polyfill/buffer-polyfill.browser.d.ts +4 -0
  96. package/dist/src/buffer-polyfill/buffer-polyfill.browser.d.ts.map +1 -0
  97. package/dist/src/buffer-polyfill/buffer-polyfill.node.d.ts +4 -0
  98. package/dist/src/buffer-polyfill/buffer-polyfill.node.d.ts.map +1 -0
  99. package/dist/src/buffer-polyfill/buffer.d.ts +222 -0
  100. package/dist/src/buffer-polyfill/buffer.d.ts.map +1 -0
  101. package/dist/src/buffer-polyfill/index.d.ts +4 -0
  102. package/dist/src/buffer-polyfill/index.d.ts.map +1 -0
  103. package/dist/src/buffer-polyfill/install-buffer-polyfill.d.ts +30 -0
  104. package/dist/src/buffer-polyfill/install-buffer-polyfill.d.ts.map +1 -0
  105. package/dist/src/bundle.d.ts.map +1 -0
  106. package/dist/src/constants.d.ts.map +1 -0
  107. package/dist/{index.d.ts → src/index.d.ts} +6 -10
  108. package/dist/src/index.d.ts.map +1 -0
  109. package/dist/src/lib/arrow/convert-columns-to-row-group.d.ts.map +1 -0
  110. package/dist/src/lib/arrow/convert-row-group-to-columns.d.ts.map +1 -0
  111. package/dist/src/lib/arrow/convert-schema-from-parquet.d.ts.map +1 -0
  112. package/dist/src/lib/arrow/convert-schema-to-parquet.d.ts.map +1 -0
  113. package/dist/src/lib/geo/decode-geo-column.d.ts +4 -0
  114. package/dist/src/lib/geo/decode-geo-column.d.ts.map +1 -0
  115. package/dist/src/lib/geo/decode-geo-metadata.d.ts +44 -0
  116. package/dist/src/lib/geo/decode-geo-metadata.d.ts.map +1 -0
  117. package/dist/{lib/geo/geoparquet-schema.d.ts → src/lib/geo/geoparquet-metadata-schema.d.ts} +2 -3
  118. package/dist/src/lib/geo/geoparquet-metadata-schema.d.ts.map +1 -0
  119. package/dist/src/lib/parsers/get-parquet-schema.d.ts +4 -0
  120. package/dist/src/lib/parsers/get-parquet-schema.d.ts.map +1 -0
  121. package/dist/src/lib/parsers/parse-parquet-to-columns.d.ts +6 -0
  122. package/dist/src/lib/parsers/parse-parquet-to-columns.d.ts.map +1 -0
  123. package/dist/src/lib/parsers/parse-parquet-to-rows.d.ts +6 -0
  124. package/dist/src/lib/parsers/parse-parquet-to-rows.d.ts.map +1 -0
  125. package/dist/src/lib/wasm/encode-parquet-wasm.d.ts.map +1 -0
  126. package/dist/src/lib/wasm/load-wasm/index.d.ts.map +1 -0
  127. package/dist/src/lib/wasm/load-wasm/load-wasm-browser.d.ts.map +1 -0
  128. package/dist/src/lib/wasm/load-wasm/load-wasm-node.d.ts.map +1 -0
  129. package/dist/src/lib/wasm/parse-parquet-wasm.d.ts.map +1 -0
  130. package/dist/src/parquet-loader.d.ts +22 -0
  131. package/dist/src/parquet-loader.d.ts.map +1 -0
  132. package/dist/src/parquet-wasm-loader.d.ts +12 -0
  133. package/dist/src/parquet-wasm-loader.d.ts.map +1 -0
  134. package/dist/src/parquet-wasm-writer.d.ts +6 -0
  135. package/dist/src/parquet-wasm-writer.d.ts.map +1 -0
  136. package/dist/src/parquet-writer.d.ts.map +1 -0
  137. package/dist/src/parquetjs/codecs/declare.d.ts.map +1 -0
  138. package/dist/src/parquetjs/codecs/dictionary.d.ts.map +1 -0
  139. package/dist/src/parquetjs/codecs/index.d.ts.map +1 -0
  140. package/dist/src/parquetjs/codecs/plain.d.ts.map +1 -0
  141. package/dist/src/parquetjs/codecs/rle.d.ts.map +1 -0
  142. package/dist/src/parquetjs/compression.d.ts.map +1 -0
  143. package/dist/src/parquetjs/encoder/parquet-encoder.d.ts.map +1 -0
  144. package/dist/src/parquetjs/parquet-thrift/BoundaryOrder.d.ts.map +1 -0
  145. package/dist/src/parquetjs/parquet-thrift/BsonType.d.ts.map +1 -0
  146. package/dist/src/parquetjs/parquet-thrift/ColumnChunk.d.ts.map +1 -0
  147. package/dist/src/parquetjs/parquet-thrift/ColumnIndex.d.ts.map +1 -0
  148. package/dist/src/parquetjs/parquet-thrift/ColumnMetaData.d.ts.map +1 -0
  149. package/dist/src/parquetjs/parquet-thrift/ColumnOrder.d.ts.map +1 -0
  150. package/dist/src/parquetjs/parquet-thrift/CompressionCodec.d.ts.map +1 -0
  151. package/dist/src/parquetjs/parquet-thrift/ConvertedType.d.ts.map +1 -0
  152. package/dist/src/parquetjs/parquet-thrift/DataPageHeader.d.ts.map +1 -0
  153. package/dist/src/parquetjs/parquet-thrift/DataPageHeaderV2.d.ts.map +1 -0
  154. package/dist/src/parquetjs/parquet-thrift/DateType.d.ts.map +1 -0
  155. package/dist/src/parquetjs/parquet-thrift/DecimalType.d.ts.map +1 -0
  156. package/dist/src/parquetjs/parquet-thrift/DictionaryPageHeader.d.ts.map +1 -0
  157. package/dist/src/parquetjs/parquet-thrift/Encoding.d.ts.map +1 -0
  158. package/dist/src/parquetjs/parquet-thrift/EnumType.d.ts.map +1 -0
  159. package/dist/src/parquetjs/parquet-thrift/FieldRepetitionType.d.ts.map +1 -0
  160. package/dist/src/parquetjs/parquet-thrift/FileMetaData.d.ts.map +1 -0
  161. package/dist/src/parquetjs/parquet-thrift/IndexPageHeader.d.ts.map +1 -0
  162. package/dist/src/parquetjs/parquet-thrift/IntType.d.ts.map +1 -0
  163. package/dist/src/parquetjs/parquet-thrift/JsonType.d.ts.map +1 -0
  164. package/dist/src/parquetjs/parquet-thrift/KeyValue.d.ts.map +1 -0
  165. package/dist/src/parquetjs/parquet-thrift/ListType.d.ts.map +1 -0
  166. package/dist/src/parquetjs/parquet-thrift/LogicalType.d.ts.map +1 -0
  167. package/dist/src/parquetjs/parquet-thrift/MapType.d.ts.map +1 -0
  168. package/dist/src/parquetjs/parquet-thrift/MicroSeconds.d.ts.map +1 -0
  169. package/dist/src/parquetjs/parquet-thrift/MilliSeconds.d.ts.map +1 -0
  170. package/dist/src/parquetjs/parquet-thrift/NullType.d.ts.map +1 -0
  171. package/dist/src/parquetjs/parquet-thrift/OffsetIndex.d.ts.map +1 -0
  172. package/dist/src/parquetjs/parquet-thrift/PageEncodingStats.d.ts.map +1 -0
  173. package/dist/src/parquetjs/parquet-thrift/PageHeader.d.ts.map +1 -0
  174. package/dist/src/parquetjs/parquet-thrift/PageLocation.d.ts.map +1 -0
  175. package/dist/src/parquetjs/parquet-thrift/PageType.d.ts.map +1 -0
  176. package/dist/src/parquetjs/parquet-thrift/RowGroup.d.ts.map +1 -0
  177. package/dist/src/parquetjs/parquet-thrift/SchemaElement.d.ts.map +1 -0
  178. package/dist/src/parquetjs/parquet-thrift/SortingColumn.d.ts.map +1 -0
  179. package/dist/src/parquetjs/parquet-thrift/Statistics.d.ts.map +1 -0
  180. package/dist/src/parquetjs/parquet-thrift/StringType.d.ts.map +1 -0
  181. package/dist/src/parquetjs/parquet-thrift/TimeType.d.ts.map +1 -0
  182. package/dist/src/parquetjs/parquet-thrift/TimeUnit.d.ts.map +1 -0
  183. package/dist/src/parquetjs/parquet-thrift/TimestampType.d.ts.map +1 -0
  184. package/dist/src/parquetjs/parquet-thrift/Type.d.ts.map +1 -0
  185. package/dist/src/parquetjs/parquet-thrift/TypeDefinedOrder.d.ts.map +1 -0
  186. package/dist/src/parquetjs/parquet-thrift/UUIDType.d.ts.map +1 -0
  187. package/dist/{parquetjs → src/parquetjs}/parquet-thrift/index.d.ts +2 -0
  188. package/dist/src/parquetjs/parquet-thrift/index.d.ts.map +1 -0
  189. package/dist/{parquetjs → src/parquetjs}/parser/decoders.d.ts +4 -4
  190. package/dist/src/parquetjs/parser/decoders.d.ts.map +1 -0
  191. package/dist/{parquetjs → src/parquetjs}/parser/parquet-reader.d.ts +5 -3
  192. package/dist/src/parquetjs/parser/parquet-reader.d.ts.map +1 -0
  193. package/dist/{parquetjs → src/parquetjs}/schema/declare.d.ts +3 -1
  194. package/dist/src/parquetjs/schema/declare.d.ts.map +1 -0
  195. package/dist/src/parquetjs/schema/schema.d.ts.map +1 -0
  196. package/dist/src/parquetjs/schema/shred.d.ts.map +1 -0
  197. package/dist/src/parquetjs/schema/types.d.ts.map +1 -0
  198. package/dist/src/parquetjs/utils/file-utils.d.ts.map +1 -0
  199. package/dist/src/parquetjs/utils/read-utils.d.ts.map +1 -0
  200. package/dist/src/workers/parquet-worker.d.ts.map +1 -0
  201. package/dist/tsconfig.tsbuildinfo +1 -0
  202. package/package.json +21 -9
  203. package/src/buffer-polyfill/buffer-polyfill.browser.ts +11 -0
  204. package/src/buffer-polyfill/buffer-polyfill.node.ts +15 -0
  205. package/src/buffer-polyfill/buffer.ts +2207 -0
  206. package/src/buffer-polyfill/index.ts +8 -0
  207. package/src/buffer-polyfill/install-buffer-polyfill.ts +3 -0
  208. package/src/index.ts +31 -17
  209. package/src/lib/geo/decode-geo-column.ts +54 -0
  210. package/src/lib/geo/decode-geo-metadata.ts +81 -15
  211. package/src/lib/geo/geoparquet-metadata-schema.json +60 -0
  212. package/src/lib/geo/{geoparquet-schema.ts → geoparquet-metadata-schema.ts} +1 -1
  213. package/src/lib/parsers/get-parquet-schema.ts +14 -0
  214. package/src/lib/parsers/parse-parquet-to-columns.ts +15 -13
  215. package/src/lib/parsers/parse-parquet-to-rows.ts +39 -11
  216. package/src/parquet-loader.ts +29 -16
  217. package/src/parquet-wasm-loader.ts +13 -13
  218. package/src/parquet-wasm-writer.ts +10 -8
  219. package/src/parquet-writer.ts +1 -3
  220. package/src/parquetjs/codecs/plain.ts +1 -0
  221. package/src/parquetjs/codecs/rle.ts +2 -0
  222. package/src/parquetjs/encoder/parquet-encoder.ts +1 -0
  223. package/src/parquetjs/parquet-thrift/index.ts +4 -0
  224. package/src/parquetjs/parser/decoders.ts +63 -41
  225. package/src/parquetjs/parser/parquet-reader.ts +19 -14
  226. package/src/parquetjs/schema/declare.ts +3 -1
  227. package/src/parquetjs/utils/read-utils.ts +2 -2
  228. package/dist/bundle.d.ts.map +0 -1
  229. package/dist/bundle.js +0 -5
  230. package/dist/constants.d.ts.map +0 -1
  231. package/dist/constants.js +0 -18
  232. package/dist/es5/lib/geo/geoparquet-schema.js.map +0 -1
  233. package/dist/esm/lib/geo/geoparquet-schema.js.map +0 -1
  234. package/dist/index.d.ts.map +0 -1
  235. package/dist/index.js +0 -58
  236. package/dist/lib/arrow/convert-columns-to-row-group.d.ts.map +0 -1
  237. package/dist/lib/arrow/convert-columns-to-row-group.js +0 -1
  238. package/dist/lib/arrow/convert-row-group-to-columns.d.ts.map +0 -1
  239. package/dist/lib/arrow/convert-row-group-to-columns.js +0 -12
  240. package/dist/lib/arrow/convert-schema-from-parquet.d.ts.map +0 -1
  241. package/dist/lib/arrow/convert-schema-from-parquet.js +0 -86
  242. package/dist/lib/arrow/convert-schema-to-parquet.d.ts.map +0 -1
  243. package/dist/lib/arrow/convert-schema-to-parquet.js +0 -71
  244. package/dist/lib/geo/decode-geo-metadata.d.ts +0 -31
  245. package/dist/lib/geo/decode-geo-metadata.d.ts.map +0 -1
  246. package/dist/lib/geo/decode-geo-metadata.js +0 -77
  247. package/dist/lib/geo/geoparquet-schema.d.ts.map +0 -1
  248. package/dist/lib/geo/geoparquet-schema.js +0 -69
  249. package/dist/lib/parsers/parse-parquet-to-columns.d.ts +0 -5
  250. package/dist/lib/parsers/parse-parquet-to-columns.d.ts.map +0 -1
  251. package/dist/lib/parsers/parse-parquet-to-columns.js +0 -46
  252. package/dist/lib/parsers/parse-parquet-to-rows.d.ts +0 -5
  253. package/dist/lib/parsers/parse-parquet-to-rows.d.ts.map +0 -1
  254. package/dist/lib/parsers/parse-parquet-to-rows.js +0 -37
  255. package/dist/lib/wasm/encode-parquet-wasm.d.ts.map +0 -1
  256. package/dist/lib/wasm/encode-parquet-wasm.js +0 -30
  257. package/dist/lib/wasm/load-wasm/index.d.ts.map +0 -1
  258. package/dist/lib/wasm/load-wasm/index.js +0 -5
  259. package/dist/lib/wasm/load-wasm/load-wasm-browser.d.ts.map +0 -1
  260. package/dist/lib/wasm/load-wasm/load-wasm-browser.js +0 -38
  261. package/dist/lib/wasm/load-wasm/load-wasm-node.d.ts.map +0 -1
  262. package/dist/lib/wasm/load-wasm/load-wasm-node.js +0 -31
  263. package/dist/lib/wasm/parse-parquet-wasm.d.ts.map +0 -1
  264. package/dist/lib/wasm/parse-parquet-wasm.js +0 -27
  265. package/dist/parquet-loader.d.ts +0 -14
  266. package/dist/parquet-loader.d.ts.map +0 -1
  267. package/dist/parquet-loader.js +0 -41
  268. package/dist/parquet-wasm-loader.d.ts +0 -23
  269. package/dist/parquet-wasm-loader.d.ts.map +0 -1
  270. package/dist/parquet-wasm-loader.js +0 -27
  271. package/dist/parquet-wasm-writer.d.ts +0 -3
  272. package/dist/parquet-wasm-writer.d.ts.map +0 -1
  273. package/dist/parquet-wasm-writer.js +0 -23
  274. package/dist/parquet-writer.d.ts.map +0 -1
  275. package/dist/parquet-writer.js +0 -22
  276. package/dist/parquetjs/codecs/declare.d.ts.map +0 -1
  277. package/dist/parquetjs/codecs/declare.js +0 -2
  278. package/dist/parquetjs/codecs/dictionary.d.ts.map +0 -1
  279. package/dist/parquetjs/codecs/dictionary.js +0 -14
  280. package/dist/parquetjs/codecs/index.d.ts.map +0 -1
  281. package/dist/parquetjs/codecs/index.js +0 -55
  282. package/dist/parquetjs/codecs/plain.d.ts.map +0 -1
  283. package/dist/parquetjs/codecs/plain.js +0 -211
  284. package/dist/parquetjs/codecs/rle.d.ts.map +0 -1
  285. package/dist/parquetjs/codecs/rle.js +0 -145
  286. package/dist/parquetjs/compression.d.ts.map +0 -1
  287. package/dist/parquetjs/compression.js +0 -183
  288. package/dist/parquetjs/encoder/parquet-encoder.d.ts.map +0 -1
  289. package/dist/parquetjs/encoder/parquet-encoder.js +0 -484
  290. package/dist/parquetjs/parquet-thrift/BoundaryOrder.d.ts.map +0 -1
  291. package/dist/parquetjs/parquet-thrift/BoundaryOrder.js +0 -15
  292. package/dist/parquetjs/parquet-thrift/BsonType.d.ts.map +0 -1
  293. package/dist/parquetjs/parquet-thrift/BsonType.js +0 -62
  294. package/dist/parquetjs/parquet-thrift/ColumnChunk.d.ts.map +0 -1
  295. package/dist/parquetjs/parquet-thrift/ColumnChunk.js +0 -211
  296. package/dist/parquetjs/parquet-thrift/ColumnIndex.d.ts.map +0 -1
  297. package/dist/parquetjs/parquet-thrift/ColumnIndex.js +0 -217
  298. package/dist/parquetjs/parquet-thrift/ColumnMetaData.d.ts.map +0 -1
  299. package/dist/parquetjs/parquet-thrift/ColumnMetaData.js +0 -402
  300. package/dist/parquetjs/parquet-thrift/ColumnOrder.d.ts.map +0 -1
  301. package/dist/parquetjs/parquet-thrift/ColumnOrder.js +0 -108
  302. package/dist/parquetjs/parquet-thrift/CompressionCodec.d.ts.map +0 -1
  303. package/dist/parquetjs/parquet-thrift/CompressionCodec.js +0 -20
  304. package/dist/parquetjs/parquet-thrift/ConvertedType.d.ts.map +0 -1
  305. package/dist/parquetjs/parquet-thrift/ConvertedType.js +0 -34
  306. package/dist/parquetjs/parquet-thrift/DataPageHeader.d.ts.map +0 -1
  307. package/dist/parquetjs/parquet-thrift/DataPageHeader.js +0 -170
  308. package/dist/parquetjs/parquet-thrift/DataPageHeaderV2.d.ts.map +0 -1
  309. package/dist/parquetjs/parquet-thrift/DataPageHeaderV2.js +0 -230
  310. package/dist/parquetjs/parquet-thrift/DateType.d.ts.map +0 -1
  311. package/dist/parquetjs/parquet-thrift/DateType.js +0 -62
  312. package/dist/parquetjs/parquet-thrift/DecimalType.d.ts.map +0 -1
  313. package/dist/parquetjs/parquet-thrift/DecimalType.js +0 -109
  314. package/dist/parquetjs/parquet-thrift/DictionaryPageHeader.d.ts.map +0 -1
  315. package/dist/parquetjs/parquet-thrift/DictionaryPageHeader.js +0 -126
  316. package/dist/parquetjs/parquet-thrift/Encoding.d.ts.map +0 -1
  317. package/dist/parquetjs/parquet-thrift/Encoding.js +0 -20
  318. package/dist/parquetjs/parquet-thrift/EnumType.d.ts.map +0 -1
  319. package/dist/parquetjs/parquet-thrift/EnumType.js +0 -62
  320. package/dist/parquetjs/parquet-thrift/FieldRepetitionType.d.ts.map +0 -1
  321. package/dist/parquetjs/parquet-thrift/FieldRepetitionType.js +0 -15
  322. package/dist/parquetjs/parquet-thrift/FileMetaData.d.ts.map +0 -1
  323. package/dist/parquetjs/parquet-thrift/FileMetaData.js +0 -260
  324. package/dist/parquetjs/parquet-thrift/IndexPageHeader.d.ts.map +0 -1
  325. package/dist/parquetjs/parquet-thrift/IndexPageHeader.js +0 -62
  326. package/dist/parquetjs/parquet-thrift/IntType.d.ts.map +0 -1
  327. package/dist/parquetjs/parquet-thrift/IntType.js +0 -109
  328. package/dist/parquetjs/parquet-thrift/JsonType.d.ts.map +0 -1
  329. package/dist/parquetjs/parquet-thrift/JsonType.js +0 -62
  330. package/dist/parquetjs/parquet-thrift/KeyValue.d.ts.map +0 -1
  331. package/dist/parquetjs/parquet-thrift/KeyValue.js +0 -106
  332. package/dist/parquetjs/parquet-thrift/ListType.d.ts.map +0 -1
  333. package/dist/parquetjs/parquet-thrift/ListType.js +0 -62
  334. package/dist/parquetjs/parquet-thrift/LogicalType.d.ts.map +0 -1
  335. package/dist/parquetjs/parquet-thrift/LogicalType.js +0 -384
  336. package/dist/parquetjs/parquet-thrift/MapType.d.ts.map +0 -1
  337. package/dist/parquetjs/parquet-thrift/MapType.js +0 -62
  338. package/dist/parquetjs/parquet-thrift/MicroSeconds.d.ts.map +0 -1
  339. package/dist/parquetjs/parquet-thrift/MicroSeconds.js +0 -62
  340. package/dist/parquetjs/parquet-thrift/MilliSeconds.d.ts.map +0 -1
  341. package/dist/parquetjs/parquet-thrift/MilliSeconds.js +0 -62
  342. package/dist/parquetjs/parquet-thrift/NullType.d.ts.map +0 -1
  343. package/dist/parquetjs/parquet-thrift/NullType.js +0 -62
  344. package/dist/parquetjs/parquet-thrift/OffsetIndex.d.ts.map +0 -1
  345. package/dist/parquetjs/parquet-thrift/OffsetIndex.js +0 -101
  346. package/dist/parquetjs/parquet-thrift/PageEncodingStats.d.ts.map +0 -1
  347. package/dist/parquetjs/parquet-thrift/PageEncodingStats.js +0 -131
  348. package/dist/parquetjs/parquet-thrift/PageHeader.d.ts.map +0 -1
  349. package/dist/parquetjs/parquet-thrift/PageHeader.js +0 -220
  350. package/dist/parquetjs/parquet-thrift/PageLocation.d.ts.map +0 -1
  351. package/dist/parquetjs/parquet-thrift/PageLocation.js +0 -145
  352. package/dist/parquetjs/parquet-thrift/PageType.d.ts.map +0 -1
  353. package/dist/parquetjs/parquet-thrift/PageType.js +0 -16
  354. package/dist/parquetjs/parquet-thrift/RowGroup.d.ts.map +0 -1
  355. package/dist/parquetjs/parquet-thrift/RowGroup.js +0 -186
  356. package/dist/parquetjs/parquet-thrift/SchemaElement.d.ts.map +0 -1
  357. package/dist/parquetjs/parquet-thrift/SchemaElement.js +0 -243
  358. package/dist/parquetjs/parquet-thrift/SortingColumn.d.ts.map +0 -1
  359. package/dist/parquetjs/parquet-thrift/SortingColumn.js +0 -131
  360. package/dist/parquetjs/parquet-thrift/Statistics.d.ts.map +0 -1
  361. package/dist/parquetjs/parquet-thrift/Statistics.js +0 -180
  362. package/dist/parquetjs/parquet-thrift/StringType.d.ts.map +0 -1
  363. package/dist/parquetjs/parquet-thrift/StringType.js +0 -62
  364. package/dist/parquetjs/parquet-thrift/TimeType.d.ts.map +0 -1
  365. package/dist/parquetjs/parquet-thrift/TimeType.js +0 -110
  366. package/dist/parquetjs/parquet-thrift/TimeUnit.d.ts.map +0 -1
  367. package/dist/parquetjs/parquet-thrift/TimeUnit.js +0 -131
  368. package/dist/parquetjs/parquet-thrift/TimestampType.d.ts.map +0 -1
  369. package/dist/parquetjs/parquet-thrift/TimestampType.js +0 -110
  370. package/dist/parquetjs/parquet-thrift/Type.d.ts.map +0 -1
  371. package/dist/parquetjs/parquet-thrift/Type.js +0 -20
  372. package/dist/parquetjs/parquet-thrift/TypeDefinedOrder.d.ts.map +0 -1
  373. package/dist/parquetjs/parquet-thrift/TypeDefinedOrder.js +0 -62
  374. package/dist/parquetjs/parquet-thrift/UUIDType.d.ts.map +0 -1
  375. package/dist/parquetjs/parquet-thrift/UUIDType.js +0 -62
  376. package/dist/parquetjs/parquet-thrift/index.d.ts.map +0 -1
  377. package/dist/parquetjs/parquet-thrift/index.js +0 -65
  378. package/dist/parquetjs/parser/decoders.d.ts.map +0 -1
  379. package/dist/parquetjs/parser/decoders.js +0 -318
  380. package/dist/parquetjs/parser/parquet-reader.d.ts.map +0 -1
  381. package/dist/parquetjs/parser/parquet-reader.js +0 -200
  382. package/dist/parquetjs/schema/declare.d.ts.map +0 -1
  383. package/dist/parquetjs/schema/declare.js +0 -12
  384. package/dist/parquetjs/schema/schema.d.ts.map +0 -1
  385. package/dist/parquetjs/schema/schema.js +0 -162
  386. package/dist/parquetjs/schema/shred.d.ts.map +0 -1
  387. package/dist/parquetjs/schema/shred.js +0 -355
  388. package/dist/parquetjs/schema/types.d.ts.map +0 -1
  389. package/dist/parquetjs/schema/types.js +0 -416
  390. package/dist/parquetjs/utils/file-utils.d.ts.map +0 -1
  391. package/dist/parquetjs/utils/file-utils.js +0 -43
  392. package/dist/parquetjs/utils/read-utils.d.ts.map +0 -1
  393. package/dist/parquetjs/utils/read-utils.js +0 -109
  394. package/dist/workers/parquet-worker.d.ts.map +0 -1
  395. package/dist/workers/parquet-worker.js +0 -5
  396. /package/dist/{bundle.d.ts → src/bundle.d.ts} +0 -0
  397. /package/dist/{constants.d.ts → src/constants.d.ts} +0 -0
  398. /package/dist/{lib → src/lib}/arrow/convert-columns-to-row-group.d.ts +0 -0
  399. /package/dist/{lib → src/lib}/arrow/convert-row-group-to-columns.d.ts +0 -0
  400. /package/dist/{lib → src/lib}/arrow/convert-schema-from-parquet.d.ts +0 -0
  401. /package/dist/{lib → src/lib}/arrow/convert-schema-to-parquet.d.ts +0 -0
  402. /package/dist/{lib → src/lib}/wasm/encode-parquet-wasm.d.ts +0 -0
  403. /package/dist/{lib → src/lib}/wasm/load-wasm/index.d.ts +0 -0
  404. /package/dist/{lib → src/lib}/wasm/load-wasm/load-wasm-browser.d.ts +0 -0
  405. /package/dist/{lib → src/lib}/wasm/load-wasm/load-wasm-node.d.ts +0 -0
  406. /package/dist/{lib → src/lib}/wasm/parse-parquet-wasm.d.ts +0 -0
  407. /package/dist/{parquet-writer.d.ts → src/parquet-writer.d.ts} +0 -0
  408. /package/dist/{parquetjs → src/parquetjs}/codecs/declare.d.ts +0 -0
  409. /package/dist/{parquetjs → src/parquetjs}/codecs/dictionary.d.ts +0 -0
  410. /package/dist/{parquetjs → src/parquetjs}/codecs/index.d.ts +0 -0
  411. /package/dist/{parquetjs → src/parquetjs}/codecs/plain.d.ts +0 -0
  412. /package/dist/{parquetjs → src/parquetjs}/codecs/rle.d.ts +0 -0
  413. /package/dist/{parquetjs → src/parquetjs}/compression.d.ts +0 -0
  414. /package/dist/{parquetjs → src/parquetjs}/encoder/parquet-encoder.d.ts +0 -0
  415. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/BoundaryOrder.d.ts +0 -0
  416. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/BsonType.d.ts +0 -0
  417. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/ColumnChunk.d.ts +0 -0
  418. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/ColumnIndex.d.ts +0 -0
  419. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/ColumnMetaData.d.ts +0 -0
  420. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/ColumnOrder.d.ts +0 -0
  421. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/CompressionCodec.d.ts +0 -0
  422. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/ConvertedType.d.ts +0 -0
  423. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/DataPageHeader.d.ts +0 -0
  424. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/DataPageHeaderV2.d.ts +0 -0
  425. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/DateType.d.ts +0 -0
  426. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/DecimalType.d.ts +0 -0
  427. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/DictionaryPageHeader.d.ts +0 -0
  428. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/Encoding.d.ts +0 -0
  429. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/EnumType.d.ts +0 -0
  430. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/FieldRepetitionType.d.ts +0 -0
  431. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/FileMetaData.d.ts +0 -0
  432. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/IndexPageHeader.d.ts +0 -0
  433. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/IntType.d.ts +0 -0
  434. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/JsonType.d.ts +0 -0
  435. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/KeyValue.d.ts +0 -0
  436. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/ListType.d.ts +0 -0
  437. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/LogicalType.d.ts +0 -0
  438. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/MapType.d.ts +0 -0
  439. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/MicroSeconds.d.ts +0 -0
  440. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/MilliSeconds.d.ts +0 -0
  441. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/NullType.d.ts +0 -0
  442. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/OffsetIndex.d.ts +0 -0
  443. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/PageEncodingStats.d.ts +0 -0
  444. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/PageHeader.d.ts +0 -0
  445. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/PageLocation.d.ts +0 -0
  446. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/PageType.d.ts +0 -0
  447. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/RowGroup.d.ts +0 -0
  448. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/SchemaElement.d.ts +0 -0
  449. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/SortingColumn.d.ts +0 -0
  450. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/Statistics.d.ts +0 -0
  451. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/StringType.d.ts +0 -0
  452. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/TimeType.d.ts +0 -0
  453. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/TimeUnit.d.ts +0 -0
  454. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/TimestampType.d.ts +0 -0
  455. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/Type.d.ts +0 -0
  456. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/TypeDefinedOrder.d.ts +0 -0
  457. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/UUIDType.d.ts +0 -0
  458. /package/dist/{parquetjs → src/parquetjs}/schema/schema.d.ts +0 -0
  459. /package/dist/{parquetjs → src/parquetjs}/schema/shred.d.ts +0 -0
  460. /package/dist/{parquetjs → src/parquetjs}/schema/types.d.ts +0 -0
  461. /package/dist/{parquetjs → src/parquetjs}/utils/file-utils.d.ts +0 -0
  462. /package/dist/{parquetjs → src/parquetjs}/utils/read-utils.d.ts +0 -0
  463. /package/dist/{workers → src/workers}/parquet-worker.d.ts +0 -0
@@ -21,7 +21,7 @@ function decodeDataPages(_x, _x2) {
21
21
  return _decodeDataPages.apply(this, arguments);
22
22
  }
23
23
  function _decodeDataPages() {
24
- _decodeDataPages = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(buffer, options) {
24
+ _decodeDataPages = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(buffer, context) {
25
25
  var cursor, data, dictionary, page, index, value;
26
26
  return _regenerator.default.wrap(function _callee$(_context) {
27
27
  while (1) switch (_context.prev = _context.next) {
@@ -38,14 +38,14 @@ function _decodeDataPages() {
38
38
  pageHeaders: [],
39
39
  count: 0
40
40
  };
41
- dictionary = options.dictionary || [];
41
+ dictionary = context.dictionary || [];
42
42
  case 3:
43
- if (!(cursor.offset < cursor.size && (!options.numValues || data.dlevels.length < Number(options.numValues)))) {
43
+ if (!(cursor.offset < cursor.size && (!context.numValues || data.dlevels.length < Number(context.numValues)))) {
44
44
  _context.next = 16;
45
45
  break;
46
46
  }
47
47
  _context.next = 6;
48
- return decodePage(cursor, options);
48
+ return decodePage(cursor, context);
49
49
  case 6:
50
50
  page = _context.sent;
51
51
  if (!page.dictionary) {
@@ -86,7 +86,7 @@ function decodePage(_x3, _x4) {
86
86
  return _decodePage.apply(this, arguments);
87
87
  }
88
88
  function _decodePage() {
89
- _decodePage = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(cursor, options) {
89
+ _decodePage = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(cursor, context) {
90
90
  var page, _decodePageHeader, pageHeader, length, pageType;
91
91
  return _regenerator.default.wrap(function _callee2$(_context2) {
92
92
  while (1) switch (_context2.prev = _context2.next) {
@@ -99,19 +99,19 @@ function _decodePage() {
99
99
  break;
100
100
  case 6:
101
101
  _context2.next = 8;
102
- return decodeDataPage(cursor, pageHeader, options);
102
+ return decodeDataPage(cursor, pageHeader, context);
103
103
  case 8:
104
104
  page = _context2.sent;
105
105
  return _context2.abrupt("break", 21);
106
106
  case 10:
107
107
  _context2.next = 12;
108
- return decodeDataPageV2(cursor, pageHeader, options);
108
+ return decodeDataPageV2(cursor, pageHeader, context);
109
109
  case 12:
110
110
  page = _context2.sent;
111
111
  return _context2.abrupt("break", 21);
112
112
  case 14:
113
113
  _context2.next = 16;
114
- return decodeDictionaryPage(cursor, pageHeader, options);
114
+ return decodeDictionaryPage(cursor, pageHeader, context);
115
115
  case 16:
116
116
  _context2.t1 = _context2.sent;
117
117
  _context2.t2 = pageHeader;
@@ -199,7 +199,7 @@ function decodeDataPage(_x5, _x6, _x7) {
199
199
  return _decodeDataPage.apply(this, arguments);
200
200
  }
201
201
  function _decodeDataPage() {
202
- _decodeDataPage = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(cursor, header, options) {
202
+ _decodeDataPage = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(cursor, header, context) {
203
203
  var _header$data_page_hea, _header$data_page_hea2, _header$data_page_hea3, _header$data_page_hea4;
204
204
  var cursorEnd, valueCount, dataCursor, valuesBuf, rLevelEncoding, rLevels, dLevelEncoding, dLevels, valueCountNonNull, _iterator, _step, dlvl, valueEncoding, decodeOptions, values;
205
205
  return _regenerator.default.wrap(function _callee3$(_context3) {
@@ -208,12 +208,12 @@ function _decodeDataPage() {
208
208
  cursorEnd = cursor.offset + header.compressed_page_size;
209
209
  valueCount = (_header$data_page_hea = header.data_page_header) === null || _header$data_page_hea === void 0 ? void 0 : _header$data_page_hea.num_values;
210
210
  dataCursor = cursor;
211
- if (!(options.compression !== 'UNCOMPRESSED')) {
211
+ if (!(context.compression !== 'UNCOMPRESSED')) {
212
212
  _context3.next = 9;
213
213
  break;
214
214
  }
215
215
  _context3.next = 6;
216
- return (0, _compression.decompress)(options.compression, cursor.buffer.slice(cursor.offset, cursorEnd), header.uncompressed_page_size);
216
+ return (0, _compression.decompress)(context.compression, cursor.buffer.slice(cursor.offset, cursorEnd), header.uncompressed_page_size);
217
217
  case 6:
218
218
  valuesBuf = _context3.sent;
219
219
  dataCursor = {
@@ -225,9 +225,9 @@ function _decodeDataPage() {
225
225
  case 9:
226
226
  rLevelEncoding = (0, _readUtils.getThriftEnum)(_parquetThrift.Encoding, (_header$data_page_hea2 = header.data_page_header) === null || _header$data_page_hea2 === void 0 ? void 0 : _header$data_page_hea2.repetition_level_encoding);
227
227
  rLevels = new Array(valueCount);
228
- if (options.column.rLevelMax > 0) {
228
+ if (context.column.rLevelMax > 0) {
229
229
  rLevels = decodeValues(_constants.PARQUET_RDLVL_TYPE, rLevelEncoding, dataCursor, valueCount, {
230
- bitWidth: (0, _readUtils.getBitWidth)(options.column.rLevelMax),
230
+ bitWidth: (0, _readUtils.getBitWidth)(context.column.rLevelMax),
231
231
  disableEnvelope: false
232
232
  });
233
233
  } else {
@@ -235,9 +235,9 @@ function _decodeDataPage() {
235
235
  }
236
236
  dLevelEncoding = (0, _readUtils.getThriftEnum)(_parquetThrift.Encoding, (_header$data_page_hea3 = header.data_page_header) === null || _header$data_page_hea3 === void 0 ? void 0 : _header$data_page_hea3.definition_level_encoding);
237
237
  dLevels = new Array(valueCount);
238
- if (options.column.dLevelMax > 0) {
238
+ if (context.column.dLevelMax > 0) {
239
239
  dLevels = decodeValues(_constants.PARQUET_RDLVL_TYPE, dLevelEncoding, dataCursor, valueCount, {
240
- bitWidth: (0, _readUtils.getBitWidth)(options.column.dLevelMax),
240
+ bitWidth: (0, _readUtils.getBitWidth)(context.column.dLevelMax),
241
241
  disableEnvelope: false
242
242
  });
243
243
  } else {
@@ -248,7 +248,7 @@ function _decodeDataPage() {
248
248
  try {
249
249
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
250
250
  dlvl = _step.value;
251
- if (dlvl === options.column.dLevelMax) {
251
+ if (dlvl === context.column.dLevelMax) {
252
252
  valueCountNonNull++;
253
253
  }
254
254
  }
@@ -259,10 +259,10 @@ function _decodeDataPage() {
259
259
  }
260
260
  valueEncoding = (0, _readUtils.getThriftEnum)(_parquetThrift.Encoding, (_header$data_page_hea4 = header.data_page_header) === null || _header$data_page_hea4 === void 0 ? void 0 : _header$data_page_hea4.encoding);
261
261
  decodeOptions = {
262
- typeLength: options.column.typeLength,
263
- bitWidth: options.column.typeLength
262
+ typeLength: context.column.typeLength,
263
+ bitWidth: context.column.typeLength
264
264
  };
265
- values = decodeValues(options.column.primitiveType, valueEncoding, dataCursor, valueCountNonNull, decodeOptions);
265
+ values = decodeValues(context.column.primitiveType, valueEncoding, dataCursor, valueCountNonNull, decodeOptions);
266
266
  return _context3.abrupt("return", {
267
267
  dlevels: dLevels,
268
268
  rlevels: rLevels,
@@ -282,7 +282,7 @@ function decodeDataPageV2(_x8, _x9, _x10) {
282
282
  return _decodeDataPageV.apply(this, arguments);
283
283
  }
284
284
  function _decodeDataPageV() {
285
- _decodeDataPageV = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(cursor, header, opts) {
285
+ _decodeDataPageV = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(cursor, header, context) {
286
286
  var _header$data_page_hea5, _header$data_page_hea6, _header$data_page_hea7, _header$data_page_hea8;
287
287
  var cursorEnd, valueCount, valueCountNonNull, valueEncoding, rLevels, dLevels, valuesBufCursor, valuesBuf, decodeOptions, values;
288
288
  return _regenerator.default.wrap(function _callee4$(_context4) {
@@ -293,18 +293,18 @@ function _decodeDataPageV() {
293
293
  valueCountNonNull = valueCount - ((_header$data_page_hea6 = header.data_page_header_v2) === null || _header$data_page_hea6 === void 0 ? void 0 : _header$data_page_hea6.num_nulls);
294
294
  valueEncoding = (0, _readUtils.getThriftEnum)(_parquetThrift.Encoding, (_header$data_page_hea7 = header.data_page_header_v2) === null || _header$data_page_hea7 === void 0 ? void 0 : _header$data_page_hea7.encoding);
295
295
  rLevels = new Array(valueCount);
296
- if (opts.column.rLevelMax > 0) {
296
+ if (context.column.rLevelMax > 0) {
297
297
  rLevels = decodeValues(_constants.PARQUET_RDLVL_TYPE, _constants.PARQUET_RDLVL_ENCODING, cursor, valueCount, {
298
- bitWidth: (0, _readUtils.getBitWidth)(opts.column.rLevelMax),
298
+ bitWidth: (0, _readUtils.getBitWidth)(context.column.rLevelMax),
299
299
  disableEnvelope: true
300
300
  });
301
301
  } else {
302
302
  rLevels.fill(0);
303
303
  }
304
304
  dLevels = new Array(valueCount);
305
- if (opts.column.dLevelMax > 0) {
305
+ if (context.column.dLevelMax > 0) {
306
306
  dLevels = decodeValues(_constants.PARQUET_RDLVL_TYPE, _constants.PARQUET_RDLVL_ENCODING, cursor, valueCount, {
307
- bitWidth: (0, _readUtils.getBitWidth)(opts.column.dLevelMax),
307
+ bitWidth: (0, _readUtils.getBitWidth)(context.column.dLevelMax),
308
308
  disableEnvelope: true
309
309
  });
310
310
  } else {
@@ -316,7 +316,7 @@ function _decodeDataPageV() {
316
316
  break;
317
317
  }
318
318
  _context4.next = 12;
319
- return (0, _compression.decompress)(opts.compression, cursor.buffer.slice(cursor.offset, cursorEnd), header.uncompressed_page_size);
319
+ return (0, _compression.decompress)(context.compression, cursor.buffer.slice(cursor.offset, cursorEnd), header.uncompressed_page_size);
320
320
  case 12:
321
321
  valuesBuf = _context4.sent;
322
322
  valuesBufCursor = {
@@ -327,10 +327,10 @@ function _decodeDataPageV() {
327
327
  cursor.offset = cursorEnd;
328
328
  case 15:
329
329
  decodeOptions = {
330
- typeLength: opts.column.typeLength,
331
- bitWidth: opts.column.typeLength
330
+ typeLength: context.column.typeLength,
331
+ bitWidth: context.column.typeLength
332
332
  };
333
- values = decodeValues(opts.column.primitiveType, valueEncoding, valuesBufCursor, valueCountNonNull, decodeOptions);
333
+ values = decodeValues(context.column.primitiveType, valueEncoding, valuesBufCursor, valueCountNonNull, decodeOptions);
334
334
  return _context4.abrupt("return", {
335
335
  dlevels: dLevels,
336
336
  rlevels: rLevels,
@@ -350,9 +350,9 @@ function decodeDictionaryPage(_x11, _x12, _x13) {
350
350
  return _decodeDictionaryPage.apply(this, arguments);
351
351
  }
352
352
  function _decodeDictionaryPage() {
353
- _decodeDictionaryPage = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(cursor, pageHeader, options) {
353
+ _decodeDictionaryPage = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(cursor, pageHeader, context) {
354
354
  var _pageHeader$dictionar;
355
- var cursorEnd, dictCursor, valuesBuf, numValues;
355
+ var cursorEnd, dictCursor, valuesBuf, numValues, decodedDictionaryValues, values;
356
356
  return _regenerator.default.wrap(function _callee5$(_context5) {
357
357
  while (1) switch (_context5.prev = _context5.next) {
358
358
  case 0:
@@ -363,12 +363,12 @@ function _decodeDictionaryPage() {
363
363
  size: cursorEnd - cursor.offset
364
364
  };
365
365
  cursor.offset = cursorEnd;
366
- if (!(options.compression !== 'UNCOMPRESSED')) {
366
+ if (!(context.compression !== 'UNCOMPRESSED')) {
367
367
  _context5.next = 9;
368
368
  break;
369
369
  }
370
370
  _context5.next = 6;
371
- return (0, _compression.decompress)(options.compression, dictCursor.buffer.slice(dictCursor.offset, cursorEnd), pageHeader.uncompressed_page_size);
371
+ return (0, _compression.decompress)(context.compression, dictCursor.buffer.slice(dictCursor.offset, cursorEnd), pageHeader.uncompressed_page_size);
372
372
  case 6:
373
373
  valuesBuf = _context5.sent;
374
374
  dictCursor = {
@@ -379,10 +379,18 @@ function _decodeDictionaryPage() {
379
379
  cursor.offset = cursorEnd;
380
380
  case 9:
381
381
  numValues = (pageHeader === null || pageHeader === void 0 ? void 0 : (_pageHeader$dictionar = pageHeader.dictionary_page_header) === null || _pageHeader$dictionar === void 0 ? void 0 : _pageHeader$dictionar.num_values) || 0;
382
- return _context5.abrupt("return", decodeValues(options.column.primitiveType, options.column.encoding, dictCursor, numValues, options).map(function (d) {
383
- return d.toString();
384
- }));
385
- case 11:
382
+ decodedDictionaryValues = decodeValues(context.column.primitiveType, context.column.encoding, dictCursor, numValues, context);
383
+ if (context !== null && context !== void 0 && context.preserveBinary) {
384
+ values = decodedDictionaryValues.map(function (d) {
385
+ return preserveBinary(d);
386
+ });
387
+ } else {
388
+ values = decodedDictionaryValues.map(function (d) {
389
+ return d.toString();
390
+ });
391
+ }
392
+ return _context5.abrupt("return", values);
393
+ case 13:
386
394
  case "end":
387
395
  return _context5.stop();
388
396
  }
@@ -390,4 +398,13 @@ function _decodeDictionaryPage() {
390
398
  }));
391
399
  return _decodeDictionaryPage.apply(this, arguments);
392
400
  }
401
+ function preserveBinary(d) {
402
+ if (ArrayBuffer.isView(d)) {
403
+ return d;
404
+ }
405
+ if (Buffer.isBuffer(d)) {
406
+ return d.buffer.slice(d.byteOffset, d.byteLength);
407
+ }
408
+ return d.toString();
409
+ }
393
410
  //# sourceMappingURL=decoders.js.map
@@ -1 +1 @@
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 ParquetColumnChunk,\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<ParquetColumnChunk> {\n const cursor: CursorBuffer = {\n buffer,\n offset: 0,\n size: buffer.length\n };\n\n const data: ParquetColumnChunk = {\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","context","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","decodedDictionaryValues","_callee5$","_context5","dictionary_page_header","preserveBinary","d","ArrayBuffer","isView","Buffer","isBuffer","byteOffset","byteLength"],"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 ParquetColumnChunk,\n ParquetReaderContext,\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 context: ParquetReaderContext\n): Promise<ParquetColumnChunk> {\n const cursor: CursorBuffer = {\n buffer,\n offset: 0,\n size: buffer.length\n };\n\n const data: ParquetColumnChunk = {\n rlevels: [],\n dlevels: [],\n values: [],\n pageHeaders: [],\n count: 0\n };\n\n let dictionary = context.dictionary || [];\n\n while (\n // @ts-ignore size can be undefined\n cursor.offset < cursor.size &&\n (!context.numValues || data.dlevels.length < Number(context.numValues))\n ) {\n // Looks like we have to decode these in sequence due to cursor updates?\n const page = await decodePage(cursor, context);\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 context\n */\nexport async function decodePage(\n cursor: CursorBuffer,\n context: ParquetReaderContext\n): Promise<ParquetPageData> {\n let page;\n\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, context);\n break;\n case 'DATA_PAGE_V2':\n page = await decodeDataPageV2(cursor, pageHeader, context);\n break;\n case 'DICTIONARY_PAGE':\n page = {\n dictionary: await decodeDictionaryPage(cursor, pageHeader, context),\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 context: ParquetReaderContext\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 (context.compression !== 'UNCOMPRESSED') {\n const valuesBuf = await decompress(\n context.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 (context.column.rLevelMax > 0) {\n rLevels = decodeValues(PARQUET_RDLVL_TYPE, rLevelEncoding, dataCursor, valueCount!, {\n bitWidth: getBitWidth(context.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 (context.column.dLevelMax > 0) {\n dLevels = decodeValues(PARQUET_RDLVL_TYPE, dLevelEncoding, dataCursor, valueCount!, {\n bitWidth: getBitWidth(context.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 === context.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: ParquetCodecOptions = {\n typeLength: context.column.typeLength,\n bitWidth: context.column.typeLength\n };\n\n const values = decodeValues(\n context.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 context: ParquetReaderContext\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 (context.column.rLevelMax > 0) {\n rLevels = decodeValues(PARQUET_RDLVL_TYPE, PARQUET_RDLVL_ENCODING, cursor, valueCount!, {\n bitWidth: getBitWidth(context.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 (context.column.dLevelMax > 0) {\n dLevels = decodeValues(PARQUET_RDLVL_TYPE, PARQUET_RDLVL_ENCODING, cursor, valueCount!, {\n bitWidth: getBitWidth(context.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 context.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: context.column.typeLength,\n bitWidth: context.column.typeLength\n };\n\n const values = decodeValues(\n context.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 context\n */\nasync function decodeDictionaryPage(\n cursor: CursorBuffer,\n pageHeader: PageHeader,\n context: ParquetReaderContext\n): Promise<(string | ArrayBuffer)[]> {\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 (context.compression !== 'UNCOMPRESSED') {\n const valuesBuf = await decompress(\n context.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 const decodedDictionaryValues = decodeValues(\n context.column.primitiveType!,\n context.column.encoding!,\n dictCursor,\n numValues,\n // TODO - this looks wrong?\n context as ParquetCodecOptions\n );\n\n // Makes it look a little easier\n let values: any[];\n if (context?.preserveBinary) {\n values = decodedDictionaryValues.map((d) => preserveBinary(d));\n } else {\n values = decodedDictionaryValues.map((d) => d.toString());\n }\n return values;\n}\n\nfunction preserveBinary(d: any): ArrayBuffer | ArrayBufferView | string {\n if (ArrayBuffer.isView(d)) {\n return d;\n }\n // Convert to ArrayBuffer\n if (Buffer.isBuffer(d)) {\n return d.buffer.slice(d.byteOffset, d.byteLength);\n }\n return d.toString();\n}\n"],"mappings":"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"}
@@ -25,9 +25,6 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
25
25
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
26
26
  function _asyncIterator(iterable) { var method, async, sync, retry = 2; for ("undefined" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;) { if (async && null != (method = iterable[async])) return method.call(iterable); if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable)); async = "@@asyncIterator", sync = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
27
27
  function AsyncFromSyncIterator(s) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var done = r.done; return Promise.resolve(r.value).then(function (value) { return { value: value, done: done }; }); } return AsyncFromSyncIterator = function AsyncFromSyncIterator(s) { this.s = s, this.n = s.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function next() { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, return: function _return(value) { var ret = this.s.return; return void 0 === ret ? Promise.resolve({ value: value, done: !0 }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments)); }, throw: function _throw(value) { var thr = this.s.return; return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(s); }
28
- var DEFAULT_PROPS = {
29
- defaultDictionarySize: 1e6
30
- };
31
28
  var ParquetReader = function () {
32
29
  function ParquetReader(file, props) {
33
30
  (0, _classCallCheck2.default)(this, ParquetReader);
@@ -35,7 +32,7 @@ var ParquetReader = function () {
35
32
  (0, _defineProperty2.default)(this, "file", void 0);
36
33
  (0, _defineProperty2.default)(this, "metadata", null);
37
34
  this.file = file;
38
- this.props = _objectSpread(_objectSpread({}, DEFAULT_PROPS), props);
35
+ this.props = _objectSpread(_objectSpread({}, ParquetReader.defaultProps), props);
39
36
  }
40
37
  (0, _createClass2.default)(ParquetReader, [{
41
38
  key: "close",
@@ -496,8 +493,8 @@ var ParquetReader = function () {
496
493
  key: "readColumnChunk",
497
494
  value: function () {
498
495
  var _readColumnChunk = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee11(schema, colChunk) {
499
- var _colChunk$meta_data, _colChunk$meta_data2, _colChunk$meta_data3, _colChunk$meta_data4, _colChunk$meta_data5, _colChunk$meta_data7, _colChunk$meta_data8, _options$dictionary;
500
- var field, type, compression, pagesOffset, pagesSize, _colChunk$meta_data6, options, dictionary, dictionaryPageOffset, dictionaryOffset, pagesBuf;
496
+ var _colChunk$meta_data, _colChunk$meta_data2, _colChunk$meta_data3, _colChunk$meta_data4, _colChunk$meta_data5, _colChunk$meta_data7, _colChunk$meta_data8, _context$dictionary;
497
+ var field, type, compression, pagesOffset, pagesSize, _colChunk$meta_data6, context, dictionary, dictionaryPageOffset, dictionaryOffset, pagesBuf;
501
498
  return _regenerator.default.wrap(function _callee11$(_context11) {
502
499
  while (1) switch (_context11.prev = _context11.next) {
503
500
  case 0:
@@ -521,14 +518,15 @@ var ParquetReader = function () {
521
518
  if (!colChunk.file_path) {
522
519
  pagesSize = Math.min(this.file.size - pagesOffset, Number((_colChunk$meta_data6 = colChunk.meta_data) === null || _colChunk$meta_data6 === void 0 ? void 0 : _colChunk$meta_data6.total_compressed_size));
523
520
  }
524
- options = {
521
+ context = {
525
522
  type: type,
526
523
  rLevelMax: field.rLevelMax,
527
524
  dLevelMax: field.dLevelMax,
528
525
  compression: compression,
529
526
  column: field,
530
527
  numValues: (_colChunk$meta_data7 = colChunk.meta_data) === null || _colChunk$meta_data7 === void 0 ? void 0 : _colChunk$meta_data7.num_values,
531
- dictionary: []
528
+ dictionary: [],
529
+ preserveBinary: this.props.preserveBinary
532
530
  };
533
531
  dictionaryPageOffset = colChunk === null || colChunk === void 0 ? void 0 : (_colChunk$meta_data8 = colChunk.meta_data) === null || _colChunk$meta_data8 === void 0 ? void 0 : _colChunk$meta_data8.dictionary_page_offset;
534
532
  if (!dictionaryPageOffset) {
@@ -537,17 +535,17 @@ var ParquetReader = function () {
537
535
  }
538
536
  dictionaryOffset = Number(dictionaryPageOffset);
539
537
  _context11.next = 16;
540
- return this.getDictionary(dictionaryOffset, options, pagesOffset);
538
+ return this.getDictionary(dictionaryOffset, context, pagesOffset);
541
539
  case 16:
542
540
  dictionary = _context11.sent;
543
541
  case 17:
544
- dictionary = (_options$dictionary = options.dictionary) !== null && _options$dictionary !== void 0 && _options$dictionary.length ? options.dictionary : dictionary;
542
+ dictionary = (_context$dictionary = context.dictionary) !== null && _context$dictionary !== void 0 && _context$dictionary.length ? context.dictionary : dictionary;
545
543
  _context11.next = 20;
546
544
  return this.file.read(pagesOffset, pagesSize);
547
545
  case 20:
548
546
  pagesBuf = _context11.sent;
549
547
  _context11.next = 23;
550
- return (0, _decoders.decodeDataPages)(pagesBuf, _objectSpread(_objectSpread({}, options), {}, {
548
+ return (0, _decoders.decodeDataPages)(pagesBuf, _objectSpread(_objectSpread({}, context), {}, {
551
549
  dictionary: dictionary
552
550
  }));
553
551
  case 23:
@@ -566,7 +564,7 @@ var ParquetReader = function () {
566
564
  }, {
567
565
  key: "getDictionary",
568
566
  value: function () {
569
- var _getDictionary = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee12(dictionaryPageOffset, options, pagesOffset) {
567
+ var _getDictionary = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee12(dictionaryPageOffset, context, pagesOffset) {
570
568
  var dictionarySize, pagesBuf, cursor, decodedPage;
571
569
  return _regenerator.default.wrap(function _callee12$(_context12) {
572
570
  while (1) switch (_context12.prev = _context12.next) {
@@ -588,7 +586,7 @@ var ParquetReader = function () {
588
586
  size: pagesBuf.length
589
587
  };
590
588
  _context12.next = 9;
591
- return (0, _decoders.decodePage)(cursor, options);
589
+ return (0, _decoders.decodePage)(cursor, context);
592
590
  case 9:
593
591
  decodedPage = _context12.sent;
594
592
  return _context12.abrupt("return", decodedPage.dictionary);
@@ -607,4 +605,8 @@ var ParquetReader = function () {
607
605
  return ParquetReader;
608
606
  }();
609
607
  exports.ParquetReader = ParquetReader;
608
+ (0, _defineProperty2.default)(ParquetReader, "defaultProps", {
609
+ defaultDictionarySize: 1e6,
610
+ preserveBinary: false
611
+ });
610
612
  //# sourceMappingURL=parquet-reader.js.map