@loaders.gl/parquet 3.1.0-alpha.4 → 3.1.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (387) hide show
  1. package/dist/bundle.d.ts +2 -0
  2. package/dist/bundle.d.ts.map +1 -0
  3. package/dist/bundle.js +5 -0
  4. package/dist/constants.d.ts +15 -0
  5. package/dist/constants.d.ts.map +1 -0
  6. package/dist/constants.js +18 -0
  7. package/dist/dist.min.js +27 -13
  8. package/dist/dist.min.js.map +7 -1
  9. package/dist/es5/bundle.js +1 -1
  10. package/dist/es5/bundle.js.map +1 -1
  11. package/dist/es5/constants.js +5 -5
  12. package/dist/es5/constants.js.map +1 -1
  13. package/dist/es5/index.js +16 -45
  14. package/dist/es5/index.js.map +1 -1
  15. package/dist/es5/lib/convert-schema.js +13 -13
  16. package/dist/es5/lib/convert-schema.js.map +1 -1
  17. package/dist/es5/lib/parse-parquet.js +19 -154
  18. package/dist/es5/lib/parse-parquet.js.map +1 -1
  19. package/dist/es5/lib/read-array-buffer.js +6 -43
  20. package/dist/es5/lib/read-array-buffer.js.map +1 -1
  21. package/dist/es5/parquet-loader.js +4 -4
  22. package/dist/es5/parquet-loader.js.map +1 -1
  23. package/dist/es5/parquet-writer.js +4 -4
  24. package/dist/es5/parquet-writer.js.map +1 -1
  25. package/dist/es5/parquetjs/codecs/dictionary.js +2 -10
  26. package/dist/es5/parquetjs/codecs/dictionary.js.map +1 -1
  27. package/dist/es5/parquetjs/codecs/index.js +4 -6
  28. package/dist/es5/parquetjs/codecs/index.js.map +1 -1
  29. package/dist/es5/parquetjs/codecs/plain.js +41 -43
  30. package/dist/es5/parquetjs/codecs/plain.js.map +1 -1
  31. package/dist/es5/parquetjs/codecs/rle.js +25 -35
  32. package/dist/es5/parquetjs/codecs/rle.js.map +1 -1
  33. package/dist/es5/parquetjs/compression.js +28 -122
  34. package/dist/es5/parquetjs/compression.js.map +1 -1
  35. package/dist/es5/parquetjs/encoder/writer.js +301 -737
  36. package/dist/es5/parquetjs/encoder/writer.js.map +1 -1
  37. package/dist/es5/parquetjs/file.js +15 -15
  38. package/dist/es5/parquetjs/file.js.map +1 -1
  39. package/dist/es5/parquetjs/parquet-thrift/BoundaryOrder.js +1 -1
  40. package/dist/es5/parquetjs/parquet-thrift/BsonType.js +31 -45
  41. package/dist/es5/parquetjs/parquet-thrift/BsonType.js.map +1 -1
  42. package/dist/es5/parquetjs/parquet-thrift/ColumnChunk.js +141 -152
  43. package/dist/es5/parquetjs/parquet-thrift/ColumnChunk.js.map +1 -1
  44. package/dist/es5/parquetjs/parquet-thrift/ColumnIndex.js +147 -160
  45. package/dist/es5/parquetjs/parquet-thrift/ColumnIndex.js.map +1 -1
  46. package/dist/es5/parquetjs/parquet-thrift/ColumnMetaData.js +248 -259
  47. package/dist/es5/parquetjs/parquet-thrift/ColumnMetaData.js.map +1 -1
  48. package/dist/es5/parquetjs/parquet-thrift/ColumnOrder.js +67 -79
  49. package/dist/es5/parquetjs/parquet-thrift/ColumnOrder.js.map +1 -1
  50. package/dist/es5/parquetjs/parquet-thrift/CompressionCodec.js +1 -1
  51. package/dist/es5/parquetjs/parquet-thrift/ConvertedType.js +1 -1
  52. package/dist/es5/parquetjs/parquet-thrift/DataPageHeader.js +113 -124
  53. package/dist/es5/parquetjs/parquet-thrift/DataPageHeader.js.map +1 -1
  54. package/dist/es5/parquetjs/parquet-thrift/DataPageHeaderV2.js +158 -169
  55. package/dist/es5/parquetjs/parquet-thrift/DataPageHeaderV2.js.map +1 -1
  56. package/dist/es5/parquetjs/parquet-thrift/DateType.js +31 -45
  57. package/dist/es5/parquetjs/parquet-thrift/DateType.js.map +1 -1
  58. package/dist/es5/parquetjs/parquet-thrift/DecimalType.js +68 -79
  59. package/dist/es5/parquetjs/parquet-thrift/DecimalType.js.map +1 -1
  60. package/dist/es5/parquetjs/parquet-thrift/DictionaryPageHeader.js +83 -94
  61. package/dist/es5/parquetjs/parquet-thrift/DictionaryPageHeader.js.map +1 -1
  62. package/dist/es5/parquetjs/parquet-thrift/Encoding.js +1 -1
  63. package/dist/es5/parquetjs/parquet-thrift/EnumType.js +31 -45
  64. package/dist/es5/parquetjs/parquet-thrift/EnumType.js.map +1 -1
  65. package/dist/es5/parquetjs/parquet-thrift/FieldRepetitionType.js +1 -1
  66. package/dist/es5/parquetjs/parquet-thrift/FileMetaData.js +170 -182
  67. package/dist/es5/parquetjs/parquet-thrift/FileMetaData.js.map +1 -1
  68. package/dist/es5/parquetjs/parquet-thrift/IndexPageHeader.js +31 -45
  69. package/dist/es5/parquetjs/parquet-thrift/IndexPageHeader.js.map +1 -1
  70. package/dist/es5/parquetjs/parquet-thrift/IntType.js +68 -79
  71. package/dist/es5/parquetjs/parquet-thrift/IntType.js.map +1 -1
  72. package/dist/es5/parquetjs/parquet-thrift/JsonType.js +31 -45
  73. package/dist/es5/parquetjs/parquet-thrift/JsonType.js.map +1 -1
  74. package/dist/es5/parquetjs/parquet-thrift/KeyValue.js +68 -79
  75. package/dist/es5/parquetjs/parquet-thrift/KeyValue.js.map +1 -1
  76. package/dist/es5/parquetjs/parquet-thrift/ListType.js +31 -45
  77. package/dist/es5/parquetjs/parquet-thrift/ListType.js.map +1 -1
  78. package/dist/es5/parquetjs/parquet-thrift/LogicalType.js +319 -343
  79. package/dist/es5/parquetjs/parquet-thrift/LogicalType.js.map +1 -1
  80. package/dist/es5/parquetjs/parquet-thrift/MapType.js +31 -45
  81. package/dist/es5/parquetjs/parquet-thrift/MapType.js.map +1 -1
  82. package/dist/es5/parquetjs/parquet-thrift/MicroSeconds.js +31 -45
  83. package/dist/es5/parquetjs/parquet-thrift/MicroSeconds.js.map +1 -1
  84. package/dist/es5/parquetjs/parquet-thrift/MilliSeconds.js +31 -45
  85. package/dist/es5/parquetjs/parquet-thrift/MilliSeconds.js.map +1 -1
  86. package/dist/es5/parquetjs/parquet-thrift/NullType.js +31 -45
  87. package/dist/es5/parquetjs/parquet-thrift/NullType.js.map +1 -1
  88. package/dist/es5/parquetjs/parquet-thrift/OffsetIndex.js +64 -75
  89. package/dist/es5/parquetjs/parquet-thrift/OffsetIndex.js.map +1 -1
  90. package/dist/es5/parquetjs/parquet-thrift/PageEncodingStats.js +83 -94
  91. package/dist/es5/parquetjs/parquet-thrift/PageEncodingStats.js.map +1 -1
  92. package/dist/es5/parquetjs/parquet-thrift/PageHeader.js +158 -169
  93. package/dist/es5/parquetjs/parquet-thrift/PageHeader.js.map +1 -1
  94. package/dist/es5/parquetjs/parquet-thrift/PageLocation.js +83 -94
  95. package/dist/es5/parquetjs/parquet-thrift/PageLocation.js.map +1 -1
  96. package/dist/es5/parquetjs/parquet-thrift/PageType.js +1 -1
  97. package/dist/es5/parquetjs/parquet-thrift/RowGroup.js +113 -124
  98. package/dist/es5/parquetjs/parquet-thrift/RowGroup.js.map +1 -1
  99. package/dist/es5/parquetjs/parquet-thrift/SchemaElement.js +188 -199
  100. package/dist/es5/parquetjs/parquet-thrift/SchemaElement.js.map +1 -1
  101. package/dist/es5/parquetjs/parquet-thrift/SortingColumn.js +83 -94
  102. package/dist/es5/parquetjs/parquet-thrift/SortingColumn.js.map +1 -1
  103. package/dist/es5/parquetjs/parquet-thrift/Statistics.js +124 -135
  104. package/dist/es5/parquetjs/parquet-thrift/Statistics.js.map +1 -1
  105. package/dist/es5/parquetjs/parquet-thrift/StringType.js +31 -45
  106. package/dist/es5/parquetjs/parquet-thrift/StringType.js.map +1 -1
  107. package/dist/es5/parquetjs/parquet-thrift/TimeType.js +68 -79
  108. package/dist/es5/parquetjs/parquet-thrift/TimeType.js.map +1 -1
  109. package/dist/es5/parquetjs/parquet-thrift/TimeUnit.js +88 -101
  110. package/dist/es5/parquetjs/parquet-thrift/TimeUnit.js.map +1 -1
  111. package/dist/es5/parquetjs/parquet-thrift/TimestampType.js +68 -79
  112. package/dist/es5/parquetjs/parquet-thrift/TimestampType.js.map +1 -1
  113. package/dist/es5/parquetjs/parquet-thrift/Type.js +1 -1
  114. package/dist/es5/parquetjs/parquet-thrift/TypeDefinedOrder.js +31 -45
  115. package/dist/es5/parquetjs/parquet-thrift/TypeDefinedOrder.js.map +1 -1
  116. package/dist/es5/parquetjs/parquet-thrift/UUIDType.js +31 -45
  117. package/dist/es5/parquetjs/parquet-thrift/UUIDType.js.map +1 -1
  118. package/dist/es5/parquetjs/parquet-thrift/index.js +43 -43
  119. package/dist/es5/parquetjs/parser/decoders.js +218 -397
  120. package/dist/es5/parquetjs/parser/decoders.js.map +1 -1
  121. package/dist/es5/parquetjs/parser/parquet-cursor.js +62 -180
  122. package/dist/es5/parquetjs/parser/parquet-cursor.js.map +1 -1
  123. package/dist/es5/parquetjs/parser/parquet-envelope-reader.js +124 -408
  124. package/dist/es5/parquetjs/parser/parquet-envelope-reader.js.map +1 -1
  125. package/dist/es5/parquetjs/parser/parquet-reader.js +91 -369
  126. package/dist/es5/parquetjs/parser/parquet-reader.js.map +1 -1
  127. package/dist/es5/parquetjs/schema/declare.js +9 -11
  128. package/dist/es5/parquetjs/schema/declare.js.map +1 -1
  129. package/dist/es5/parquetjs/schema/schema.js +73 -87
  130. package/dist/es5/parquetjs/schema/schema.js.map +1 -1
  131. package/dist/es5/parquetjs/schema/shred.js +56 -96
  132. package/dist/es5/parquetjs/schema/shred.js.map +1 -1
  133. package/dist/es5/parquetjs/schema/types.js +39 -40
  134. package/dist/es5/parquetjs/schema/types.js.map +1 -1
  135. package/dist/es5/parquetjs/utils/buffer-utils.js +1 -1
  136. package/dist/es5/parquetjs/utils/buffer-utils.js.map +1 -1
  137. package/dist/es5/parquetjs/utils/file-utils.js +8 -65
  138. package/dist/es5/parquetjs/utils/file-utils.js.map +1 -1
  139. package/dist/es5/parquetjs/utils/read-utils.js +22 -50
  140. package/dist/es5/parquetjs/utils/read-utils.js.map +1 -1
  141. package/dist/esm/index.js +2 -3
  142. package/dist/esm/index.js.map +1 -1
  143. package/dist/esm/parquet-loader.js +1 -1
  144. package/dist/esm/parquet-loader.js.map +1 -1
  145. package/dist/esm/parquet-writer.js +1 -1
  146. package/dist/esm/parquet-writer.js.map +1 -1
  147. package/dist/esm/parquetjs/codecs/plain.js +3 -3
  148. package/dist/esm/parquetjs/codecs/plain.js.map +1 -1
  149. package/dist/esm/parquetjs/codecs/rle.js +1 -1
  150. package/dist/esm/parquetjs/codecs/rle.js.map +1 -1
  151. package/dist/esm/parquetjs/compression.js +4 -13
  152. package/dist/esm/parquetjs/compression.js.map +1 -1
  153. package/dist/esm/parquetjs/encoder/writer.js +1 -1
  154. package/dist/esm/parquetjs/encoder/writer.js.map +1 -1
  155. package/dist/esm/parquetjs/parser/decoders.js +4 -4
  156. package/dist/esm/parquetjs/parser/decoders.js.map +1 -1
  157. package/dist/esm/parquetjs/parser/parquet-envelope-reader.js +4 -13
  158. package/dist/esm/parquetjs/parser/parquet-envelope-reader.js.map +1 -1
  159. package/dist/esm/parquetjs/parser/parquet-reader.js +0 -13
  160. package/dist/esm/parquetjs/parser/parquet-reader.js.map +1 -1
  161. package/dist/esm/parquetjs/schema/schema.js +3 -3
  162. package/dist/esm/parquetjs/schema/schema.js.map +1 -1
  163. package/dist/esm/parquetjs/schema/shred.js +2 -2
  164. package/dist/esm/parquetjs/schema/shred.js.map +1 -1
  165. package/dist/esm/parquetjs/schema/types.js +20 -20
  166. package/dist/esm/parquetjs/schema/types.js.map +1 -1
  167. package/dist/esm/parquetjs/utils/file-utils.js +0 -45
  168. package/dist/esm/parquetjs/utils/file-utils.js.map +1 -1
  169. package/dist/index.d.ts +28 -0
  170. package/dist/index.d.ts.map +1 -0
  171. package/dist/index.js +30 -0
  172. package/dist/lib/convert-schema.d.ts +8 -0
  173. package/dist/lib/convert-schema.d.ts.map +1 -0
  174. package/dist/lib/convert-schema.js +70 -0
  175. package/dist/lib/parse-parquet.d.ts +4 -0
  176. package/dist/lib/parse-parquet.d.ts.map +1 -0
  177. package/dist/lib/parse-parquet.js +28 -0
  178. package/dist/lib/read-array-buffer.d.ts +19 -0
  179. package/dist/lib/read-array-buffer.d.ts.map +1 -0
  180. package/dist/lib/read-array-buffer.js +29 -0
  181. package/dist/parquet-loader.d.ts +23 -0
  182. package/dist/parquet-loader.d.ts.map +1 -0
  183. package/dist/parquet-loader.js +27 -0
  184. package/dist/parquet-worker.js +27 -13
  185. package/dist/parquet-worker.js.map +7 -1
  186. package/dist/parquet-writer.d.ts +4 -0
  187. package/dist/parquet-writer.d.ts.map +1 -0
  188. package/dist/parquet-writer.js +21 -0
  189. package/dist/parquetjs/codecs/declare.d.ts +17 -0
  190. package/dist/parquetjs/codecs/declare.d.ts.map +1 -0
  191. package/dist/parquetjs/codecs/declare.js +2 -0
  192. package/dist/parquetjs/codecs/dictionary.d.ts +3 -0
  193. package/dist/parquetjs/codecs/dictionary.d.ts.map +1 -0
  194. package/dist/parquetjs/codecs/dictionary.js +14 -0
  195. package/dist/parquetjs/codecs/index.d.ts +5 -0
  196. package/dist/parquetjs/codecs/index.d.ts.map +1 -0
  197. package/dist/parquetjs/codecs/index.js +51 -0
  198. package/dist/parquetjs/codecs/plain.d.ts +6 -0
  199. package/dist/parquetjs/codecs/plain.d.ts.map +1 -0
  200. package/dist/parquetjs/codecs/plain.js +211 -0
  201. package/dist/parquetjs/codecs/rle.d.ts +6 -0
  202. package/dist/parquetjs/codecs/rle.d.ts.map +1 -0
  203. package/dist/parquetjs/codecs/rle.js +145 -0
  204. package/dist/parquetjs/compression.d.ts +23 -0
  205. package/dist/parquetjs/compression.d.ts.map +1 -0
  206. package/dist/parquetjs/compression.js +168 -0
  207. package/dist/parquetjs/encoder/writer.d.ts +123 -0
  208. package/dist/parquetjs/encoder/writer.d.ts.map +1 -0
  209. package/dist/parquetjs/encoder/writer.js +478 -0
  210. package/dist/parquetjs/file.d.ts +10 -0
  211. package/dist/parquetjs/file.d.ts.map +1 -0
  212. package/dist/parquetjs/file.js +99 -0
  213. package/dist/parquetjs/parquet-thrift/BoundaryOrder.d.ts +6 -0
  214. package/dist/parquetjs/parquet-thrift/BoundaryOrder.d.ts.map +1 -0
  215. package/dist/parquetjs/parquet-thrift/BoundaryOrder.js +15 -0
  216. package/dist/parquetjs/parquet-thrift/BsonType.d.ts +9 -0
  217. package/dist/parquetjs/parquet-thrift/BsonType.d.ts.map +1 -0
  218. package/dist/parquetjs/parquet-thrift/BsonType.js +58 -0
  219. package/dist/parquetjs/parquet-thrift/ColumnChunk.d.ts +25 -0
  220. package/dist/parquetjs/parquet-thrift/ColumnChunk.d.ts.map +1 -0
  221. package/dist/parquetjs/parquet-thrift/ColumnChunk.js +207 -0
  222. package/dist/parquetjs/parquet-thrift/ColumnIndex.d.ts +22 -0
  223. package/dist/parquetjs/parquet-thrift/ColumnIndex.d.ts.map +1 -0
  224. package/dist/parquetjs/parquet-thrift/ColumnIndex.js +213 -0
  225. package/dist/parquetjs/parquet-thrift/ColumnMetaData.d.ts +42 -0
  226. package/dist/parquetjs/parquet-thrift/ColumnMetaData.d.ts.map +1 -0
  227. package/dist/parquetjs/parquet-thrift/ColumnMetaData.js +398 -0
  228. package/dist/parquetjs/parquet-thrift/ColumnOrder.d.ts +13 -0
  229. package/dist/parquetjs/parquet-thrift/ColumnOrder.d.ts.map +1 -0
  230. package/dist/parquetjs/parquet-thrift/ColumnOrder.js +104 -0
  231. package/dist/parquetjs/parquet-thrift/CompressionCodec.d.ts +11 -0
  232. package/dist/parquetjs/parquet-thrift/CompressionCodec.d.ts.map +1 -0
  233. package/dist/parquetjs/parquet-thrift/CompressionCodec.js +20 -0
  234. package/dist/parquetjs/parquet-thrift/ConvertedType.d.ts +25 -0
  235. package/dist/parquetjs/parquet-thrift/ConvertedType.d.ts.map +1 -0
  236. package/dist/parquetjs/parquet-thrift/ConvertedType.js +34 -0
  237. package/dist/parquetjs/parquet-thrift/DataPageHeader.d.ts +21 -0
  238. package/dist/parquetjs/parquet-thrift/DataPageHeader.d.ts.map +1 -0
  239. package/dist/parquetjs/parquet-thrift/DataPageHeader.js +166 -0
  240. package/dist/parquetjs/parquet-thrift/DataPageHeaderV2.d.ts +27 -0
  241. package/dist/parquetjs/parquet-thrift/DataPageHeaderV2.d.ts.map +1 -0
  242. package/dist/parquetjs/parquet-thrift/DataPageHeaderV2.js +226 -0
  243. package/dist/parquetjs/parquet-thrift/DateType.d.ts +9 -0
  244. package/dist/parquetjs/parquet-thrift/DateType.d.ts.map +1 -0
  245. package/dist/parquetjs/parquet-thrift/DateType.js +58 -0
  246. package/dist/parquetjs/parquet-thrift/DecimalType.d.ts +13 -0
  247. package/dist/parquetjs/parquet-thrift/DecimalType.d.ts.map +1 -0
  248. package/dist/parquetjs/parquet-thrift/DecimalType.js +105 -0
  249. package/dist/parquetjs/parquet-thrift/DictionaryPageHeader.d.ts +16 -0
  250. package/dist/parquetjs/parquet-thrift/DictionaryPageHeader.d.ts.map +1 -0
  251. package/dist/parquetjs/parquet-thrift/DictionaryPageHeader.js +122 -0
  252. package/dist/parquetjs/parquet-thrift/Encoding.d.ts +11 -0
  253. package/dist/parquetjs/parquet-thrift/Encoding.d.ts.map +1 -0
  254. package/dist/parquetjs/parquet-thrift/Encoding.js +20 -0
  255. package/dist/parquetjs/parquet-thrift/EnumType.d.ts +9 -0
  256. package/dist/parquetjs/parquet-thrift/EnumType.d.ts.map +1 -0
  257. package/dist/parquetjs/parquet-thrift/EnumType.js +58 -0
  258. package/dist/parquetjs/parquet-thrift/FieldRepetitionType.d.ts +6 -0
  259. package/dist/parquetjs/parquet-thrift/FieldRepetitionType.d.ts.map +1 -0
  260. package/dist/parquetjs/parquet-thrift/FieldRepetitionType.js +15 -0
  261. package/dist/parquetjs/parquet-thrift/FileMetaData.d.ts +28 -0
  262. package/dist/parquetjs/parquet-thrift/FileMetaData.d.ts.map +1 -0
  263. package/dist/parquetjs/parquet-thrift/FileMetaData.js +256 -0
  264. package/dist/parquetjs/parquet-thrift/IndexPageHeader.d.ts +9 -0
  265. package/dist/parquetjs/parquet-thrift/IndexPageHeader.d.ts.map +1 -0
  266. package/dist/parquetjs/parquet-thrift/IndexPageHeader.js +58 -0
  267. package/dist/parquetjs/parquet-thrift/IntType.d.ts +13 -0
  268. package/dist/parquetjs/parquet-thrift/IntType.d.ts.map +1 -0
  269. package/dist/parquetjs/parquet-thrift/IntType.js +105 -0
  270. package/dist/parquetjs/parquet-thrift/JsonType.d.ts +9 -0
  271. package/dist/parquetjs/parquet-thrift/JsonType.d.ts.map +1 -0
  272. package/dist/parquetjs/parquet-thrift/JsonType.js +58 -0
  273. package/dist/parquetjs/parquet-thrift/KeyValue.d.ts +13 -0
  274. package/dist/parquetjs/parquet-thrift/KeyValue.d.ts.map +1 -0
  275. package/dist/parquetjs/parquet-thrift/KeyValue.js +102 -0
  276. package/dist/parquetjs/parquet-thrift/ListType.d.ts +9 -0
  277. package/dist/parquetjs/parquet-thrift/ListType.d.ts.map +1 -0
  278. package/dist/parquetjs/parquet-thrift/ListType.js +58 -0
  279. package/dist/parquetjs/parquet-thrift/LogicalType.d.ts +61 -0
  280. package/dist/parquetjs/parquet-thrift/LogicalType.d.ts.map +1 -0
  281. package/dist/parquetjs/parquet-thrift/LogicalType.js +380 -0
  282. package/dist/parquetjs/parquet-thrift/MapType.d.ts +9 -0
  283. package/dist/parquetjs/parquet-thrift/MapType.d.ts.map +1 -0
  284. package/dist/parquetjs/parquet-thrift/MapType.js +58 -0
  285. package/dist/parquetjs/parquet-thrift/MicroSeconds.d.ts +9 -0
  286. package/dist/parquetjs/parquet-thrift/MicroSeconds.d.ts.map +1 -0
  287. package/dist/parquetjs/parquet-thrift/MicroSeconds.js +58 -0
  288. package/dist/parquetjs/parquet-thrift/MilliSeconds.d.ts +9 -0
  289. package/dist/parquetjs/parquet-thrift/MilliSeconds.d.ts.map +1 -0
  290. package/dist/parquetjs/parquet-thrift/MilliSeconds.js +58 -0
  291. package/dist/parquetjs/parquet-thrift/NullType.d.ts +9 -0
  292. package/dist/parquetjs/parquet-thrift/NullType.d.ts.map +1 -0
  293. package/dist/parquetjs/parquet-thrift/NullType.js +58 -0
  294. package/dist/parquetjs/parquet-thrift/OffsetIndex.d.ts +12 -0
  295. package/dist/parquetjs/parquet-thrift/OffsetIndex.d.ts.map +1 -0
  296. package/dist/parquetjs/parquet-thrift/OffsetIndex.js +97 -0
  297. package/dist/parquetjs/parquet-thrift/PageEncodingStats.d.ts +17 -0
  298. package/dist/parquetjs/parquet-thrift/PageEncodingStats.d.ts.map +1 -0
  299. package/dist/parquetjs/parquet-thrift/PageEncodingStats.js +127 -0
  300. package/dist/parquetjs/parquet-thrift/PageHeader.d.ts +30 -0
  301. package/dist/parquetjs/parquet-thrift/PageHeader.d.ts.map +1 -0
  302. package/dist/parquetjs/parquet-thrift/PageHeader.js +216 -0
  303. package/dist/parquetjs/parquet-thrift/PageLocation.d.ts +16 -0
  304. package/dist/parquetjs/parquet-thrift/PageLocation.d.ts.map +1 -0
  305. package/dist/parquetjs/parquet-thrift/PageLocation.js +141 -0
  306. package/dist/parquetjs/parquet-thrift/PageType.d.ts +7 -0
  307. package/dist/parquetjs/parquet-thrift/PageType.d.ts.map +1 -0
  308. package/dist/parquetjs/parquet-thrift/PageType.js +16 -0
  309. package/dist/parquetjs/parquet-thrift/RowGroup.d.ts +20 -0
  310. package/dist/parquetjs/parquet-thrift/RowGroup.d.ts.map +1 -0
  311. package/dist/parquetjs/parquet-thrift/RowGroup.js +182 -0
  312. package/dist/parquetjs/parquet-thrift/SchemaElement.d.ts +33 -0
  313. package/dist/parquetjs/parquet-thrift/SchemaElement.d.ts.map +1 -0
  314. package/dist/parquetjs/parquet-thrift/SchemaElement.js +239 -0
  315. package/dist/parquetjs/parquet-thrift/SortingColumn.d.ts +15 -0
  316. package/dist/parquetjs/parquet-thrift/SortingColumn.d.ts.map +1 -0
  317. package/dist/parquetjs/parquet-thrift/SortingColumn.js +127 -0
  318. package/dist/parquetjs/parquet-thrift/Statistics.d.ts +23 -0
  319. package/dist/parquetjs/parquet-thrift/Statistics.d.ts.map +1 -0
  320. package/dist/parquetjs/parquet-thrift/Statistics.js +176 -0
  321. package/dist/parquetjs/parquet-thrift/StringType.d.ts +9 -0
  322. package/dist/parquetjs/parquet-thrift/StringType.d.ts.map +1 -0
  323. package/dist/parquetjs/parquet-thrift/StringType.js +58 -0
  324. package/dist/parquetjs/parquet-thrift/TimeType.d.ts +14 -0
  325. package/dist/parquetjs/parquet-thrift/TimeType.d.ts.map +1 -0
  326. package/dist/parquetjs/parquet-thrift/TimeType.js +106 -0
  327. package/dist/parquetjs/parquet-thrift/TimeUnit.d.ts +17 -0
  328. package/dist/parquetjs/parquet-thrift/TimeUnit.d.ts.map +1 -0
  329. package/dist/parquetjs/parquet-thrift/TimeUnit.js +127 -0
  330. package/dist/parquetjs/parquet-thrift/TimestampType.d.ts +14 -0
  331. package/dist/parquetjs/parquet-thrift/TimestampType.d.ts.map +1 -0
  332. package/dist/parquetjs/parquet-thrift/TimestampType.js +106 -0
  333. package/dist/parquetjs/parquet-thrift/Type.d.ts +11 -0
  334. package/dist/parquetjs/parquet-thrift/Type.d.ts.map +1 -0
  335. package/dist/parquetjs/parquet-thrift/Type.js +20 -0
  336. package/dist/parquetjs/parquet-thrift/TypeDefinedOrder.d.ts +9 -0
  337. package/dist/parquetjs/parquet-thrift/TypeDefinedOrder.d.ts.map +1 -0
  338. package/dist/parquetjs/parquet-thrift/TypeDefinedOrder.js +58 -0
  339. package/dist/parquetjs/parquet-thrift/UUIDType.d.ts +9 -0
  340. package/dist/parquetjs/parquet-thrift/UUIDType.d.ts.map +1 -0
  341. package/dist/parquetjs/parquet-thrift/UUIDType.js +58 -0
  342. package/dist/parquetjs/parquet-thrift/index.d.ts +44 -0
  343. package/dist/parquetjs/parquet-thrift/index.d.ts.map +1 -0
  344. package/dist/parquetjs/parquet-thrift/index.js +61 -0
  345. package/dist/parquetjs/parser/decoders.d.ts +34 -0
  346. package/dist/parquetjs/parser/decoders.d.ts.map +1 -0
  347. package/dist/parquetjs/parser/decoders.js +318 -0
  348. package/dist/parquetjs/parser/parquet-cursor.d.ts +36 -0
  349. package/dist/parquetjs/parser/parquet-cursor.d.ts.map +1 -0
  350. package/dist/parquetjs/parser/parquet-cursor.js +74 -0
  351. package/dist/parquetjs/parser/parquet-envelope-reader.d.ts +40 -0
  352. package/dist/parquetjs/parser/parquet-envelope-reader.d.ts.map +1 -0
  353. package/dist/parquetjs/parser/parquet-envelope-reader.js +136 -0
  354. package/dist/parquetjs/parser/parquet-reader.d.ts +68 -0
  355. package/dist/parquetjs/parser/parquet-reader.d.ts.map +1 -0
  356. package/dist/parquetjs/parser/parquet-reader.js +134 -0
  357. package/dist/parquetjs/schema/declare.d.ts +80 -0
  358. package/dist/parquetjs/schema/declare.d.ts.map +1 -0
  359. package/dist/parquetjs/schema/declare.js +10 -0
  360. package/dist/parquetjs/schema/schema.d.ts +26 -0
  361. package/dist/parquetjs/schema/schema.d.ts.map +1 -0
  362. package/dist/parquetjs/schema/schema.js +162 -0
  363. package/dist/parquetjs/schema/shred.d.ts +48 -0
  364. package/dist/parquetjs/schema/shred.d.ts.map +1 -0
  365. package/dist/parquetjs/schema/shred.js +225 -0
  366. package/dist/parquetjs/schema/types.d.ts +20 -0
  367. package/dist/parquetjs/schema/types.d.ts.map +1 -0
  368. package/dist/parquetjs/schema/types.js +418 -0
  369. package/dist/parquetjs/utils/buffer-utils.d.ts +10 -0
  370. package/dist/parquetjs/utils/buffer-utils.d.ts.map +1 -0
  371. package/dist/parquetjs/utils/buffer-utils.js +22 -0
  372. package/dist/parquetjs/utils/file-utils.d.ts +16 -0
  373. package/dist/parquetjs/utils/file-utils.d.ts.map +1 -0
  374. package/dist/parquetjs/utils/file-utils.js +46 -0
  375. package/dist/parquetjs/utils/read-utils.d.ts +25 -0
  376. package/dist/parquetjs/utils/read-utils.d.ts.map +1 -0
  377. package/dist/parquetjs/utils/read-utils.js +109 -0
  378. package/dist/workers/parquet-worker.d.ts +2 -0
  379. package/dist/workers/parquet-worker.d.ts.map +1 -0
  380. package/dist/workers/parquet-worker.js +5 -0
  381. package/package.json +8 -8
  382. package/src/index.ts +3 -3
  383. package/src/parquetjs/compression.ts +10 -10
  384. package/src/parquetjs/parser/decoders.ts +1 -1
  385. package/src/parquetjs/parser/parquet-envelope-reader.ts +0 -11
  386. package/src/parquetjs/parser/parquet-reader.ts +0 -16
  387. package/src/parquetjs/utils/file-utils.ts +0 -49
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ // Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ParquetSchema = void 0;
5
+ const codecs_1 = require("../codecs");
6
+ const compression_1 = require("../compression");
7
+ const shred_1 = require("./shred");
8
+ const types_1 = require("./types");
9
+ /**
10
+ * A parquet file schema
11
+ */
12
+ class ParquetSchema {
13
+ /**
14
+ * Create a new schema from a JSON schema definition
15
+ */
16
+ constructor(schema) {
17
+ this.schema = schema;
18
+ this.fields = buildFields(schema, 0, 0, []);
19
+ this.fieldList = listFields(this.fields);
20
+ }
21
+ /**
22
+ * Retrieve a field definition
23
+ */
24
+ findField(path) {
25
+ if (typeof path === 'string') {
26
+ // tslint:disable-next-line:no-parameter-reassignment
27
+ path = path.split(',');
28
+ }
29
+ else {
30
+ // tslint:disable-next-line:no-parameter-reassignment
31
+ path = path.slice(0); // clone array
32
+ }
33
+ let n = this.fields;
34
+ for (; path.length > 1; path.shift()) {
35
+ n = n[path[0]].fields;
36
+ }
37
+ return n[path[0]];
38
+ }
39
+ /**
40
+ * Retrieve a field definition and all the field's ancestors
41
+ */
42
+ findFieldBranch(path) {
43
+ if (typeof path === 'string') {
44
+ // tslint:disable-next-line:no-parameter-reassignment
45
+ path = path.split(',');
46
+ }
47
+ const branch = [];
48
+ let n = this.fields;
49
+ for (; path.length > 0; path.shift()) {
50
+ branch.push(n[path[0]]);
51
+ if (path.length > 1) {
52
+ n = n[path[0]].fields;
53
+ }
54
+ }
55
+ return branch;
56
+ }
57
+ shredRecord(record, buffer) {
58
+ (0, shred_1.shredRecord)(this, record, buffer);
59
+ }
60
+ materializeRecords(buffer) {
61
+ return (0, shred_1.materializeRecords)(this, buffer);
62
+ }
63
+ compress(type) {
64
+ setCompress(this.schema, type);
65
+ setCompress(this.fields, type);
66
+ return this;
67
+ }
68
+ buffer() {
69
+ return (0, shred_1.shredBuffer)(this);
70
+ }
71
+ }
72
+ exports.ParquetSchema = ParquetSchema;
73
+ function setCompress(schema, type) {
74
+ for (const name in schema) {
75
+ const node = schema[name];
76
+ if (node.fields) {
77
+ setCompress(node.fields, type);
78
+ }
79
+ else {
80
+ node.compression = type;
81
+ }
82
+ }
83
+ }
84
+ // eslint-disable-next-line max-statements, complexity
85
+ function buildFields(schema, rLevelParentMax, dLevelParentMax, path) {
86
+ const fieldList = {};
87
+ for (const name in schema) {
88
+ const opts = schema[name];
89
+ /* field repetition type */
90
+ const required = !opts.optional;
91
+ const repeated = Boolean(opts.repeated);
92
+ let rLevelMax = rLevelParentMax;
93
+ let dLevelMax = dLevelParentMax;
94
+ let repetitionType = 'REQUIRED';
95
+ if (!required) {
96
+ repetitionType = 'OPTIONAL';
97
+ dLevelMax++;
98
+ }
99
+ if (repeated) {
100
+ repetitionType = 'REPEATED';
101
+ rLevelMax++;
102
+ if (required)
103
+ dLevelMax++;
104
+ }
105
+ /* nested field */
106
+ if (opts.fields) {
107
+ const cpath = path.concat([name]);
108
+ fieldList[name] = {
109
+ name,
110
+ path: cpath,
111
+ key: cpath.join(),
112
+ repetitionType,
113
+ rLevelMax,
114
+ dLevelMax,
115
+ isNested: true,
116
+ fieldCount: Object.keys(opts.fields).length,
117
+ fields: buildFields(opts.fields, rLevelMax, dLevelMax, cpath)
118
+ };
119
+ continue; // eslint-disable-line no-continue
120
+ }
121
+ const typeDef = types_1.PARQUET_LOGICAL_TYPES[opts.type];
122
+ if (!typeDef) {
123
+ throw new Error(`invalid parquet type: ${opts.type}`);
124
+ }
125
+ opts.encoding = opts.encoding || 'PLAIN';
126
+ if (!(opts.encoding in codecs_1.PARQUET_CODECS)) {
127
+ throw new Error(`unsupported parquet encoding: ${opts.encoding}`);
128
+ }
129
+ opts.compression = opts.compression || 'UNCOMPRESSED';
130
+ if (!(opts.compression in compression_1.PARQUET_COMPRESSION_METHODS)) {
131
+ throw new Error(`unsupported compression method: ${opts.compression}`);
132
+ }
133
+ /* add to schema */
134
+ const cpath = path.concat([name]);
135
+ fieldList[name] = {
136
+ name,
137
+ primitiveType: typeDef.primitiveType,
138
+ originalType: typeDef.originalType,
139
+ path: cpath,
140
+ key: cpath.join(),
141
+ repetitionType,
142
+ encoding: opts.encoding,
143
+ compression: opts.compression,
144
+ typeLength: opts.typeLength || typeDef.typeLength,
145
+ presision: opts.presision,
146
+ scale: opts.scale,
147
+ rLevelMax,
148
+ dLevelMax
149
+ };
150
+ }
151
+ return fieldList;
152
+ }
153
+ function listFields(fields) {
154
+ let list = [];
155
+ for (const k in fields) {
156
+ list.push(fields[k]);
157
+ if (fields[k].isNested) {
158
+ list = list.concat(listFields(fields[k].fields));
159
+ }
160
+ }
161
+ return list;
162
+ }
@@ -0,0 +1,48 @@
1
+ import { ParquetBuffer, ParquetRecord } from './declare';
2
+ import { ParquetSchema } from './schema';
3
+ export { ParquetBuffer };
4
+ export declare function shredBuffer(schema: ParquetSchema): ParquetBuffer;
5
+ /**
6
+ * 'Shred' a record into a list of <value, repetition_level, definition_level>
7
+ * tuples per column using the Google Dremel Algorithm..
8
+ *
9
+ * The buffer argument must point to an object into which the shredded record
10
+ * will be returned. You may re-use the buffer for repeated calls to this function
11
+ * to append to an existing buffer, as long as the schema is unchanged.
12
+ *
13
+ * The format in which the shredded records will be stored in the buffer is as
14
+ * follows:
15
+ *
16
+ * buffer = {
17
+ * columnData: [
18
+ * 'my_col': {
19
+ * dlevels: [d1, d2, .. dN],
20
+ * rlevels: [r1, r2, .. rN],
21
+ * values: [v1, v2, .. vN],
22
+ * }, ...
23
+ * ],
24
+ * rowCount: X,
25
+ * }
26
+ */
27
+ export declare function shredRecord(schema: ParquetSchema, record: any, buffer: ParquetBuffer): void;
28
+ /**
29
+ * 'Materialize' a list of <value, repetition_level, definition_level>
30
+ * tuples back to nested records (objects/arrays) using the Google Dremel
31
+ * Algorithm..
32
+ *
33
+ * The buffer argument must point to an object with the following structure (i.e.
34
+ * the same structure that is returned by shredRecords):
35
+ *
36
+ * buffer = {
37
+ * columnData: [
38
+ * 'my_col': {
39
+ * dlevels: [d1, d2, .. dN],
40
+ * rlevels: [r1, r2, .. rN],
41
+ * values: [v1, v2, .. vN],
42
+ * }, ...
43
+ * ],
44
+ * rowCount: X,
45
+ * }
46
+ */
47
+ export declare function materializeRecords(schema: ParquetSchema, buffer: ParquetBuffer): ParquetRecord[];
48
+ //# sourceMappingURL=shred.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shred.d.ts","sourceRoot":"","sources":["../../../src/parquetjs/schema/shred.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAA6B,aAAa,EAAC,MAAM,WAAW,CAAC;AAClF,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AAGvC,OAAO,EAAC,aAAa,EAAC,CAAC;AAEvB,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAYhE;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAmB3F;AAgED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,GAAG,aAAa,EAAE,CAOhG"}
@@ -0,0 +1,225 @@
1
+ "use strict";
2
+ // Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
6
+ }) : (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ o[k2] = m[k];
9
+ }));
10
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
11
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
12
+ }) : function(o, v) {
13
+ o["default"] = v;
14
+ });
15
+ var __importStar = (this && this.__importStar) || function (mod) {
16
+ if (mod && mod.__esModule) return mod;
17
+ var result = {};
18
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
19
+ __setModuleDefault(result, mod);
20
+ return result;
21
+ };
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.materializeRecords = exports.shredRecord = exports.shredBuffer = exports.ParquetBuffer = void 0;
24
+ const declare_1 = require("./declare");
25
+ Object.defineProperty(exports, "ParquetBuffer", { enumerable: true, get: function () { return declare_1.ParquetBuffer; } });
26
+ const Types = __importStar(require("./types"));
27
+ function shredBuffer(schema) {
28
+ const columnData = {};
29
+ for (const field of schema.fieldList) {
30
+ columnData[field.key] = {
31
+ dlevels: [],
32
+ rlevels: [],
33
+ values: [],
34
+ pageHeaders: [],
35
+ count: 0
36
+ };
37
+ }
38
+ return { rowCount: 0, columnData };
39
+ }
40
+ exports.shredBuffer = shredBuffer;
41
+ /**
42
+ * 'Shred' a record into a list of <value, repetition_level, definition_level>
43
+ * tuples per column using the Google Dremel Algorithm..
44
+ *
45
+ * The buffer argument must point to an object into which the shredded record
46
+ * will be returned. You may re-use the buffer for repeated calls to this function
47
+ * to append to an existing buffer, as long as the schema is unchanged.
48
+ *
49
+ * The format in which the shredded records will be stored in the buffer is as
50
+ * follows:
51
+ *
52
+ * buffer = {
53
+ * columnData: [
54
+ * 'my_col': {
55
+ * dlevels: [d1, d2, .. dN],
56
+ * rlevels: [r1, r2, .. rN],
57
+ * values: [v1, v2, .. vN],
58
+ * }, ...
59
+ * ],
60
+ * rowCount: X,
61
+ * }
62
+ */
63
+ function shredRecord(schema, record, buffer) {
64
+ /* shred the record, this may raise an exception */
65
+ const data = shredBuffer(schema).columnData;
66
+ shredRecordFields(schema.fields, record, data, 0, 0);
67
+ /* if no error during shredding, add the shredded record to the buffer */
68
+ if (buffer.rowCount === 0) {
69
+ buffer.rowCount = 1;
70
+ buffer.columnData = data;
71
+ return;
72
+ }
73
+ buffer.rowCount += 1;
74
+ for (const field of schema.fieldList) {
75
+ Array.prototype.push.apply(buffer.columnData[field.key].rlevels, data[field.key].rlevels);
76
+ Array.prototype.push.apply(buffer.columnData[field.key].dlevels, data[field.key].dlevels);
77
+ Array.prototype.push.apply(buffer.columnData[field.key].values, data[field.key].values);
78
+ buffer.columnData[field.key].count += data[field.key].count;
79
+ }
80
+ }
81
+ exports.shredRecord = shredRecord;
82
+ // eslint-disable-next-line max-statements, complexity
83
+ function shredRecordFields(fields, record, data, rLevel, dLevel) {
84
+ for (const name in fields) {
85
+ const field = fields[name];
86
+ // fetch values
87
+ let values = [];
88
+ if (record &&
89
+ field.name in record &&
90
+ record[field.name] !== undefined &&
91
+ record[field.name] !== null) {
92
+ if (record[field.name].constructor === Array) {
93
+ values = record[field.name];
94
+ }
95
+ else {
96
+ values.push(record[field.name]);
97
+ }
98
+ }
99
+ // check values
100
+ if (values.length === 0 && Boolean(record) && field.repetitionType === 'REQUIRED') {
101
+ throw new Error(`missing required field: ${field.name}`);
102
+ }
103
+ if (values.length > 1 && field.repetitionType !== 'REPEATED') {
104
+ throw new Error(`too many values for field: ${field.name}`);
105
+ }
106
+ // push null
107
+ if (values.length === 0) {
108
+ if (field.isNested) {
109
+ shredRecordFields(field.fields, null, data, rLevel, dLevel);
110
+ }
111
+ else {
112
+ data[field.key].count += 1;
113
+ data[field.key].rlevels.push(rLevel);
114
+ data[field.key].dlevels.push(dLevel);
115
+ }
116
+ continue; // eslint-disable-line no-continue
117
+ }
118
+ // push values
119
+ for (let i = 0; i < values.length; i++) {
120
+ const rlvl = i === 0 ? rLevel : field.rLevelMax;
121
+ if (field.isNested) {
122
+ shredRecordFields(field.fields, values[i], data, rlvl, field.dLevelMax);
123
+ }
124
+ else {
125
+ data[field.key].count += 1;
126
+ data[field.key].rlevels.push(rlvl);
127
+ data[field.key].dlevels.push(field.dLevelMax);
128
+ data[field.key].values.push(Types.toPrimitive((field.originalType || field.primitiveType), values[i]));
129
+ }
130
+ }
131
+ }
132
+ }
133
+ /**
134
+ * 'Materialize' a list of <value, repetition_level, definition_level>
135
+ * tuples back to nested records (objects/arrays) using the Google Dremel
136
+ * Algorithm..
137
+ *
138
+ * The buffer argument must point to an object with the following structure (i.e.
139
+ * the same structure that is returned by shredRecords):
140
+ *
141
+ * buffer = {
142
+ * columnData: [
143
+ * 'my_col': {
144
+ * dlevels: [d1, d2, .. dN],
145
+ * rlevels: [r1, r2, .. rN],
146
+ * values: [v1, v2, .. vN],
147
+ * }, ...
148
+ * ],
149
+ * rowCount: X,
150
+ * }
151
+ */
152
+ function materializeRecords(schema, buffer) {
153
+ const records = [];
154
+ for (let i = 0; i < buffer.rowCount; i++)
155
+ records.push({});
156
+ for (const key in buffer.columnData) {
157
+ materializeColumn(schema, buffer, key, records);
158
+ }
159
+ return records;
160
+ }
161
+ exports.materializeRecords = materializeRecords;
162
+ // eslint-disable-next-line max-statements, complexity
163
+ function materializeColumn(schema, buffer, key, records) {
164
+ const data = buffer.columnData[key];
165
+ if (!data.count)
166
+ return;
167
+ const field = schema.findField(key);
168
+ const branch = schema.findFieldBranch(key);
169
+ // tslint:disable-next-line:prefer-array-literal
170
+ const rLevels = new Array(field.rLevelMax + 1).fill(0);
171
+ let vIndex = 0;
172
+ for (let i = 0; i < data.count; i++) {
173
+ const dLevel = data.dlevels[i];
174
+ const rLevel = data.rlevels[i];
175
+ rLevels[rLevel]++;
176
+ rLevels.fill(0, rLevel + 1);
177
+ let rIndex = 0;
178
+ let record = records[rLevels[rIndex++] - 1];
179
+ // Internal nodes
180
+ for (const step of branch) {
181
+ if (step === field)
182
+ break;
183
+ if (dLevel < step.dLevelMax)
184
+ break;
185
+ if (step.repetitionType === 'REPEATED') {
186
+ if (!(step.name in record)) {
187
+ // eslint-disable max-depth
188
+ record[step.name] = [];
189
+ }
190
+ const ix = rLevels[rIndex++];
191
+ while (record[step.name].length <= ix) {
192
+ // eslint-disable max-depth
193
+ record[step.name].push({});
194
+ }
195
+ record = record[step.name][ix];
196
+ }
197
+ else {
198
+ record[step.name] = record[step.name] || {};
199
+ record = record[step.name];
200
+ }
201
+ }
202
+ // Leaf node
203
+ if (dLevel === field.dLevelMax) {
204
+ const value = Types.fromPrimitive(
205
+ // @ts-ignore
206
+ field.originalType || field.primitiveType, data.values[vIndex], field);
207
+ vIndex++;
208
+ if (field.repetitionType === 'REPEATED') {
209
+ if (!(field.name in record)) {
210
+ // eslint-disable max-depth
211
+ record[field.name] = [];
212
+ }
213
+ const ix = rLevels[rIndex];
214
+ while (record[field.name].length <= ix) {
215
+ // eslint-disable max-depth
216
+ record[field.name].push(null);
217
+ }
218
+ record[field.name][ix] = value;
219
+ }
220
+ else {
221
+ record[field.name] = value;
222
+ }
223
+ }
224
+ }
225
+ }
@@ -0,0 +1,20 @@
1
+ import { OriginalType, ParquetField, ParquetType, PrimitiveType } from './declare';
2
+ export interface ParquetTypeKit {
3
+ primitiveType: PrimitiveType;
4
+ originalType?: OriginalType;
5
+ typeLength?: number;
6
+ toPrimitive: Function;
7
+ fromPrimitive?: Function;
8
+ }
9
+ export declare const PARQUET_LOGICAL_TYPES: Record<ParquetType, ParquetTypeKit>;
10
+ /**
11
+ * Convert a value from it's native representation to the internal/underlying
12
+ * primitive type
13
+ */
14
+ export declare function toPrimitive(type: ParquetType, value: any, field?: ParquetField): any;
15
+ /**
16
+ * Convert a value from it's internal/underlying primitive representation to
17
+ * the native representation
18
+ */
19
+ export declare function fromPrimitive(type: ParquetType, value: any, field?: ParquetField): any;
20
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/parquetjs/schema/types.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAC,MAAM,WAAW,CAAC;AAEjF,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,QAAQ,CAAC;IACtB,aAAa,CAAC,EAAE,QAAQ,CAAC;CAC1B;AAED,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,WAAW,EAAE,cAAc,CAuJrE,CAAC;AAEF;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,YAAY,OAM9E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,YAAY,OAUhF"}