@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,40 +1,29 @@
1
1
  "use strict";
2
2
 
3
3
  var _typeof = require("@babel/runtime/helpers/typeof");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports.shredBuffer = shredBuffer;
9
- exports.shredRecord = shredRecord;
10
- exports.materializeRecords = materializeRecords;
11
7
  Object.defineProperty(exports, "ParquetBuffer", {
12
8
  enumerable: true,
13
9
  get: function get() {
14
10
  return _declare.ParquetBuffer;
15
11
  }
16
12
  });
17
-
13
+ exports.materializeRecords = materializeRecords;
14
+ exports.shredBuffer = shredBuffer;
15
+ exports.shredRecord = shredRecord;
18
16
  var _declare = require("./declare");
19
-
20
17
  var Types = _interopRequireWildcard(require("./types"));
21
-
22
18
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
-
24
19
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
-
26
20
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
27
-
28
21
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
29
-
30
22
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
31
-
32
23
  function shredBuffer(schema) {
33
24
  var columnData = {};
34
-
35
25
  var _iterator = _createForOfIteratorHelper(schema.fieldList),
36
- _step;
37
-
26
+ _step;
38
27
  try {
39
28
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
40
29
  var field = _step.value;
@@ -51,7 +40,6 @@ function shredBuffer(schema) {
51
40
  } finally {
52
41
  _iterator.f();
53
42
  }
54
-
55
43
  return {
56
44
  rowCount: 0,
57
45
  columnData: columnData
@@ -67,12 +55,9 @@ function shredRecord(schema, record, buffer) {
67
55
  buffer.columnData = data;
68
56
  return;
69
57
  }
70
-
71
58
  buffer.rowCount += 1;
72
-
73
59
  var _iterator2 = _createForOfIteratorHelper(schema.fieldList),
74
- _step2;
75
-
60
+ _step2;
76
61
  try {
77
62
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
78
63
  var field = _step2.value;
@@ -91,8 +76,8 @@ function shredRecord(schema, record, buffer) {
91
76
  function shredRecordFields(fields, record, data, rLevel, dLevel) {
92
77
  for (var name in fields) {
93
78
  var field = fields[name];
94
- var values = [];
95
79
 
80
+ var values = [];
96
81
  if (record && field.name in record && record[field.name] !== undefined && record[field.name] !== null) {
97
82
  if (record[field.name].constructor === Array) {
98
83
  values = record[field.name];
@@ -100,11 +85,9 @@ function shredRecordFields(fields, record, data, rLevel, dLevel) {
100
85
  values.push(record[field.name]);
101
86
  }
102
87
  }
103
-
104
88
  if (values.length === 0 && Boolean(record) && field.repetitionType === 'REQUIRED') {
105
89
  throw new Error("missing required field: ".concat(field.name));
106
90
  }
107
-
108
91
  if (values.length > 1 && field.repetitionType !== 'REPEATED') {
109
92
  throw new Error("too many values for field: ".concat(field.name));
110
93
  }
@@ -117,13 +100,11 @@ function shredRecordFields(fields, record, data, rLevel, dLevel) {
117
100
  data[field.key].rlevels.push(rLevel);
118
101
  data[field.key].dlevels.push(dLevel);
119
102
  }
120
-
121
103
  continue;
122
104
  }
123
105
 
124
106
  for (var i = 0; i < values.length; i++) {
125
107
  var rlvl = i === 0 ? rLevel : field.rLevelMax;
126
-
127
108
  if (field.isNested) {
128
109
  shredRecordFields(field.fields, values[i], data, rlvl, field.dLevelMax);
129
110
  } else {
@@ -138,15 +119,12 @@ function shredRecordFields(fields, record, data, rLevel, dLevel) {
138
119
 
139
120
  function materializeRecords(schema, buffer) {
140
121
  var records = [];
141
-
142
122
  for (var i = 0; i < buffer.rowCount; i++) {
143
123
  records.push({});
144
124
  }
145
-
146
125
  for (var key in buffer.columnData) {
147
126
  materializeColumn(schema, buffer, key, records);
148
127
  }
149
-
150
128
  return records;
151
129
  }
152
130
 
@@ -155,9 +133,9 @@ function materializeColumn(schema, buffer, key, records) {
155
133
  if (!data.count) return;
156
134
  var field = schema.findField(key);
157
135
  var branch = schema.findFieldBranch(key);
136
+
158
137
  var rLevels = new Array(field.rLevelMax + 1).fill(0);
159
138
  var vIndex = 0;
160
-
161
139
  for (var i = 0; i < data.count; i++) {
162
140
  var dLevel = data.dlevels[i];
163
141
  var rLevel = data.rlevels[i];
@@ -167,52 +145,44 @@ function materializeColumn(schema, buffer, key, records) {
167
145
  var record = records[rLevels[rIndex++] - 1];
168
146
 
169
147
  var _iterator3 = _createForOfIteratorHelper(branch),
170
- _step3;
171
-
148
+ _step3;
172
149
  try {
173
150
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
174
151
  var step = _step3.value;
175
152
  if (step === field) break;
176
153
  if (dLevel < step.dLevelMax) break;
177
-
178
154
  if (step.repetitionType === 'REPEATED') {
179
155
  if (!(step.name in record)) {
180
156
  record[step.name] = [];
181
157
  }
182
-
183
158
  var _ix = rLevels[rIndex++];
184
-
185
159
  while (record[step.name].length <= _ix) {
186
160
  record[step.name].push({});
187
161
  }
188
-
189
162
  record = record[step.name][_ix];
190
163
  } else {
191
164
  record[step.name] = record[step.name] || {};
192
165
  record = record[step.name];
193
166
  }
194
167
  }
168
+
195
169
  } catch (err) {
196
170
  _iterator3.e(err);
197
171
  } finally {
198
172
  _iterator3.f();
199
173
  }
200
-
201
174
  if (dLevel === field.dLevelMax) {
202
- var value = Types.fromPrimitive(field.originalType || field.primitiveType, data.values[vIndex], field);
175
+ var value = Types.fromPrimitive(
176
+ field.originalType || field.primitiveType, data.values[vIndex], field);
203
177
  vIndex++;
204
-
205
178
  if (field.repetitionType === 'REPEATED') {
206
179
  if (!(field.name in record)) {
207
180
  record[field.name] = [];
208
181
  }
209
-
210
182
  var ix = rLevels[rIndex];
211
-
212
183
  while (record[field.name].length <= ix) {
213
184
  record[field.name].push(null);
214
185
  }
215
-
216
186
  record[field.name][ix] = value;
217
187
  } else {
218
188
  record[field.name] = value;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/parquetjs/schema/shred.ts"],"names":["shredBuffer","schema","columnData","fieldList","field","key","dlevels","rlevels","values","pageHeaders","count","rowCount","shredRecord","record","buffer","data","shredRecordFields","fields","Array","prototype","push","apply","rLevel","dLevel","name","undefined","constructor","length","Boolean","repetitionType","Error","isNested","i","rlvl","rLevelMax","dLevelMax","Types","toPrimitive","originalType","primitiveType","materializeRecords","records","materializeColumn","findField","branch","findFieldBranch","rLevels","fill","vIndex","rIndex","step","ix","value","fromPrimitive"],"mappings":"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","sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\n\nimport {ParquetBuffer, ParquetData, ParquetField, ParquetRecord} from './declare';\nimport {ParquetSchema} from './schema';\nimport * as Types from './types';\n\nexport {ParquetBuffer};\n\nexport function shredBuffer(schema: ParquetSchema): ParquetBuffer {\n const columnData: Record<string, ParquetData> = {};\n for (const field of schema.fieldList) {\n columnData[field.key] = {\n dlevels: [],\n rlevels: [],\n values: [],\n pageHeaders: [],\n count: 0\n };\n }\n return {rowCount: 0, columnData};\n}\n\n/**\n * 'Shred' a record into a list of <value, repetition_level, definition_level>\n * tuples per column using the Google Dremel Algorithm..\n *\n * The buffer argument must point to an object into which the shredded record\n * will be returned. You may re-use the buffer for repeated calls to this function\n * to append to an existing buffer, as long as the schema is unchanged.\n *\n * The format in which the shredded records will be stored in the buffer is as\n * follows:\n *\n * buffer = {\n * columnData: [\n * 'my_col': {\n * dlevels: [d1, d2, .. dN],\n * rlevels: [r1, r2, .. rN],\n * values: [v1, v2, .. vN],\n * }, ...\n * ],\n * rowCount: X,\n * }\n */\nexport function shredRecord(schema: ParquetSchema, record: any, buffer: ParquetBuffer): void {\n /* shred the record, this may raise an exception */\n const data = shredBuffer(schema).columnData;\n\n shredRecordFields(schema.fields, record, data, 0, 0);\n\n /* if no error during shredding, add the shredded record to the buffer */\n if (buffer.rowCount === 0) {\n buffer.rowCount = 1;\n buffer.columnData = data;\n return;\n }\n buffer.rowCount += 1;\n for (const field of schema.fieldList) {\n Array.prototype.push.apply(buffer.columnData[field.key].rlevels, data[field.key].rlevels);\n Array.prototype.push.apply(buffer.columnData[field.key].dlevels, data[field.key].dlevels);\n Array.prototype.push.apply(buffer.columnData[field.key].values, data[field.key].values);\n buffer.columnData[field.key].count += data[field.key].count;\n }\n}\n\n// eslint-disable-next-line max-statements, complexity\nfunction shredRecordFields(\n fields: Record<string, ParquetField>,\n record: any,\n data: Record<string, ParquetData>,\n rLevel: number,\n dLevel: number\n) {\n for (const name in fields) {\n const field = fields[name];\n\n // fetch values\n let values: any[] = [];\n if (\n record &&\n field.name in record &&\n record[field.name] !== undefined &&\n record[field.name] !== null\n ) {\n if (record[field.name].constructor === Array) {\n values = record[field.name];\n } else {\n values.push(record[field.name]);\n }\n }\n // check values\n if (values.length === 0 && Boolean(record) && field.repetitionType === 'REQUIRED') {\n throw new Error(`missing required field: ${field.name}`);\n }\n if (values.length > 1 && field.repetitionType !== 'REPEATED') {\n throw new Error(`too many values for field: ${field.name}`);\n }\n\n // push null\n if (values.length === 0) {\n if (field.isNested) {\n shredRecordFields(field.fields!, null, data, rLevel, dLevel);\n } else {\n data[field.key].count += 1;\n data[field.key].rlevels.push(rLevel);\n data[field.key].dlevels.push(dLevel);\n }\n continue; // eslint-disable-line no-continue\n }\n\n // push values\n for (let i = 0; i < values.length; i++) {\n const rlvl = i === 0 ? rLevel : field.rLevelMax;\n if (field.isNested) {\n shredRecordFields(field.fields!, values[i], data, rlvl, field.dLevelMax);\n } else {\n data[field.key].count += 1;\n data[field.key].rlevels.push(rlvl);\n data[field.key].dlevels.push(field.dLevelMax);\n data[field.key].values.push(\n Types.toPrimitive((field.originalType || field.primitiveType)!, values[i])\n );\n }\n }\n }\n}\n\n/**\n * 'Materialize' a list of <value, repetition_level, definition_level>\n * tuples back to nested records (objects/arrays) using the Google Dremel\n * Algorithm..\n *\n * The buffer argument must point to an object with the following structure (i.e.\n * the same structure that is returned by shredRecords):\n *\n * buffer = {\n * columnData: [\n * 'my_col': {\n * dlevels: [d1, d2, .. dN],\n * rlevels: [r1, r2, .. rN],\n * values: [v1, v2, .. vN],\n * }, ...\n * ],\n * rowCount: X,\n * }\n */\nexport function materializeRecords(schema: ParquetSchema, buffer: ParquetBuffer): ParquetRecord[] {\n const records: ParquetRecord[] = [];\n for (let i = 0; i < buffer.rowCount; i++) records.push({});\n for (const key in buffer.columnData) {\n materializeColumn(schema, buffer, key, records);\n }\n return records;\n}\n\n// eslint-disable-next-line max-statements, complexity\nfunction materializeColumn(\n schema: ParquetSchema,\n buffer: ParquetBuffer,\n key: string,\n records: ParquetRecord[]\n) {\n const data = buffer.columnData[key];\n if (!data.count) return;\n\n const field = schema.findField(key);\n const branch = schema.findFieldBranch(key);\n\n // tslint:disable-next-line:prefer-array-literal\n const rLevels: number[] = new Array(field.rLevelMax + 1).fill(0);\n let vIndex = 0;\n for (let i = 0; i < data.count; i++) {\n const dLevel = data.dlevels[i];\n const rLevel = data.rlevels[i];\n rLevels[rLevel]++;\n rLevels.fill(0, rLevel + 1);\n\n let rIndex = 0;\n let record = records[rLevels[rIndex++] - 1];\n\n // Internal nodes\n for (const step of branch) {\n if (step === field) break;\n if (dLevel < step.dLevelMax) break;\n if (step.repetitionType === 'REPEATED') {\n if (!(step.name in record)) {\n // eslint-disable max-depth\n record[step.name] = [];\n }\n const ix = rLevels[rIndex++];\n while (record[step.name].length <= ix) {\n // eslint-disable max-depth\n record[step.name].push({});\n }\n record = record[step.name][ix];\n } else {\n record[step.name] = record[step.name] || {};\n record = record[step.name];\n }\n }\n\n // Leaf node\n if (dLevel === field.dLevelMax) {\n const value = Types.fromPrimitive(\n // @ts-ignore\n field.originalType || field.primitiveType,\n data.values[vIndex],\n field\n );\n vIndex++;\n if (field.repetitionType === 'REPEATED') {\n if (!(field.name in record)) {\n // eslint-disable max-depth\n record[field.name] = [];\n }\n const ix = rLevels[rIndex];\n while (record[field.name].length <= ix) {\n // eslint-disable max-depth\n record[field.name].push(null);\n }\n record[field.name][ix] = value;\n } else {\n record[field.name] = value;\n }\n }\n }\n}\n"],"file":"shred.js"}
1
+ {"version":3,"file":"shred.js","names":["shredBuffer","schema","columnData","fieldList","field","key","dlevels","rlevels","values","pageHeaders","count","rowCount","shredRecord","record","buffer","data","shredRecordFields","fields","Array","prototype","push","apply","rLevel","dLevel","name","undefined","constructor","length","Boolean","repetitionType","Error","isNested","i","rlvl","rLevelMax","dLevelMax","Types","toPrimitive","originalType","primitiveType","materializeRecords","records","materializeColumn","findField","branch","findFieldBranch","rLevels","fill","vIndex","rIndex","step","ix","value","fromPrimitive"],"sources":["../../../../src/parquetjs/schema/shred.ts"],"sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\n\nimport {ParquetBuffer, ParquetData, ParquetField, ParquetRecord} from './declare';\nimport {ParquetSchema} from './schema';\nimport * as Types from './types';\n\nexport {ParquetBuffer};\n\nexport function shredBuffer(schema: ParquetSchema): ParquetBuffer {\n const columnData: Record<string, ParquetData> = {};\n for (const field of schema.fieldList) {\n columnData[field.key] = {\n dlevels: [],\n rlevels: [],\n values: [],\n pageHeaders: [],\n count: 0\n };\n }\n return {rowCount: 0, columnData};\n}\n\n/**\n * 'Shred' a record into a list of <value, repetition_level, definition_level>\n * tuples per column using the Google Dremel Algorithm..\n *\n * The buffer argument must point to an object into which the shredded record\n * will be returned. You may re-use the buffer for repeated calls to this function\n * to append to an existing buffer, as long as the schema is unchanged.\n *\n * The format in which the shredded records will be stored in the buffer is as\n * follows:\n *\n * buffer = {\n * columnData: [\n * 'my_col': {\n * dlevels: [d1, d2, .. dN],\n * rlevels: [r1, r2, .. rN],\n * values: [v1, v2, .. vN],\n * }, ...\n * ],\n * rowCount: X,\n * }\n */\nexport function shredRecord(schema: ParquetSchema, record: any, buffer: ParquetBuffer): void {\n /* shred the record, this may raise an exception */\n const data = shredBuffer(schema).columnData;\n\n shredRecordFields(schema.fields, record, data, 0, 0);\n\n /* if no error during shredding, add the shredded record to the buffer */\n if (buffer.rowCount === 0) {\n buffer.rowCount = 1;\n buffer.columnData = data;\n return;\n }\n buffer.rowCount += 1;\n for (const field of schema.fieldList) {\n Array.prototype.push.apply(buffer.columnData[field.key].rlevels, data[field.key].rlevels);\n Array.prototype.push.apply(buffer.columnData[field.key].dlevels, data[field.key].dlevels);\n Array.prototype.push.apply(buffer.columnData[field.key].values, data[field.key].values);\n buffer.columnData[field.key].count += data[field.key].count;\n }\n}\n\n// eslint-disable-next-line max-statements, complexity\nfunction shredRecordFields(\n fields: Record<string, ParquetField>,\n record: any,\n data: Record<string, ParquetData>,\n rLevel: number,\n dLevel: number\n) {\n for (const name in fields) {\n const field = fields[name];\n\n // fetch values\n let values: any[] = [];\n if (\n record &&\n field.name in record &&\n record[field.name] !== undefined &&\n record[field.name] !== null\n ) {\n if (record[field.name].constructor === Array) {\n values = record[field.name];\n } else {\n values.push(record[field.name]);\n }\n }\n // check values\n if (values.length === 0 && Boolean(record) && field.repetitionType === 'REQUIRED') {\n throw new Error(`missing required field: ${field.name}`);\n }\n if (values.length > 1 && field.repetitionType !== 'REPEATED') {\n throw new Error(`too many values for field: ${field.name}`);\n }\n\n // push null\n if (values.length === 0) {\n if (field.isNested) {\n shredRecordFields(field.fields!, null, data, rLevel, dLevel);\n } else {\n data[field.key].count += 1;\n data[field.key].rlevels.push(rLevel);\n data[field.key].dlevels.push(dLevel);\n }\n continue; // eslint-disable-line no-continue\n }\n\n // push values\n for (let i = 0; i < values.length; i++) {\n const rlvl = i === 0 ? rLevel : field.rLevelMax;\n if (field.isNested) {\n shredRecordFields(field.fields!, values[i], data, rlvl, field.dLevelMax);\n } else {\n data[field.key].count += 1;\n data[field.key].rlevels.push(rlvl);\n data[field.key].dlevels.push(field.dLevelMax);\n data[field.key].values.push(\n Types.toPrimitive((field.originalType || field.primitiveType)!, values[i])\n );\n }\n }\n }\n}\n\n/**\n * 'Materialize' a list of <value, repetition_level, definition_level>\n * tuples back to nested records (objects/arrays) using the Google Dremel\n * Algorithm..\n *\n * The buffer argument must point to an object with the following structure (i.e.\n * the same structure that is returned by shredRecords):\n *\n * buffer = {\n * columnData: [\n * 'my_col': {\n * dlevels: [d1, d2, .. dN],\n * rlevels: [r1, r2, .. rN],\n * values: [v1, v2, .. vN],\n * }, ...\n * ],\n * rowCount: X,\n * }\n */\nexport function materializeRecords(schema: ParquetSchema, buffer: ParquetBuffer): ParquetRecord[] {\n const records: ParquetRecord[] = [];\n for (let i = 0; i < buffer.rowCount; i++) records.push({});\n for (const key in buffer.columnData) {\n materializeColumn(schema, buffer, key, records);\n }\n return records;\n}\n\n// eslint-disable-next-line max-statements, complexity\nfunction materializeColumn(\n schema: ParquetSchema,\n buffer: ParquetBuffer,\n key: string,\n records: ParquetRecord[]\n) {\n const data = buffer.columnData[key];\n if (!data.count) return;\n\n const field = schema.findField(key);\n const branch = schema.findFieldBranch(key);\n\n // tslint:disable-next-line:prefer-array-literal\n const rLevels: number[] = new Array(field.rLevelMax + 1).fill(0);\n let vIndex = 0;\n for (let i = 0; i < data.count; i++) {\n const dLevel = data.dlevels[i];\n const rLevel = data.rlevels[i];\n rLevels[rLevel]++;\n rLevels.fill(0, rLevel + 1);\n\n let rIndex = 0;\n let record = records[rLevels[rIndex++] - 1];\n\n // Internal nodes\n for (const step of branch) {\n if (step === field) break;\n if (dLevel < step.dLevelMax) break;\n if (step.repetitionType === 'REPEATED') {\n if (!(step.name in record)) {\n // eslint-disable max-depth\n record[step.name] = [];\n }\n const ix = rLevels[rIndex++];\n while (record[step.name].length <= ix) {\n // eslint-disable max-depth\n record[step.name].push({});\n }\n record = record[step.name][ix];\n } else {\n record[step.name] = record[step.name] || {};\n record = record[step.name];\n }\n }\n\n // Leaf node\n if (dLevel === field.dLevelMax) {\n const value = Types.fromPrimitive(\n // @ts-ignore\n field.originalType || field.primitiveType,\n data.values[vIndex],\n field\n );\n vIndex++;\n if (field.repetitionType === 'REPEATED') {\n if (!(field.name in record)) {\n // eslint-disable max-depth\n record[field.name] = [];\n }\n const ix = rLevels[rIndex];\n while (record[field.name].length <= ix) {\n // eslint-disable max-depth\n record[field.name].push(null);\n }\n record[field.name][ix] = value;\n } else {\n record[field.name] = value;\n }\n }\n }\n}\n"],"mappings":"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"}
@@ -1,14 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports.toPrimitive = toPrimitive;
9
- exports.fromPrimitive = fromPrimitive;
10
7
  exports.PARQUET_LOGICAL_TYPES = void 0;
11
-
8
+ exports.fromPrimitive = fromPrimitive;
9
+ exports.toPrimitive = toPrimitive;
12
10
  var _bson = _interopRequireDefault(require("bson"));
13
11
 
14
12
  var PARQUET_LOGICAL_TYPES = {
@@ -163,13 +161,12 @@ var PARQUET_LOGICAL_TYPES = {
163
161
  fromPrimitive: decimalFromPrimitive_BYTE_ARRAY
164
162
  }
165
163
  };
166
- exports.PARQUET_LOGICAL_TYPES = PARQUET_LOGICAL_TYPES;
167
164
 
165
+ exports.PARQUET_LOGICAL_TYPES = PARQUET_LOGICAL_TYPES;
168
166
  function toPrimitive(type, value, field) {
169
167
  if (!(type in PARQUET_LOGICAL_TYPES)) {
170
168
  throw new Error("invalid type: ".concat(type));
171
169
  }
172
-
173
170
  return PARQUET_LOGICAL_TYPES[type].toPrimitive(value, field);
174
171
  }
175
172
 
@@ -177,210 +174,151 @@ function fromPrimitive(type, value, field) {
177
174
  if (!(type in PARQUET_LOGICAL_TYPES)) {
178
175
  throw new Error("invalid type: ".concat(type));
179
176
  }
180
-
181
177
  if ('fromPrimitive' in PARQUET_LOGICAL_TYPES[type]) {
182
178
  var _PARQUET_LOGICAL_TYPE, _PARQUET_LOGICAL_TYPE2;
183
-
184
179
  return (_PARQUET_LOGICAL_TYPE = (_PARQUET_LOGICAL_TYPE2 = PARQUET_LOGICAL_TYPES[type]).fromPrimitive) === null || _PARQUET_LOGICAL_TYPE === void 0 ? void 0 : _PARQUET_LOGICAL_TYPE.call(_PARQUET_LOGICAL_TYPE2, value, field);
185
180
  }
186
181
 
187
182
  return value;
188
183
  }
189
-
190
184
  function toPrimitive_BOOLEAN(value) {
191
185
  return Boolean(value);
192
186
  }
193
-
194
187
  function fromPrimitive_BOOLEAN(value) {
195
188
  return Boolean(value);
196
189
  }
197
-
198
190
  function toPrimitive_FLOAT(value) {
199
191
  var v = parseFloat(value);
200
-
201
192
  if (isNaN(v)) {
202
193
  throw new Error("invalid value for FLOAT: ".concat(value));
203
194
  }
204
-
205
195
  return v;
206
196
  }
207
-
208
197
  function toPrimitive_DOUBLE(value) {
209
198
  var v = parseFloat(value);
210
-
211
199
  if (isNaN(v)) {
212
200
  throw new Error("invalid value for DOUBLE: ".concat(value));
213
201
  }
214
-
215
202
  return v;
216
203
  }
217
-
218
204
  function toPrimitive_INT8(value) {
219
205
  var v = parseInt(value, 10);
220
-
221
206
  if (v < -0x80 || v > 0x7f || isNaN(v)) {
222
207
  throw new Error("invalid value for INT8: ".concat(value));
223
208
  }
224
-
225
209
  return v;
226
210
  }
227
-
228
211
  function toPrimitive_UINT8(value) {
229
212
  var v = parseInt(value, 10);
230
-
231
213
  if (v < 0 || v > 0xff || isNaN(v)) {
232
214
  throw new Error("invalid value for UINT8: ".concat(value));
233
215
  }
234
-
235
216
  return v;
236
217
  }
237
-
238
218
  function toPrimitive_INT16(value) {
239
219
  var v = parseInt(value, 10);
240
-
241
220
  if (v < -0x8000 || v > 0x7fff || isNaN(v)) {
242
221
  throw new Error("invalid value for INT16: ".concat(value));
243
222
  }
244
-
245
223
  return v;
246
224
  }
247
-
248
225
  function toPrimitive_UINT16(value) {
249
226
  var v = parseInt(value, 10);
250
-
251
227
  if (v < 0 || v > 0xffff || isNaN(v)) {
252
228
  throw new Error("invalid value for UINT16: ".concat(value));
253
229
  }
254
-
255
230
  return v;
256
231
  }
257
-
258
232
  function toPrimitive_INT32(value) {
259
233
  var v = parseInt(value, 10);
260
-
261
234
  if (v < -0x80000000 || v > 0x7fffffff || isNaN(v)) {
262
235
  throw new Error("invalid value for INT32: ".concat(value));
263
236
  }
264
-
265
237
  return v;
266
238
  }
267
-
268
239
  function decimalToPrimitive_INT32(value, field) {
269
240
  var primitiveValue = value * Math.pow(10, field.scale || 0);
270
241
  var v = Math.round(primitiveValue * Math.pow(10, -field.presision) % 1 * Math.pow(10, field.presision));
271
-
272
242
  if (v < -0x80000000 || v > 0x7fffffff || isNaN(v)) {
273
243
  throw new Error("invalid value for INT32: ".concat(value));
274
244
  }
275
-
276
245
  return v;
277
246
  }
278
-
279
247
  function toPrimitive_UINT32(value) {
280
248
  var v = parseInt(value, 10);
281
-
282
249
  if (v < 0 || v > 0xffffffffffff || isNaN(v)) {
283
250
  throw new Error("invalid value for UINT32: ".concat(value));
284
251
  }
285
-
286
252
  return v;
287
253
  }
288
-
289
254
  function toPrimitive_INT64(value) {
290
255
  var v = parseInt(value, 10);
291
-
292
256
  if (isNaN(v)) {
293
257
  throw new Error("invalid value for INT64: ".concat(value));
294
258
  }
295
-
296
259
  return v;
297
260
  }
298
-
299
261
  function decimalToPrimitive_INT64(value, field) {
300
262
  var primitiveValue = value * Math.pow(10, field.scale || 0);
301
263
  var v = Math.round(primitiveValue * Math.pow(10, -field.presision) % 1 * Math.pow(10, field.presision));
302
-
303
264
  if (isNaN(v)) {
304
265
  throw new Error("invalid value for INT64: ".concat(value));
305
266
  }
306
-
307
267
  return v;
308
268
  }
309
-
310
269
  function toPrimitive_UINT64(value) {
311
270
  var v = parseInt(value, 10);
312
-
313
271
  if (v < 0 || isNaN(v)) {
314
272
  throw new Error("invalid value for UINT64: ".concat(value));
315
273
  }
316
-
317
274
  return v;
318
275
  }
319
-
320
276
  function toPrimitive_INT96(value) {
321
277
  var v = parseInt(value, 10);
322
-
323
278
  if (isNaN(v)) {
324
279
  throw new Error("invalid value for INT96: ".concat(value));
325
280
  }
326
-
327
281
  return v;
328
282
  }
329
-
330
283
  function toPrimitive_BYTE_ARRAY(value) {
331
284
  return Buffer.from(value);
332
285
  }
333
-
334
286
  function decimalToPrimitive_BYTE_ARRAY(value) {
335
287
  return Buffer.from(value);
336
288
  }
337
-
338
289
  function toPrimitive_UTF8(value) {
339
290
  return Buffer.from(value, 'utf8');
340
291
  }
341
-
342
292
  function fromPrimitive_UTF8(value) {
343
293
  return value.toString();
344
294
  }
345
-
346
295
  function toPrimitive_JSON(value) {
347
296
  return Buffer.from(JSON.stringify(value));
348
297
  }
349
-
350
298
  function fromPrimitive_JSON(value) {
351
299
  return JSON.parse(value);
352
300
  }
353
-
354
301
  function toPrimitive_BSON(value) {
355
302
  return Buffer.from(_bson.default.serialize(value));
356
303
  }
357
-
358
304
  function fromPrimitive_BSON(value) {
359
305
  return _bson.default.deserialize(value);
360
306
  }
361
-
362
307
  function toPrimitive_TIME_MILLIS(value) {
363
308
  var v = parseInt(value, 10);
364
-
365
309
  if (v < 0 || v > 0xffffffffffffffff || isNaN(v)) {
366
310
  throw new Error("invalid value for TIME_MILLIS: ".concat(value));
367
311
  }
368
-
369
312
  return v;
370
313
  }
371
-
372
314
  function toPrimitive_TIME_MICROS(value) {
373
315
  var v = parseInt(value, 10);
374
-
375
316
  if (v < 0 || isNaN(v)) {
376
317
  throw new Error("invalid value for TIME_MICROS: ".concat(value));
377
318
  }
378
-
379
319
  return v;
380
320
  }
381
-
382
321
  var kMillisPerDay = 86400000;
383
-
384
322
  function toPrimitive_DATE(value) {
385
323
  if (value instanceof Date) {
386
324
  return value.getTime() / kMillisPerDay;
@@ -388,19 +326,15 @@ function toPrimitive_DATE(value) {
388
326
 
389
327
  {
390
328
  var v = parseInt(value, 10);
391
-
392
329
  if (v < 0 || isNaN(v)) {
393
330
  throw new Error("invalid value for DATE: ".concat(value));
394
331
  }
395
-
396
332
  return v;
397
333
  }
398
334
  }
399
-
400
335
  function fromPrimitive_DATE(value) {
401
336
  return new Date(value * kMillisPerDay);
402
337
  }
403
-
404
338
  function toPrimitive_TIMESTAMP_MILLIS(value) {
405
339
  if (value instanceof Date) {
406
340
  return value.getTime();
@@ -408,19 +342,15 @@ function toPrimitive_TIMESTAMP_MILLIS(value) {
408
342
 
409
343
  {
410
344
  var v = parseInt(value, 10);
411
-
412
345
  if (v < 0 || isNaN(v)) {
413
346
  throw new Error("invalid value for TIMESTAMP_MILLIS: ".concat(value));
414
347
  }
415
-
416
348
  return v;
417
349
  }
418
350
  }
419
-
420
351
  function fromPrimitive_TIMESTAMP_MILLIS(value) {
421
352
  return new Date(value);
422
353
  }
423
-
424
354
  function toPrimitive_TIMESTAMP_MICROS(value) {
425
355
  if (value instanceof Date) {
426
356
  return value.getTime() * 1000;
@@ -428,31 +358,25 @@ function toPrimitive_TIMESTAMP_MICROS(value) {
428
358
 
429
359
  {
430
360
  var v = parseInt(value, 10);
431
-
432
361
  if (v < 0 || isNaN(v)) {
433
362
  throw new Error("invalid value for TIMESTAMP_MICROS: ".concat(value));
434
363
  }
435
-
436
364
  return v;
437
365
  }
438
366
  }
439
-
440
367
  function fromPrimitive_TIMESTAMP_MICROS(value) {
441
368
  return new Date(value / 1000);
442
369
  }
443
-
444
370
  function toPrimitive_INTERVAL(value) {
445
371
  if (!value.months || !value.days || !value.milliseconds) {
446
372
  throw new Error('value for INTERVAL must be object { months: ..., days: ..., milliseconds: ... }');
447
373
  }
448
-
449
374
  var buf = Buffer.alloc(12);
450
375
  buf.writeUInt32LE(value.months, 0);
451
376
  buf.writeUInt32LE(value.days, 4);
452
377
  buf.writeUInt32LE(value.milliseconds, 8);
453
378
  return buf;
454
379
  }
455
-
456
380
  function fromPrimitive_INTERVAL(value) {
457
381
  var buf = Buffer.from(value);
458
382
  var months = buf.readUInt32LE(0);
@@ -464,15 +388,12 @@ function fromPrimitive_INTERVAL(value) {
464
388
  milliseconds: millis
465
389
  };
466
390
  }
467
-
468
391
  function decimalFromPrimitive_INT(value, field) {
469
392
  var presisionInt = Math.round(value * Math.pow(10, -field.presision) % 1 * Math.pow(10, field.presision));
470
393
  return presisionInt * Math.pow(10, -(field.scale || 0));
471
394
  }
472
-
473
395
  function decimalFromPrimitive_BYTE_ARRAY(value, field) {
474
396
  var number = 0;
475
-
476
397
  if (value.length <= 4) {
477
398
  for (var i = 0; i < value.length; i++) {
478
399
  var component = value[i] << 8 * (value.length - i - 1);
@@ -481,11 +402,9 @@ function decimalFromPrimitive_BYTE_ARRAY(value, field) {
481
402
  } else {
482
403
  for (var _i = 0; _i < value.length; _i++) {
483
404
  var _component = value[_i] * Math.pow(2, 8 * (value.length - 1 - _i));
484
-
485
405
  number += _component;
486
406
  }
487
407
  }
488
-
489
408
  var presisionInt = Math.round(number * Math.pow(10, -field.presision) % 1 * Math.pow(10, field.presision));
490
409
  return presisionInt * Math.pow(10, -(field.scale || 0));
491
410
  }