@loaders.gl/parquet 5.0.0-alpha.2 → 5.0.0-alpha.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 (326) 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 +15005 -3143
  35. package/dist/index.cjs.map +3 -3
  36. package/dist/index.d.ts +7 -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 +15766 -4896
  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-js-loader-types.d.ts +2 -0
  116. package/dist/parquet-js-loader-types.d.ts.map +1 -1
  117. package/dist/parquet-js-loader-types.js +2 -1
  118. package/dist/parquet-js-loader-types.js.map +1 -1
  119. package/dist/parquet-js-loader.d.ts +1 -0
  120. package/dist/parquet-js-loader.d.ts.map +1 -1
  121. package/dist/parquet-js-loader.js +2 -1
  122. package/dist/parquet-js-loader.js.map +1 -1
  123. package/dist/parquet-js-writer.d.ts +23 -2
  124. package/dist/parquet-js-writer.d.ts.map +1 -1
  125. package/dist/parquet-js-writer.js +1 -1
  126. package/dist/parquet-js-writer.js.map +1 -1
  127. package/dist/parquet-loader-base.js +1 -1
  128. package/dist/parquet-loader-options.d.ts +11 -0
  129. package/dist/parquet-loader-options.d.ts.map +1 -1
  130. package/dist/parquet-loader-options.js.map +1 -1
  131. package/dist/parquet-source-capabilities.d.ts +8 -1
  132. package/dist/parquet-source-capabilities.d.ts.map +1 -1
  133. package/dist/parquet-source-capabilities.js +10 -0
  134. package/dist/parquet-source-capabilities.js.map +1 -1
  135. package/dist/parquet-source-loader-types.d.ts +10 -0
  136. package/dist/parquet-source-loader-types.d.ts.map +1 -1
  137. package/dist/parquet-source-loader-types.js +11 -1
  138. package/dist/parquet-source-loader-types.js.map +1 -1
  139. package/dist/parquet-source-loader.cjs +14911 -4316
  140. package/dist/parquet-source-loader.cjs.map +3 -3
  141. package/dist/parquet-source-loader.d.ts +42 -4
  142. package/dist/parquet-source-loader.d.ts.map +1 -1
  143. package/dist/parquet-source-loader.js +585 -38
  144. package/dist/parquet-source-loader.js.map +1 -1
  145. package/dist/parquet-source-types.d.ts +180 -30
  146. package/dist/parquet-source-types.d.ts.map +1 -1
  147. package/dist/parquet-source-worker.js +7055 -6989
  148. package/dist/parquet-source-worker.js.map +4 -4
  149. package/dist/parquet-worker-node.cjs +8505 -1041
  150. package/dist/parquet-worker-node.cjs.map +4 -4
  151. package/dist/parquet-worker-url.js +5 -1
  152. package/dist/parquet-worker-url.js.map +1 -1
  153. package/dist/parquet-worker.js +289 -218
  154. package/dist/parquet-worker.js.map +4 -4
  155. package/dist/parquetjs/codecs/declare.d.ts +15 -0
  156. package/dist/parquetjs/codecs/declare.d.ts.map +1 -1
  157. package/dist/parquetjs/codecs/declare.js +10 -0
  158. package/dist/parquetjs/codecs/declare.js.map +1 -1
  159. package/dist/parquetjs/codecs/delta.d.ts.map +1 -1
  160. package/dist/parquetjs/codecs/delta.js +356 -7
  161. package/dist/parquetjs/codecs/delta.js.map +1 -1
  162. package/dist/parquetjs/codecs/index.d.ts.map +1 -1
  163. package/dist/parquetjs/codecs/index.js +4 -0
  164. package/dist/parquetjs/codecs/index.js.map +1 -1
  165. package/dist/parquetjs/codecs/plain.d.ts +1 -1
  166. package/dist/parquetjs/codecs/plain.d.ts.map +1 -1
  167. package/dist/parquetjs/codecs/plain.js +153 -12
  168. package/dist/parquetjs/codecs/plain.js.map +1 -1
  169. package/dist/parquetjs/codecs/rle.d.ts +4 -0
  170. package/dist/parquetjs/codecs/rle.d.ts.map +1 -1
  171. package/dist/parquetjs/codecs/rle.js +406 -3
  172. package/dist/parquetjs/codecs/rle.js.map +1 -1
  173. package/dist/parquetjs/compression.d.ts +9 -0
  174. package/dist/parquetjs/compression.d.ts.map +1 -1
  175. package/dist/parquetjs/compression.js +86 -67
  176. package/dist/parquetjs/compression.js.map +1 -1
  177. package/dist/parquetjs/encoder/dictionary-planner.d.ts.map +1 -1
  178. package/dist/parquetjs/encoder/dictionary-planner.js +5 -2
  179. package/dist/parquetjs/encoder/dictionary-planner.js.map +1 -1
  180. package/dist/parquetjs/encoder/parquet-encoder.d.ts +43 -1
  181. package/dist/parquetjs/encoder/parquet-encoder.d.ts.map +1 -1
  182. package/dist/parquetjs/encoder/parquet-encoder.js +691 -34
  183. package/dist/parquetjs/encoder/parquet-encoder.js.map +1 -1
  184. package/dist/parquetjs/parquet-thrift/BoundingBox.d.ts +29 -0
  185. package/dist/parquetjs/parquet-thrift/BoundingBox.d.ts.map +1 -0
  186. package/dist/parquetjs/parquet-thrift/BoundingBox.js +85 -0
  187. package/dist/parquetjs/parquet-thrift/BoundingBox.js.map +1 -0
  188. package/dist/parquetjs/parquet-thrift/ColumnChunk.d.ts +5 -0
  189. package/dist/parquetjs/parquet-thrift/ColumnChunk.d.ts.map +1 -1
  190. package/dist/parquetjs/parquet-thrift/ColumnChunk.js +35 -0
  191. package/dist/parquetjs/parquet-thrift/ColumnChunk.js.map +1 -1
  192. package/dist/parquetjs/parquet-thrift/ColumnCryptoMetaData.d.ts +35 -0
  193. package/dist/parquetjs/parquet-thrift/ColumnCryptoMetaData.d.ts.map +1 -0
  194. package/dist/parquetjs/parquet-thrift/ColumnCryptoMetaData.js +135 -0
  195. package/dist/parquetjs/parquet-thrift/ColumnCryptoMetaData.js.map +1 -0
  196. package/dist/parquetjs/parquet-thrift/ColumnMetaData.d.ts +10 -0
  197. package/dist/parquetjs/parquet-thrift/ColumnMetaData.d.ts.map +1 -1
  198. package/dist/parquetjs/parquet-thrift/ColumnMetaData.js +73 -0
  199. package/dist/parquetjs/parquet-thrift/ColumnMetaData.js.map +1 -1
  200. package/dist/parquetjs/parquet-thrift/EncryptionAlgorithm.d.ts +22 -0
  201. package/dist/parquetjs/parquet-thrift/EncryptionAlgorithm.d.ts.map +1 -0
  202. package/dist/parquetjs/parquet-thrift/EncryptionAlgorithm.js +111 -0
  203. package/dist/parquetjs/parquet-thrift/EncryptionAlgorithm.js.map +1 -0
  204. package/dist/parquetjs/parquet-thrift/FileCryptoMetaData.d.ts +16 -0
  205. package/dist/parquetjs/parquet-thrift/FileCryptoMetaData.d.ts.map +1 -0
  206. package/dist/parquetjs/parquet-thrift/FileCryptoMetaData.js +57 -0
  207. package/dist/parquetjs/parquet-thrift/FileCryptoMetaData.js.map +1 -0
  208. package/dist/parquetjs/parquet-thrift/FileMetaData.d.ts +5 -0
  209. package/dist/parquetjs/parquet-thrift/FileMetaData.d.ts.map +1 -1
  210. package/dist/parquetjs/parquet-thrift/FileMetaData.js +35 -0
  211. package/dist/parquetjs/parquet-thrift/FileMetaData.js.map +1 -1
  212. package/dist/parquetjs/parquet-thrift/GeospatialStatistics.d.ts +18 -0
  213. package/dist/parquetjs/parquet-thrift/GeospatialStatistics.d.ts.map +1 -0
  214. package/dist/parquetjs/parquet-thrift/GeospatialStatistics.js +62 -0
  215. package/dist/parquetjs/parquet-thrift/GeospatialStatistics.js.map +1 -0
  216. package/dist/parquetjs/parquet-thrift/SizeStatistics.d.ts +26 -0
  217. package/dist/parquetjs/parquet-thrift/SizeStatistics.d.ts.map +1 -0
  218. package/dist/parquetjs/parquet-thrift/SizeStatistics.js +85 -0
  219. package/dist/parquetjs/parquet-thrift/SizeStatistics.js.map +1 -0
  220. package/dist/parquetjs/parquet-thrift/index.d.ts +6 -0
  221. package/dist/parquetjs/parquet-thrift/index.d.ts.map +1 -1
  222. package/dist/parquetjs/parquet-thrift/index.js +6 -0
  223. package/dist/parquetjs/parquet-thrift/index.js.map +1 -1
  224. package/dist/parquetjs/parser/decoders.d.ts +10 -1
  225. package/dist/parquetjs/parser/decoders.d.ts.map +1 -1
  226. package/dist/parquetjs/parser/decoders.js +318 -14
  227. package/dist/parquetjs/parser/decoders.js.map +1 -1
  228. package/dist/parquetjs/parser/parquet-reader.d.ts +78 -12
  229. package/dist/parquetjs/parser/parquet-reader.d.ts.map +1 -1
  230. package/dist/parquetjs/parser/parquet-reader.js +605 -66
  231. package/dist/parquetjs/parser/parquet-reader.js.map +1 -1
  232. package/dist/parquetjs/schema/declare.d.ts +22 -3
  233. package/dist/parquetjs/schema/declare.d.ts.map +1 -1
  234. package/dist/parquetjs/schema/declare.js.map +1 -1
  235. package/dist/parquetjs/schema/schema.d.ts.map +1 -1
  236. package/dist/parquetjs/schema/schema.js +10 -0
  237. package/dist/parquetjs/schema/schema.js.map +1 -1
  238. package/dist/parquetjs/schema/shred.d.ts.map +1 -1
  239. package/dist/parquetjs/schema/shred.js +219 -11
  240. package/dist/parquetjs/schema/shred.js.map +1 -1
  241. package/dist/parquetjs/schema/types.js +19 -21
  242. package/dist/parquetjs/schema/types.js.map +1 -1
  243. package/dist/parquetjs/schema/variant.d.ts +3 -0
  244. package/dist/parquetjs/schema/variant.d.ts.map +1 -0
  245. package/dist/parquetjs/schema/variant.js +248 -0
  246. package/dist/parquetjs/schema/variant.js.map +1 -0
  247. package/dist/parquetjs/utils/crc32.d.ts +3 -0
  248. package/dist/parquetjs/utils/crc32.d.ts.map +1 -0
  249. package/dist/parquetjs/utils/crc32.js +15 -0
  250. package/dist/parquetjs/utils/crc32.js.map +1 -0
  251. package/dist/parquetjs/utils/read-utils.d.ts +11 -1
  252. package/dist/parquetjs/utils/read-utils.d.ts.map +1 -1
  253. package/dist/parquetjs/utils/read-utils.js +21 -1
  254. package/dist/parquetjs/utils/read-utils.js.map +1 -1
  255. package/dist/unbundled.d.ts +2 -1
  256. package/dist/unbundled.d.ts.map +1 -1
  257. package/dist/unbundled.js +1 -0
  258. package/dist/unbundled.js.map +1 -1
  259. package/package.json +36 -11
  260. package/src/bundled.ts +3 -0
  261. package/src/delta-format.ts +12 -0
  262. package/src/delta-source-loader-types.ts +40 -0
  263. package/src/delta-source.ts +305 -0
  264. package/src/delta-types.ts +40 -0
  265. package/src/iceberg-rest-catalog.ts +122 -0
  266. package/src/iceberg-table-source.ts +1037 -0
  267. package/src/iceberg-types.ts +165 -0
  268. package/src/index.ts +50 -1
  269. package/src/lib/arrow/convert-schema-from-parquet.ts +113 -19
  270. package/src/lib/arrow/create-nested-arrow-vector.ts +116 -0
  271. package/src/lib/encoders/encode-table-to-parquet-js.ts +268 -7
  272. package/src/lib/geo/geoparquet-covering.ts +201 -0
  273. package/src/lib/geo/geospatial-metadata.ts +42 -15
  274. package/src/lib/parquet-bloom-filter-planner.ts +86 -0
  275. package/src/lib/parquet-bloom-filter.ts +345 -0
  276. package/src/lib/parquet-encryption.ts +344 -0
  277. package/src/lib/parquet-page-index.ts +180 -34
  278. package/src/lib/parquet-predicate.ts +52 -16
  279. package/src/lib/parquet-source-worker-decoder.ts +116 -20
  280. package/src/lib/parquet-source-worker-types.ts +25 -0
  281. package/src/lib/parsers/get-parquet-schema.ts +3 -1
  282. package/src/lib/parsers/parse-parquet-to-arrow-js.ts +397 -17
  283. package/src/lib/parsers/parse-parquet-to-arrow.ts +4 -5
  284. package/src/lib/parsers/parse-parquet-to-columns.ts +3 -1
  285. package/src/lib/parsers/parse-parquet-to-json.ts +18 -2
  286. package/src/lib/slice-parquet-batch.ts +32 -0
  287. package/src/lib/sources/parquet-range-file.ts +35 -29
  288. package/src/lib/utils/normalize-parquet-options.ts +17 -1
  289. package/src/parquet-dataset-source.ts +397 -85
  290. package/src/parquet-js-loader-types.ts +1 -0
  291. package/src/parquet-js-loader.ts +2 -1
  292. package/src/parquet-js-writer.ts +30 -0
  293. package/src/parquet-loader-options.ts +11 -0
  294. package/src/parquet-source-capabilities.ts +18 -1
  295. package/src/parquet-source-loader-types.ts +10 -0
  296. package/src/parquet-source-loader.ts +929 -52
  297. package/src/parquet-source-types.ts +197 -28
  298. package/src/parquet-worker-url.ts +6 -1
  299. package/src/parquetjs/codecs/declare.ts +27 -0
  300. package/src/parquetjs/codecs/delta.ts +466 -6
  301. package/src/parquetjs/codecs/index.ts +4 -0
  302. package/src/parquetjs/codecs/plain.ts +177 -11
  303. package/src/parquetjs/codecs/rle.ts +573 -3
  304. package/src/parquetjs/compression.ts +102 -76
  305. package/src/parquetjs/encoder/dictionary-planner.ts +7 -2
  306. package/src/parquetjs/encoder/parquet-encoder.ts +1016 -38
  307. package/src/parquetjs/parquet-thrift/BoundingBox.ts +108 -0
  308. package/src/parquetjs/parquet-thrift/ColumnChunk.ts +35 -0
  309. package/src/parquetjs/parquet-thrift/ColumnCryptoMetaData.ts +139 -0
  310. package/src/parquetjs/parquet-thrift/ColumnMetaData.ts +73 -0
  311. package/src/parquetjs/parquet-thrift/EncryptionAlgorithm.ts +127 -0
  312. package/src/parquetjs/parquet-thrift/FileCryptoMetaData.ts +60 -0
  313. package/src/parquetjs/parquet-thrift/FileMetaData.ts +35 -0
  314. package/src/parquetjs/parquet-thrift/GeospatialStatistics.ts +68 -0
  315. package/src/parquetjs/parquet-thrift/SizeStatistics.ts +98 -0
  316. package/src/parquetjs/parquet-thrift/index.ts +6 -0
  317. package/src/parquetjs/parser/decoders.ts +451 -26
  318. package/src/parquetjs/parser/parquet-reader.ts +935 -87
  319. package/src/parquetjs/schema/declare.ts +22 -2
  320. package/src/parquetjs/schema/schema.ts +10 -0
  321. package/src/parquetjs/schema/shred.ts +238 -11
  322. package/src/parquetjs/schema/types.ts +16 -25
  323. package/src/parquetjs/schema/variant.ts +313 -0
  324. package/src/parquetjs/utils/crc32.ts +15 -0
  325. package/src/parquetjs/utils/read-utils.ts +26 -1
  326. package/src/unbundled.ts +14 -0
