@loaders.gl/parquet 3.3.0-alpha.5 → 3.3.0-alpha.7

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 (361) hide show
  1. package/dist/dist.min.js +14 -14
  2. package/dist/dist.min.js.map +2 -2
  3. package/dist/es5/bundle.js +0 -1
  4. package/dist/es5/bundle.js.map +1 -1
  5. package/dist/es5/constants.js +3 -1
  6. package/dist/es5/constants.js.map +1 -1
  7. package/dist/es5/index.js +23 -39
  8. package/dist/es5/index.js.map +1 -1
  9. package/dist/es5/lib/convert-schema.js +2 -11
  10. package/dist/es5/lib/convert-schema.js.map +1 -1
  11. package/dist/es5/lib/parse-parquet.js +29 -72
  12. package/dist/es5/lib/parse-parquet.js.map +1 -1
  13. package/dist/es5/lib/read-array-buffer.js +0 -10
  14. package/dist/es5/lib/read-array-buffer.js.map +1 -1
  15. package/dist/es5/lib/wasm/encode-parquet-wasm.js +0 -11
  16. package/dist/es5/lib/wasm/encode-parquet-wasm.js.map +1 -1
  17. package/dist/es5/lib/wasm/load-wasm/index.js +0 -1
  18. package/dist/es5/lib/wasm/load-wasm/index.js.map +1 -1
  19. package/dist/es5/lib/wasm/load-wasm/load-wasm-browser.js +0 -14
  20. package/dist/es5/lib/wasm/load-wasm/load-wasm-browser.js.map +1 -1
  21. package/dist/es5/lib/wasm/load-wasm/load-wasm-node.js +0 -10
  22. package/dist/es5/lib/wasm/load-wasm/load-wasm-node.js.map +1 -1
  23. package/dist/es5/lib/wasm/parse-parquet-wasm.js +1 -19
  24. package/dist/es5/lib/wasm/parse-parquet-wasm.js.map +1 -1
  25. package/dist/es5/parquet-loader.js +2 -1
  26. package/dist/es5/parquet-loader.js.map +1 -1
  27. package/dist/es5/parquet-wasm-loader.js +2 -1
  28. package/dist/es5/parquet-wasm-loader.js.map +1 -1
  29. package/dist/es5/parquet-wasm-writer.js +1 -3
  30. package/dist/es5/parquet-wasm-writer.js.map +1 -1
  31. package/dist/es5/parquet-writer.js +1 -2
  32. package/dist/es5/parquet-writer.js.map +1 -1
  33. package/dist/es5/parquetjs/codecs/declare.js.map +1 -1
  34. package/dist/es5/parquetjs/codecs/dictionary.js +2 -9
  35. package/dist/es5/parquetjs/codecs/dictionary.js.map +1 -1
  36. package/dist/es5/parquetjs/codecs/index.js +0 -8
  37. package/dist/es5/parquetjs/codecs/index.js.map +1 -1
  38. package/dist/es5/parquetjs/codecs/plain.js +1 -77
  39. package/dist/es5/parquetjs/codecs/plain.js.map +1 -1
  40. package/dist/es5/parquetjs/codecs/rle.js +1 -39
  41. package/dist/es5/parquetjs/codecs/rle.js.map +1 -1
  42. package/dist/es5/parquetjs/compression.js +5 -30
  43. package/dist/es5/parquetjs/compression.js.map +1 -1
  44. package/dist/es5/parquetjs/encoder/writer.js +31 -149
  45. package/dist/es5/parquetjs/encoder/writer.js.map +1 -1
  46. package/dist/es5/parquetjs/file.js +3 -12
  47. package/dist/es5/parquetjs/file.js.map +1 -1
  48. package/dist/es5/parquetjs/parquet-thrift/BoundaryOrder.js +0 -1
  49. package/dist/es5/parquetjs/parquet-thrift/BoundaryOrder.js.map +1 -1
  50. package/dist/es5/parquetjs/parquet-thrift/BsonType.js +0 -15
  51. package/dist/es5/parquetjs/parquet-thrift/BsonType.js.map +1 -1
  52. package/dist/es5/parquetjs/parquet-thrift/ColumnChunk.js +0 -48
  53. package/dist/es5/parquetjs/parquet-thrift/ColumnChunk.js.map +1 -1
  54. package/dist/es5/parquetjs/parquet-thrift/ColumnIndex.js +0 -47
  55. package/dist/es5/parquetjs/parquet-thrift/ColumnIndex.js.map +1 -1
  56. package/dist/es5/parquetjs/parquet-thrift/ColumnMetaData.js +0 -82
  57. package/dist/es5/parquetjs/parquet-thrift/ColumnMetaData.js.map +1 -1
  58. package/dist/es5/parquetjs/parquet-thrift/ColumnOrder.js +0 -25
  59. package/dist/es5/parquetjs/parquet-thrift/ColumnOrder.js.map +1 -1
  60. package/dist/es5/parquetjs/parquet-thrift/CompressionCodec.js +0 -1
  61. package/dist/es5/parquetjs/parquet-thrift/CompressionCodec.js.map +1 -1
  62. package/dist/es5/parquetjs/parquet-thrift/ConvertedType.js +0 -1
  63. package/dist/es5/parquetjs/parquet-thrift/ConvertedType.js.map +1 -1
  64. package/dist/es5/parquetjs/parquet-thrift/DataPageHeader.js +0 -39
  65. package/dist/es5/parquetjs/parquet-thrift/DataPageHeader.js.map +1 -1
  66. package/dist/es5/parquetjs/parquet-thrift/DataPageHeaderV2.js +0 -51
  67. package/dist/es5/parquetjs/parquet-thrift/DataPageHeaderV2.js.map +1 -1
  68. package/dist/es5/parquetjs/parquet-thrift/DateType.js +0 -15
  69. package/dist/es5/parquetjs/parquet-thrift/DateType.js.map +1 -1
  70. package/dist/es5/parquetjs/parquet-thrift/DecimalType.js +0 -26
  71. package/dist/es5/parquetjs/parquet-thrift/DecimalType.js.map +1 -1
  72. package/dist/es5/parquetjs/parquet-thrift/DictionaryPageHeader.js +0 -30
  73. package/dist/es5/parquetjs/parquet-thrift/DictionaryPageHeader.js.map +1 -1
  74. package/dist/es5/parquetjs/parquet-thrift/Encoding.js +0 -1
  75. package/dist/es5/parquetjs/parquet-thrift/Encoding.js.map +1 -1
  76. package/dist/es5/parquetjs/parquet-thrift/EnumType.js +0 -15
  77. package/dist/es5/parquetjs/parquet-thrift/EnumType.js.map +1 -1
  78. package/dist/es5/parquetjs/parquet-thrift/FieldRepetitionType.js +0 -1
  79. package/dist/es5/parquetjs/parquet-thrift/FieldRepetitionType.js.map +1 -1
  80. package/dist/es5/parquetjs/parquet-thrift/FileMetaData.js +0 -59
  81. package/dist/es5/parquetjs/parquet-thrift/FileMetaData.js.map +1 -1
  82. package/dist/es5/parquetjs/parquet-thrift/IndexPageHeader.js +0 -15
  83. package/dist/es5/parquetjs/parquet-thrift/IndexPageHeader.js.map +1 -1
  84. package/dist/es5/parquetjs/parquet-thrift/IntType.js +0 -26
  85. package/dist/es5/parquetjs/parquet-thrift/IntType.js.map +1 -1
  86. package/dist/es5/parquetjs/parquet-thrift/JsonType.js +0 -15
  87. package/dist/es5/parquetjs/parquet-thrift/JsonType.js.map +1 -1
  88. package/dist/es5/parquetjs/parquet-thrift/KeyValue.js +0 -26
  89. package/dist/es5/parquetjs/parquet-thrift/KeyValue.js.map +1 -1
  90. package/dist/es5/parquetjs/parquet-thrift/ListType.js +0 -15
  91. package/dist/es5/parquetjs/parquet-thrift/ListType.js.map +1 -1
  92. package/dist/es5/parquetjs/parquet-thrift/LogicalType.js +0 -85
  93. package/dist/es5/parquetjs/parquet-thrift/LogicalType.js.map +1 -1
  94. package/dist/es5/parquetjs/parquet-thrift/MapType.js +0 -15
  95. package/dist/es5/parquetjs/parquet-thrift/MapType.js.map +1 -1
  96. package/dist/es5/parquetjs/parquet-thrift/MicroSeconds.js +0 -15
  97. package/dist/es5/parquetjs/parquet-thrift/MicroSeconds.js.map +1 -1
  98. package/dist/es5/parquetjs/parquet-thrift/MilliSeconds.js +0 -15
  99. package/dist/es5/parquetjs/parquet-thrift/MilliSeconds.js.map +1 -1
  100. package/dist/es5/parquetjs/parquet-thrift/NullType.js +0 -15
  101. package/dist/es5/parquetjs/parquet-thrift/NullType.js.map +1 -1
  102. package/dist/es5/parquetjs/parquet-thrift/OffsetIndex.js +0 -25
  103. package/dist/es5/parquetjs/parquet-thrift/OffsetIndex.js.map +1 -1
  104. package/dist/es5/parquetjs/parquet-thrift/PageEncodingStats.js +0 -30
  105. package/dist/es5/parquetjs/parquet-thrift/PageEncodingStats.js.map +1 -1
  106. package/dist/es5/parquetjs/parquet-thrift/PageHeader.js +0 -54
  107. package/dist/es5/parquetjs/parquet-thrift/PageHeader.js.map +1 -1
  108. package/dist/es5/parquetjs/parquet-thrift/PageLocation.js +0 -31
  109. package/dist/es5/parquetjs/parquet-thrift/PageLocation.js.map +1 -1
  110. package/dist/es5/parquetjs/parquet-thrift/PageType.js +0 -1
  111. package/dist/es5/parquetjs/parquet-thrift/PageType.js.map +1 -1
  112. package/dist/es5/parquetjs/parquet-thrift/RowGroup.js +0 -41
  113. package/dist/es5/parquetjs/parquet-thrift/RowGroup.js.map +1 -1
  114. package/dist/es5/parquetjs/parquet-thrift/SchemaElement.js +0 -59
  115. package/dist/es5/parquetjs/parquet-thrift/SchemaElement.js.map +1 -1
  116. package/dist/es5/parquetjs/parquet-thrift/SortingColumn.js +0 -30
  117. package/dist/es5/parquetjs/parquet-thrift/SortingColumn.js.map +1 -1
  118. package/dist/es5/parquetjs/parquet-thrift/Statistics.js +0 -42
  119. package/dist/es5/parquetjs/parquet-thrift/Statistics.js.map +1 -1
  120. package/dist/es5/parquetjs/parquet-thrift/StringType.js +0 -15
  121. package/dist/es5/parquetjs/parquet-thrift/StringType.js.map +1 -1
  122. package/dist/es5/parquetjs/parquet-thrift/TimeType.js +0 -27
  123. package/dist/es5/parquetjs/parquet-thrift/TimeType.js.map +1 -1
  124. package/dist/es5/parquetjs/parquet-thrift/TimeUnit.js +0 -30
  125. package/dist/es5/parquetjs/parquet-thrift/TimeUnit.js.map +1 -1
  126. package/dist/es5/parquetjs/parquet-thrift/TimestampType.js +0 -27
  127. package/dist/es5/parquetjs/parquet-thrift/TimestampType.js.map +1 -1
  128. package/dist/es5/parquetjs/parquet-thrift/Type.js +0 -1
  129. package/dist/es5/parquetjs/parquet-thrift/Type.js.map +1 -1
  130. package/dist/es5/parquetjs/parquet-thrift/TypeDefinedOrder.js +0 -15
  131. package/dist/es5/parquetjs/parquet-thrift/TypeDefinedOrder.js.map +1 -1
  132. package/dist/es5/parquetjs/parquet-thrift/UUIDType.js +0 -15
  133. package/dist/es5/parquetjs/parquet-thrift/UUIDType.js.map +1 -1
  134. package/dist/es5/parquetjs/parquet-thrift/index.js +0 -86
  135. package/dist/es5/parquetjs/parquet-thrift/index.js.map +1 -1
  136. package/dist/es5/parquetjs/parser/decoders.js +3 -82
  137. package/dist/es5/parquetjs/parser/decoders.js.map +1 -1
  138. package/dist/es5/parquetjs/parser/parquet-cursor.js +5 -37
  139. package/dist/es5/parquetjs/parser/parquet-cursor.js.map +1 -1
  140. package/dist/es5/parquetjs/parser/parquet-envelope-reader.js +2 -88
  141. package/dist/es5/parquetjs/parser/parquet-envelope-reader.js.map +1 -1
  142. package/dist/es5/parquetjs/parser/parquet-reader.js +14 -67
  143. package/dist/es5/parquetjs/parser/parquet-reader.js.map +1 -1
  144. package/dist/es5/parquetjs/schema/declare.js +3 -7
  145. package/dist/es5/parquetjs/schema/declare.js.map +1 -1
  146. package/dist/es5/parquetjs/schema/schema.js +6 -34
  147. package/dist/es5/parquetjs/schema/schema.js.map +1 -1
  148. package/dist/es5/parquetjs/schema/shred.js +11 -41
  149. package/dist/es5/parquetjs/schema/shred.js.map +1 -1
  150. package/dist/es5/parquetjs/schema/types.js +3 -84
  151. package/dist/es5/parquetjs/schema/types.js.map +1 -1
  152. package/dist/es5/parquetjs/utils/buffer-utils.js +0 -2
  153. package/dist/es5/parquetjs/utils/buffer-utils.js.map +1 -1
  154. package/dist/es5/parquetjs/utils/file-utils.js +1 -7
  155. package/dist/es5/parquetjs/utils/file-utils.js.map +1 -1
  156. package/dist/es5/parquetjs/utils/read-utils.js +6 -38
  157. package/dist/es5/parquetjs/utils/read-utils.js.map +1 -1
  158. package/dist/es5/workers/parquet-worker.js +0 -2
  159. package/dist/es5/workers/parquet-worker.js.map +1 -1
  160. package/dist/esm/bundle.js +1 -1
  161. package/dist/esm/bundle.js.map +1 -1
  162. package/dist/esm/constants.js +3 -0
  163. package/dist/esm/constants.js.map +1 -1
  164. package/dist/esm/index.js +10 -2
  165. package/dist/esm/index.js.map +1 -1
  166. package/dist/esm/lib/convert-schema.js +1 -7
  167. package/dist/esm/lib/convert-schema.js.map +1 -1
  168. package/dist/esm/lib/parse-parquet.js +2 -5
  169. package/dist/esm/lib/parse-parquet.js.map +1 -1
  170. package/dist/esm/lib/read-array-buffer.js +2 -1
  171. package/dist/esm/lib/read-array-buffer.js.map +1 -1
  172. package/dist/esm/lib/wasm/encode-parquet-wasm.js +1 -1
  173. package/dist/esm/lib/wasm/encode-parquet-wasm.js.map +1 -1
  174. package/dist/esm/lib/wasm/load-wasm/index.js.map +1 -1
  175. package/dist/esm/lib/wasm/load-wasm/load-wasm-browser.js.map +1 -1
  176. package/dist/esm/lib/wasm/load-wasm/load-wasm-node.js.map +1 -1
  177. package/dist/esm/lib/wasm/parse-parquet-wasm.js +2 -3
  178. package/dist/esm/lib/wasm/parse-parquet-wasm.js.map +1 -1
  179. package/dist/esm/parquet-loader.js +3 -1
  180. package/dist/esm/parquet-loader.js.map +1 -1
  181. package/dist/esm/parquet-wasm-loader.js +3 -1
  182. package/dist/esm/parquet-wasm-loader.js.map +1 -1
  183. package/dist/esm/parquet-wasm-writer.js +2 -1
  184. package/dist/esm/parquet-wasm-writer.js.map +1 -1
  185. package/dist/esm/parquet-writer.js +2 -2
  186. package/dist/esm/parquet-writer.js.map +1 -1
  187. package/dist/esm/parquetjs/codecs/declare.js.map +1 -1
  188. package/dist/esm/parquetjs/codecs/dictionary.js +2 -1
  189. package/dist/esm/parquetjs/codecs/dictionary.js.map +1 -1
  190. package/dist/esm/parquetjs/codecs/index.js +2 -0
  191. package/dist/esm/parquetjs/codecs/index.js.map +1 -1
  192. package/dist/esm/parquetjs/codecs/plain.js +2 -68
  193. package/dist/esm/parquetjs/codecs/plain.js.map +1 -1
  194. package/dist/esm/parquetjs/codecs/rle.js +3 -29
  195. package/dist/esm/parquetjs/codecs/rle.js.map +1 -1
  196. package/dist/esm/parquetjs/compression.js +9 -5
  197. package/dist/esm/parquetjs/compression.js.map +1 -1
  198. package/dist/esm/parquetjs/encoder/writer.js +21 -51
  199. package/dist/esm/parquetjs/encoder/writer.js.map +1 -1
  200. package/dist/esm/parquetjs/file.js +1 -0
  201. package/dist/esm/parquetjs/file.js.map +1 -1
  202. package/dist/esm/parquetjs/parquet-thrift/BoundaryOrder.js +1 -1
  203. package/dist/esm/parquetjs/parquet-thrift/BoundaryOrder.js.map +1 -1
  204. package/dist/esm/parquetjs/parquet-thrift/BsonType.js +1 -8
  205. package/dist/esm/parquetjs/parquet-thrift/BsonType.js.map +1 -1
  206. package/dist/esm/parquetjs/parquet-thrift/ColumnChunk.js +0 -44
  207. package/dist/esm/parquetjs/parquet-thrift/ColumnChunk.js.map +1 -1
  208. package/dist/esm/parquetjs/parquet-thrift/ColumnIndex.js +0 -42
  209. package/dist/esm/parquetjs/parquet-thrift/ColumnIndex.js.map +1 -1
  210. package/dist/esm/parquetjs/parquet-thrift/ColumnMetaData.js +0 -82
  211. package/dist/esm/parquetjs/parquet-thrift/ColumnMetaData.js.map +1 -1
  212. package/dist/esm/parquetjs/parquet-thrift/ColumnOrder.js +0 -18
  213. package/dist/esm/parquetjs/parquet-thrift/ColumnOrder.js.map +1 -1
  214. package/dist/esm/parquetjs/parquet-thrift/CompressionCodec.js +1 -1
  215. package/dist/esm/parquetjs/parquet-thrift/CompressionCodec.js.map +1 -1
  216. package/dist/esm/parquetjs/parquet-thrift/ConvertedType.js +1 -1
  217. package/dist/esm/parquetjs/parquet-thrift/ConvertedType.js.map +1 -1
  218. package/dist/esm/parquetjs/parquet-thrift/DataPageHeader.js +0 -34
  219. package/dist/esm/parquetjs/parquet-thrift/DataPageHeader.js.map +1 -1
  220. package/dist/esm/parquetjs/parquet-thrift/DataPageHeaderV2.js +0 -49
  221. package/dist/esm/parquetjs/parquet-thrift/DataPageHeaderV2.js.map +1 -1
  222. package/dist/esm/parquetjs/parquet-thrift/DateType.js +1 -8
  223. package/dist/esm/parquetjs/parquet-thrift/DateType.js.map +1 -1
  224. package/dist/esm/parquetjs/parquet-thrift/DecimalType.js +0 -19
  225. package/dist/esm/parquetjs/parquet-thrift/DecimalType.js.map +1 -1
  226. package/dist/esm/parquetjs/parquet-thrift/DictionaryPageHeader.js +0 -24
  227. package/dist/esm/parquetjs/parquet-thrift/DictionaryPageHeader.js.map +1 -1
  228. package/dist/esm/parquetjs/parquet-thrift/Encoding.js +1 -1
  229. package/dist/esm/parquetjs/parquet-thrift/Encoding.js.map +1 -1
  230. package/dist/esm/parquetjs/parquet-thrift/EnumType.js +1 -8
  231. package/dist/esm/parquetjs/parquet-thrift/EnumType.js.map +1 -1
  232. package/dist/esm/parquetjs/parquet-thrift/FieldRepetitionType.js +1 -1
  233. package/dist/esm/parquetjs/parquet-thrift/FieldRepetitionType.js.map +1 -1
  234. package/dist/esm/parquetjs/parquet-thrift/FileMetaData.js +2 -53
  235. package/dist/esm/parquetjs/parquet-thrift/FileMetaData.js.map +1 -1
  236. package/dist/esm/parquetjs/parquet-thrift/IndexPageHeader.js +1 -8
  237. package/dist/esm/parquetjs/parquet-thrift/IndexPageHeader.js.map +1 -1
  238. package/dist/esm/parquetjs/parquet-thrift/IntType.js +0 -19
  239. package/dist/esm/parquetjs/parquet-thrift/IntType.js.map +1 -1
  240. package/dist/esm/parquetjs/parquet-thrift/JsonType.js +1 -8
  241. package/dist/esm/parquetjs/parquet-thrift/JsonType.js.map +1 -1
  242. package/dist/esm/parquetjs/parquet-thrift/KeyValue.js +0 -19
  243. package/dist/esm/parquetjs/parquet-thrift/KeyValue.js.map +1 -1
  244. package/dist/esm/parquetjs/parquet-thrift/ListType.js +1 -8
  245. package/dist/esm/parquetjs/parquet-thrift/ListType.js.map +1 -1
  246. package/dist/esm/parquetjs/parquet-thrift/LogicalType.js +0 -90
  247. package/dist/esm/parquetjs/parquet-thrift/LogicalType.js.map +1 -1
  248. package/dist/esm/parquetjs/parquet-thrift/MapType.js +1 -8
  249. package/dist/esm/parquetjs/parquet-thrift/MapType.js.map +1 -1
  250. package/dist/esm/parquetjs/parquet-thrift/MicroSeconds.js +1 -8
  251. package/dist/esm/parquetjs/parquet-thrift/MicroSeconds.js.map +1 -1
  252. package/dist/esm/parquetjs/parquet-thrift/MilliSeconds.js +1 -8
  253. package/dist/esm/parquetjs/parquet-thrift/MilliSeconds.js.map +1 -1
  254. package/dist/esm/parquetjs/parquet-thrift/NullType.js +1 -8
  255. package/dist/esm/parquetjs/parquet-thrift/NullType.js.map +1 -1
  256. package/dist/esm/parquetjs/parquet-thrift/OffsetIndex.js +0 -16
  257. package/dist/esm/parquetjs/parquet-thrift/OffsetIndex.js.map +1 -1
  258. package/dist/esm/parquetjs/parquet-thrift/PageEncodingStats.js +0 -24
  259. package/dist/esm/parquetjs/parquet-thrift/PageEncodingStats.js.map +1 -1
  260. package/dist/esm/parquetjs/parquet-thrift/PageHeader.js +0 -49
  261. package/dist/esm/parquetjs/parquet-thrift/PageHeader.js.map +1 -1
  262. package/dist/esm/parquetjs/parquet-thrift/PageLocation.js +0 -24
  263. package/dist/esm/parquetjs/parquet-thrift/PageLocation.js.map +1 -1
  264. package/dist/esm/parquetjs/parquet-thrift/PageType.js +1 -1
  265. package/dist/esm/parquetjs/parquet-thrift/PageType.js.map +1 -1
  266. package/dist/esm/parquetjs/parquet-thrift/RowGroup.js +0 -33
  267. package/dist/esm/parquetjs/parquet-thrift/RowGroup.js.map +1 -1
  268. package/dist/esm/parquetjs/parquet-thrift/SchemaElement.js +0 -59
  269. package/dist/esm/parquetjs/parquet-thrift/SchemaElement.js.map +1 -1
  270. package/dist/esm/parquetjs/parquet-thrift/SortingColumn.js +0 -24
  271. package/dist/esm/parquetjs/parquet-thrift/SortingColumn.js.map +1 -1
  272. package/dist/esm/parquetjs/parquet-thrift/Statistics.js +0 -38
  273. package/dist/esm/parquetjs/parquet-thrift/Statistics.js.map +1 -1
  274. package/dist/esm/parquetjs/parquet-thrift/StringType.js +1 -8
  275. package/dist/esm/parquetjs/parquet-thrift/StringType.js.map +1 -1
  276. package/dist/esm/parquetjs/parquet-thrift/TimeType.js +0 -19
  277. package/dist/esm/parquetjs/parquet-thrift/TimeType.js.map +1 -1
  278. package/dist/esm/parquetjs/parquet-thrift/TimeUnit.js +0 -24
  279. package/dist/esm/parquetjs/parquet-thrift/TimeUnit.js.map +1 -1
  280. package/dist/esm/parquetjs/parquet-thrift/TimestampType.js +0 -19
  281. package/dist/esm/parquetjs/parquet-thrift/TimestampType.js.map +1 -1
  282. package/dist/esm/parquetjs/parquet-thrift/Type.js +1 -1
  283. package/dist/esm/parquetjs/parquet-thrift/Type.js.map +1 -1
  284. package/dist/esm/parquetjs/parquet-thrift/TypeDefinedOrder.js +1 -8
  285. package/dist/esm/parquetjs/parquet-thrift/TypeDefinedOrder.js.map +1 -1
  286. package/dist/esm/parquetjs/parquet-thrift/UUIDType.js +1 -8
  287. package/dist/esm/parquetjs/parquet-thrift/UUIDType.js.map +1 -1
  288. package/dist/esm/parquetjs/parquet-thrift/index.js +1 -0
  289. package/dist/esm/parquetjs/parquet-thrift/index.js.map +1 -1
  290. package/dist/esm/parquetjs/parser/decoders.js +9 -39
  291. package/dist/esm/parquetjs/parser/decoders.js.map +1 -1
  292. package/dist/esm/parquetjs/parser/parquet-cursor.js +1 -13
  293. package/dist/esm/parquetjs/parser/parquet-cursor.js.map +1 -1
  294. package/dist/esm/parquetjs/parser/parquet-envelope-reader.js +6 -32
  295. package/dist/esm/parquetjs/parser/parquet-envelope-reader.js.map +1 -1
  296. package/dist/esm/parquetjs/parser/parquet-reader.js +1 -18
  297. package/dist/esm/parquetjs/parser/parquet-reader.js.map +1 -1
  298. package/dist/esm/parquetjs/schema/declare.js +4 -4
  299. package/dist/esm/parquetjs/schema/declare.js.map +1 -1
  300. package/dist/esm/parquetjs/schema/schema.js +3 -29
  301. package/dist/esm/parquetjs/schema/schema.js.map +1 -1
  302. package/dist/esm/parquetjs/schema/shred.js +7 -22
  303. package/dist/esm/parquetjs/schema/shred.js.map +1 -1
  304. package/dist/esm/parquetjs/schema/types.js +3 -78
  305. package/dist/esm/parquetjs/schema/types.js.map +1 -1
  306. package/dist/esm/parquetjs/utils/buffer-utils.js +2 -1
  307. package/dist/esm/parquetjs/utils/buffer-utils.js.map +1 -1
  308. package/dist/esm/parquetjs/utils/file-utils.js +1 -0
  309. package/dist/esm/parquetjs/utils/file-utils.js.map +1 -1
  310. package/dist/esm/parquetjs/utils/read-utils.js +5 -12
  311. package/dist/esm/parquetjs/utils/read-utils.js.map +1 -1
  312. package/dist/esm/workers/parquet-worker.js.map +1 -1
  313. package/dist/lib/wasm/load-wasm/load-wasm-browser.js +5 -1
  314. package/dist/lib/wasm/load-wasm/load-wasm-node.js +5 -1
  315. package/dist/parquet-worker.js +14 -14
  316. package/dist/parquet-worker.js.map +2 -2
  317. package/dist/parquetjs/codecs/index.js +5 -1
  318. package/dist/parquetjs/encoder/writer.d.ts +1 -0
  319. package/dist/parquetjs/encoder/writer.d.ts.map +1 -1
  320. package/dist/parquetjs/encoder/writer.js +5 -1
  321. package/dist/parquetjs/parquet-thrift/BsonType.js +5 -1
  322. package/dist/parquetjs/parquet-thrift/ColumnChunk.js +5 -1
  323. package/dist/parquetjs/parquet-thrift/ColumnIndex.js +5 -1
  324. package/dist/parquetjs/parquet-thrift/ColumnMetaData.js +5 -1
  325. package/dist/parquetjs/parquet-thrift/ColumnOrder.js +5 -1
  326. package/dist/parquetjs/parquet-thrift/DataPageHeader.js +5 -1
  327. package/dist/parquetjs/parquet-thrift/DataPageHeaderV2.js +5 -1
  328. package/dist/parquetjs/parquet-thrift/DateType.js +5 -1
  329. package/dist/parquetjs/parquet-thrift/DecimalType.js +5 -1
  330. package/dist/parquetjs/parquet-thrift/DictionaryPageHeader.js +5 -1
  331. package/dist/parquetjs/parquet-thrift/EnumType.js +5 -1
  332. package/dist/parquetjs/parquet-thrift/FileMetaData.js +5 -1
  333. package/dist/parquetjs/parquet-thrift/IndexPageHeader.js +5 -1
  334. package/dist/parquetjs/parquet-thrift/IntType.js +5 -1
  335. package/dist/parquetjs/parquet-thrift/JsonType.js +5 -1
  336. package/dist/parquetjs/parquet-thrift/KeyValue.js +5 -1
  337. package/dist/parquetjs/parquet-thrift/ListType.js +5 -1
  338. package/dist/parquetjs/parquet-thrift/LogicalType.js +5 -1
  339. package/dist/parquetjs/parquet-thrift/MapType.js +5 -1
  340. package/dist/parquetjs/parquet-thrift/MicroSeconds.js +5 -1
  341. package/dist/parquetjs/parquet-thrift/MilliSeconds.js +5 -1
  342. package/dist/parquetjs/parquet-thrift/NullType.js +5 -1
  343. package/dist/parquetjs/parquet-thrift/OffsetIndex.js +5 -1
  344. package/dist/parquetjs/parquet-thrift/PageEncodingStats.js +5 -1
  345. package/dist/parquetjs/parquet-thrift/PageHeader.js +5 -1
  346. package/dist/parquetjs/parquet-thrift/PageLocation.js +5 -1
  347. package/dist/parquetjs/parquet-thrift/RowGroup.js +5 -1
  348. package/dist/parquetjs/parquet-thrift/SchemaElement.js +5 -1
  349. package/dist/parquetjs/parquet-thrift/SortingColumn.js +5 -1
  350. package/dist/parquetjs/parquet-thrift/Statistics.js +5 -1
  351. package/dist/parquetjs/parquet-thrift/StringType.js +5 -1
  352. package/dist/parquetjs/parquet-thrift/TimeType.js +5 -1
  353. package/dist/parquetjs/parquet-thrift/TimeUnit.js +5 -1
  354. package/dist/parquetjs/parquet-thrift/TimestampType.js +5 -1
  355. package/dist/parquetjs/parquet-thrift/TypeDefinedOrder.js +5 -1
  356. package/dist/parquetjs/parquet-thrift/UUIDType.js +5 -1
  357. package/dist/parquetjs/parquet-thrift/index.js +5 -1
  358. package/dist/parquetjs/schema/shred.js +5 -1
  359. package/dist/parquetjs/utils/file-utils.d.ts +2 -0
  360. package/dist/parquetjs/utils/file-utils.d.ts.map +1 -1
  361. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/parquetjs/parquet-thrift/TimestampType.ts"],"names":["thrift","TimeUnit","TimestampType","constructor","args","isAdjustedToUTC","Thrift","TProtocolException","TProtocolExceptionType","UNKNOWN","unit","write","output","writeStructBegin","writeFieldBegin","Type","BOOL","writeBool","writeFieldEnd","STRUCT","writeFieldStop","writeStructEnd","read","input","readStructBegin","_args","ret","readFieldBegin","fieldType","ftype","fieldId","fid","STOP","value_1","readBool","skip","value_2","readFieldEnd","readStructEnd","undefined"],"mappings":"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","sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/*\n * Autogenerated by @creditkarma/thrift-typescript v3.7.2\n * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING\n */\nimport * as thrift from 'thrift';\nimport * as TimeUnit from './TimeUnit';\nexport interface ITimestampTypeArgs {\n isAdjustedToUTC: boolean;\n unit: TimeUnit.TimeUnit;\n}\nexport class TimestampType {\n public isAdjustedToUTC: boolean;\n public unit: TimeUnit.TimeUnit;\n constructor(args: ITimestampTypeArgs) {\n if (args != null && args.isAdjustedToUTC != null) {\n this.isAdjustedToUTC = args.isAdjustedToUTC;\n } else {\n throw new thrift.Thrift.TProtocolException(\n thrift.Thrift.TProtocolExceptionType.UNKNOWN,\n 'Required field[isAdjustedToUTC] is unset!'\n );\n }\n if (args != null && args.unit != null) {\n this.unit = args.unit;\n } else {\n throw new thrift.Thrift.TProtocolException(\n thrift.Thrift.TProtocolExceptionType.UNKNOWN,\n 'Required field[unit] is unset!'\n );\n }\n }\n public write(output: thrift.TProtocol): void {\n output.writeStructBegin('TimestampType');\n if (this.isAdjustedToUTC != null) {\n output.writeFieldBegin('isAdjustedToUTC', thrift.Thrift.Type.BOOL, 1);\n output.writeBool(this.isAdjustedToUTC);\n output.writeFieldEnd();\n }\n if (this.unit != null) {\n output.writeFieldBegin('unit', thrift.Thrift.Type.STRUCT, 2);\n this.unit.write(output);\n output.writeFieldEnd();\n }\n output.writeFieldStop();\n output.writeStructEnd();\n return;\n }\n public static read(input: thrift.TProtocol): TimestampType {\n input.readStructBegin();\n let _args: any = {};\n while (true) {\n const ret: thrift.TField = input.readFieldBegin();\n const fieldType: thrift.Thrift.Type = ret.ftype;\n const fieldId: number = ret.fid;\n if (fieldType === thrift.Thrift.Type.STOP) {\n break;\n }\n switch (fieldId) {\n case 1:\n if (fieldType === thrift.Thrift.Type.BOOL) {\n const value_1: boolean = input.readBool();\n _args.isAdjustedToUTC = value_1;\n } else {\n input.skip(fieldType);\n }\n break;\n case 2:\n if (fieldType === thrift.Thrift.Type.STRUCT) {\n const value_2: TimeUnit.TimeUnit = TimeUnit.TimeUnit.read(input);\n _args.unit = value_2;\n } else {\n input.skip(fieldType);\n }\n break;\n default: {\n input.skip(fieldType);\n }\n }\n input.readFieldEnd();\n }\n input.readStructEnd();\n if (_args.isAdjustedToUTC !== undefined && _args.unit !== undefined) {\n return new TimestampType(_args);\n } else {\n throw new thrift.Thrift.TProtocolException(\n thrift.Thrift.TProtocolExceptionType.UNKNOWN,\n 'Unable to read TimestampType from input'\n );\n }\n }\n}\n"],"file":"TimestampType.js"}
