@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
@@ -1,10 +1,13 @@
1
1
  import type { CoreAPI } from '@loaders.gl/loader-utils';
2
2
  import { DataSource } from '@loaders.gl/loader-utils';
3
+ import type { ScanQueryMetadata, ScanQueryMetadataOptions, TableScanSource } from '@loaders.gl/loader-utils';
3
4
  import type { Schema } from '@loaders.gl/schema';
4
5
  import { type ParquetSourceCapabilities } from "./parquet-source-capabilities.js";
5
- import type { ParquetMetadataRequestOptions, ParquetSourceBatch, ParquetSourceLoaderOptions, ParquetSourceMetadata, ParquetSourceReadOptions, ParquetTelemetry } from "./parquet-source-types.js";
6
- export { PARQUET_SOURCE_CAPABILITIES, type ParquetSourceCapabilities } from "./parquet-source-capabilities.js";
7
- export type { ParquetBatch, ParquetBatchMetadata, ParquetBatchProvenance, ParquetColumnChunkMetadata, ParquetColumnChunkStatistics, ParquetMetadataRequestOptions, ParquetObjectVersion, ParquetComparisonPredicate, ParquetInPredicate, ParquetLogicalPredicate, ParquetNotPredicate, ParquetNullPredicate, ParquetPredicate, ParquetPredicateProperty, ParquetPredicateValue, ParquetRangeRequestOptions, ParquetReadOptions, ParquetRowGroupMetadata, ParquetSourceBatch, ParquetSourceLoaderOptions, ParquetSourceMetadata, ParquetSourceReadOptions, ParquetTelemetry, ParquetTelemetryEvent } from "./parquet-source-types.js";
6
+ import type { ParquetEncodedPageBatch, ParquetEncodedPageReadOptions } from "./parquet-encoded-page-types.js";
7
+ import type { ParquetMetadataRequestOptions, ParquetPredicate, ParquetSourceBatch, ParquetSourceLoaderOptions, ParquetSourceMetadata, ParquetSourceReadOptions, ParquetSourceExplain, ParquetTelemetry } from "./parquet-source-types.js";
8
+ export { PARQUET_TABLE_QUERY_CAPABILITIES, PARQUET_SOURCE_CAPABILITIES, type ParquetSourceCapabilities } from "./parquet-source-capabilities.js";
9
+ export type { ParquetEncodedColumnChunk, ParquetEncodedPage, ParquetEncodedPageBatch, ParquetEncodedPageReadOptions, ParquetEncodedPageSection, ParquetDeferredPageFilter, ParquetPageCompressionState } from "./parquet-encoded-page-types.js";
10
+ export type { ParquetBatch, ParquetBatchMetadata, ParquetBatchProvenance, ParquetBoundingBox, ParquetColumnChunkMetadata, ParquetColumnChunkStatistics, ParquetColumnChunkSizeStatistics, ParquetGeospatialBoundingBox, ParquetGeospatialStatistics, ParquetMetadataRequestOptions, ParquetObjectVersion, ParquetPageScanPlan, ParquetComparisonPredicate, ParquetInPredicate, ParquetLogicalPredicate, ParquetNotPredicate, ParquetNullPredicate, ParquetPredicate, ParquetPredicateProperty, ParquetPredicateValue, ParquetRangeRequestOptions, ParquetReadOptions, ParquetRowGroupMetadata, ParquetSortingColumn, ParquetSourceBatch, ParquetSourceLoaderOptions, ParquetSourceMetadata, ParquetSourceReadOptions, ParquetSourceExplain, ParquetTelemetry, ParquetTelemetryEvent } from "./parquet-source-types.js";
8
11
  /** Runtime source factory for reusable, range-backed Parquet access. */