@@ -104,6 +104,75 @@ export function decodeValues(type, cursor, count, options) {
104
104
  }
105
105
  return output;
106
106
  }
107
+ /** Encodes legacy Parquet BIT_PACKED values, including the optional page length envelope. */
108
+ export function encodeBitPackedValues(type, values, options) {
109
+ if (!('bitWidth' in options)) {
110
+ throw new Error('bitWidth is required');
111
+ }
112
+ const bitWidth = options.bitWidth;
113
+ if (!Number.isInteger(bitWidth) || bitWidth < 0 || bitWidth > 32) {
114
+ throw new Error(`invalid bit width: ${bitWidth}`);
115
+ }
116
+ if (type !== 'BOOLEAN' && type !== 'INT32' && type !== 'INT64') {
117
+ throw new Error(`unsupported type: ${type}`);
118
+ }
119
+ const paddedValueCount = Math.ceil(values.length / 8) * 8;
120
+ const encoded = new Uint8Array(Math.ceil((paddedValueCount * bitWidth) / 8));
121
+ for (let valueIndex = 0; valueIndex < values.length; valueIndex++) {
122
+ let value = Number(values[valueIndex]);
123
+ for (let bitIndex = 0; bitIndex < bitWidth; bitIndex++) {
124
+ if (value & (1 << bitIndex)) {
125
+ const packedBit = valueIndex * bitWidth + bitIndex;
126
+ encoded[Math.floor(packedBit / 8)] |= 1 << (packedBit % 8);
127
+ }
128
+ }
129
+ }
130
+ if (options.disableEnvelope) {
131
+ return encoded;
132
+ }
133
+ const envelope = new Uint8Array(encoded.length + 4);
134
+ writeUInt32LE(envelope, encoded.length, 0);
135
+ envelope.set(encoded, 4);
136
+ return envelope;
137
+ }
138
+ /** Decodes legacy Parquet BIT_PACKED values, including the optional page length envelope. */
139
+ export function decodeBitPackedValues(type, cursor, count, options) {
140
+ if (!('bitWidth' in options)) {
141
+ throw new Error('bitWidth is required');
142
+ }
143
+ const bitWidth = options.bitWidth;
144
+ if (!Number.isInteger(bitWidth) || bitWidth < 0 || bitWidth > 64) {
145
+ throw new Error(`invalid bit width: ${bitWidth}`);
146
+ }
147
+ if (!Number.isInteger(count) || count < 0) {
148
+ throw new Error(`invalid value count: ${count}`);
149
+ }
150
+ const envelopeEnd = options.disableEnvelope
151
+ ? undefined
152
+ : (() => {
153
+ assertReadable(cursor, 4);
154
+ const length = cursor.buffer[cursor.offset] |
155
+ (cursor.buffer[cursor.offset + 1] << 8) |
156
+ (cursor.buffer[cursor.offset + 2] << 16) |
157
+ (cursor.buffer[cursor.offset + 3] << 24);
158
+ cursor.offset += 4;
159
+ if (length < 0)
160
+ throw new Error('invalid BIT_PACKED length');
161
+ assertReadable(cursor, length);
162
+ return cursor.offset + length;
163
+ })();
164
+ const paddedValueCount = Math.ceil(count / 8) * 8;
165
+ const packedByteLength = Math.ceil((paddedValueCount * bitWidth) / 8);
166
+ assertReadable(cursor, packedByteLength);
167
+ const { output, outputOffset } = getParquetValueOutput(options, count);
168
+ decodeBitPackedRun(cursor, paddedValueCount, count, bitWidth, output, outputOffset);
169
+ if (envelopeEnd !== undefined) {
170
+ if (cursor.offset > envelopeEnd)
171
+ throw new Error('invalid BIT_PACKED length');
172
+ cursor.offset = envelopeEnd;
173
+ }
174
+ return output;
175
+ }
107
176
  /** Decodes one complete bit-packed run directly into the caller's output array. */