1
+ {"version":3,"file":"TimestampType.js","names":["thrift","TimeUnit","TimestampType","constructor","args","isAdjustedToUTC","Thrift","TProtocolException","TProtocolExceptionType","UNKNOWN","unit","write","output","writeStructBegin","writeFieldBegin","Type","BOOL","writeBool","writeFieldEnd","STRUCT","writeFieldStop","writeStructEnd","read","input","readStructBegin","_args","ret","readFieldBegin","fieldType","ftype","fieldId","fid","STOP","value_1","readBool","skip","value_2","readFieldEnd","readStructEnd","undefined"],"sources":["../../../../src/parquetjs/parquet-thrift/TimestampType.ts"],"sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/*\n * Autogenerated by @creditkarma/thrift-typescript v3.7.2\n * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING\n */\nimport * as thrift from 'thrift';\nimport * as TimeUnit from './TimeUnit';\nexport interface ITimestampTypeArgs {\n isAdjustedToUTC: boolean;\n unit: TimeUnit.TimeUnit;\n}\nexport class TimestampType {\n public isAdjustedToUTC: boolean;\n public unit: TimeUnit.TimeUnit;\n constructor(args: ITimestampTypeArgs) {\n if (args != null && args.isAdjustedToUTC != null) {\n this.isAdjustedToUTC = args.isAdjustedToUTC;\n } else {\n throw new thrift.Thrift.TProtocolException(\n thrift.Thrift.TProtocolExceptionType.UNKNOWN,\n 'Required field[isAdjustedToUTC] is unset!'\n );\n }\n if (args != null && args.unit != null) {\n this.unit = args.unit;\n } else {\n throw new thrift.Thrift.TProtocolException(\n thrift.Thrift.TProtocolExceptionType.UNKNOWN,\n 'Required field[unit] is unset!'\n );\n }\n }\n public write(output: thrift.TProtocol): void {\n output.writeStructBegin('TimestampType');\n if (this.isAdjustedToUTC != null) {\n output.writeFieldBegin('isAdjustedToUTC', thrift.Thrift.Type.BOOL, 1);\n output.writeBool(this.isAdjustedToUTC);\n output.writeFieldEnd();\n }\n if (this.unit != null) {\n output.writeFieldBegin('unit', thrift.Thrift.Type.STRUCT, 2);\n this.unit.write(output);\n output.writeFieldEnd();\n }\n output.writeFieldStop();\n output.writeStructEnd();\n return;\n }\n public static read(input: thrift.TProtocol): TimestampType {\n input.readStructBegin();\n let _args: any = {};\n while (true) {\n const ret: thrift.TField = input.readFieldBegin();\n const fieldType: thrift.Thrift.Type = ret.ftype;\n const fieldId: number = ret.fid;\n if (fieldType === thrift.Thrift.Type.STOP) {\n break;\n }\n switch (fieldId) {\n case 1:\n if (fieldType === thrift.Thrift.Type.BOOL) {\n const value_1: boolean = input.readBool();\n _args.isAdjustedToUTC = value_1;\n } else {\n input.skip(fieldType);\n }\n break;\n case 2:\n if (fieldType === thrift.Thrift.Type.STRUCT) {\n const value_2: TimeUnit.TimeUnit = TimeUnit.TimeUnit.read(input);\n _args.unit = value_2;\n } else {\n input.skip(fieldType);\n }\n break;\n default: {\n input.skip(fieldType);\n }\n }\n input.readFieldEnd();\n }\n input.readStructEnd();\n if (_args.isAdjustedToUTC !== undefined && _args.unit !== undefined) {\n return new TimestampType(_args);\n } else {\n throw new thrift.Thrift.TProtocolException(\n thrift.Thrift.TProtocolExceptionType.UNKNOWN,\n 'Unable to read TimestampType from input'\n );\n }\n }\n}\n"],"mappings":";AAMA,OAAO,KAAKA,MAAM,MAAM,QAAQ;AAChC,OAAO,KAAKC,QAAQ,MAAM,YAAY;AAKtC,OAAO,MAAMC,aAAa,CAAC;EAGzBC,WAAW,CAACC,IAAwB,EAAE;IAAA;IAAA;IACpC,IAAIA,IAAI,IAAI,IAAI,IAAIA,IAAI,CAACC,eAAe,IAAI,IAAI,EAAE;MAChD,IAAI,CAACA,eAAe,GAAGD,IAAI,CAACC,eAAe;IAC7C,CAAC,MAAM;MACL,MAAM,IAAIL,MAAM,CAACM,MAAM,CAACC,kBAAkB,CACxCP,MAAM,CAACM,MAAM,CAACE,sBAAsB,CAACC,OAAO,EAC5C,2CAA2C,CAC5C;IACH;IACA,IAAIL,IAAI,IAAI,IAAI,IAAIA,IAAI,CAACM,IAAI,IAAI,IAAI,EAAE;MACrC,IAAI,CAACA,IAAI,GAAGN,IAAI,CAACM,IAAI;IACvB,CAAC,MAAM;MACL,MAAM,IAAIV,MAAM,CAACM,MAAM,CAACC,kBAAkB,CACxCP,MAAM,CAACM,MAAM,CAACE,sBAAsB,CAACC,OAAO,EAC5C,gCAAgC,CACjC;IACH;EACF;EACOE,KAAK,CAACC,MAAwB,EAAQ;IAC3CA,MAAM,CAACC,gBAAgB,CAAC,eAAe,CAAC;IACxC,IAAI,IAAI,CAACR,eAAe,IAAI,IAAI,EAAE;MAChCO,MAAM,CAACE,eAAe,CAAC,iBAAiB,EAAEd,MAAM,CAACM,MAAM,CAACS,IAAI,CAACC,IAAI,EAAE,CAAC,CAAC;MACrEJ,MAAM,CAACK,SAAS,CAAC,IAAI,CAACZ,eAAe,CAAC;MACtCO,MAAM,CAACM,aAAa,EAAE;IACxB;IACA,IAAI,IAAI,CAACR,IAAI,IAAI,IAAI,EAAE;MACrBE,MAAM,CAACE,eAAe,CAAC,MAAM,EAAEd,MAAM,CAACM,MAAM,CAACS,IAAI,CAACI,MAAM,EAAE,CAAC,CAAC;MAC5D,IAAI,CAACT,IAAI,CAACC,KAAK,CAACC,MAAM,CAAC;MACvBA,MAAM,CAACM,aAAa,EAAE;IACxB;IACAN,MAAM,CAACQ,cAAc,EAAE;IACvBR,MAAM,CAACS,cAAc,EAAE;IACvB;EACF;EACA,OAAcC,IAAI,CAACC,KAAuB,EAAiB;IACzDA,KAAK,CAACC,eAAe,EAAE;IACvB,IAAIC,KAAU,GAAG,CAAC,CAAC;IACnB,OAAO,IAAI,EAAE;MACX,MAAMC,GAAkB,GAAGH,KAAK,CAACI,cAAc,EAAE;MACjD,MAAMC,SAA6B,GAAGF,GAAG,CAACG,KAAK;MAC/C,MAAMC,OAAe,GAAGJ,GAAG,CAACK,GAAG;MAC/B,IAAIH,SAAS,KAAK5B,MAAM,CAACM,MAAM,CAACS,IAAI,CAACiB,IAAI,EAAE;QACzC;MACF;MACA,QAAQF,OAAO;QACb,KAAK,CAAC;UACJ,IAAIF,SAAS,KAAK5B,MAAM,CAACM,MAAM,CAACS,IAAI,CAACC,IAAI,EAAE;YACzC,MAAMiB,OAAgB,GAAGV,KAAK,CAACW,QAAQ,EAAE;YACzCT,KAAK,CAACpB,eAAe,GAAG4B,OAAO;UACjC,CAAC,MAAM;YACLV,KAAK,CAACY,IAAI,CAACP,SAAS,CAAC;UACvB;UACA;QACF,KAAK,CAAC;UACJ,IAAIA,SAAS,KAAK5B,MAAM,CAACM,MAAM,CAACS,IAAI,CAACI,MAAM,EAAE;YAC3C,MAAMiB,OAA0B,GAAGnC,QAAQ,CAACA,QAAQ,CAACqB,IAAI,CAACC,KAAK,CAAC;YAChEE,KAAK,CAACf,IAAI,GAAG0B,OAAO;UACtB,CAAC,MAAM;YACLb,KAAK,CAACY,IAAI,CAACP,SAAS,CAAC;UACvB;UACA;QACF;UAAS;YACPL,KAAK,CAACY,IAAI,CAACP,SAAS,CAAC;UACvB;MAAC;MAEHL,KAAK,CAACc,YAAY,EAAE;IACtB;IACAd,KAAK,CAACe,aAAa,EAAE;IACrB,IAAIb,KAAK,CAACpB,eAAe,KAAKkC,SAAS,IAAId,KAAK,CAACf,IAAI,KAAK6B,SAAS,EAAE;MACnE,OAAO,IAAIrC,aAAa,CAACuB,KAAK,CAAC;IACjC,CAAC,MAAM;MACL,MAAM,IAAIzB,MAAM,CAACM,MAAM,CAACC,kBAAkB,CACxCP,MAAM,CAACM,MAAM,CAACE,sBAAsB,CAACC,OAAO,EAC5C,yCAAyC,CAC1C;IACH;EACF;AACF"}
@@ -1,5 +1,5 @@
1
- export let Type;
2
1
 
