@loaders.gl/parquet 5.0.0-alpha.2 → 5.0.0-alpha.4

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 (336) hide show
  1. package/LICENSE +1 -1
  2. package/dist/bundled.d.ts +1 -1
  3. package/dist/bundled.d.ts.map +1 -1
  4. package/dist/bundled.js.map +1 -1
  5. package/dist/delta-format.d.ts +9 -0
  6. package/dist/delta-format.d.ts.map +1 -0
  7. package/dist/delta-format.js +12 -0
  8. package/dist/delta-format.js.map +1 -0
  9. package/dist/delta-source-loader-types.d.ts +27 -0
  10. package/dist/delta-source-loader-types.d.ts.map +1 -0
  11. package/dist/delta-source-loader-types.js +28 -0
  12. package/dist/delta-source-loader-types.js.map +1 -0
  13. package/dist/delta-source.d.ts +48 -0
  14. package/dist/delta-source.d.ts.map +1 -0
  15. package/dist/delta-source.js +222 -0
  16. package/dist/delta-source.js.map +1 -0
  17. package/dist/delta-types.d.ts +38 -0
  18. package/dist/delta-types.d.ts.map +1 -0
  19. package/dist/delta-types.js +5 -0
  20. package/dist/delta-types.js.map +1 -0
  21. package/dist/geoparquet-loader.js +1 -1
  22. package/dist/iceberg-rest-catalog.d.ts +49 -0
  23. package/dist/iceberg-rest-catalog.d.ts.map +1 -0
  24. package/dist/iceberg-rest-catalog.js +78 -0
  25. package/dist/iceberg-rest-catalog.js.map +1 -0
  26. package/dist/iceberg-table-source.d.ts +63 -0
  27. package/dist/iceberg-table-source.d.ts.map +1 -0
  28. package/dist/iceberg-table-source.js +797 -0
  29. package/dist/iceberg-table-source.js.map +1 -0
  30. package/dist/iceberg-types.d.ts +150 -0
  31. package/dist/iceberg-types.d.ts.map +1 -0
  32. package/dist/iceberg-types.js +5 -0
  33. package/dist/iceberg-types.js.map +1 -0
  34. package/dist/index.cjs +15841 -3306
  35. package/dist/index.cjs.map +3 -3
  36. package/dist/index.d.ts +8 -3
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +5 -1
  39. package/dist/index.js.map +1 -1
  40. package/dist/lib/arrow/convert-schema-from-parquet.d.ts +3 -1
  41. package/dist/lib/arrow/convert-schema-from-parquet.d.ts.map +1 -1
  42. package/dist/lib/arrow/convert-schema-from-parquet.js +94 -19
  43. package/dist/lib/arrow/convert-schema-from-parquet.js.map +1 -1
  44. package/dist/lib/arrow/create-nested-arrow-vector.js +89 -0
  45. package/dist/lib/arrow/create-nested-arrow-vector.js.map +1 -1
  46. package/dist/lib/constants.js +1 -1
  47. package/dist/lib/encoders/encode-table-to-parquet-js.d.ts.map +1 -1
  48. package/dist/lib/encoders/encode-table-to-parquet-js.js +202 -7
  49. package/dist/lib/encoders/encode-table-to-parquet-js.js.map +1 -1
  50. package/dist/lib/geo/geoparquet-covering.d.ts +19 -0
  51. package/dist/lib/geo/geoparquet-covering.d.ts.map +1 -0
  52. package/dist/lib/geo/geoparquet-covering.js +137 -0
  53. package/dist/lib/geo/geoparquet-covering.js.map +1 -0
  54. package/dist/lib/geo/geospatial-metadata.d.ts.map +1 -1
  55. package/dist/lib/geo/geospatial-metadata.js +39 -13
  56. package/dist/lib/geo/geospatial-metadata.js.map +1 -1
  57. package/dist/lib/parquet-bloom-filter-planner.d.ts +16 -0
  58. package/dist/lib/parquet-bloom-filter-planner.d.ts.map +1 -0
  59. package/dist/lib/parquet-bloom-filter-planner.js +57 -0
  60. package/dist/lib/parquet-bloom-filter-planner.js.map +1 -0
  61. package/dist/lib/parquet-bloom-filter.d.ts +30 -0
  62. package/dist/lib/parquet-bloom-filter.d.ts.map +1 -0
  63. package/dist/lib/parquet-bloom-filter.js +289 -0
  64. package/dist/lib/parquet-bloom-filter.js.map +1 -0
  65. package/dist/lib/parquet-encryption.d.ts +80 -0
  66. package/dist/lib/parquet-encryption.d.ts.map +1 -0
  67. package/dist/lib/parquet-encryption.js +190 -0
  68. package/dist/lib/parquet-encryption.js.map +1 -0
  69. package/dist/lib/parquet-page-index.d.ts +34 -5
  70. package/dist/lib/parquet-page-index.d.ts.map +1 -1
  71. package/dist/lib/parquet-page-index.js +114 -28
  72. package/dist/lib/parquet-page-index.js.map +1 -1
  73. package/dist/lib/parquet-predicate.d.ts +5 -1
  74. package/dist/lib/parquet-predicate.d.ts.map +1 -1
  75. package/dist/lib/parquet-predicate.js +42 -14
  76. package/dist/lib/parquet-predicate.js.map +1 -1
  77. package/dist/lib/parquet-source-worker-decoder.d.ts +4 -1
  78. package/dist/lib/parquet-source-worker-decoder.d.ts.map +1 -1
  79. package/dist/lib/parquet-source-worker-decoder.js +83 -17
  80. package/dist/lib/parquet-source-worker-decoder.js.map +1 -1
  81. package/dist/lib/parquet-source-worker-types.d.ts +24 -0
  82. package/dist/lib/parquet-source-worker-types.d.ts.map +1 -1
  83. package/dist/lib/parsers/get-parquet-schema.d.ts.map +1 -1
  84. package/dist/lib/parsers/get-parquet-schema.js +3 -1
  85. package/dist/lib/parsers/get-parquet-schema.js.map +1 -1
  86. package/dist/lib/parsers/parse-parquet-to-arrow-js.d.ts.map +1 -1
  87. package/dist/lib/parsers/parse-parquet-to-arrow-js.js +327 -18
  88. package/dist/lib/parsers/parse-parquet-to-arrow-js.js.map +1 -1
  89. package/dist/lib/parsers/parse-parquet-to-arrow.d.ts.map +1 -1
  90. package/dist/lib/parsers/parse-parquet-to-arrow.js +5 -5
  91. package/dist/lib/parsers/parse-parquet-to-arrow.js.map +1 -1
  92. package/dist/lib/parsers/parse-parquet-to-columns.d.ts.map +1 -1
  93. package/dist/lib/parsers/parse-parquet-to-columns.js +3 -1
  94. package/dist/lib/parsers/parse-parquet-to-columns.js.map +1 -1
  95. package/dist/lib/parsers/parse-parquet-to-json.d.ts.map +1 -1
  96. package/dist/lib/parsers/parse-parquet-to-json.js +18 -2
  97. package/dist/lib/parsers/parse-parquet-to-json.js.map +1 -1
  98. package/dist/lib/slice-parquet-batch.d.ts +9 -0
  99. package/dist/lib/slice-parquet-batch.d.ts.map +1 -0
  100. package/dist/lib/slice-parquet-batch.js +28 -0
  101. package/dist/lib/slice-parquet-batch.js.map +1 -0
  102. package/dist/lib/sources/parquet-range-file.d.ts +1 -1
  103. package/dist/lib/sources/parquet-range-file.d.ts.map +1 -1
  104. package/dist/lib/sources/parquet-range-file.js +28 -22
  105. package/dist/lib/sources/parquet-range-file.js.map +1 -1
  106. package/dist/lib/utils/normalize-parquet-options.d.ts.map +1 -1
  107. package/dist/lib/utils/normalize-parquet-options.js +15 -1
  108. package/dist/lib/utils/normalize-parquet-options.js.map +1 -1
  109. package/dist/parquet-dataset-source.cjs +16528 -4928
  110. package/dist/parquet-dataset-source.cjs.map +3 -3
  111. package/dist/parquet-dataset-source.d.ts +31 -4
  112. package/dist/parquet-dataset-source.d.ts.map +1 -1
  113. package/dist/parquet-dataset-source.js +296 -74
  114. package/dist/parquet-dataset-source.js.map +1 -1
  115. package/dist/parquet-encoded-page-types.d.ts +108 -0
  116. package/dist/parquet-encoded-page-types.d.ts.map +1 -0
  117. package/dist/parquet-encoded-page-types.js +5 -0
  118. package/dist/parquet-encoded-page-types.js.map +1 -0
  119. package/dist/parquet-js-loader-types.d.ts +2 -0
  120. package/dist/parquet-js-loader-types.d.ts.map +1 -1
  121. package/dist/parquet-js-loader-types.js +2 -1
  122. package/dist/parquet-js-loader-types.js.map +1 -1
  123. package/dist/parquet-js-loader.d.ts +1 -0
  124. package/dist/parquet-js-loader.d.ts.map +1 -1
  125. package/dist/parquet-js-loader.js +2 -1
  126. package/dist/parquet-js-loader.js.map +1 -1
  127. package/dist/parquet-js-writer.d.ts +23 -2
  128. package/dist/parquet-js-writer.d.ts.map +1 -1
  129. package/dist/parquet-js-writer.js +1 -1
  130. package/dist/parquet-js-writer.js.map +1 -1
  131. package/dist/parquet-loader-base.js +1 -1
  132. package/dist/parquet-loader-options.d.ts +11 -0
  133. package/dist/parquet-loader-options.d.ts.map +1 -1
  134. package/dist/parquet-loader-options.js.map +1 -1
  135. package/dist/parquet-source-capabilities.d.ts +8 -1
  136. package/dist/parquet-source-capabilities.d.ts.map +1 -1
  137. package/dist/parquet-source-capabilities.js +10 -0
  138. package/dist/parquet-source-capabilities.js.map +1 -1
  139. package/dist/parquet-source-loader-types.d.ts +10 -0
  140. package/dist/parquet-source-loader-types.d.ts.map +1 -1
  141. package/dist/parquet-source-loader-types.js +11 -1
  142. package/dist/parquet-source-loader-types.js.map +1 -1
  143. package/dist/parquet-source-loader.cjs +14121 -2796
  144. package/dist/parquet-source-loader.cjs.map +3 -3
  145. package/dist/parquet-source-loader.d.ts +51 -4
  146. package/dist/parquet-source-loader.d.ts.map +1 -1
  147. package/dist/parquet-source-loader.js +651 -38
  148. package/dist/parquet-source-loader.js.map +1 -1
  149. package/dist/parquet-source-types.d.ts +180 -30
  150. package/dist/parquet-source-types.d.ts.map +1 -1
  151. package/dist/parquet-source-worker.js +7378 -6989
  152. package/dist/parquet-source-worker.js.map +4 -4
  153. package/dist/parquet-worker-node.cjs +8501 -1045
  154. package/dist/parquet-worker-node.cjs.map +4 -4
  155. package/dist/parquet-worker-url.js +5 -1
  156. package/dist/parquet-worker-url.js.map +1 -1
  157. package/dist/parquet-worker.js +289 -218
  158. package/dist/parquet-worker.js.map +4 -4
  159. package/dist/parquetjs/codecs/declare.d.ts +15 -0
  160. package/dist/parquetjs/codecs/declare.d.ts.map +1 -1
  161. package/dist/parquetjs/codecs/declare.js +10 -0
  162. package/dist/parquetjs/codecs/declare.js.map +1 -1
  163. package/dist/parquetjs/codecs/delta.d.ts.map +1 -1
  164. package/dist/parquetjs/codecs/delta.js +356 -7
  165. package/dist/parquetjs/codecs/delta.js.map +1 -1
  166. package/dist/parquetjs/codecs/index.d.ts.map +1 -1
  167. package/dist/parquetjs/codecs/index.js +4 -0
  168. package/dist/parquetjs/codecs/index.js.map +1 -1
  169. package/dist/parquetjs/codecs/plain.d.ts +1 -1
  170. package/dist/parquetjs/codecs/plain.d.ts.map +1 -1
  171. package/dist/parquetjs/codecs/plain.js +153 -12
  172. package/dist/parquetjs/codecs/plain.js.map +1 -1
  173. package/dist/parquetjs/codecs/rle.d.ts +4 -0
  174. package/dist/parquetjs/codecs/rle.d.ts.map +1 -1
  175. package/dist/parquetjs/codecs/rle.js +406 -3
  176. package/dist/parquetjs/codecs/rle.js.map +1 -1
  177. package/dist/parquetjs/compression.d.ts +9 -0
  178. package/dist/parquetjs/compression.d.ts.map +1 -1
  179. package/dist/parquetjs/compression.js +86 -67
  180. package/dist/parquetjs/compression.js.map +1 -1
  181. package/dist/parquetjs/encoder/dictionary-planner.d.ts.map +1 -1
  182. package/dist/parquetjs/encoder/dictionary-planner.js +5 -2
  183. package/dist/parquetjs/encoder/dictionary-planner.js.map +1 -1
  184. package/dist/parquetjs/encoder/parquet-encoder.d.ts +43 -1
  185. package/dist/parquetjs/encoder/parquet-encoder.d.ts.map +1 -1
  186. package/dist/parquetjs/encoder/parquet-encoder.js +691 -34
  187. package/dist/parquetjs/encoder/parquet-encoder.js.map +1 -1
  188. package/dist/parquetjs/parquet-thrift/BoundingBox.d.ts +29 -0
  189. package/dist/parquetjs/parquet-thrift/BoundingBox.d.ts.map +1 -0
  190. package/dist/parquetjs/parquet-thrift/BoundingBox.js +85 -0
  191. package/dist/parquetjs/parquet-thrift/BoundingBox.js.map +1 -0
  192. package/dist/parquetjs/parquet-thrift/ColumnChunk.d.ts +5 -0
  193. package/dist/parquetjs/parquet-thrift/ColumnChunk.d.ts.map +1 -1
  194. package/dist/parquetjs/parquet-thrift/ColumnChunk.js +35 -0
  195. package/dist/parquetjs/parquet-thrift/ColumnChunk.js.map +1 -1
  196. package/dist/parquetjs/parquet-thrift/ColumnCryptoMetaData.d.ts +35 -0
  197. package/dist/parquetjs/parquet-thrift/ColumnCryptoMetaData.d.ts.map +1 -0
  198. package/dist/parquetjs/parquet-thrift/ColumnCryptoMetaData.js +135 -0
  199. package/dist/parquetjs/parquet-thrift/ColumnCryptoMetaData.js.map +1 -0
  200. package/dist/parquetjs/parquet-thrift/ColumnMetaData.d.ts +10 -0
  201. package/dist/parquetjs/parquet-thrift/ColumnMetaData.d.ts.map +1 -1
  202. package/dist/parquetjs/parquet-thrift/ColumnMetaData.js +73 -0
  203. package/dist/parquetjs/parquet-thrift/ColumnMetaData.js.map +1 -1
  204. package/dist/parquetjs/parquet-thrift/EncryptionAlgorithm.d.ts +22 -0
  205. package/dist/parquetjs/parquet-thrift/EncryptionAlgorithm.d.ts.map +1 -0
  206. package/dist/parquetjs/parquet-thrift/EncryptionAlgorithm.js +111 -0
  207. package/dist/parquetjs/parquet-thrift/EncryptionAlgorithm.js.map +1 -0
  208. package/dist/parquetjs/parquet-thrift/FileCryptoMetaData.d.ts +16 -0
  209. package/dist/parquetjs/parquet-thrift/FileCryptoMetaData.d.ts.map +1 -0
  210. package/dist/parquetjs/parquet-thrift/FileCryptoMetaData.js +57 -0
  211. package/dist/parquetjs/parquet-thrift/FileCryptoMetaData.js.map +1 -0
  212. package/dist/parquetjs/parquet-thrift/FileMetaData.d.ts +5 -0
  213. package/dist/parquetjs/parquet-thrift/FileMetaData.d.ts.map +1 -1
  214. package/dist/parquetjs/parquet-thrift/FileMetaData.js +35 -0
  215. package/dist/parquetjs/parquet-thrift/FileMetaData.js.map +1 -1
  216. package/dist/parquetjs/parquet-thrift/GeospatialStatistics.d.ts +18 -0
  217. package/dist/parquetjs/parquet-thrift/GeospatialStatistics.d.ts.map +1 -0
  218. package/dist/parquetjs/parquet-thrift/GeospatialStatistics.js +62 -0
  219. package/dist/parquetjs/parquet-thrift/GeospatialStatistics.js.map +1 -0
  220. package/dist/parquetjs/parquet-thrift/SizeStatistics.d.ts +26 -0
  221. package/dist/parquetjs/parquet-thrift/SizeStatistics.d.ts.map +1 -0
  222. package/dist/parquetjs/parquet-thrift/SizeStatistics.js +85 -0
  223. package/dist/parquetjs/parquet-thrift/SizeStatistics.js.map +1 -0
  224. package/dist/parquetjs/parquet-thrift/index.d.ts +6 -0
  225. package/dist/parquetjs/parquet-thrift/index.d.ts.map +1 -1
  226. package/dist/parquetjs/parquet-thrift/index.js +6 -0
  227. package/dist/parquetjs/parquet-thrift/index.js.map +1 -1
  228. package/dist/parquetjs/parser/decoders.d.ts +10 -1
  229. package/dist/parquetjs/parser/decoders.d.ts.map +1 -1
  230. package/dist/parquetjs/parser/decoders.js +318 -14
  231. package/dist/parquetjs/parser/decoders.js.map +1 -1
  232. package/dist/parquetjs/parser/encoded-pages.d.ts +24 -0
  233. package/dist/parquetjs/parser/encoded-pages.d.ts.map +1 -0
  234. package/dist/parquetjs/parser/encoded-pages.js +206 -0
  235. package/dist/parquetjs/parser/encoded-pages.js.map +1 -0
  236. package/dist/parquetjs/parser/parquet-reader.d.ts +88 -12
  237. package/dist/parquetjs/parser/parquet-reader.d.ts.map +1 -1
  238. package/dist/parquetjs/parser/parquet-reader.js +713 -66
  239. package/dist/parquetjs/parser/parquet-reader.js.map +1 -1
  240. package/dist/parquetjs/schema/declare.d.ts +22 -3
  241. package/dist/parquetjs/schema/declare.d.ts.map +1 -1
  242. package/dist/parquetjs/schema/declare.js.map +1 -1
  243. package/dist/parquetjs/schema/schema.d.ts.map +1 -1
  244. package/dist/parquetjs/schema/schema.js +10 -0
  245. package/dist/parquetjs/schema/schema.js.map +1 -1
  246. package/dist/parquetjs/schema/shred.d.ts.map +1 -1
  247. package/dist/parquetjs/schema/shred.js +219 -11
  248. package/dist/parquetjs/schema/shred.js.map +1 -1
  249. package/dist/parquetjs/schema/types.js +19 -21
  250. package/dist/parquetjs/schema/types.js.map +1 -1
  251. package/dist/parquetjs/schema/variant.d.ts +3 -0
  252. package/dist/parquetjs/schema/variant.d.ts.map +1 -0
  253. package/dist/parquetjs/schema/variant.js +248 -0
  254. package/dist/parquetjs/schema/variant.js.map +1 -0
  255. package/dist/parquetjs/utils/crc32.d.ts +3 -0
  256. package/dist/parquetjs/utils/crc32.d.ts.map +1 -0
  257. package/dist/parquetjs/utils/crc32.js +15 -0
  258. package/dist/parquetjs/utils/crc32.js.map +1 -0
  259. package/dist/parquetjs/utils/read-utils.d.ts +11 -1
  260. package/dist/parquetjs/utils/read-utils.d.ts.map +1 -1
  261. package/dist/parquetjs/utils/read-utils.js +21 -1
  262. package/dist/parquetjs/utils/read-utils.js.map +1 -1
  263. package/dist/unbundled.d.ts +2 -1
  264. package/dist/unbundled.d.ts.map +1 -1
  265. package/dist/unbundled.js +1 -0
  266. package/dist/unbundled.js.map +1 -1
  267. package/package.json +36 -13
  268. package/src/bundled.ts +10 -0
  269. package/src/delta-format.ts +12 -0
  270. package/src/delta-source-loader-types.ts +40 -0
  271. package/src/delta-source.ts +305 -0
  272. package/src/delta-types.ts +40 -0
  273. package/src/iceberg-rest-catalog.ts +122 -0
  274. package/src/iceberg-table-source.ts +1037 -0
  275. package/src/iceberg-types.ts +165 -0
  276. package/src/index.ts +59 -1
  277. package/src/lib/arrow/convert-schema-from-parquet.ts +113 -19
  278. package/src/lib/arrow/create-nested-arrow-vector.ts +116 -0
  279. package/src/lib/encoders/encode-table-to-parquet-js.ts +268 -7
  280. package/src/lib/geo/geoparquet-covering.ts +201 -0
  281. package/src/lib/geo/geospatial-metadata.ts +42 -15
  282. package/src/lib/parquet-bloom-filter-planner.ts +86 -0
  283. package/src/lib/parquet-bloom-filter.ts +345 -0
  284. package/src/lib/parquet-encryption.ts +344 -0
  285. package/src/lib/parquet-page-index.ts +180 -34
  286. package/src/lib/parquet-predicate.ts +52 -16
  287. package/src/lib/parquet-source-worker-decoder.ts +116 -20
  288. package/src/lib/parquet-source-worker-types.ts +25 -0
  289. package/src/lib/parsers/get-parquet-schema.ts +3 -1
  290. package/src/lib/parsers/parse-parquet-to-arrow-js.ts +397 -17
  291. package/src/lib/parsers/parse-parquet-to-arrow.ts +4 -5
  292. package/src/lib/parsers/parse-parquet-to-columns.ts +3 -1
  293. package/src/lib/parsers/parse-parquet-to-json.ts +18 -2
  294. package/src/lib/slice-parquet-batch.ts +32 -0
  295. package/src/lib/sources/parquet-range-file.ts +35 -29
  296. package/src/lib/utils/normalize-parquet-options.ts +17 -1
  297. package/src/parquet-dataset-source.ts +397 -85
  298. package/src/parquet-encoded-page-types.ts +122 -0
  299. package/src/parquet-js-loader-types.ts +1 -0
  300. package/src/parquet-js-loader.ts +2 -1
  301. package/src/parquet-js-writer.ts +30 -0
  302. package/src/parquet-loader-options.ts +11 -0
  303. package/src/parquet-source-capabilities.ts +18 -1
  304. package/src/parquet-source-loader-types.ts +10 -0
  305. package/src/parquet-source-loader.ts +1024 -52
  306. package/src/parquet-source-types.ts +197 -28
  307. package/src/parquet-worker-url.ts +6 -1
  308. package/src/parquetjs/codecs/declare.ts +27 -0
  309. package/src/parquetjs/codecs/delta.ts +466 -6
  310. package/src/parquetjs/codecs/index.ts +4 -0
  311. package/src/parquetjs/codecs/plain.ts +177 -11
  312. package/src/parquetjs/codecs/rle.ts +573 -3
  313. package/src/parquetjs/compression.ts +102 -76
  314. package/src/parquetjs/encoder/dictionary-planner.ts +7 -2
  315. package/src/parquetjs/encoder/parquet-encoder.ts +1016 -38
  316. package/src/parquetjs/parquet-thrift/BoundingBox.ts +108 -0
  317. package/src/parquetjs/parquet-thrift/ColumnChunk.ts +35 -0
  318. package/src/parquetjs/parquet-thrift/ColumnCryptoMetaData.ts +139 -0
  319. package/src/parquetjs/parquet-thrift/ColumnMetaData.ts +73 -0
  320. package/src/parquetjs/parquet-thrift/EncryptionAlgorithm.ts +127 -0
  321. package/src/parquetjs/parquet-thrift/FileCryptoMetaData.ts +60 -0
  322. package/src/parquetjs/parquet-thrift/FileMetaData.ts +35 -0
  323. package/src/parquetjs/parquet-thrift/GeospatialStatistics.ts +68 -0
  324. package/src/parquetjs/parquet-thrift/SizeStatistics.ts +98 -0
  325. package/src/parquetjs/parquet-thrift/index.ts +6 -0
  326. package/src/parquetjs/parser/decoders.ts +451 -26
  327. package/src/parquetjs/parser/encoded-pages.ts +278 -0
  328. package/src/parquetjs/parser/parquet-reader.ts +1112 -87
  329. package/src/parquetjs/schema/declare.ts +22 -2
  330. package/src/parquetjs/schema/schema.ts +10 -0
  331. package/src/parquetjs/schema/shred.ts +238 -11
  332. package/src/parquetjs/schema/types.ts +16 -25
  333. package/src/parquetjs/schema/variant.ts +313 -0
  334. package/src/parquetjs/utils/crc32.ts +15 -0
  335. package/src/parquetjs/utils/read-utils.ts +26 -1
  336. package/src/unbundled.ts +14 -0