108
177
  function decodeBitPackedRun(cursor, runValueCount, outputCount, bitWidth, output, outputOffset, dictionary) {
109
178
  if (runValueCount % 8 !== 0) {
@@ -157,10 +226,35 @@ function fillParquetValueBuffer(output, value, start, end) {
157
226
  }
158
227
  /** Decodes common narrow bit widths with a fast 32-bit reservoir. */
159
228
  function decodeUint32BitPackedRun(buffer, packedOffset, count, bitWidth, output, outputOffset, dictionary) {
229
+ if (!dictionary && bitWidth <= 4) {
230
+ decodeNarrowUnsignedBitPackedRun(buffer, packedOffset, count, bitWidth, output, outputOffset);
231
+ return;
232
+ }
233
+ if (dictionary && bitWidth <= 4) {
234
+ decodeNarrowDictionaryBitPackedRun(buffer, packedOffset, count, bitWidth, output, outputOffset, dictionary);
235
+ return;
236
+ }
237
+ if (dictionary && bitWidth === 10) {
238
+ decode10BitDictionaryRun(buffer, packedOffset, count, output, outputOffset, dictionary);
239
+ return;
240
+ }
241
+ if (dictionary && bitWidth === 12) {
242
+ decode12BitDictionaryRun(buffer, packedOffset, count, output, outputOffset, dictionary);
243
+ return;
244
+ }
160
245
  if (bitWidth === 8) {
246
+ if (dictionary) {
247
+ for (let valueIndex = 0; valueIndex < count; valueIndex++) {
248
+ const value = buffer[packedOffset + valueIndex] ?? 0;
249
+ if (value >= dictionary.length) {
250
+ throw new Error(`Invalid Parquet dictionary index ${value}`);
251
+ }
252
+ output[outputOffset + valueIndex] = dictionary[value];
253
+ }
254
+ return;
255
+ }
161
256
  for (let valueIndex = 0; valueIndex < count; valueIndex++) {
162
- const value = buffer[packedOffset + valueIndex] ?? 0;
163
- output[outputOffset + valueIndex] = resolveDictionaryValue(value, dictionary);
257
+ output[outputOffset + valueIndex] = buffer[packedOffset + valueIndex] ?? 0;
164
258
  }
165
259
  return;
166
260
  }
@@ -168,17 +262,326 @@ function decodeUint32BitPackedRun(buffer, packedOffset, count, bitWidth, output,
168
262
  let packedBits = 0;
169
263
  let packedBitCount = 0;
170
264
  let byteOffset = packedOffset;
265
+ if (dictionary) {
266
+ for (let valueIndex = 0; valueIndex < count; valueIndex++) {
267
+ while (packedBitCount < bitWidth) {
268
+ packedBits |= (buffer[byteOffset++] ?? 0) << packedBitCount;
269
+ packedBitCount += 8;
270
+ }
271
+ const value = packedBits & mask;
272
+ if (value >= dictionary.length) {
273
+ throw new Error(`Invalid Parquet dictionary index ${value}`);
274
+ }
275
+ output[outputOffset + valueIndex] = dictionary[value];
276
+ packedBits >>>= bitWidth;
277
+ packedBitCount -= bitWidth;
278
+ }
279
+ return;
280
+ }
171
281
  for (let valueIndex = 0; valueIndex < count; valueIndex++) {
172
282
  while (packedBitCount < bitWidth) {
173
283
  packedBits |= (buffer[byteOffset++] ?? 0) << packedBitCount;
174
284
  packedBitCount += 8;
175
285
  }
176
286
  const value = packedBits & mask;
177
- output[outputOffset + valueIndex] = resolveDictionaryValue(value, dictionary);
287
+ output[outputOffset + valueIndex] = value;
288
+ packedBits >>>= bitWidth;
289
+ packedBitCount -= bitWidth;
290
+ }
291
+ }
292
+ /** Decodes complete groups of eight narrow unsigned values without a per-value reservoir. */
293
+ function decodeNarrowUnsignedBitPackedRun(buffer, packedOffset, count, bitWidth, output, outputOffset) {
294
+ if (bitWidth === 1) {
295
+ decode1BitUnsignedRun(buffer, packedOffset, count, output, outputOffset);
296
+ return;
297
+ }
298
+ if (bitWidth === 2) {
299
+ decode2BitUnsignedRun(buffer, packedOffset, count, output, outputOffset);
300
+ return;
301
+ }
302
+ const mask = 2 ** bitWidth - 1;
303
+ let byteOffset = packedOffset;
304
+ let valueIndex = 0;
305
+ while (valueIndex < count) {
306
+ const packedBits = (buffer[byteOffset] ?? 0) |
307
+ ((buffer[byteOffset + 1] ?? 0) << 8) |
308
+ ((buffer[byteOffset + 2] ?? 0) << 16) |
309
+ ((buffer[byteOffset + 3] ?? 0) << 24);
310
+ const groupValueCount = Math.min(8, count - valueIndex);
311
+ for (let groupIndex = 0; groupIndex < groupValueCount; groupIndex++) {
312
+ output[outputOffset + valueIndex + groupIndex] =
313
+ (packedBits >>> (groupIndex * bitWidth)) & mask;
314
+ }
315
+ byteOffset += bitWidth;
316
+ valueIndex += groupValueCount;
317
+ }
318
+ }
319
+ /** Expands byte-aligned groups of eight one-bit level values. */
320
+ function decode1BitUnsignedRun(buffer, packedOffset, count, output, outputOffset) {
321
+ let byteOffset = packedOffset;
322
+ let valueIndex = 0;
323
+ while (valueIndex + 8 <= count) {
324
+ const packedBits = buffer[byteOffset++] ?? 0;
325
+ output[outputOffset + valueIndex] = packedBits & 1;
326
+ output[outputOffset + valueIndex + 1] = (packedBits >>> 1) & 1;
327
+ output[outputOffset + valueIndex + 2] = (packedBits >>> 2) & 1;
328
+ output[outputOffset + valueIndex + 3] = (packedBits >>> 3) & 1;
329
+ output[outputOffset + valueIndex + 4] = (packedBits >>> 4) & 1;
330
+ output[outputOffset + valueIndex + 5] = (packedBits >>> 5) & 1;
331
+ output[outputOffset + valueIndex + 6] = (packedBits >>> 6) & 1;
332
+ output[outputOffset + valueIndex + 7] = packedBits >>> 7;
333
+ valueIndex += 8;
334
+ }
335
+ const packedBits = buffer[byteOffset] ?? 0;
336
+ for (let tailIndex = 0; valueIndex + tailIndex < count; tailIndex++) {
337
+ output[outputOffset + valueIndex + tailIndex] = (packedBits >>> tailIndex) & 1;
338
+ }
339
+ }
340
+ /** Expands two-byte groups of eight two-bit level values. */
341
+ function decode2BitUnsignedRun(buffer, packedOffset, count, output, outputOffset) {
342
+ let byteOffset = packedOffset;
343
+ let valueIndex = 0;
344
+ while (valueIndex + 8 <= count) {
345
+ const packedBits = (buffer[byteOffset] ?? 0) | ((buffer[byteOffset + 1] ?? 0) << 8);
346
+ output[outputOffset + valueIndex] = packedBits & 3;
347
+ output[outputOffset + valueIndex + 1] = (packedBits >>> 2) & 3;
348
+ output[outputOffset + valueIndex + 2] = (packedBits >>> 4) & 3;
349
+ output[outputOffset + valueIndex + 3] = (packedBits >>> 6) & 3;
350
+ output[outputOffset + valueIndex + 4] = (packedBits >>> 8) & 3;
351
+ output[outputOffset + valueIndex + 5] = (packedBits >>> 10) & 3;
352
+ output[outputOffset + valueIndex + 6] = (packedBits >>> 12) & 3;
353
+ output[outputOffset + valueIndex + 7] = (packedBits >>> 14) & 3;
354
+ byteOffset += 2;
355
+ valueIndex += 8;
356
+ }
357
+ const packedBits = (buffer[byteOffset] ?? 0) | ((buffer[byteOffset + 1] ?? 0) << 8);
358
+ for (let tailIndex = 0; valueIndex + tailIndex < count; tailIndex++) {
359
+ output[outputOffset + valueIndex + tailIndex] = (packedBits >>> (tailIndex * 2)) & 3;
360
+ }
361
+ }
362
+ /** Resolves aligned groups of four 10-bit dictionary indices from five input bytes. */
363
+ function decode10BitDictionaryRun(buffer, packedOffset, count, output, outputOffset, dictionary) {
364
+ let byteOffset = packedOffset;
365
+ let valueIndex = 0;
366
+ while (valueIndex + 4 <= count) {
367
+ const byte0 = buffer[byteOffset] ?? 0;
368
+ const byte1 = buffer[byteOffset + 1] ?? 0;
369
+ const byte2 = buffer[byteOffset + 2] ?? 0;
370
+ const byte3 = buffer[byteOffset + 3] ?? 0;
371
+ const byte4 = buffer[byteOffset + 4] ?? 0;
372
+ const index0 = byte0 | ((byte1 & 0x03) << 8);
373
+ const index1 = (byte1 >>> 2) | ((byte2 & 0x0f) << 6);
374
+ const index2 = (byte2 >>> 4) | ((byte3 & 0x3f) << 4);
375
+ const index3 = (byte3 >>> 6) | (byte4 << 2);
376
+ if (index0 >= dictionary.length ||
377
+ index1 >= dictionary.length ||
378
+ index2 >= dictionary.length ||
379
+ index3 >= dictionary.length) {
380
+ const invalidIndex = [index0, index1, index2, index3].find(dictionaryIndex => dictionaryIndex >= dictionary.length);
381
+ throw new Error(`Invalid Parquet dictionary index ${invalidIndex}`);
382
+ }
383
+ output[outputOffset + valueIndex] = dictionary[index0];
384
+ output[outputOffset + valueIndex + 1] = dictionary[index1];
385
+ output[outputOffset + valueIndex + 2] = dictionary[index2];
386
+ output[outputOffset + valueIndex + 3] = dictionary[index3];
387
+ byteOffset += 5;
388
+ valueIndex += 4;
389
+ }
390
+ decodeDictionaryBitPackedTail(buffer, byteOffset, count - valueIndex, 10, output, outputOffset + valueIndex, dictionary);
391
+ }
392
+ /** Resolves aligned pairs of 12-bit dictionary indices from three input bytes. */
393
+ function decode12BitDictionaryRun(buffer, packedOffset, count, output, outputOffset, dictionary) {
394
+ let byteOffset = packedOffset;
395
+ let valueIndex = 0;
396
+ while (valueIndex + 2 <= count) {
397
+ const byte0 = buffer[byteOffset] ?? 0;
398
+ const byte1 = buffer[byteOffset + 1] ?? 0;
399
+ const byte2 = buffer[byteOffset + 2] ?? 0;
400
+ const index0 = byte0 | ((byte1 & 0x0f) << 8);
401
+ const index1 = (byte1 >>> 4) | (byte2 << 4);
402
+ if (index0 >= dictionary.length || index1 >= dictionary.length) {
403
+ const invalidIndex = index0 >= dictionary.length ? index0 : index1;
404
+ throw new Error(`Invalid Parquet dictionary index ${invalidIndex}`);
405
+ }
406
+ output[outputOffset + valueIndex] = dictionary[index0];
407
+ output[outputOffset + valueIndex + 1] = dictionary[index1];
408
+ byteOffset += 3;
409
+ valueIndex += 2;
410
+ }
411
+ decodeDictionaryBitPackedTail(buffer, byteOffset, count - valueIndex, 12, output, outputOffset + valueIndex, dictionary);
412
+ }
413
+ /** Resolves the byte-aligned remainder after a fixed-width dictionary group. */
414
+ function decodeDictionaryBitPackedTail(buffer, packedOffset, count, bitWidth, output, outputOffset, dictionary) {
415
+ const mask = 2 ** bitWidth - 1;
416
+ let packedBits = 0;
417
+ let packedBitCount = 0;
418
+ let byteOffset = packedOffset;
419
+ for (let valueIndex = 0; valueIndex < count; valueIndex++) {
420
+ while (packedBitCount < bitWidth) {
421
+ packedBits |= (buffer[byteOffset++] ?? 0) << packedBitCount;
422
+ packedBitCount += 8;
423
+ }
424
+ const dictionaryIndex = packedBits & mask;
425
+ if (dictionaryIndex >= dictionary.length) {
426
+ throw new Error(`Invalid Parquet dictionary index ${dictionaryIndex}`);
427
+ }
428
+ output[outputOffset + valueIndex] = dictionary[dictionaryIndex];
178
429
  packedBits >>>= bitWidth;
179
430
  packedBitCount -= bitWidth;
180
431
  }
181
432
  }
433
+ /** Resolves complete groups of eight narrow dictionary indices without a per-value reservoir. */
434
+ function decodeNarrowDictionaryBitPackedRun(buffer, packedOffset, count, bitWidth, output, outputOffset, dictionary) {
435
+ if (bitWidth === 1) {
436
+ decode1BitDictionaryRun(buffer, packedOffset, count, output, outputOffset, dictionary);
437
+ return;
438
+ }
439
+ if (bitWidth === 2) {
440
+ decode2BitDictionaryRun(buffer, packedOffset, count, output, outputOffset, dictionary);
441
+ return;
442
+ }
443
+ if (bitWidth === 3) {
444
+ decode3BitDictionaryRun(buffer, packedOffset, count, output, outputOffset, dictionary);
445
+ return;
446
+ }
447
+ if (bitWidth === 4) {
448
+ decode4BitDictionaryRun(buffer, packedOffset, count, output, outputOffset, dictionary);
449
+ return;
450
+ }
451
+ const mask = 2 ** bitWidth - 1;
452
+ let byteOffset = packedOffset;
453
+ let valueIndex = 0;
454
+ while (valueIndex < count) {
455
+ const packedBits = (buffer[byteOffset] ?? 0) |
456
+ ((buffer[byteOffset + 1] ?? 0) << 8) |
457
+ ((buffer[byteOffset + 2] ?? 0) << 16) |
458
+ ((buffer[byteOffset + 3] ?? 0) << 24);
459
+ const groupValueCount = Math.min(8, count - valueIndex);
460
+ for (let groupIndex = 0; groupIndex < groupValueCount; groupIndex++) {
461
+ const dictionaryIndex = (packedBits >>> (groupIndex * bitWidth)) & mask;
462
+ if (dictionaryIndex >= dictionary.length) {
463
+ throw new Error(`Invalid Parquet dictionary index ${dictionaryIndex}`);
464
+ }
465
+ output[outputOffset + valueIndex + groupIndex] = dictionary[dictionaryIndex];
466
+ }
467
+ byteOffset += bitWidth;
468
+ valueIndex += groupValueCount;
469
+ }
470
+ }
471
+ /** Resolves byte-aligned groups of eight one-bit dictionary indices. */
472
+ function decode1BitDictionaryRun(buffer, packedOffset, count, output, outputOffset, dictionary) {
473
+ let byteOffset = packedOffset;
474
+ let valueIndex = 0;
475
+ while (valueIndex + 8 <= count) {
476
+ const packedBits = buffer[byteOffset++] ?? 0;
477
+ if (dictionary.length < 2 && packedBits !== 0) {
478
+ throw new Error('Invalid Parquet dictionary index 1');
479
+ }
480
+ output[outputOffset + valueIndex] = dictionary[packedBits & 1];
481
+ output[outputOffset + valueIndex + 1] = dictionary[(packedBits >>> 1) & 1];
482
+ output[outputOffset + valueIndex + 2] = dictionary[(packedBits >>> 2) & 1];
483
+ output[outputOffset + valueIndex + 3] = dictionary[(packedBits >>> 3) & 1];
484
+ output[outputOffset + valueIndex + 4] = dictionary[(packedBits >>> 4) & 1];
485
+ output[outputOffset + valueIndex + 5] = dictionary[(packedBits >>> 5) & 1];
486
+ output[outputOffset + valueIndex + 6] = dictionary[(packedBits >>> 6) & 1];
487
+ output[outputOffset + valueIndex + 7] = dictionary[packedBits >>> 7];
488
+ valueIndex += 8;
489
+ }
490
+ decodeDictionaryBitPackedTail(buffer, byteOffset, count - valueIndex, 1, output, outputOffset + valueIndex, dictionary);
491
+ }
492
+ /** Resolves two-byte groups of eight two-bit dictionary indices. */
493
+ function decode2BitDictionaryRun(buffer, packedOffset, count, output, outputOffset, dictionary) {
494
+ let byteOffset = packedOffset;
495
+ let valueIndex = 0;
496
+ while (valueIndex + 8 <= count) {
497
+ const packedBits = (buffer[byteOffset] ?? 0) | ((buffer[byteOffset + 1] ?? 0) << 8);
498
+ const index0 = packedBits & 3;
499
+ const index1 = (packedBits >>> 2) & 3;
500
+ const index2 = (packedBits >>> 4) & 3;
501
+ const index3 = (packedBits >>> 6) & 3;
502
+ const index4 = (packedBits >>> 8) & 3;
503
+ const index5 = (packedBits >>> 10) & 3;
504
+ const index6 = (packedBits >>> 12) & 3;
505
+ const index7 = packedBits >>> 14;
506
+ if (index0 >= dictionary.length ||
507
+ index1 >= dictionary.length ||
508
+ index2 >= dictionary.length ||
509
+ index3 >= dictionary.length ||
510
+ index4 >= dictionary.length ||
511
+ index5 >= dictionary.length ||
512
+ index6 >= dictionary.length ||
513
+ index7 >= dictionary.length) {
514
+ throw new Error('Invalid Parquet dictionary index');
515
+ }
516
+ output[outputOffset + valueIndex] = dictionary[index0];
517
+ output[outputOffset + valueIndex + 1] = dictionary[index1];
518
+ output[outputOffset + valueIndex + 2] = dictionary[index2];
519
+ output[outputOffset + valueIndex + 3] = dictionary[index3];
520
+ output[outputOffset + valueIndex + 4] = dictionary[index4];
521
+ output[outputOffset + valueIndex + 5] = dictionary[index5];
522
+ output[outputOffset + valueIndex + 6] = dictionary[index6];
523
+ output[outputOffset + valueIndex + 7] = dictionary[index7];
524
+ byteOffset += 2;
525
+ valueIndex += 8;
526
+ }
527
+ decodeDictionaryBitPackedTail(buffer, byteOffset, count - valueIndex, 2, output, outputOffset + valueIndex, dictionary);
528
+ }
529
+ /** Resolves byte-aligned groups of eight three-bit dictionary indices. */
530
+ function decode3BitDictionaryRun(buffer, packedOffset, count, output, outputOffset, dictionary) {
531
+ let byteOffset = packedOffset;
532
+ let valueIndex = 0;
533
+ while (valueIndex + 8 <= count) {
534
+ const packedBits = (buffer[byteOffset] ?? 0) |
535
+ ((buffer[byteOffset + 1] ?? 0) << 8) |
536
+ ((buffer[byteOffset + 2] ?? 0) << 16);
537
+ const index0 = packedBits & 7;
538
+ const index1 = (packedBits >>> 3) & 7;
539
+ const index2 = (packedBits >>> 6) & 7;
540
+ const index3 = (packedBits >>> 9) & 7;
541
+ const index4 = (packedBits >>> 12) & 7;
542
+ const index5 = (packedBits >>> 15) & 7;
543
+ const index6 = (packedBits >>> 18) & 7;
544
+ const index7 = (packedBits >>> 21) & 7;
545
+ if (index0 >= dictionary.length ||
546
+ index1 >= dictionary.length ||
547
+ index2 >= dictionary.length ||
548
+ index3 >= dictionary.length ||
549
+ index4 >= dictionary.length ||
550
+ index5 >= dictionary.length ||
551
+ index6 >= dictionary.length ||
552
+ index7 >= dictionary.length) {
553
+ throw new Error('Invalid Parquet dictionary index');
554
+ }
555
+ output[outputOffset + valueIndex] = dictionary[index0];
556
+ output[outputOffset + valueIndex + 1] = dictionary[index1];
557
+ output[outputOffset + valueIndex + 2] = dictionary[index2];
558
+ output[outputOffset + valueIndex + 3] = dictionary[index3];
559
+ output[outputOffset + valueIndex + 4] = dictionary[index4];
560
+ output[outputOffset + valueIndex + 5] = dictionary[index5];
561
+ output[outputOffset + valueIndex + 6] = dictionary[index6];
562
+ output[outputOffset + valueIndex + 7] = dictionary[index7];
563
+ byteOffset += 3;
564
+ valueIndex += 8;
565
+ }
566
+ decodeDictionaryBitPackedTail(buffer, byteOffset, count - valueIndex, 3, output, outputOffset + valueIndex, dictionary);
567
+ }
568
+ /** Resolves pairs of four-bit dictionary indices from each input byte. */
569
+ function decode4BitDictionaryRun(buffer, packedOffset, count, output, outputOffset, dictionary) {
570
+ let byteOffset = packedOffset;
571
+ let valueIndex = 0;
572
+ while (valueIndex + 2 <= count) {
573
+ const packedByte = buffer[byteOffset++] ?? 0;
574
+ const index0 = packedByte & 15;
575
+ const index1 = packedByte >>> 4;
576
+ if (index0 >= dictionary.length || index1 >= dictionary.length) {
577
+ throw new Error(`Invalid Parquet dictionary index ${index0 >= dictionary.length ? index0 : index1}`);
578
+ }
579
+ output[outputOffset + valueIndex] = dictionary[index0];
580
+ output[outputOffset + valueIndex + 1] = dictionary[index1];
581
+ valueIndex += 2;
582
+ }
583
+ decodeDictionaryBitPackedTail(buffer, byteOffset, count - valueIndex, 4, output, outputOffset + valueIndex, dictionary);
584
+ }
182
585
  /** Decodes a bit-packed run with an exact number-based bit reservoir. */
183
586
  function decodeNumberBitPackedRun(buffer, packedOffset, count, bitWidth, output, outputOffset, dictionary) {
184
587
  const divisor = 2 ** bitWidth;
@@ -1 +1 @@
1
- {"version":3,"file":"rle.js","sourceRoot":"","sources":["../../../src/parquetjs/codecs/rle.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AACpC,qCAAqC;AACrC,oEAAoE;AAGpE,OAAO,EACL,qBAAqB,EAItB,qBAAkB;AACnB,OAAO,EAAC,iBAAiB,EAAE,aAAa,EAAC,iCAA8B;AACvE,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,sDAAsD;AACtD,MAAM,UAAU,YAAY,CAC1B,IAAmB,EACnB,MAAa,EACb,IAAyB;IAEzB,IAAI,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,SAAS,CAAC;QACf,KAAK,OAAO,CAAC;QACb,KAAK,OAAO;YACV,qDAAqD;YACrD,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC1C,MAAM;QAER;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,IAAI,GAAG,GAAU,EAAE,CAAC;IACpB,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,0EAA0E;QAC1E,6BAA6B;QAC7B,IAAI,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACzE,qDAAqD;YACrD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC5C,GAAG,GAAG,EAAE,CAAC;YACX,CAAC;YACD,OAAO,GAAG,CAAC,CAAC;QACd,CAAC;aAAM,IAAI,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC,CAAC;QACf,CAAC;aAAM,CAAC;YACN,iEAAiE;YACjE,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC9D,OAAO,GAAG,CAAC,CAAC;YACd,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5E,CAAC;SAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,GAAG,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAChD,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACvC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAErB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,IAAmB,EACnB,MAAoB,EACpB,KAAa,EACb,OAA4B;IAE5B,IAAI,CAAC,CAAC,UAAU,IAAI,OAAO,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAS,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,EAAE,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;QAC7B,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,EAAC,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAC,GAAG,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1F,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,OAAO,YAAY,GAAG,KAAK,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,GAAG,YAAY,CAAC,CAAC;YAClE,kBAAkB,CAChB,MAAM,EACN,aAAa,EACb,WAAW,EACX,QAAQ,EACR,MAAM,EACN,mBAAmB,GAAG,YAAY,EAClC,OAAO,CAAC,UAAU,CACnB,CAAC;YACF,YAAY,IAAI,WAAW,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,CAAC;YACjC,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACrD,CAAC;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,GAAG,YAAY,CAAC,CAAC;YAClE,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAClD,MAAM,aAAa,GAAG,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;YACxE,sBAAsB,CACpB,MAAM,EACN,aAAa,EACb,mBAAmB,GAAG,YAAY,EAClC,mBAAmB,GAAG,YAAY,GAAG,WAAW,CACjD,CAAC;YACF,YAAY,IAAI,WAAW,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,mFAAmF;AACnF,SAAS,kBAAkB,CACzB,MAAoB,EACpB,aAAqB,EACrB,WAAmB,EACnB,QAAgB,EAChB,MAA0B,EAC1B,YAAoB,EACpB,UAA+B;IAE/B,IAAI,aAAa,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,gBAAgB,GAAG,QAAQ,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;IACjD,8FAA8F;IAC9F,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,gBAAgB,EAAE,IAAI,CAAC,CAAC;IAEjE,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,aAAa,GAAG,sBAAsB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAC5D,sBAAsB,CAAC,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,GAAG,WAAW,CAAC,CAAC;QACxF,OAAO;IACT,CAAC;IACD,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;QACnB,wBAAwB,CACtB,MAAM,CAAC,MAAM,EACb,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,UAAU,CACX,CAAC;QACF,OAAO;IACT,CAAC;IACD,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;QACnB,wBAAwB,CACtB,MAAM,CAAC,MAAM,EACb,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,UAAU,CACX,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,CAAC,EAAE,IAAI,cAAc,CAAC,GAAG,EAAE,CAAC;IACzC,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,UAAU,GAAG,YAAY,CAAC;IAC9B,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,WAAW,EAAE,UAAU,EAAE,EAAE,CAAC;QAChE,OAAO,cAAc,GAAG,QAAQ,EAAE,CAAC;YACjC,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC;YACjF,cAAc,IAAI,CAAC,CAAC;QACtB,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;QACxC,MAAM,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,sBAAsB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC9E,UAAU,KAAK,cAAc,CAAC;QAC9B,cAAc,IAAI,QAAQ,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,iFAAiF;AACjF,SAAS,sBAAsB,CAC7B,MAA0B,EAC1B,KAAc,EACd,KAAa,EACb,GAAW;IAEX,IAAI,MAAM,YAAY,aAAa,EAAE,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAe,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACrF,OAAO;IACT,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QAC/B,OAAO;IACT,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,qEAAqE;AACrE,SAAS,wBAAwB,CAC/B,MAAkB,EAClB,YAAoB,EACpB,KAAa,EACb,QAAgB,EAChB,MAA0B,EAC1B,YAAoB,EACpB,UAA+B;IAE/B,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACnB,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC;YAC1D,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,sBAAsB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAChF,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC;IAC/B,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,UAAU,GAAG,YAAY,CAAC;IAC9B,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC;QAC1D,OAAO,cAAc,GAAG,QAAQ,EAAE,CAAC;YACjC,UAAU,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC;YAC5D,cAAc,IAAI,CAAC,CAAC;QACtB,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,GAAG,IAAI,CAAC;QAChC,MAAM,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,sBAAsB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC9E,UAAU,MAAM,QAAQ,CAAC;QACzB,cAAc,IAAI,QAAQ,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,SAAS,wBAAwB,CAC/B,MAAkB,EAClB,YAAoB,EACpB,KAAa,EACb,QAAgB,EAChB,MAA0B,EAC1B,YAAoB,EACpB,UAA+B;IAE/B,MAAM,OAAO,GAAG,CAAC,IAAI,QAAQ,CAAC;IAC9B,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,UAAU,GAAG,YAAY,CAAC;IAC9B,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC;QAC1D,OAAO,cAAc,GAAG,QAAQ,EAAE,CAAC;YACjC,UAAU,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC;YAChE,cAAc,IAAI,CAAC,CAAC;QACtB,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,GAAG,OAAO,CAAC;QACnC,MAAM,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,sBAAsB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC9E,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC;QAC9C,cAAc,IAAI,QAAQ,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,iFAAiF;AACjF,SAAS,sBAAsB,CAAC,KAAa,EAAE,UAA+B;IAC5E,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,uEAAuE;AACvE,SAAS,iBAAiB,CAAC,MAAoB,EAAE,QAAgB;IAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAC1C,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAClC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC;YAC3D,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,UAAU,CAAC;YACrD,UAAU,IAAI,GAAG,CAAC;QACpB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC;QAC3D,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,uFAAuF;AACvF,SAAS,wBAAwB,CAAC,MAAoB;IACpD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;QACpD,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5C,KAAK,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,UAAU,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;YACnE,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,UAAU,IAAI,GAAG,CAAC;IACpB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAC5C,CAAC;AAED,2DAA2D;AAC3D,SAAS,cAAc,CAAC,MAAoB,EAAE,UAAkB;IAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;IACjD,IAAI,UAAU,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,UAAU,GAAG,IAAI,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACb,sCAAsC,MAAM,CAAC,MAAM,eAAe,UAAU,UAAU,IAAI,GAAG,CAC9F,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAgB,EAAE,IAAyB;IACrE,aAAa;IACb,MAAM,QAAQ,GAAW,IAAI,CAAC,QAAQ,CAAC;IAEvC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACpD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;QAC7C,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YACzE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,OAAO,iBAAiB,CAAC;QACvB,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpE,GAAG;KACJ,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa,EAAE,KAAa,EAAE,IAAyB;IAChF,aAAa;IACb,MAAM,QAAQ,GAAW,IAAI,CAAC,QAAQ,CAAC;IAEvC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;IAEpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;QACtB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,iBAAiB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"rle.js","sourceRoot":"","sources":["../../../src/parquetjs/codecs/rle.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ import { ParquetCompression } from "./schema/declare.js";
3
3
  * See https://github.com/apache/parquet-format/blob/master/Compression.md
4
4
  */
5
5
  export declare const PARQUET_COMPRESSION_METHODS: Partial<Record<ParquetCompression, true>>;
6
+ /** Reader-scoped function that decompresses one independently encoded Parquet page. */
7
+ export type ParquetPageDecompressor = (value: Uint8Array, size: number) => Promise<Uint8Array>;
6
8
  /**
7
9
  * Registers optional codec modules without eagerly loading codec-backed implementations.
8
10
  *
@@ -21,4 +23,11 @@ export declare function deflate(method: ParquetCompression, value: Uint8Array):
21
23
  * Inflate a value using compression method `method`
22
24
  */
23
25
  export declare function decompress(method: ParquetCompression, value: Uint8Array, size: number): Promise<Uint8Array>;
26
+ /**
27
+ * Creates a reusable decoder for the independently compressed pages in one Parquet reader.
28
+ *
29
+ * Reusing the lazy codec preserves its selected backend and avoids repeating dynamic import and
30
+ * preload work for every page while keeping module injection scoped to a reader invocation.
31
+ */
32
+ export declare function createParquetPageDecompressor(method: ParquetCompression): ParquetPageDecompressor;
24
33
  //# sourceMappingURL=compression.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../../src/parquetjs/compression.ts"],"names":[],"mappings":"AAcA,OAAO,EAAC,kBAAkB,EAAC,4BAAyB;AAGpD;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,IAAI,CAAC,CASjF,CAAC;AAcF;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,CAAC,EAAE;IAAC,OAAO,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAA;CAAC,iBAEnF;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAYhG;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,UAAU,CAAC,CAuBrB"}
1
+ {"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../../src/parquetjs/compression.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAC,kBAAkB,EAAC,4BAAyB;AAGpD;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,IAAI,CAAC,CASjF,CAAC;AAEF,uFAAuF;AACvF,MAAM,MAAM,uBAAuB,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAkC/F;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,CAAC,EAAE;IAAC,OAAO,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAA;CAAC,iBAEnF;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAYhG;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,UAAU,CAAC,CAYrB;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,kBAAkB,GAAG,uBAAuB,CAUjG"}