2
+ export let Type;
3
3
  (function (Type) {
4
4
  Type[Type["BOOLEAN"] = 0] = "BOOLEAN";
5
5
  Type[Type["INT32"] = 1] = "INT32";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/parquetjs/parquet-thrift/Type.ts"],"names":["Type"],"mappings":"AAMA,WAAYA,IAAZ;;WAAYA,I;AAAAA,EAAAA,I,CAAAA,I;AAAAA,EAAAA,I,CAAAA,I;AAAAA,EAAAA,I,CAAAA,I;AAAAA,EAAAA,I,CAAAA,I;AAAAA,EAAAA,I,CAAAA,I;AAAAA,EAAAA,I,CAAAA,I;AAAAA,EAAAA,I,CAAAA,I;AAAAA,EAAAA,I,CAAAA,I;GAAAA,I,KAAAA,I","sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/*\n * Autogenerated by @creditkarma/thrift-typescript v3.7.2\n * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING\n */\nexport enum Type {\n BOOLEAN = 0,\n INT32 = 1,\n INT64 = 2,\n INT96 = 3,\n FLOAT = 4,\n DOUBLE = 5,\n BYTE_ARRAY = 6,\n FIXED_LEN_BYTE_ARRAY = 7\n}\n"],"file":"Type.js"}
1
+ {"version":3,"file":"Type.js","names":["Type"],"sources":["../../../../src/parquetjs/parquet-thrift/Type.ts"],"sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/*\n * Autogenerated by @creditkarma/thrift-typescript v3.7.2\n * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING\n */\nexport enum Type {\n BOOLEAN = 0,\n INT32 = 1,\n INT64 = 2,\n INT96 = 3,\n FLOAT = 4,\n DOUBLE = 5,\n BYTE_ARRAY = 6,\n FIXED_LEN_BYTE_ARRAY = 7\n}\n"],"mappings":";AAMA,WAAYA,IAAI;AASf,WATWA,IAAI;EAAJA,IAAI,CAAJA,IAAI;EAAJA,IAAI,CAAJA,IAAI;EAAJA,IAAI,CAAJA,IAAI;EAAJA,IAAI,CAAJA,IAAI;EAAJA,IAAI,CAAJA,IAAI;EAAJA,IAAI,CAAJA,IAAI;EAAJA,IAAI,CAAJA,IAAI;EAAJA,IAAI,CAAJA,IAAI;AAAA,GAAJA,IAAI,KAAJA,IAAI"}
@@ -1,39 +1,32 @@
1
+
1
2
  import * as thrift from 'thrift';
2
3
  export class TypeDefinedOrder {
3
4
  constructor() {}
4
-
5
5
  write(output) {
6
6
  output.writeStructBegin('TypeDefinedOrder');
7
7
  output.writeFieldStop();
8
8
  output.writeStructEnd();
9
9
  return;
10
10
  }
11
-
12
11
  static read(input) {
13
12
  input.readStructBegin();
14
-
15
13
  while (true) {
16
14
  const ret = input.readFieldBegin();
17
15
  const fieldType = ret.ftype;
18
16
  const fieldId = ret.fid;
19
-
20
17
  if (fieldType === thrift.Thrift.Type.STOP) {
21
18
  break;
22
19
  }
23
-
24
20
  switch (fieldId) {
25
21
  default:
26
22
  {
27
23
  input.skip(fieldType);
28
24
  }
29
25
  }
30
-
31
26
  input.readFieldEnd();
32
27
  }
33
-
34
28
  input.readStructEnd();
35
29
  return new TypeDefinedOrder();
36
30
  }
37
-
38
31
  }
39
32
  //# sourceMappingURL=TypeDefinedOrder.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/parquetjs/parquet-thrift/TypeDefinedOrder.ts"],"names":["thrift","TypeDefinedOrder","constructor","write","output","writeStructBegin","writeFieldStop","writeStructEnd","read","input","readStructBegin","ret","readFieldBegin","fieldType","ftype","fieldId","fid","Thrift","Type","STOP","skip","readFieldEnd","readStructEnd"],"mappings":"AAMA,OAAO,KAAKA,MAAZ,MAAwB,QAAxB;AAEA,OAAO,MAAMC,gBAAN,CAAuB;AAC5BC,EAAAA,WAAW,GAAG,CAAE;;AACTC,EAAAA,KAAK,CAACC,MAAD,EAAiC;AAC3CA,IAAAA,MAAM,CAACC,gBAAP,CAAwB,kBAAxB;AACAD,IAAAA,MAAM,CAACE,cAAP;AACAF,IAAAA,MAAM,CAACG,cAAP;AACA;AACD;;AACiB,SAAJC,IAAI,CAACC,KAAD,EAA4C;AAC5DA,IAAAA,KAAK,CAACC,eAAN;;AACA,WAAO,IAAP,EAAa;AACX,YAAMC,GAAkB,GAAGF,KAAK,CAACG,cAAN,EAA3B;AACA,YAAMC,SAA6B,GAAGF,GAAG,CAACG,KAA1C;AACA,YAAMC,OAAe,GAAGJ,GAAG,CAACK,GAA5B;;AACA,UAAIH,SAAS,KAAKb,MAAM,CAACiB,MAAP,CAAcC,IAAd,CAAmBC,IAArC,EAA2C;AACzC;AACD;;AACD,cAAQJ,OAAR;AACE;AAAS;AACPN,YAAAA,KAAK,CAACW,IAAN,CAAWP,SAAX;AACD;AAHH;;AAKAJ,MAAAA,KAAK,CAACY,YAAN;AACD;;AACDZ,IAAAA,KAAK,CAACa,aAAN;AACA,WAAO,IAAIrB,gBAAJ,EAAP;AACD;;AA1B2B","sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/*\n * Autogenerated by @creditkarma/thrift-typescript v3.7.2\n * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING\n */\nimport * as thrift from 'thrift';\nexport interface ITypeDefinedOrderArgs {}\nexport class TypeDefinedOrder {\n constructor() {}\n public write(output: thrift.TProtocol): void {\n output.writeStructBegin('TypeDefinedOrder');\n output.writeFieldStop();\n output.writeStructEnd();\n return;\n }\n public static read(input: thrift.TProtocol): TypeDefinedOrder {\n input.readStructBegin();\n while (true) {\n const ret: thrift.TField = input.readFieldBegin();\n const fieldType: thrift.Thrift.Type = ret.ftype;\n const fieldId: number = ret.fid;\n if (fieldType === thrift.Thrift.Type.STOP) {\n break;\n }\n switch (fieldId) {\n default: {\n input.skip(fieldType);\n }\n }\n input.readFieldEnd();\n }\n input.readStructEnd();\n return new TypeDefinedOrder();\n }\n}\n"],"file":"TypeDefinedOrder.js"}
1
+ {"version":3,"file":"TypeDefinedOrder.js","names":["thrift","TypeDefinedOrder","constructor","write","output","writeStructBegin","writeFieldStop","writeStructEnd","read","input","readStructBegin","ret","readFieldBegin","fieldType","ftype","fieldId","fid","Thrift","Type","STOP","skip","readFieldEnd","readStructEnd"],"sources":["../../../../src/parquetjs/parquet-thrift/TypeDefinedOrder.ts"],"sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/*\n * Autogenerated by @creditkarma/thrift-typescript v3.7.2\n * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING\n */\nimport * as thrift from 'thrift';\nexport interface ITypeDefinedOrderArgs {}\nexport class TypeDefinedOrder {\n constructor() {}\n public write(output: thrift.TProtocol): void {\n output.writeStructBegin('TypeDefinedOrder');\n output.writeFieldStop();\n output.writeStructEnd();\n return;\n }\n public static read(input: thrift.TProtocol): TypeDefinedOrder {\n input.readStructBegin();\n while (true) {\n const ret: thrift.TField = input.readFieldBegin();\n const fieldType: thrift.Thrift.Type = ret.ftype;\n const fieldId: number = ret.fid;\n if (fieldType === thrift.Thrift.Type.STOP) {\n break;\n }\n switch (fieldId) {\n default: {\n input.skip(fieldType);\n }\n }\n input.readFieldEnd();\n }\n input.readStructEnd();\n return new TypeDefinedOrder();\n }\n}\n"],"mappings":";AAMA,OAAO,KAAKA,MAAM,MAAM,QAAQ;AAEhC,OAAO,MAAMC,gBAAgB,CAAC;EAC5BC,WAAW,GAAG,CAAC;EACRC,KAAK,CAACC,MAAwB,EAAQ;IAC3CA,MAAM,CAACC,gBAAgB,CAAC,kBAAkB,CAAC;IAC3CD,MAAM,CAACE,cAAc,EAAE;IACvBF,MAAM,CAACG,cAAc,EAAE;IACvB;EACF;EACA,OAAcC,IAAI,CAACC,KAAuB,EAAoB;IAC5DA,KAAK,CAACC,eAAe,EAAE;IACvB,OAAO,IAAI,EAAE;MACX,MAAMC,GAAkB,GAAGF,KAAK,CAACG,cAAc,EAAE;MACjD,MAAMC,SAA6B,GAAGF,GAAG,CAACG,KAAK;MAC/C,MAAMC,OAAe,GAAGJ,GAAG,CAACK,GAAG;MAC/B,IAAIH,SAAS,KAAKb,MAAM,CAACiB,MAAM,CAACC,IAAI,CAACC,IAAI,EAAE;QACzC;MACF;MACA,QAAQJ,OAAO;QACb;UAAS;YACPN,KAAK,CAACW,IAAI,CAACP,SAAS,CAAC;UACvB;MAAC;MAEHJ,KAAK,CAACY,YAAY,EAAE;IACtB;IACAZ,KAAK,CAACa,aAAa,EAAE;IACrB,OAAO,IAAIrB,gBAAgB,EAAE;EAC/B;AACF"}
@@ -1,39 +1,32 @@
1
+
1
2
  import * as thrift from 'thrift';