9
12
  export declare const ParquetSourceLoaderWithParser: {
10
13
  readonly createDataSource: (data: string | Blob, options: ParquetSourceLoaderOptions, coreApi?: CoreAPI) => ParquetSource;
@@ -24,8 +27,13 @@ export declare const ParquetSourceLoaderWithParser: {
24
27
  readonly batchSize: undefined;
25
28
  readonly concurrency: undefined;
26
29
  readonly rowGroupFilter: undefined;
30
+ readonly predicate: undefined;
31
+ readonly bbox: undefined;
32
+ readonly geometryColumn: undefined;
27
33
  readonly headers: undefined;
28
34
  readonly preserveBinary: false;
35
+ readonly verifyPageChecksums: false;
36
+ readonly verifyFooterSignature: true;
29
37
  readonly onTelemetry: undefined;
30
38
  readonly workerUrl: undefined;
31
39
  readonly wasmUrl: undefined;
@@ -43,8 +51,13 @@ export declare const ParquetSourceLoaderWithParser: {
43
51
  readonly batchSize: never;
44
52
  readonly concurrency: never;
45
53
  readonly rowGroupFilter: never;
54
+ readonly predicate: never;
55
+ readonly bbox: never;
56
+ readonly geometryColumn: never;
46
57
  readonly headers: never;
47
58
  readonly preserveBinary: false;
59
+ readonly verifyPageChecksums: false;
60
+ readonly verifyFooterSignature: true;
48
61
  readonly onTelemetry: never;
49
62
  readonly workerUrl: never;
50
63
  readonly wasmUrl: never;
@@ -67,7 +80,18 @@ export declare const ParquetSourceLoaderWithParser: {
67
80
  /** Runtime Parquet source loader exposed by the explicit package subpath. */
68
81
  export { ParquetSourceLoaderWithParser as ParquetSourceLoader };
69
82
  /** Reusable Parquet source that caches footer/schema state and selectively reads byte ranges. */
70
- export declare class ParquetSource extends DataSource<string | Blob, ParquetSourceLoaderOptions> {
83
+ export declare class ParquetSource extends DataSource<string | Blob, ParquetSourceLoaderOptions> implements TableScanSource<ParquetSourceBatch, ParquetPredicate> {
84
+ /** Common projection, predicate, limit, streaming, and cancellation capabilities. */
85
+ readonly tableQueryCapabilities: Readonly<{
86
+ projection: import("@loaders.gl/loader-utils").TableQueryOperatorSupport;
87
+ predicate: import("@loaders.gl/loader-utils").TableQueryOperatorSupport;
88
+ limit: import("@loaders.gl/loader-utils").TableQueryOperatorSupport;
89
+ streaming: boolean;
90
+ cancellation: boolean;
91
+ expressions?: import("@loaders.gl/loader-utils").TableQueryOperatorSupport;
92
+ orderBy?: import("@loaders.gl/loader-utils").TableQueryOperatorSupport;
93
+ aggregates?: import("@loaders.gl/loader-utils").TableQueryOperatorSupport;
94
+ }>;
71
95
  /** Immutable feature support for the current range-backed source implementation. */
72
96
  readonly capabilities: ParquetSourceCapabilities;
73
97
  /** Shared initialization for this source instance. */
@@ -90,10 +114,31 @@ export declare class ParquetSource extends DataSource<string | Blob, ParquetSour
90
114
  }): Promise<Schema>;
91
115
  /** Returns normalized dataset, row-group, and column-chunk metadata. */
92
116
  getMetadata(options?: ParquetMetadataRequestOptions): Promise<ParquetSourceMetadata>;
117
+ /** Discovers schema, capabilities, and footer statistics without decoding Parquet data pages. */
118
+ getQueryMetadata(options?: ScanQueryMetadataOptions): Promise<ScanQueryMetadata>;
119
+ /** Plans a portable query using Parquet metadata without decoding data pages. */
120
+ getScanPlan(options?: ParquetSourceReadOptions): Promise<ParquetSourceExplain>;
121
+ /** Explains the common logical query and Parquet-specific physical scan plan. */
122
+ explain(options?: ParquetSourceReadOptions): Promise<ParquetSourceExplain>;
123
+ /** Executes a previously computed physical plan while preserving its row-group decisions. */
124
+ executeScanPlan(plan: ParquetSourceExplain, options?: ParquetSourceReadOptions): AsyncIterable<ParquetSourceBatch>;
125
+ /** Common scan-architecture alias for selective Parquet reads. */
126
+ scan(options?: ParquetSourceReadOptions): AsyncIterable<ParquetSourceBatch>;
127
+ /**
128
+ * Reads candidate encoded pages without decoding values or constructing Arrow arrays.
129
+ *
130
+ * Footer statistics and Bloom filters prune complete row groups. Any exact predicate or spatial
131
+ * filter is returned as residual work, and its hidden columns are included in the page batch.
132
+ */
133
+ readPages(options?: ParquetEncodedPageReadOptions): AsyncIterable<ParquetEncodedPageBatch>;
93
134
  /** Returns a copy of cumulative transport, decode, conversion, and pruning telemetry. */
94
135
  getTelemetry(): ParquetTelemetry;
95
136
  /** Selectively fetches row groups and columns as ordered Arrow batches with source provenance. */
96
137
  read(options?: ParquetSourceReadOptions): AsyncIterable<ParquetSourceBatch>;
138
+ /** Produces the physical row-group plan shared by explain and execution. */
139
+ private planRowGroups;
140
+ /** Produces explainable page-index and byte-range plans for retained row groups. */
141
+ private planPages;
97
142
  /** Closes the underlying readable file and aborts active remote requests. */
98
143
  close(): Promise<void>;
99
144
  /** Returns cached initialization, resetting the cache when initialization fails. */
@@ -108,6 +153,8 @@ export declare class ParquetSource extends DataSource<string | Blob, ParquetSour
108
153
  private readRowGroup;
109
154
  /** Fetches selected chunks and transfers their decompression and Arrow conversion to a worker. */
110
155
  private readRowGroupOnWorker;
156
+ /** Decodes predicate columns first, avoiding projected-column decoding for empty matches. */
157
+ private readRowGroupWithLateMaterialization;
111
158
  /** Records the rows and pages avoided by one conservative page-index plan. */
112
159
  private recordPagePruningTelemetry;
113
160
  /** Opens the readable file and decodes its footer and schema once. */
@@ -1 +1 @@
1
- {"version":3,"file":"parquet-source-loader.d.ts","sourceRoot":"","sources":["../src/parquet-source-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parquet-source-loader.d.ts","sourceRoot":"","sources":["../src/parquet-source-loader.ts"],"names":[],"mappings":"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"}