@@ -8,6 +8,9 @@ import { ConvertedType, EdgeInterpolationAlgorithm, Encoding, FieldRepetitionTyp
8
8
  import { decompress } from "../compression.js";
9
9
  import { PARQUET_RDLVL_TYPE, PARQUET_RDLVL_ENCODING } from "../../lib/constants.js";
10
10
  import { decodePageHeader, getThriftEnum, getBitWidth } from "../utils/read-utils.js";
11
+ import { crc32 } from "../utils/crc32.js";
12
+ /** Shared empty level storage for required flat columns, whose levels are implicit. */
13
+ const EMPTY_PARQUET_LEVEL_BUFFER = new Uint8Array(0);
11
14
  /**
12
15
  * Decode data pages
13
16
  * @param buffer - input data
@@ -27,12 +30,14 @@ export async function decodeDataPages(buffer, context) {
27
30
  throw new Error(`Invalid Parquet column value count ${expectedLevelCount}`);
28
31
  }
29
32
  const outputCapacity = expectedLevelCount ?? 0;
33
+ const byteArrayOutput = createArrowByteArrayOutput(buffer, context, outputCapacity);
30
34
  const data = {
31
35
  rlevels: createParquetLevelBuffer(context, outputCapacity, context.rLevelMax),
32
36
  dlevels: createParquetLevelBuffer(context, outputCapacity, context.dLevelMax),
33
- values: createParquetColumnValueBuffer(context, outputCapacity),
37
+ values: byteArrayOutput ? [] : createParquetColumnValueBuffer(context, outputCapacity),
34
38
  pageHeaders: [],
35
- count: 0
39
+ count: 0,
40
+ nullCount: 0
36
41
  };
37
42
  let dictionary = context.dictionary || [];
38
43
  let levelOffset = 0;
@@ -42,14 +47,18 @@ export async function decodeDataPages(buffer, context) {
42
47
  cursor.offset < cursor.size &&
43
48
  (expectedLevelCount === undefined || levelOffset < expectedLevelCount)) {
44
49
  // Looks like we have to decode these in sequence due to cursor updates?
45
- const page = await decodePage(cursor, context, {
50
+ const target = {
46
51
  values: data.values,
47
52
  valueOffset,
53
+ byteArrayOutput,
48
54
  dictionary,
49
55
  rlevels: data.rlevels,
50
56
  dlevels: data.dlevels,
51
57
  levelOffset
52
- });
58
+ };
59
+ const page = context.compression === 'UNCOMPRESSED'
60
+ ? decodeUncompressedPage(cursor, context, target)
61
+ : await decodePage(cursor, context, target);
53
62
  if (page.dictionary) {
54
63
  dictionary = page.dictionary;
55
64
  // eslint-disable-next-line no-continue
@@ -58,6 +67,7 @@ export async function decodeDataPages(buffer, context) {
58
67
  levelOffset += page.count;
59
68
  if (page.directValuesWritten !== undefined) {
60
69
  valueOffset += page.directValuesWritten;
70
+ data.nullCount += page.count - page.directValuesWritten;
61
71
  }
62
72
  else {
63
73
  const valueEncoding = getThriftEnum(Encoding, page.pageHeader.data_page_header?.encoding ?? page.pageHeader.data_page_header_v2?.encoding);
@@ -75,9 +85,95 @@ export async function decodeDataPages(buffer, context) {
75
85
  }
76
86
  data.rlevels = trimParquetLevelBuffer(data.rlevels, levelOffset);
77
87
  data.dlevels = trimParquetLevelBuffer(data.dlevels, levelOffset);
78
- data.values = trimParquetValueBuffer(data.values, valueOffset);
88
+ if (byteArrayOutput) {
89
+ data.values = [];
90
+ data.byteArrayData = {
91
+ data: byteArrayOutput.data.subarray(0, byteArrayOutput.byteLength),
92
+ valueOffsets: byteArrayOutput.valueOffsets.subarray(0, valueOffset + 1)
93
+ };
94
+ }
95
+ else {
96
+ data.values = trimParquetValueBuffer(data.values, valueOffset);
97
+ }
79
98
  return data;
80
99
  }
100
+ /**
101
+ * Decodes an uncompressed column chunk synchronously.
102
+ *
103
+ * In-memory Parquet reads use this entry point to avoid one resolved Promise per selected column.
104
+ */
105
+ export function decodeUncompressedDataPages(buffer, context) {
106
+ const cursor = { buffer, offset: 0, size: buffer.length };
107
+ const expectedLevelCount = context.numValues === undefined ? undefined : Number(context.numValues);
108
+ if (expectedLevelCount !== undefined &&
109
+ (!Number.isSafeInteger(expectedLevelCount) || expectedLevelCount < 0)) {
110
+ throw new Error(`Invalid Parquet column value count ${expectedLevelCount}`);
111
+ }
112
+ const outputCapacity = expectedLevelCount ?? 0;
113
+ const byteArrayOutput = createArrowByteArrayOutput(buffer, context, outputCapacity);
114
+ const data = {
115
+ rlevels: createParquetLevelBuffer(context, outputCapacity, context.rLevelMax),
116
+ dlevels: createParquetLevelBuffer(context, outputCapacity, context.dLevelMax),
117
+ values: byteArrayOutput ? [] : createParquetColumnValueBuffer(context, outputCapacity),
118
+ pageHeaders: [],
119
+ count: 0,
120
+ nullCount: 0
121
+ };
122
+ let dictionary = context.dictionary || [];
123
+ let levelOffset = 0;
124
+ let valueOffset = 0;
125
+ while (cursor.offset < (cursor.size ?? cursor.buffer.length) &&
126
+ (expectedLevelCount === undefined || levelOffset < expectedLevelCount)) {
127
+ const page = decodeUncompressedPage(cursor, context, {
128
+ values: data.values,
129
+ valueOffset,
130
+ byteArrayOutput,
131
+ dictionary,
132
+ rlevels: data.rlevels,
133
+ dlevels: data.dlevels,
134
+ levelOffset
135
+ });
136
+ if (page.dictionary) {
137
+ dictionary = page.dictionary;
138
+ continue;
139
+ }
140
+ levelOffset += page.count;
141
+ if (page.directValuesWritten !== undefined) {
142
+ valueOffset += page.directValuesWritten;
143
+ data.nullCount += page.count - page.directValuesWritten;
144
+ }
145
+ else {
146
+ const valueEncoding = getThriftEnum(Encoding, page.pageHeader.data_page_header?.encoding ?? page.pageHeader.data_page_header_v2?.encoding);
147
+ const usesDictionary = dictionary.length &&
148
+ (valueEncoding === 'PLAIN_DICTIONARY' || valueEncoding === 'RLE_DICTIONARY');
149
+ for (let index = 0; index < page.values.length; index++) {
150
+ const value = usesDictionary ? dictionary[Number(page.values[index])] : page.values[index];
151
+ if (value !== undefined)
152
+ data.values[valueOffset++] = value;
153
+ }
154
+ }
155
+ data.count += page.count;
156
+ data.pageHeaders.push(page.pageHeader);
157
+ }
158
+ data.rlevels = trimParquetLevelBuffer(data.rlevels, levelOffset);
159
+ data.dlevels = trimParquetLevelBuffer(data.dlevels, levelOffset);
160
+ if (byteArrayOutput) {
161
+ data.values = [];
162
+ data.byteArrayData = {
163
+ data: byteArrayOutput.data.subarray(0, byteArrayOutput.byteLength),
164
+ valueOffsets: byteArrayOutput.valueOffsets.subarray(0, valueOffset + 1)
165
+ };
166
+ }
167
+ else {
168
+ data.values = trimParquetValueBuffer(data.values, valueOffset);
169
+ }
170
+ return data;
171
+ }
172
+ /** Decodes a dictionary page from an uncompressed in-memory column chunk. */
173
+ export function decodeUncompressedDictionaryBuffer(buffer, context) {
174
+ const cursor = { buffer, offset: 0, size: buffer.length };
175
+ return decodeUncompressedPage(cursor, context).dictionary;
176
+ }
81
177
  /**
82
178
  * Decode parquet page based on page type
83
179
  * @param cursor
@@ -88,6 +184,8 @@ export async function decodePage(cursor, context, target) {
88
184
  const { pageHeader, length } = decodePageHeader(cursor.buffer, cursor.offset);
89
185
  cursor.offset += length;
90
186
  const pageType = getThriftEnum(PageType, pageHeader.type);
187
+ const pageEnd = cursor.offset + pageHeader.compressed_page_size;
188
+ verifyPageChecksum(cursor, pageHeader, pageEnd, context);
91
189
  switch (pageType) {
92
190
  case 'DATA_PAGE':
93
191
  page = await decodeDataPage(cursor, pageHeader, context, target);
@@ -106,6 +204,46 @@ export async function decodePage(cursor, context, target) {
106
204
  }
107
205
  return page;
108
206
  }
207
+ /** Decodes one uncompressed page without introducing a Promise/microtask boundary. */
208
+ function decodeUncompressedPage(cursor, context, target) {
209
+ const { pageHeader, length } = decodePageHeader(cursor.buffer, cursor.offset);
210
+ cursor.offset += length;
211
+ const pageEnd = cursor.offset + pageHeader.compressed_page_size;
212
+ verifyPageChecksum(cursor, pageHeader, pageEnd, context);
213
+ const pageType = getThriftEnum(PageType, pageHeader.type);
214
+ switch (pageType) {
215
+ case 'DATA_PAGE':
216
+ return decodeDataPageValues(cursor, pageHeader, context, target);
217
+ case 'DATA_PAGE_V2':
218
+ return decodeUncompressedDataPageV2(cursor, pageHeader, context, target);
219
+ case 'DICTIONARY_PAGE':
220
+ return {
221
+ dictionary: decodeUncompressedDictionaryPage(cursor, pageHeader, context),
222
+ dlevels: EMPTY_PARQUET_LEVEL_BUFFER,
223
+ rlevels: EMPTY_PARQUET_LEVEL_BUFFER,
224
+ values: [],
225
+ count: 0,
226
+ pageHeader
227
+ };
228
+ default:
229
+ throw new Error(`invalid page type: ${pageType}`);
230
+ }
231
+ }
232
+ /** Verifies a page checksum before either the synchronous or asynchronous decode path consumes it. */
233
+ function verifyPageChecksum(cursor, pageHeader, pageEnd, context) {
234
+ if (!context.verifyPageChecksums)
235
+ return;
236
+ if (pageEnd > (cursor.size ?? cursor.buffer.length)) {
237
+ throw new Error('Parquet page extends beyond the available buffer');
238
+ }
239
+ if (pageHeader.crc === undefined)
240
+ return;
241
+ const expected = pageHeader.crc >>> 0;
242
+ const actual = crc32(cursor.buffer.subarray(cursor.offset, pageEnd));
243
+ if (actual !== expected) {
244
+ throw new Error(`Parquet page checksum mismatch: expected ${expected}, calculated ${actual}`);
245
+ }
246
+ }
109
247
  /**
110
248
  * Decode parquet schema
111
249
  * @param schemaElements input schema elements data
@@ -352,11 +490,13 @@ function decodeValues(type, encoding, cursor, count, opts) {
352
490
  */
353
491
  async function decodeDataPage(cursor, header, context, target) {
354
492
  const cursorEnd = cursor.offset + header.compressed_page_size;
355
- const valueCount = header.data_page_header?.num_values;
356
493
  /* uncompress page */
357
494
  let dataCursor = cursor;
358
495
  if (context.compression !== 'UNCOMPRESSED') {
359
- const valuesBuf = await decompress(context.compression, cursor.buffer.slice(cursor.offset, cursorEnd), header.uncompressed_page_size);
496
+ const compressedValues = cursor.buffer.slice(cursor.offset, cursorEnd);
497
+ const valuesBuf = context.decompressPage
498
+ ? await context.decompressPage(compressedValues, header.uncompressed_page_size)
499
+ : await decompress(context.compression, compressedValues, header.uncompressed_page_size);
360
500
  dataCursor = {
361
501
  buffer: valuesBuf,
362
502
  offset: 0,
@@ -364,6 +504,11 @@ async function decodeDataPage(cursor, header, context, target) {
364
504
  };
365
505
  cursor.offset = cursorEnd;
366
506
  }
507
+ return decodeDataPageValues(dataCursor, header, context, target);
508
+ }
509
+ /** Decodes one uncompressed Data Page V1 body without introducing an asynchronous boundary. */
510
+ function decodeDataPageValues(dataCursor, header, context, target) {
511
+ const valueCount = header.data_page_header?.num_values;
367
512
  /* read repetition levels */
368
513
  const rLevelEncoding = getThriftEnum(Encoding, header.data_page_header?.repetition_level_encoding);
369
514
  const rLevels = decodeLevels(dataCursor, valueCount, context.column.rLevelMax, rLevelEncoding, false, target?.rlevels, target?.levelOffset);
@@ -390,7 +535,9 @@ async function decodeDataPage(cursor, header, context, target) {
390
535
  output: target?.values,
391
536
  outputOffset: target?.valueOffset,
392
537
  dictionary: isDictionaryEncoding(valueEncoding) ? target?.dictionary : undefined,
393
- int64AsBigInt: shouldDecodeInt64AsBigInt(context)
538
+ byteArrayOutput: target?.byteArrayOutput,
539
+ int64AsBigInt: shouldDecodeInt64AsBigInt(context),
540
+ int96AsTimestamp: context.int96AsTimestamp
394
541
  };
395
542
  const values = decodeValues(context.column.primitiveType, valueEncoding, dataCursor, valueCountNonNull, decodeOptions);
396
543
  return {
@@ -456,10 +603,60 @@ async function decodeDataPageV2(cursor, header, context, target) {
456
603
  }
457
604
  let valuesBuffer = cursor.buffer.subarray(valuesOffset, cursorEnd);
458
605
  if (dataPageHeader.is_compressed !== false && context.compression !== 'UNCOMPRESSED') {
459
- valuesBuffer = await decompress(context.compression, valuesBuffer, valuesUncompressedByteLength);
606
+ valuesBuffer = context.decompressPage
607
+ ? await context.decompressPage(valuesBuffer, valuesUncompressedByteLength)
608
+ : await decompress(context.compression, valuesBuffer, valuesUncompressedByteLength);
460
609
  }
461
- const valuesBufCursor = { buffer: valuesBuffer, offset: 0, size: valuesBuffer.length };
462
610
  cursor.offset = cursorEnd;
611
+ return decodeDataPageV2Values(valuesBuffer, header, context, target, rLevels, dLevels, valueCount, valueCountNonNull, valueEncoding);
612
+ }
613
+ /** Decodes one uncompressed Data Page V2 without awaiting an unused decompressor. */
614
+ function decodeUncompressedDataPageV2(cursor, header, context, target) {
615
+ const dataPageHeader = header.data_page_header_v2;
616
+ if (!dataPageHeader) {
617
+ throw new Error('Missing Parquet data page v2 header');
618
+ }
619
+ const cursorEnd = cursor.offset + header.compressed_page_size;
620
+ const levelsOffset = cursor.offset;
621
+ const valueCount = dataPageHeader.num_values;
622
+ const valueCountNonNull = valueCount - dataPageHeader.num_nulls;
623
+ const valueEncoding = getThriftEnum(Encoding, dataPageHeader.encoding);
624
+ if (header.compressed_page_size < 0 ||
625
+ cursorEnd > (cursor.size ?? cursor.buffer.length) ||
626
+ valueCountNonNull < 0) {
627
+ throw new Error('Invalid Parquet data page v2 header');
628
+ }
629
+ let rLevels = [];
630
+ if (context.column.rLevelMax > 0) {
631
+ const repetitionLevelCursor = createPageSliceCursor(cursor, levelsOffset, dataPageHeader.repetition_levels_byte_length);
632
+ rLevels = decodeLevels(repetitionLevelCursor, valueCount, context.column.rLevelMax, PARQUET_RDLVL_ENCODING, true, target?.rlevels, target?.levelOffset);
633
+ }
634
+ else if (!target) {
635
+ rLevels = new Array(valueCount).fill(0);
636
+ }
637
+ const definitionLevelsOffset = levelsOffset + dataPageHeader.repetition_levels_byte_length;
638
+ let dLevels = [];
639
+ if (context.column.dLevelMax > 0) {
640
+ const definitionLevelCursor = createPageSliceCursor(cursor, definitionLevelsOffset, dataPageHeader.definition_levels_byte_length);
641
+ dLevels = decodeLevels(definitionLevelCursor, valueCount, context.column.dLevelMax, PARQUET_RDLVL_ENCODING, true, target?.dlevels, target?.levelOffset);
642
+ }
643
+ else if (!target) {
644
+ dLevels = new Array(valueCount).fill(0);
645
+ }
646
+ const valuesOffset = definitionLevelsOffset + dataPageHeader.definition_levels_byte_length;
647
+ const valuesUncompressedByteLength = header.uncompressed_page_size -
648
+ dataPageHeader.repetition_levels_byte_length -
649
+ dataPageHeader.definition_levels_byte_length;
650
+ if (valuesOffset > cursorEnd || valuesUncompressedByteLength < 0) {
651
+ throw new Error('Invalid Parquet data page v2 level lengths');
652
+ }
653
+ const valuesBuffer = cursor.buffer.subarray(valuesOffset, cursorEnd);
654
+ cursor.offset = cursorEnd;
655
+ return decodeDataPageV2Values(valuesBuffer, header, context, target, rLevels, dLevels, valueCount, valueCountNonNull, valueEncoding);
656
+ }
657
+ /** Decodes a prepared Data Page V2 value section without an asynchronous boundary. */
658
+ function decodeDataPageV2Values(valuesBuffer, header, context, target, rLevels, dLevels, valueCount, valueCountNonNull, valueEncoding) {
659
+ const valuesBufCursor = { buffer: valuesBuffer, offset: 0, size: valuesBuffer.length };
463
660
  const decodeOptions = {
464
661
  typeLength: context.column.typeLength,
465
662
  bitWidth: getValueBitWidth(context, valueEncoding),
@@ -467,7 +664,9 @@ async function decodeDataPageV2(cursor, header, context, target) {
467
664
  output: target?.values,
468
665
  outputOffset: target?.valueOffset,
469
666
  dictionary: isDictionaryEncoding(valueEncoding) ? target?.dictionary : undefined,
470
- int64AsBigInt: shouldDecodeInt64AsBigInt(context)
667
+ byteArrayOutput: target?.byteArrayOutput,
668
+ int64AsBigInt: shouldDecodeInt64AsBigInt(context),
669
+ int96AsTimestamp: context.int96AsTimestamp
471
670
  };
472
671
  const values = decodeValues(context.column.primitiveType, valueEncoding, valuesBufCursor, valueCountNonNull, decodeOptions);
473
672
  return {
@@ -492,8 +691,88 @@ function decodeLevels(cursor, count, levelMax, encoding, disableEnvelope, output
492
691
  });
493
692
  return output ? [] : levels;
494
693
  }
694
+ /**
695
+ * Allocates a compact Arrow-compatible destination for supported uncompressed byte pages.
696
+ *
697
+ * Scanning only the small Thrift page headers avoids committing to the fast path when a column
698
+ * mixes in an encoding that still requires materialized values. The page buffer is a useful
699
+ * initial capacity; the destination grows for prefix-reconstructed delta values when necessary.
700
+ */
701
+ function createArrowByteArrayOutput(buffer, context, valueCapacity) {
702
+ if (!context.useArrowByteArrayBuffers ||
703
+ context.compression !== 'UNCOMPRESSED' ||
704
+ !supportsArrowByteArrayOutput(context.column) ||
705
+ valueCapacity === 0) {
706
+ return undefined;
707
+ }
708
+ if (!context.hasOnlyArrowByteArrayDataPages &&
709
+ !hasOnlyArrowByteArrayDataPages(buffer, valueCapacity)) {
710
+ return undefined;
711
+ }
712
+ return {
713
+ data: context.column.primitiveType === 'FIXED_LEN_BYTE_ARRAY'
714
+ ? new Uint8Array(0)
715
+ : new Uint8Array(Math.max(1, buffer.byteLength)),
716
+ valueOffsets: new Int32Array(valueCapacity + 1),
717
+ byteLength: 0
718
+ };
719
+ }
720
+ /** Returns whether a BYTE_ARRAY field maps directly to Arrow Utf8 or Binary without conversion. */
721
+ function supportsArrowByteArrayOutput(column) {
722
+ if (column.primitiveType !== 'BYTE_ARRAY' && column.primitiveType !== 'FIXED_LEN_BYTE_ARRAY') {
723
+ return false;
724
+ }
725
+ if (column.logicalType) {
726
+ return (column.logicalType.type === 'STRING' ||
727
+ column.logicalType.type === 'ENUM' ||
728
+ column.logicalType.type === 'JSON' ||
729
+ column.logicalType.type === 'BSON' ||
730
+ column.logicalType.type === 'VARIANT' ||
731
+ column.logicalType.type === 'GEOMETRY' ||
732
+ column.logicalType.type === 'GEOGRAPHY');
733
+ }
734
+ return (!column.originalType ||
735
+ column.originalType === 'UTF8' ||
736
+ column.originalType === 'ENUM' ||
737
+ column.originalType === 'JSON' ||
738
+ column.originalType === 'BSON' ||
739
+ column.originalType === 'INTERVAL');
740
+ }
741
+ /** Returns whether a complete column buffer contains only direct Arrow byte-array data pages. */
742
+ function hasOnlyArrowByteArrayDataPages(buffer, expectedLevelCount) {
743
+ let offset = 0;
744
+ let levelCount = 0;
745
+ while (offset < buffer.byteLength && levelCount < expectedLevelCount) {
746
+ const { pageHeader, length } = decodePageHeader(buffer, offset);
747
+ const pageType = getThriftEnum(PageType, pageHeader.type);
748
+ if (pageType !== 'DATA_PAGE' && pageType !== 'DATA_PAGE_V2') {
749
+ return false;
750
+ }
751
+ const encoding = getThriftEnum(Encoding, pageHeader.data_page_header?.encoding ?? pageHeader.data_page_header_v2?.encoding);
752
+ if (encoding !== 'PLAIN' &&
753
+ encoding !== 'DELTA_LENGTH_BYTE_ARRAY' &&
754
+ encoding !== 'DELTA_BYTE_ARRAY') {
755
+ return false;
756
+ }
757
+ const valueCount = pageHeader.data_page_header?.num_values ?? pageHeader.data_page_header_v2?.num_values;
758
+ if (valueCount === undefined || valueCount < 0) {
759
+ return false;
760
+ }
761
+ levelCount += valueCount;
762
+ offset += length + pageHeader.compressed_page_size;
763
+ if (offset > buffer.byteLength) {
764
+ return false;
765
+ }
766
+ }
767
+ return levelCount === expectedLevelCount;
768
+ }
495
769
  /** Allocates compact unsigned storage for repetition and definition levels. */
496
770
  function createParquetLevelBuffer(context, capacity, levelMax) {
771
+ if (context.useTypedLevelBuffers && levelMax === 0) {
772
+ // Required flat columns have no encoded levels. Avoid allocating two row-sized zero buffers
773
+ // that neither direct Arrow construction nor level decoding will inspect.
774
+ return EMPTY_PARQUET_LEVEL_BUFFER;
775
+ }
497
776
  if (!context.useTypedLevelBuffers || capacity === 0) {
498
777
  return levelMax > 0 ? new Array(capacity) : new Array(capacity).fill(0);
499
778
  }
@@ -511,6 +790,8 @@ function trimParquetLevelBuffer(levels, length) {
511
790
  levels.length = length;
512
791
  return levels;
513
792
  }
793
+ if (levels.length === 0 || levels.length === length)
794
+ return levels;
514
795
  return levels.subarray(0, length);
515
796
  }
516
797
  /** Returns whether an encoding stores RLE dictionary indices instead of physical values. */
@@ -534,6 +815,7 @@ function createParquetColumnValueBuffer(context, capacity) {
534
815
  case 'INT64':
535
816
  return new BigInt64Array(capacity);
536
817
  case 'INT96':
818
+ return context.int96AsTimestamp ? new BigInt64Array(capacity) : new Float64Array(capacity);
537
819
  case 'DOUBLE':
538
820
  return new Float64Array(capacity);
539
821
  case 'FLOAT':
@@ -581,7 +863,10 @@ async function decodeDictionaryPage(cursor, pageHeader, context) {
581
863
  };
582
864
  cursor.offset = cursorEnd;
583
865
  if (context.compression !== 'UNCOMPRESSED') {
584
- const valuesBuf = await decompress(context.compression, dictCursor.buffer.subarray(dictCursor.offset), pageHeader.uncompressed_page_size);
866
+ const compressedValues = dictCursor.buffer.subarray(dictCursor.offset);
867
+ const valuesBuf = context.decompressPage
868
+ ? await context.decompressPage(compressedValues, pageHeader.uncompressed_page_size)
869
+ : await decompress(context.compression, compressedValues, pageHeader.uncompressed_page_size);
585
870
  dictCursor = {
586
871
  buffer: valuesBuf,
587
872
  offset: 0,
@@ -589,6 +874,24 @@ async function decodeDictionaryPage(cursor, pageHeader, context) {
589
874
  };
590
875
  cursor.offset = cursorEnd;
591
876
  }
877
+ return decodeDictionaryValues(dictCursor, pageHeader, context);
878
+ }
879
+ /** Decodes an uncompressed dictionary page directly from a view of the column chunk. */
880
+ function decodeUncompressedDictionaryPage(cursor, pageHeader, context) {
881
+ const cursorEnd = cursor.offset + pageHeader.compressed_page_size;
882
+ if (cursorEnd > (cursor.size ?? cursor.buffer.length)) {
883
+ throw new Error('Parquet dictionary page exceeds the available buffer');
884
+ }
885
+ const dictionaryCursor = {
886
+ buffer: cursor.buffer.subarray(cursor.offset, cursorEnd),
887
+ offset: 0,
888
+ size: pageHeader.compressed_page_size
889
+ };
890
+ cursor.offset = cursorEnd;
891
+ return decodeDictionaryValues(dictionaryCursor, pageHeader, context);
892
+ }
893
+ /** Decodes one dictionary body from its current cursor without copying uncompressed page bytes. */
894
+ function decodeDictionaryValues(dictionaryCursor, pageHeader, context) {
592
895
  const numValues = pageHeader?.dictionary_page_header?.num_values || 0;
593
896
  const declaredEncoding = getThriftEnum(Encoding, pageHeader.dictionary_page_header?.encoding);
594
897
  // Some established writers put the data-page dictionary encoding in this field even though
@@ -596,10 +899,11 @@ async function decodeDictionaryPage(cursor, pageHeader, context) {
596
899
  const dictionaryValueEncoding = declaredEncoding === 'PLAIN_DICTIONARY' || declaredEncoding === 'RLE_DICTIONARY'
597
900
  ? 'PLAIN'
598
901
  : declaredEncoding;
599
- const decodedDictionaryValues = decodeValues(context.column.primitiveType, dictionaryValueEncoding, dictCursor, numValues, {
902
+ const decodedDictionaryValues = decodeValues(context.column.primitiveType, dictionaryValueEncoding, dictionaryCursor, numValues, {
600
903
  ...context,
601
904
  typeLength: context.column.typeLength,
602
- int64AsBigInt: shouldDecodeInt64AsBigInt(context)
905
+ int64AsBigInt: shouldDecodeInt64AsBigInt(context),
906
+ int96AsTimestamp: context.int96AsTimestamp
603
907
  });
604
908
  return decodedDictionaryValues;
605
909
  }
@@ -1 +1 @@
1
- {"version":3,"file":"decoders.js","sourceRoot":"","sources":["../../../src/parquetjs/parser/decoders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decoders.js","sourceRoot":"","sources":["../../../src/parquetjs/parser/decoders.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { ParquetEncodedPage } from "../../parquet-encoded-page-types.js";
2
+ import type { ParquetCompression, ParquetField } from "../schema/declare.js";
3
+ import type { ParquetPageDecompressor } from "../compression.js";
4
+ /** Context required to expose page framing without decoding Parquet values. */
5
+ export type ParquetEncodedPageContext = Readonly<{
6
+ /** Schema field associated with the column chunk. */
7
+ column: ParquetField;
8
+ /** Compression codec declared by the column chunk. */
9
+ compression: ParquetCompression;
10
+ /** Reusable decompressor for independently compressed pages. */
11
+ decompressPage: ParquetPageDecompressor;
12
+ /** Compression codecs a downstream decoder can consume directly. */
13
+ preserveCompression?: ReadonlySet<string>;
14
+ /** Verify page CRC values before exposing page bytes. */
15
+ verifyPageChecksums?: boolean;
16
+ }>;
17
+ /**
18
+ * Splits a plaintext column-chunk buffer into transport-neutral encoded page descriptors.
19
+ *
20
+ * This parses only page headers and level framing. It deliberately does not decode levels,
21
+ * dictionaries, or values, allowing the returned bytes to be consumed by a CPU or GPU backend.
22
+ */
23
+ export declare function scanParquetEncodedPages(buffer: Uint8Array, context: ParquetEncodedPageContext): Promise<ParquetEncodedPage[]>;
24
+ //# sourceMappingURL=encoded-pages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoded-pages.d.ts","sourceRoot":"","sources":["../../../src/parquetjs/parser/encoded-pages.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,kBAAkB,EAA4B,4CAAyC;AACpG,OAAO,KAAK,EAAC,kBAAkB,EAAE,YAAY,EAAC,6BAA0B;AAKxE,OAAO,KAAK,EAAC,uBAAuB,EAAC,0BAAuB;AAE5D,+EAA+E;AAC/E,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC;IAC/C,qDAAqD;IACrD,MAAM,EAAE,YAAY,CAAC;IACrB,sDAAsD;IACtD,WAAW,EAAE,kBAAkB,CAAC;IAChC,gEAAgE;IAChE,cAAc,EAAE,uBAAuB,CAAC;IACxC,oEAAoE;IACpE,mBAAmB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C,yDAAyD;IACzD,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC,CAAC;AAEH;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA8B/B"}