2
3
  export class UUIDType {
3
4
  constructor() {}
4
-
5
5
  write(output) {
6
6
  output.writeStructBegin('UUIDType');
7
7
  output.writeFieldStop();
8
8
  output.writeStructEnd();
9
9
  return;
10
10
  }
11
-
12
11
  static read(input) {
13
12
  input.readStructBegin();
14
-
15
13
  while (true) {
16
14
  const ret = input.readFieldBegin();
17
15
  const fieldType = ret.ftype;
18
16
  const fieldId = ret.fid;
19
-
20
17
  if (fieldType === thrift.Thrift.Type.STOP) {
21
18
  break;
22
19
  }
23
-
24
20
  switch (fieldId) {
25
21
  default:
26
22
  {
27
23
  input.skip(fieldType);
28
24
  }
29
25
  }
30
-
31
26
  input.readFieldEnd();
32
27
  }
33
-
34
28
  input.readStructEnd();
35
29
  return new UUIDType();
36
30
  }
37
-
38
31
  }
39
32
  //# sourceMappingURL=UUIDType.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/parquetjs/parquet-thrift/UUIDType.ts"],"names":["thrift","UUIDType","constructor","write","output","writeStructBegin","writeFieldStop","writeStructEnd","read","input","readStructBegin","ret","readFieldBegin","fieldType","ftype","fieldId","fid","Thrift","Type","STOP","skip","readFieldEnd","readStructEnd"],"mappings":"AAMA,OAAO,KAAKA,MAAZ,MAAwB,QAAxB;AAEA,OAAO,MAAMC,QAAN,CAAe;AACpBC,EAAAA,WAAW,GAAG,CAAE;;AACTC,EAAAA,KAAK,CAACC,MAAD,EAAiC;AAC3CA,IAAAA,MAAM,CAACC,gBAAP,CAAwB,UAAxB;AACAD,IAAAA,MAAM,CAACE,cAAP;AACAF,IAAAA,MAAM,CAACG,cAAP;AACA;AACD;;AACiB,SAAJC,IAAI,CAACC,KAAD,EAAoC;AACpDA,IAAAA,KAAK,CAACC,eAAN;;AACA,WAAO,IAAP,EAAa;AACX,YAAMC,GAAkB,GAAGF,KAAK,CAACG,cAAN,EAA3B;AACA,YAAMC,SAA6B,GAAGF,GAAG,CAACG,KAA1C;AACA,YAAMC,OAAe,GAAGJ,GAAG,CAACK,GAA5B;;AACA,UAAIH,SAAS,KAAKb,MAAM,CAACiB,MAAP,CAAcC,IAAd,CAAmBC,IAArC,EAA2C;AACzC;AACD;;AACD,cAAQJ,OAAR;AACE;AAAS;AACPN,YAAAA,KAAK,CAACW,IAAN,CAAWP,SAAX;AACD;AAHH;;AAKAJ,MAAAA,KAAK,CAACY,YAAN;AACD;;AACDZ,IAAAA,KAAK,CAACa,aAAN;AACA,WAAO,IAAIrB,QAAJ,EAAP;AACD;;AA1BmB","sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/*\n * Autogenerated by @creditkarma/thrift-typescript v3.7.2\n * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING\n */\nimport * as thrift from 'thrift';\nexport interface IUUIDTypeArgs {}\nexport class UUIDType {\n constructor() {}\n public write(output: thrift.TProtocol): void {\n output.writeStructBegin('UUIDType');\n output.writeFieldStop();\n output.writeStructEnd();\n return;\n }\n public static read(input: thrift.TProtocol): UUIDType {\n input.readStructBegin();\n while (true) {\n const ret: thrift.TField = input.readFieldBegin();\n const fieldType: thrift.Thrift.Type = ret.ftype;\n const fieldId: number = ret.fid;\n if (fieldType === thrift.Thrift.Type.STOP) {\n break;\n }\n switch (fieldId) {\n default: {\n input.skip(fieldType);\n }\n }\n input.readFieldEnd();\n }\n input.readStructEnd();\n return new UUIDType();\n }\n}\n"],"file":"UUIDType.js"}
1
+ {"version":3,"file":"UUIDType.js","names":["thrift","UUIDType","constructor","write","output","writeStructBegin","writeFieldStop","writeStructEnd","read","input","readStructBegin","ret","readFieldBegin","fieldType","ftype","fieldId","fid","Thrift","Type","STOP","skip","readFieldEnd","readStructEnd"],"sources":["../../../../src/parquetjs/parquet-thrift/UUIDType.ts"],"sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/*\n * Autogenerated by @creditkarma/thrift-typescript v3.7.2\n * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING\n */\nimport * as thrift from 'thrift';\nexport interface IUUIDTypeArgs {}\nexport class UUIDType {\n constructor() {}\n public write(output: thrift.TProtocol): void {\n output.writeStructBegin('UUIDType');\n output.writeFieldStop();\n output.writeStructEnd();\n return;\n }\n public static read(input: thrift.TProtocol): UUIDType {\n input.readStructBegin();\n while (true) {\n const ret: thrift.TField = input.readFieldBegin();\n const fieldType: thrift.Thrift.Type = ret.ftype;\n const fieldId: number = ret.fid;\n if (fieldType === thrift.Thrift.Type.STOP) {\n break;\n }\n switch (fieldId) {\n default: {\n input.skip(fieldType);\n }\n }\n input.readFieldEnd();\n }\n input.readStructEnd();\n return new UUIDType();\n }\n}\n"],"mappings":";AAMA,OAAO,KAAKA,MAAM,MAAM,QAAQ;AAEhC,OAAO,MAAMC,QAAQ,CAAC;EACpBC,WAAW,GAAG,CAAC;EACRC,KAAK,CAACC,MAAwB,EAAQ;IAC3CA,MAAM,CAACC,gBAAgB,CAAC,UAAU,CAAC;IACnCD,MAAM,CAACE,cAAc,EAAE;IACvBF,MAAM,CAACG,cAAc,EAAE;IACvB;EACF;EACA,OAAcC,IAAI,CAACC,KAAuB,EAAY;IACpDA,KAAK,CAACC,eAAe,EAAE;IACvB,OAAO,IAAI,EAAE;MACX,MAAMC,GAAkB,GAAGF,KAAK,CAACG,cAAc,EAAE;MACjD,MAAMC,SAA6B,GAAGF,GAAG,CAACG,KAAK;MAC/C,MAAMC,OAAe,GAAGJ,GAAG,CAACK,GAAG;MAC/B,IAAIH,SAAS,KAAKb,MAAM,CAACiB,MAAM,CAACC,IAAI,CAACC,IAAI,EAAE;QACzC;MACF;MACA,QAAQJ,OAAO;QACb;UAAS;YACPN,KAAK,CAACW,IAAI,CAACP,SAAS,CAAC;UACvB;MAAC;MAEHJ,KAAK,CAACY,YAAY,EAAE;IACtB;IACAZ,KAAK,CAACa,aAAa,EAAE;IACrB,OAAO,IAAIrB,QAAQ,EAAE;EACvB;AACF"}
@@ -1,3 +1,4 @@
1
+
1
2
  export * from './Type';
2
3
  export * from './ConvertedType';
3
4
  export * from './FieldRepetitionType';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/parquetjs/parquet-thrift/index.ts"],"names":[],"mappings":"AAMA,cAAc,QAAd;AACA,cAAc,iBAAd;AACA,cAAc,uBAAd;AACA,cAAc,YAAd;AACA,cAAc,oBAAd;AACA,cAAc,YAAd;AACA,cAAc,iBAAd;AACA,cAAc,cAAd;AACA,cAAc,cAAd;AACA,cAAc,YAAd;AACA,cAAc,WAAd;AACA,cAAc,YAAd;AACA,cAAc,YAAd;AACA,cAAc,YAAd;AACA,cAAc,YAAd;AACA,cAAc,eAAd;AACA,cAAc,gBAAd;AACA,cAAc,gBAAd;AACA,cAAc,iBAAd;AACA,cAAc,YAAd;AACA,cAAc,WAAd;AACA,cAAc,YAAd;AACA,cAAc,YAAd;AACA,cAAc,iBAAd;AACA,cAAc,kBAAd;AACA,cAAc,mBAAd;AACA,cAAc,wBAAd;AACA,cAAc,oBAAd;AACA,cAAc,cAAd;AACA,cAAc,YAAd;AACA,cAAc,iBAAd;AACA,cAAc,qBAAd;AACA,cAAc,kBAAd;AACA,cAAc,eAAd;AACA,cAAc,YAAd;AACA,cAAc,oBAAd;AACA,cAAc,gBAAd;AACA,cAAc,eAAd;AACA,cAAc,eAAd;AACA,cAAc,gBAAd;AACA,cAAc,YAAd;AACA,cAAc,eAAd;AACA,cAAc,eAAd","sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/*\n * Autogenerated by @creditkarma/thrift-typescript v3.7.2\n * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING\n */\nexport * from './Type';\nexport * from './ConvertedType';\nexport * from './FieldRepetitionType';\nexport * from './Encoding';\nexport * from './CompressionCodec';\nexport * from './PageType';\nexport * from './BoundaryOrder';\nexport * from './Statistics';\nexport * from './StringType';\nexport * from './UUIDType';\nexport * from './MapType';\nexport * from './ListType';\nexport * from './EnumType';\nexport * from './DateType';\nexport * from './NullType';\nexport * from './DecimalType';\nexport * from './MilliSeconds';\nexport * from './MicroSeconds';\nexport * from './TimestampType';\nexport * from './TimeType';\nexport * from './IntType';\nexport * from './JsonType';\nexport * from './BsonType';\nexport * from './SchemaElement';\nexport * from './DataPageHeader';\nexport * from './IndexPageHeader';\nexport * from './DictionaryPageHeader';\nexport * from './DataPageHeaderV2';\nexport * from './PageHeader';\nexport * from './KeyValue';\nexport * from './SortingColumn';\nexport * from './PageEncodingStats';\nexport * from './ColumnMetaData';\nexport * from './ColumnChunk';\nexport * from './RowGroup';\nexport * from './TypeDefinedOrder';\nexport * from './PageLocation';\nexport * from './OffsetIndex';\nexport * from './ColumnIndex';\nexport * from './FileMetaData';\nexport * from './TimeUnit';\nexport * from './LogicalType';\nexport * from './ColumnOrder';\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../src/parquetjs/parquet-thrift/index.ts"],"sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/*\n * Autogenerated by @creditkarma/thrift-typescript v3.7.2\n * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING\n */\nexport * from './Type';\nexport * from './ConvertedType';\nexport * from './FieldRepetitionType';\nexport * from './Encoding';\nexport * from './CompressionCodec';\nexport * from './PageType';\nexport * from './BoundaryOrder';\nexport * from './Statistics';\nexport * from './StringType';\nexport * from './UUIDType';\nexport * from './MapType';\nexport * from './ListType';\nexport * from './EnumType';\nexport * from './DateType';\nexport * from './NullType';\nexport * from './DecimalType';\nexport * from './MilliSeconds';\nexport * from './MicroSeconds';\nexport * from './TimestampType';\nexport * from './TimeType';\nexport * from './IntType';\nexport * from './JsonType';\nexport * from './BsonType';\nexport * from './SchemaElement';\nexport * from './DataPageHeader';\nexport * from './IndexPageHeader';\nexport * from './DictionaryPageHeader';\nexport * from './DataPageHeaderV2';\nexport * from './PageHeader';\nexport * from './KeyValue';\nexport * from './SortingColumn';\nexport * from './PageEncodingStats';\nexport * from './ColumnMetaData';\nexport * from './ColumnChunk';\nexport * from './RowGroup';\nexport * from './TypeDefinedOrder';\nexport * from './PageLocation';\nexport * from './OffsetIndex';\nexport * from './ColumnIndex';\nexport * from './FileMetaData';\nexport * from './TimeUnit';\nexport * from './LogicalType';\nexport * from './ColumnOrder';\n"],"mappings":";AAMA,cAAc,QAAQ;AACtB,cAAc,iBAAiB;AAC/B,cAAc,uBAAuB;AACrC,cAAc,YAAY;AAC1B,cAAc,oBAAoB;AAClC,cAAc,YAAY;AAC1B,cAAc,iBAAiB;AAC/B,cAAc,cAAc;AAC5B,cAAc,cAAc;AAC5B,cAAc,YAAY;AAC1B,cAAc,WAAW;AACzB,cAAc,YAAY;AAC1B,cAAc,YAAY;AAC1B,cAAc,YAAY;AAC1B,cAAc,YAAY;AAC1B,cAAc,eAAe;AAC7B,cAAc,gBAAgB;AAC9B,cAAc,gBAAgB;AAC9B,cAAc,iBAAiB;AAC/B,cAAc,YAAY;AAC1B,cAAc,WAAW;AACzB,cAAc,YAAY;AAC1B,cAAc,YAAY;AAC1B,cAAc,iBAAiB;AAC/B,cAAc,kBAAkB;AAChC,cAAc,mBAAmB;AACjC,cAAc,wBAAwB;AACtC,cAAc,oBAAoB;AAClC,cAAc,cAAc;AAC5B,cAAc,YAAY;AAC1B,cAAc,iBAAiB;AAC/B,cAAc,qBAAqB;AACnC,cAAc,kBAAkB;AAChC,cAAc,eAAe;AAC7B,cAAc,YAAY;AAC1B,cAAc,oBAAoB;AAClC,cAAc,gBAAgB;AAC9B,cAAc,eAAe;AAC7B,cAAc,eAAe;AAC7B,cAAc,gBAAgB;AAC9B,cAAc,YAAY;AAC1B,cAAc,eAAe;AAC7B,cAAc,eAAe"}
@@ -1,8 +1,11 @@
1
+
2
+
1
3
  import { PARQUET_CODECS } from '../codecs';
2
4
  import { ConvertedType, Encoding, FieldRepetitionType, PageType, Type } from '../parquet-thrift';
3
5
  import { decompress } from '../compression';
4
6
  import { PARQUET_RDLVL_TYPE, PARQUET_RDLVL_ENCODING } from '../../constants';
5
7
  import { decodePageHeader, getThriftEnum, getBitWidth } from '../utils/read-utils';
8
+
6
9
  export async function decodeDataPages(buffer, options) {
7
10
  const cursor = {
8
11
  buffer,
@@ -17,35 +20,30 @@ export async function decodeDataPages(buffer, options) {
17
20
  count: 0
18
21
  };
19
22
  let dictionary = options.dictionary || [];
20
-
21
- while (cursor.offset < cursor.size && (!options.numValues || data.dlevels.length < Number(options.numValues))) {
23
+ while (
24
+ cursor.offset < cursor.size && (!options.numValues || data.dlevels.length < Number(options.numValues))) {
22
25
  const page = await decodePage(cursor, options);
23
-
24
26
  if (page.dictionary) {
25
27
  dictionary = page.dictionary;
26
28
  continue;
27
29
  }
28
-
29
30
  if (dictionary.length) {
30
31
  page.values = page.values.map(value => dictionary[value]);
31
32
  }
32
-
33
33
  for (let index = 0; index < page.rlevels.length; index++) {
34
34
  data.rlevels.push(page.rlevels[index]);
35
35
  data.dlevels.push(page.dlevels[index]);
36
36
  const value = page.values[index];
37
-
38
37
  if (value !== undefined) {
39
38
  data.values.push(value);
40
39
  }
41
40
  }
42
-
43
41
  data.count += page.count;
44
42
  data.pageHeaders.push(page.pageHeader);
45
43
  }
46
-
47
44
  return data;
48
45
  }
46
+
49
47
  export async function decodePage(cursor, options) {
50
48
  let page;
51
49
  const {
@@ -54,55 +52,45 @@ export async function decodePage(cursor, options) {
54
52
  } = decodePageHeader(cursor.buffer, cursor.offset);
55
53
  cursor.offset += length;
56
54
  const pageType = getThriftEnum(PageType, pageHeader.type);
57
-
58
55
  switch (pageType) {
59
56
  case 'DATA_PAGE':
60
57
  page = await decodeDataPage(cursor, pageHeader, options);
61
58
  break;
62
-
63
59
  case 'DATA_PAGE_V2':
64
60
  page = await decodeDataPageV2(cursor, pageHeader, options);
65
61
  break;
66
-
67
62
  case 'DICTIONARY_PAGE':
68
63
  page = {
69
64
  dictionary: await decodeDictionaryPage(cursor, pageHeader, options),
70
65
  pageHeader
71
66
  };
72
67
  break;
73
-
74
68
  default:
75
69
  throw new Error("invalid page type: ".concat(pageType));
76
70
  }
77
-
78
71
  return page;
79
72
  }
73
+
80
74
  export function decodeSchema(schemaElements, offset, len) {
81
75
  const schema = {};
82
76
  let next = offset;
83
-
84
77
  for (let i = 0; i < len; i++) {
85
78
  const schemaElement = schemaElements[next];
86
79
  const repetitionType = next > 0 ? getThriftEnum(FieldRepetitionType, schemaElement.repetition_type) : 'ROOT';
87
80
  let optional = false;
88
81
  let repeated = false;
89
-
90
82
  switch (repetitionType) {
91
83
  case 'REQUIRED':
92
84
  break;
93
-
94
85
  case 'OPTIONAL':
95
86
  optional = true;
96
87
  break;
97
-
98
88
  case 'REPEATED':
99
89
  repeated = true;
100
90
  break;
101
-
102
91
  default:
103
92
  throw new Error('parquet: unknown repetition type');
104
93
  }
105
-
106
94
  if (schemaElement.num_children > 0) {
107
95
  const res = decodeSchema(schemaElements, next + 1, schemaElement.num_children);
108
96
  next = res.next;
@@ -114,19 +102,15 @@ export function decodeSchema(schemaElements, offset, len) {
114
102
  } else {
115
103
  const type = getThriftEnum(Type, schemaElement.type);
116
104
  let logicalType = type;
117
-
118
105
  if (schemaElement.converted_type) {
119
106
  logicalType = getThriftEnum(ConvertedType, schemaElement.converted_type);
120
107
  }
121
-
122
108
  switch (logicalType) {
123
109
  case 'DECIMAL':
124
110
  logicalType = "".concat(logicalType, "_").concat(type);
125
111
  break;
126
-
127
112
  default:
128
113
  }
129
-
130
114
  schema[schemaElement.name] = {
131
115
  type: logicalType,
132
116
  typeLength: schemaElement.type_length,
@@ -138,7 +122,6 @@ export function decodeSchema(schemaElements, offset, len) {
138
122
  next++;
139
123
  }
140
124
  }
141
-
142
125
  return {
143
126
  schema,
144
127
  offset,
@@ -150,17 +133,15 @@ function decodeValues(type, encoding, cursor, count, opts) {
150
133
  if (!(encoding in PARQUET_CODECS)) {
151
134
  throw new Error("invalid encoding: ".concat(encoding));
152
135
  }
153
-
154
136
  return PARQUET_CODECS[encoding].decodeValues(type, cursor, count, opts);
155
137
  }
156
138
 
157
139
  async function decodeDataPage(cursor, header, options) {
158
140
  var _header$data_page_hea, _header$data_page_hea2, _header$data_page_hea3, _header$data_page_hea4;
159
-
160
141
  const cursorEnd = cursor.offset + header.compressed_page_size;
161
142
  const valueCount = (_header$data_page_hea = header.data_page_header) === null || _header$data_page_hea === void 0 ? void 0 : _header$data_page_hea.num_values;
162
- let dataCursor = cursor;
163
143
 
144
+ let dataCursor = cursor;
164
145
  if (options.compression !== 'UNCOMPRESSED') {
165
146
  const valuesBuf = await decompress(options.compression, cursor.buffer.slice(cursor.offset, cursorEnd), header.uncompressed_page_size);
166
147
  dataCursor = {
@@ -173,7 +154,6 @@ async function decodeDataPage(cursor, header, options) {
173
154
 
174
155
  const rLevelEncoding = getThriftEnum(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);
175
156
  let rLevels = new Array(valueCount);
176
-
177
157
  if (options.column.rLevelMax > 0) {
178
158
  rLevels = decodeValues(PARQUET_RDLVL_TYPE, rLevelEncoding, dataCursor, valueCount, {
179
159
  bitWidth: getBitWidth(options.column.rLevelMax),
@@ -185,7 +165,6 @@ async function decodeDataPage(cursor, header, options) {
185
165
 
186
166
  const dLevelEncoding = getThriftEnum(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);
187
167
  let dLevels = new Array(valueCount);
188
-
189
168
  if (options.column.dLevelMax > 0) {
190
169
  dLevels = decodeValues(PARQUET_RDLVL_TYPE, dLevelEncoding, dataCursor, valueCount, {
191
170
  bitWidth: getBitWidth(options.column.dLevelMax),
@@ -194,9 +173,7 @@ async function decodeDataPage(cursor, header, options) {
194
173
  } else {
195
174
  dLevels.fill(0);
196
175
  }
197
-
198
176
  let valueCountNonNull = 0;
199
-
200
177
  for (const dlvl of dLevels) {
201
178
  if (dlvl === options.column.dLevelMax) {
202
179
  valueCountNonNull++;
@@ -220,13 +197,12 @@ async function decodeDataPage(cursor, header, options) {
220
197
 
221
198
  async function decodeDataPageV2(cursor, header, opts) {
222
199
  var _header$data_page_hea5, _header$data_page_hea6, _header$data_page_hea7, _header$data_page_hea8;
223
-
224
200
  const cursorEnd = cursor.offset + header.compressed_page_size;
225
201
  const valueCount = (_header$data_page_hea5 = header.data_page_header_v2) === null || _header$data_page_hea5 === void 0 ? void 0 : _header$data_page_hea5.num_values;
226
202
  const 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);
227
203
  const valueEncoding = getThriftEnum(Encoding, (_header$data_page_hea7 = header.data_page_header_v2) === null || _header$data_page_hea7 === void 0 ? void 0 : _header$data_page_hea7.encoding);
228
- let rLevels = new Array(valueCount);
229
204
 
205
+ let rLevels = new Array(valueCount);
230
206
  if (opts.column.rLevelMax > 0) {
231
207
  rLevels = decodeValues(PARQUET_RDLVL_TYPE, PARQUET_RDLVL_ENCODING, cursor, valueCount, {
232
208
  bitWidth: getBitWidth(opts.column.rLevelMax),
@@ -237,7 +213,6 @@ async function decodeDataPageV2(cursor, header, opts) {
237
213
  }
238
214
 
239
215
  let dLevels = new Array(valueCount);
240
-
241
216
  if (opts.column.dLevelMax > 0) {
242
217
  dLevels = decodeValues(PARQUET_RDLVL_TYPE, PARQUET_RDLVL_ENCODING, cursor, valueCount, {
243
218
  bitWidth: getBitWidth(opts.column.dLevelMax),
@@ -248,7 +223,6 @@ async function decodeDataPageV2(cursor, header, opts) {
248
223
  }
249
224
 
250
225
  let valuesBufCursor = cursor;
251
-
252
226
  if ((_header$data_page_hea8 = header.data_page_header_v2) !== null && _header$data_page_hea8 !== void 0 && _header$data_page_hea8.is_compressed) {
253
227
  const valuesBuf = await decompress(opts.compression, cursor.buffer.slice(cursor.offset, cursorEnd), header.uncompressed_page_size);
254
228
  valuesBufCursor = {
@@ -258,7 +232,6 @@ async function decodeDataPageV2(cursor, header, opts) {
258
232
  };
259
233
  cursor.offset = cursorEnd;
260
234
  }
261
-
262
235
  const decodeOptions = {
263
236
  typeLength: opts.column.typeLength,
264
237
  bitWidth: opts.column.typeLength
@@ -275,7 +248,6 @@ async function decodeDataPageV2(cursor, header, opts) {
275
248
 
276
249
  async function decodeDictionaryPage(cursor, pageHeader, options) {
277
250
  var _pageHeader$dictionar;
278
-
279
251
  const cursorEnd = cursor.offset + pageHeader.compressed_page_size;
280
252
  let dictCursor = {
281
253
  offset: 0,
@@ -283,7 +255,6 @@ async function decodeDictionaryPage(cursor, pageHeader, options) {
283
255
  size: cursorEnd - cursor.offset
284
256
  };
285
257
  cursor.offset = cursorEnd;
286
-
287
258
  if (options.compression !== 'UNCOMPRESSED') {
288
259
  const valuesBuf = await decompress(options.compression, dictCursor.buffer.slice(dictCursor.offset, cursorEnd), pageHeader.uncompressed_page_size);
289
260
  dictCursor = {
@@ -293,7 +264,6 @@ async function decodeDictionaryPage(cursor, pageHeader, options) {
293
264
  };
294
265
  cursor.offset = cursorEnd;
295
266
  }
296
-
297
267
  const 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;
298
268
  return decodeValues(options.column.primitiveType, options.column.encoding, dictCursor, numValues, options).map(d => d.toString());
299
269
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/parquetjs/parser/decoders.ts"],"names":["PARQUET_CODECS","ConvertedType","Encoding","FieldRepetitionType","PageType","Type","decompress","PARQUET_RDLVL_TYPE","PARQUET_RDLVL_ENCODING","decodePageHeader","getThriftEnum","getBitWidth","decodeDataPages","buffer","options","cursor","offset","size","length","data","rlevels","dlevels","values","pageHeaders","count","dictionary","numValues","Number","page","decodePage","map","value","index","push","undefined","pageHeader","pageType","type","decodeDataPage","decodeDataPageV2","decodeDictionaryPage","Error","decodeSchema","schemaElements","len","schema","next","i","schemaElement","repetitionType","repetition_type","optional","repeated","num_children","res","name","fields","logicalType","converted_type","typeLength","type_length","presision","precision","scale","decodeValues","encoding","opts","header","cursorEnd","compressed_page_size","valueCount","data_page_header","num_values","dataCursor","compression","valuesBuf","slice","uncompressed_page_size","rLevelEncoding","repetition_level_encoding","rLevels","Array","column","rLevelMax","bitWidth","disableEnvelope","fill","dLevelEncoding","definition_level_encoding","dLevels","dLevelMax","valueCountNonNull","dlvl","valueEncoding","decodeOptions","primitiveType","data_page_header_v2","num_nulls","valuesBufCursor","is_compressed","dictCursor","dictionary_page_header","d","toString"],"mappings":"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","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"],"file":"decoders.js"}
1
+ {"version":3,"file":"decoders.js","names":["PARQUET_CODECS","ConvertedType","Encoding","FieldRepetitionType","PageType","Type","decompress","PARQUET_RDLVL_TYPE","PARQUET_RDLVL_ENCODING","decodePageHeader","getThriftEnum","getBitWidth","decodeDataPages","buffer","options","cursor","offset","size","length","data","rlevels","dlevels","values","pageHeaders","count","dictionary","numValues","Number","page","decodePage","map","value","index","push","undefined","pageHeader","pageType","type","decodeDataPage","decodeDataPageV2","decodeDictionaryPage","Error","decodeSchema","schemaElements","len","schema","next","i","schemaElement","repetitionType","repetition_type","optional","repeated","num_children","res","name","fields","logicalType","converted_type","typeLength","type_length","presision","precision","scale","decodeValues","encoding","opts","header","cursorEnd","compressed_page_size","valueCount","data_page_header","num_values","dataCursor","compression","valuesBuf","slice","uncompressed_page_size","rLevelEncoding","repetition_level_encoding","rLevels","Array","column","rLevelMax","bitWidth","disableEnvelope","fill","dLevelEncoding","definition_level_encoding","dLevels","dLevelMax","valueCountNonNull","dlvl","valueEncoding","decodeOptions","primitiveType","data_page_header_v2","num_nulls","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,23 +1,17 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
-
3
2
  let _Symbol$asyncIterator;
4
3
 
5
4
  import { materializeRecords } from '../schema/shred';
5
+
6
6
  _Symbol$asyncIterator = Symbol.asyncIterator;
7
7
  export class ParquetCursor {
8
8
  constructor(metadata, envelopeReader, schema, columnList) {
9
9
  _defineProperty(this, "metadata", void 0);
10
-
11
10
  _defineProperty(this, "envelopeReader", void 0);
12
-
13
11
  _defineProperty(this, "schema", void 0);
14
-
15
12
  _defineProperty(this, "columnList", void 0);
16
-
17
13
  _defineProperty(this, "rowGroup", []);
18
-
19
14
  _defineProperty(this, "rowGroupIndex", void 0);
20
-
21
15
  this.metadata = metadata;
22
16
  this.envelopeReader = envelopeReader;
23
17
  this.schema = schema;
@@ -30,12 +24,10 @@ export class ParquetCursor {
30
24
  if (this.rowGroupIndex >= this.metadata.row_groups.length) {
31
25
  return null;
32
26
  }
33
-
34
27
  const rowBuffer = await this.envelopeReader.readRowGroup(this.schema, this.metadata.row_groups[this.rowGroupIndex], this.columnList);
35
28
  this.rowGroup = materializeRecords(this.schema, rowBuffer);
36
29
  this.rowGroupIndex++;
37
30
  }
38
-
39
31
  return this.rowGroup.shift();
40
32
  }
41
33
 
@@ -54,16 +46,13 @@ export class ParquetCursor {
54
46
  value: null
55
47
  };
56
48
  }
57
-
58
49
  const value = await this.next();
59
-
60
50
  if (value === null) {
61
51
  return {
62
52
  done: true,
63
53
  value
64
54
  };
65
55
  }
66
-
67
56
  return {
68
57
  done: false,
69
58
  value
@@ -85,6 +74,5 @@ export class ParquetCursor {
85
74
  }
86
75
  };
87
76
  }
88
-
89
77
  }
90
78
  //# sourceMappingURL=parquet-cursor.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/parquetjs/parser/parquet-cursor.ts"],"names":["materializeRecords","Symbol","asyncIterator","ParquetCursor","constructor","metadata","envelopeReader","schema","columnList","rowGroupIndex","next","rowGroup","length","row_groups","rowBuffer","readRowGroup","shift","rewind","done","value","return","throw"],"mappings":";;;;AAKA,SAAQA,kBAAR,QAAiC,iBAAjC;wBAiEGC,MAAM,CAACC,a;AA5DV,OAAO,MAAMC,aAAN,CAAmD;AAcxDC,EAAAA,WAAW,CACTC,QADS,EAETC,cAFS,EAGTC,MAHS,EAITC,UAJS,EAKT;AAAA;;AAAA;;AAAA;;AAAA;;AAAA,sCAdiC,EAcjC;;AAAA;;AACA,SAAKH,QAAL,GAAgBA,QAAhB;AACA,SAAKC,cAAL,GAAsBA,cAAtB;AACA,SAAKC,MAAL,GAAcA,MAAd;AACA,SAAKC,UAAL,GAAkBA,UAAlB;AACA,SAAKC,aAAL,GAAqB,CAArB;AACD;;AAMS,QAAJC,IAAI,GAAwB;AAChC,QAAI,KAAKC,QAAL,CAAcC,MAAd,KAAyB,CAA7B,EAAgC;AAC9B,UAAI,KAAKH,aAAL,IAAsB,KAAKJ,QAAL,CAAcQ,UAAd,CAAyBD,MAAnD,EAA2D;AAEzD,eAAO,IAAP;AACD;;AACD,YAAME,SAAS,GAAG,MAAM,KAAKR,cAAL,CAAoBS,YAApB,CACtB,KAAKR,MADiB,EAEtB,KAAKF,QAAL,CAAcQ,UAAd,CAAyB,KAAKJ,aAA9B,CAFsB,EAGtB,KAAKD,UAHiB,CAAxB;AAKA,WAAKG,QAAL,GAAgBX,kBAAkB,CAAC,KAAKO,MAAN,EAAcO,SAAd,CAAlC;AACA,WAAKL,aAAL;AACD;;AACD,WAAO,KAAKE,QAAL,CAAcK,KAAd,EAAP;AACD;;AAKDC,EAAAA,MAAM,GAAS;AACb,SAAKN,QAAL,GAAgB,EAAhB;AACA,SAAKF,aAAL,GAAqB,CAArB;AACD;;AAMD,4BAA2C;AACzC,QAAIS,IAAI,GAAG,KAAX;AACA,WAAO;AACLR,MAAAA,IAAI,EAAE,YAAY;AAChB,YAAIQ,IAAJ,EAAU;AACR,iBAAO;AAACA,YAAAA,IAAD;AAAOC,YAAAA,KAAK,EAAE;AAAd,WAAP;AACD;;AACD,cAAMA,KAAK,GAAG,MAAM,KAAKT,IAAL,EAApB;;AACA,YAAIS,KAAK,KAAK,IAAd,EAAoB;AAClB,iBAAO;AAACD,YAAAA,IAAI,EAAE,IAAP;AAAaC,YAAAA;AAAb,WAAP;AACD;;AACD,eAAO;AAACD,UAAAA,IAAI,EAAE,KAAP;AAAcC,UAAAA;AAAd,SAAP;AACD,OAVI;AAWLC,MAAAA,MAAM,EAAE,YAAY;AAClBF,QAAAA,IAAI,GAAG,IAAP;AACA,eAAO;AAACA,UAAAA,IAAD;AAAOC,UAAAA,KAAK,EAAE;AAAd,SAAP;AACD,OAdI;AAeLE,MAAAA,KAAK,EAAE,YAAY;AACjBH,QAAAA,IAAI,GAAG,IAAP;AACA,eAAO;AAACA,UAAAA,IAAI,EAAE,IAAP;AAAaC,UAAAA,KAAK,EAAE;AAApB,SAAP;AACD;AAlBI,KAAP;AAoBD;;AAlFuD","sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\nimport {FileMetaData} from '../parquet-thrift';\nimport {ParquetEnvelopeReader} from './parquet-envelope-reader';\nimport {ParquetSchema} from '../schema/schema';\nimport {ParquetRecord} from '../schema/declare';\nimport {materializeRecords} from '../schema/shred';\n\n/**\n * A parquet cursor is used to retrieve rows from a parquet file in order\n */\nexport class ParquetCursor<T> implements AsyncIterable<T> {\n public metadata: FileMetaData;\n public envelopeReader: ParquetEnvelopeReader;\n public schema: ParquetSchema;\n public columnList: string[][];\n public rowGroup: ParquetRecord[] = [];\n public rowGroupIndex: number;\n\n /**\n * Create a new parquet reader from the file metadata and an envelope reader.\n * It is usually not recommended to call this constructor directly except for\n * advanced and internal use cases. Consider using getCursor() on the\n * ParquetReader instead\n */\n constructor(\n metadata: FileMetaData,\n envelopeReader: ParquetEnvelopeReader,\n schema: ParquetSchema,\n columnList: string[][]\n ) {\n this.metadata = metadata;\n this.envelopeReader = envelopeReader;\n this.schema = schema;\n this.columnList = columnList;\n this.rowGroupIndex = 0;\n }\n\n /**\n * Retrieve the next row from the cursor. Returns a row or NULL if the end\n * of the file was reached\n */\n async next<T = any>(): Promise<T> {\n if (this.rowGroup.length === 0) {\n if (this.rowGroupIndex >= this.metadata.row_groups.length) {\n // @ts-ignore\n return null;\n }\n const rowBuffer = await this.envelopeReader.readRowGroup(\n this.schema,\n this.metadata.row_groups[this.rowGroupIndex],\n this.columnList\n );\n this.rowGroup = materializeRecords(this.schema, rowBuffer);\n this.rowGroupIndex++;\n }\n return this.rowGroup.shift() as any;\n }\n\n /**\n * Rewind the cursor the the beginning of the file\n */\n rewind(): void {\n this.rowGroup = [];\n this.rowGroupIndex = 0;\n }\n\n /**\n * Implement AsyncIterable\n */\n // tslint:disable-next-line:function-name\n [Symbol.asyncIterator](): AsyncIterator<T> {\n let done = false;\n return {\n next: async () => {\n if (done) {\n return {done, value: null};\n }\n const value = await this.next();\n if (value === null) {\n return {done: true, value};\n }\n return {done: false, value};\n },\n return: async () => {\n done = true;\n return {done, value: null};\n },\n throw: async () => {\n done = true;\n return {done: true, value: null};\n }\n };\n }\n}\n"],"file":"parquet-cursor.js"}
1
+ {"version":3,"file":"parquet-cursor.js","names":["materializeRecords","Symbol","asyncIterator","ParquetCursor","constructor","metadata","envelopeReader","schema","columnList","rowGroupIndex","next","rowGroup","length","row_groups","rowBuffer","readRowGroup","shift","rewind","done","value","return","throw"],"sources":["../../../../src/parquetjs/parser/parquet-cursor.ts"],"sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\nimport {FileMetaData} from '../parquet-thrift';\nimport {ParquetEnvelopeReader} from './parquet-envelope-reader';\nimport {ParquetSchema} from '../schema/schema';\nimport {ParquetRecord} from '../schema/declare';\nimport {materializeRecords} from '../schema/shred';\n\n/**\n * A parquet cursor is used to retrieve rows from a parquet file in order\n */\nexport class ParquetCursor<T> implements AsyncIterable<T> {\n public metadata: FileMetaData;\n public envelopeReader: ParquetEnvelopeReader;\n public schema: ParquetSchema;\n public columnList: string[][];\n public rowGroup: ParquetRecord[] = [];\n public rowGroupIndex: number;\n\n /**\n * Create a new parquet reader from the file metadata and an envelope reader.\n * It is usually not recommended to call this constructor directly except for\n * advanced and internal use cases. Consider using getCursor() on the\n * ParquetReader instead\n */\n constructor(\n metadata: FileMetaData,\n envelopeReader: ParquetEnvelopeReader,\n schema: ParquetSchema,\n columnList: string[][]\n ) {\n this.metadata = metadata;\n this.envelopeReader = envelopeReader;\n this.schema = schema;\n this.columnList = columnList;\n this.rowGroupIndex = 0;\n }\n\n /**\n * Retrieve the next row from the cursor. Returns a row or NULL if the end\n * of the file was reached\n */\n async next<T = any>(): Promise<T> {\n if (this.rowGroup.length === 0) {\n if (this.rowGroupIndex >= this.metadata.row_groups.length) {\n // @ts-ignore\n return null;\n }\n const rowBuffer = await this.envelopeReader.readRowGroup(\n this.schema,\n this.metadata.row_groups[this.rowGroupIndex],\n this.columnList\n );\n this.rowGroup = materializeRecords(this.schema, rowBuffer);\n this.rowGroupIndex++;\n }\n return this.rowGroup.shift() as any;\n }\n\n /**\n * Rewind the cursor the the beginning of the file\n */\n rewind(): void {\n this.rowGroup = [];\n this.rowGroupIndex = 0;\n }\n\n /**\n * Implement AsyncIterable\n */\n // tslint:disable-next-line:function-name\n [Symbol.asyncIterator](): AsyncIterator<T> {\n let done = false;\n return {\n next: async () => {\n if (done) {\n return {done, value: null};\n }\n const value = await this.next();\n if (value === null) {\n return {done: true, value};\n }\n return {done: false, value};\n },\n return: async () => {\n done = true;\n return {done, value: null};\n },\n throw: async () => {\n done = true;\n return {done: true, value: null};\n }\n };\n }\n}\n"],"mappings":";;;AAKA,SAAQA,kBAAkB,QAAO,iBAAiB;;AAAC,wBAiEhDC,MAAM,CAACC,aAAa;AA5DvB,OAAO,MAAMC,aAAa,CAAgC;EAcxDC,WAAW,CACTC,QAAsB,EACtBC,cAAqC,EACrCC,MAAqB,EACrBC,UAAsB,EACtB;IAAA;IAAA;IAAA;IAAA;IAAA,kCAdiC,EAAE;IAAA;IAenC,IAAI,CAACH,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,cAAc,GAAGA,cAAc;IACpC,IAAI,CAACC,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACC,aAAa,GAAG,CAAC;EACxB;;EAMA,MAAMC,IAAI,GAAwB;IAChC,IAAI,IAAI,CAACC,QAAQ,CAACC,MAAM,KAAK,CAAC,EAAE;MAC9B,IAAI,IAAI,CAACH,aAAa,IAAI,IAAI,CAACJ,QAAQ,CAACQ,UAAU,CAACD,MAAM,EAAE;QAEzD,OAAO,IAAI;MACb;MACA,MAAME,SAAS,GAAG,MAAM,IAAI,CAACR,cAAc,CAACS,YAAY,CACtD,IAAI,CAACR,MAAM,EACX,IAAI,CAACF,QAAQ,CAACQ,UAAU,CAAC,IAAI,CAACJ,aAAa,CAAC,EAC5C,IAAI,CAACD,UAAU,CAChB;MACD,IAAI,CAACG,QAAQ,GAAGX,kBAAkB,CAAC,IAAI,CAACO,MAAM,EAAEO,SAAS,CAAC;MAC1D,IAAI,CAACL,aAAa,EAAE;IACtB;IACA,OAAO,IAAI,CAACE,QAAQ,CAACK,KAAK,EAAE;EAC9B;;EAKAC,MAAM,GAAS;IACb,IAAI,CAACN,QAAQ,GAAG,EAAE;IAClB,IAAI,CAACF,aAAa,GAAG,CAAC;EACxB;;EAMA,0BAA2C;IACzC,IAAIS,IAAI,GAAG,KAAK;IAChB,OAAO;MACLR,IAAI,EAAE,YAAY;QAChB,IAAIQ,IAAI,EAAE;UACR,OAAO;YAACA,IAAI;YAAEC,KAAK,EAAE;UAAI,CAAC;QAC5B;QACA,MAAMA,KAAK,GAAG,MAAM,IAAI,CAACT,IAAI,EAAE;QAC/B,IAAIS,KAAK,KAAK,IAAI,EAAE;UAClB,OAAO;YAACD,IAAI,EAAE,IAAI;YAAEC;UAAK,CAAC;QAC5B;QACA,OAAO;UAACD,IAAI,EAAE,KAAK;UAAEC;QAAK,CAAC;MAC7B,CAAC;MACDC,MAAM,EAAE,YAAY;QAClBF,IAAI,GAAG,IAAI;QACX,OAAO;UAACA,IAAI;UAAEC,KAAK,EAAE;QAAI,CAAC;MAC5B,CAAC;MACDE,KAAK,EAAE,YAAY;QACjBH,IAAI,GAAG,IAAI;QACX,OAAO;UAACA,IAAI,EAAE,IAAI;UAAEC,KAAK,EAAE;QAAI,CAAC;MAClC;IACF,CAAC;EACH;AACF"}