@loaders.gl/parquet 4.4.2 → 5.0.0-alpha.1

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 (267) hide show
  1. package/dist/bundled.d.ts +6 -0
  2. package/dist/bundled.d.ts.map +1 -0
  3. package/dist/bundled.js +7 -0
  4. package/dist/bundled.js.map +1 -0
  5. package/dist/geoparquet-loader-with-parser.d.ts +34 -0
  6. package/dist/geoparquet-loader-with-parser.d.ts.map +1 -0
  7. package/dist/geoparquet-loader-with-parser.js +52 -0
  8. package/dist/geoparquet-loader-with-parser.js.map +1 -0
  9. package/dist/geoparquet-loader.d.ts +61 -0
  10. package/dist/geoparquet-loader.d.ts.map +1 -0
  11. package/dist/geoparquet-loader.js +30 -0
  12. package/dist/geoparquet-loader.js.map +1 -0
  13. package/dist/index.cjs +5879 -5643
  14. package/dist/index.cjs.map +4 -4
  15. package/dist/index.d.ts +7 -7
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +5 -11
  18. package/dist/index.js.map +1 -1
  19. package/dist/lib/constants.d.ts +1 -1
  20. package/dist/lib/constants.js +2 -2
  21. package/dist/lib/constants.js.map +1 -1
  22. package/dist/lib/encoders/encode-arrow-to-parquet.d.ts +2 -2
  23. package/dist/lib/encoders/encode-arrow-to-parquet.d.ts.map +1 -1
  24. package/dist/lib/encoders/encode-arrow-to-parquet.js +3 -10
  25. package/dist/lib/encoders/encode-arrow-to-parquet.js.map +1 -1
  26. package/dist/lib/encoders/encode-table-to-parquet-js.d.ts +5 -0
  27. package/dist/lib/encoders/encode-table-to-parquet-js.d.ts.map +1 -0
  28. package/dist/lib/encoders/encode-table-to-parquet-js.js +149 -0
  29. package/dist/lib/encoders/encode-table-to-parquet-js.js.map +1 -0
  30. package/dist/lib/geo/geospatial-metadata.d.ts +67 -0
  31. package/dist/lib/geo/geospatial-metadata.d.ts.map +1 -0
  32. package/dist/lib/geo/geospatial-metadata.js +357 -0
  33. package/dist/lib/geo/geospatial-metadata.js.map +1 -0
  34. package/dist/lib/parsers/get-parquet-schema.d.ts.map +1 -1
  35. package/dist/lib/parsers/get-parquet-schema.js +3 -1
  36. package/dist/lib/parsers/get-parquet-schema.js.map +1 -1
  37. package/dist/lib/parsers/parse-geoparquet-to-geojson.d.ts +4 -4
  38. package/dist/lib/parsers/parse-geoparquet-to-geojson.d.ts.map +1 -1
  39. package/dist/lib/parsers/parse-geoparquet-to-geojson.js +19 -6
  40. package/dist/lib/parsers/parse-geoparquet-to-geojson.js.map +1 -1
  41. package/dist/lib/parsers/parse-parquet-tables.d.ts +50 -0
  42. package/dist/lib/parsers/parse-parquet-tables.d.ts.map +1 -0
  43. package/dist/lib/parsers/parse-parquet-tables.js +101 -0
  44. package/dist/lib/parsers/parse-parquet-tables.js.map +1 -0
  45. package/dist/lib/parsers/parse-parquet-to-arrow-js.d.ts +6 -0
  46. package/dist/lib/parsers/parse-parquet-to-arrow-js.d.ts.map +1 -0
  47. package/dist/lib/parsers/parse-parquet-to-arrow-js.js +23 -0
  48. package/dist/lib/parsers/parse-parquet-to-arrow-js.js.map +1 -0
  49. package/dist/lib/parsers/parse-parquet-to-arrow.d.ts +7 -7
  50. package/dist/lib/parsers/parse-parquet-to-arrow.d.ts.map +1 -1
  51. package/dist/lib/parsers/parse-parquet-to-arrow.js +45 -32
  52. package/dist/lib/parsers/parse-parquet-to-arrow.js.map +1 -1
  53. package/dist/lib/parsers/parse-parquet-to-columns.d.ts +3 -3
  54. package/dist/lib/parsers/parse-parquet-to-columns.d.ts.map +1 -1
  55. package/dist/lib/parsers/parse-parquet-to-columns.js +1 -4
  56. package/dist/lib/parsers/parse-parquet-to-columns.js.map +1 -1
  57. package/dist/lib/parsers/parse-parquet-to-json.d.ts +3 -3
  58. package/dist/lib/parsers/parse-parquet-to-json.d.ts.map +1 -1
  59. package/dist/lib/parsers/parse-parquet-to-json.js +77 -26
  60. package/dist/lib/parsers/parse-parquet-to-json.js.map +1 -1
  61. package/dist/lib/utils/load-wasm.d.ts +2 -2
  62. package/dist/lib/utils/load-wasm.d.ts.map +1 -1
  63. package/dist/lib/utils/load-wasm.js +7 -7
  64. package/dist/lib/utils/load-wasm.js.map +1 -1
  65. package/dist/lib/utils/make-stream-iterator.js +1 -1
  66. package/dist/lib/utils/make-stream-iterator.js.map +1 -1
  67. package/dist/lib/utils/normalize-parquet-options.d.ts +5 -0
  68. package/dist/lib/utils/normalize-parquet-options.d.ts.map +1 -0
  69. package/dist/lib/utils/normalize-parquet-options.js +11 -0
  70. package/dist/lib/utils/normalize-parquet-options.js.map +1 -0
  71. package/dist/parquet-format.d.ts +2 -0
  72. package/dist/parquet-format.d.ts.map +1 -1
  73. package/dist/parquet-format.js +2 -0
  74. package/dist/parquet-format.js.map +1 -1
  75. package/dist/parquet-js-loader.d.ts +57 -0
  76. package/dist/parquet-js-loader.d.ts.map +1 -0
  77. package/dist/parquet-js-loader.js +33 -0
  78. package/dist/parquet-js-loader.js.map +1 -0
  79. package/dist/parquet-js-writer.d.ts +34 -0
  80. package/dist/parquet-js-writer.d.ts.map +1 -0
  81. package/dist/parquet-js-writer.js +28 -0
  82. package/dist/parquet-js-writer.js.map +1 -0
  83. package/dist/parquet-loader-options.d.ts +56 -0
  84. package/dist/parquet-loader-options.d.ts.map +1 -0
  85. package/dist/parquet-loader-options.js +11 -0
  86. package/dist/parquet-loader-options.js.map +1 -0
  87. package/dist/parquet-loader-with-parser.d.ts +33 -0
  88. package/dist/parquet-loader-with-parser.d.ts.map +1 -0
  89. package/dist/parquet-loader-with-parser.js +40 -0
  90. package/dist/parquet-loader-with-parser.js.map +1 -0
  91. package/dist/parquet-loader.d.ts +62 -0
  92. package/dist/parquet-loader.d.ts.map +1 -0
  93. package/dist/parquet-loader.js +53 -0
  94. package/dist/parquet-loader.js.map +1 -0
  95. package/dist/parquet-wasm-loader-with-parser.d.ts +40 -0
  96. package/dist/parquet-wasm-loader-with-parser.d.ts.map +1 -0
  97. package/dist/parquet-wasm-loader-with-parser.js +68 -0
  98. package/dist/parquet-wasm-loader-with-parser.js.map +1 -0
  99. package/dist/parquet-writer.d.ts +10 -0
  100. package/dist/parquet-writer.d.ts.map +1 -0
  101. package/dist/parquet-writer.js +29 -0
  102. package/dist/parquet-writer.js.map +1 -0
  103. package/dist/parquet_wasm_bg.wasm +0 -0
  104. package/dist/parquetjs/codecs/declare.d.ts +2 -2
  105. package/dist/parquetjs/codecs/declare.d.ts.map +1 -1
  106. package/dist/parquetjs/codecs/dictionary.js +1 -1
  107. package/dist/parquetjs/codecs/dictionary.js.map +1 -1
  108. package/dist/parquetjs/codecs/plain.d.ts +1 -1
  109. package/dist/parquetjs/codecs/plain.d.ts.map +1 -1
  110. package/dist/parquetjs/codecs/plain.js +36 -41
  111. package/dist/parquetjs/codecs/plain.js.map +1 -1
  112. package/dist/parquetjs/codecs/rle.d.ts +1 -1
  113. package/dist/parquetjs/codecs/rle.d.ts.map +1 -1
  114. package/dist/parquetjs/codecs/rle.js +16 -21
  115. package/dist/parquetjs/codecs/rle.js.map +1 -1
  116. package/dist/parquetjs/compression.d.ts +2 -3
  117. package/dist/parquetjs/compression.d.ts.map +1 -1
  118. package/dist/parquetjs/compression.js +4 -105
  119. package/dist/parquetjs/compression.js.map +1 -1
  120. package/dist/parquetjs/encoder/parquet-encoder.d.ts +4 -4
  121. package/dist/parquetjs/encoder/parquet-encoder.d.ts.map +1 -1
  122. package/dist/parquetjs/encoder/parquet-encoder.js +38 -33
  123. package/dist/parquetjs/encoder/parquet-encoder.js.map +1 -1
  124. package/dist/parquetjs/parquet-thrift/ColumnIndex.js +1 -1
  125. package/dist/parquetjs/parquet-thrift/ColumnIndex.js.map +1 -1
  126. package/dist/parquetjs/parquet-thrift/index.d.ts +0 -1
  127. package/dist/parquetjs/parquet-thrift/index.d.ts.map +1 -1
  128. package/dist/parquetjs/parquet-thrift/index.js +0 -1
  129. package/dist/parquetjs/parquet-thrift/index.js.map +1 -1
  130. package/dist/parquetjs/parser/decoders.d.ts +1 -1
  131. package/dist/parquetjs/parser/decoders.d.ts.map +1 -1
  132. package/dist/parquetjs/parser/decoders.js +4 -22
  133. package/dist/parquetjs/parser/decoders.js.map +1 -1
  134. package/dist/parquetjs/parser/parquet-reader.d.ts +1 -1
  135. package/dist/parquetjs/parser/parquet-reader.d.ts.map +1 -1
  136. package/dist/parquetjs/parser/parquet-reader.js +9 -9
  137. package/dist/parquetjs/parser/parquet-reader.js.map +1 -1
  138. package/dist/parquetjs/schema/declare.d.ts +1 -1
  139. package/dist/parquetjs/schema/declare.d.ts.map +1 -1
  140. package/dist/parquetjs/schema/types.d.ts.map +1 -1
  141. package/dist/parquetjs/schema/types.js +36 -35
  142. package/dist/parquetjs/schema/types.js.map +1 -1
  143. package/dist/parquetjs/utils/binary-utils.d.ts +39 -0
  144. package/dist/parquetjs/utils/binary-utils.d.ts.map +1 -0
  145. package/dist/parquetjs/utils/binary-utils.js +102 -0
  146. package/dist/parquetjs/utils/binary-utils.js.map +1 -0
  147. package/dist/parquetjs/utils/file-utils.d.ts +1 -1
  148. package/dist/parquetjs/utils/file-utils.d.ts.map +1 -1
  149. package/dist/parquetjs/utils/file-utils.js +3 -3
  150. package/dist/parquetjs/utils/file-utils.js.map +1 -1
  151. package/dist/parquetjs/utils/read-utils.d.ts +4 -4
  152. package/dist/parquetjs/utils/read-utils.d.ts.map +1 -1
  153. package/dist/parquetjs/utils/read-utils.js +12 -17
  154. package/dist/parquetjs/utils/read-utils.js.map +1 -1
  155. package/dist/parquetjs/utils/uint8-array-compact-protocol-writer.d.ts +78 -0
  156. package/dist/parquetjs/utils/uint8-array-compact-protocol-writer.d.ts.map +1 -0
  157. package/dist/parquetjs/utils/uint8-array-compact-protocol-writer.js +213 -0
  158. package/dist/parquetjs/utils/uint8-array-compact-protocol-writer.js.map +1 -0
  159. package/dist/parquetjs/utils/uint8-array-compact-protocol.d.ts +78 -0
  160. package/dist/parquetjs/utils/uint8-array-compact-protocol.d.ts.map +1 -0
  161. package/dist/parquetjs/utils/uint8-array-compact-protocol.js +276 -0
  162. package/dist/parquetjs/utils/uint8-array-compact-protocol.js.map +1 -0
  163. package/dist/parquetjs/utils/uint8-array-transport.d.ts +25 -0
  164. package/dist/parquetjs/utils/uint8-array-transport.d.ts.map +1 -0
  165. package/dist/parquetjs/utils/uint8-array-transport.js +62 -0
  166. package/dist/parquetjs/utils/uint8-array-transport.js.map +1 -0
  167. package/dist/unbundled.d.ts +6 -0
  168. package/dist/unbundled.d.ts.map +1 -0
  169. package/dist/unbundled.js +7 -0
  170. package/dist/unbundled.js.map +1 -0
  171. package/package.json +21 -25
  172. package/src/bundled.ts +9 -0
  173. package/src/geoparquet-loader-with-parser.ts +95 -0
  174. package/src/geoparquet-loader.ts +54 -0
  175. package/src/index.ts +7 -25
  176. package/src/lib/constants.ts +1 -1
  177. package/src/lib/encoders/encode-arrow-to-parquet.ts +9 -15
  178. package/src/lib/encoders/encode-table-to-parquet-js.ts +199 -0
  179. package/src/lib/geo/geospatial-metadata.ts +507 -0
  180. package/src/lib/parsers/get-parquet-schema.ts +3 -1
  181. package/src/lib/parsers/parse-geoparquet-to-geojson.ts +27 -14
  182. package/src/lib/parsers/parse-parquet-tables.ts +137 -0
  183. package/src/lib/parsers/parse-parquet-to-arrow-js.ts +36 -0
  184. package/src/lib/parsers/parse-parquet-to-arrow.ts +63 -36
  185. package/src/lib/parsers/parse-parquet-to-columns.ts +6 -7
  186. package/src/lib/parsers/parse-parquet-to-json.ts +101 -33
  187. package/src/lib/utils/load-wasm.ts +16 -9
  188. package/src/lib/utils/make-stream-iterator.ts +1 -1
  189. package/src/lib/utils/normalize-parquet-options.ts +14 -0
  190. package/src/parquet-format.ts +2 -0
  191. package/src/parquet-js-loader.ts +43 -0
  192. package/src/parquet-js-writer.ts +52 -0
  193. package/src/parquet-loader-options.ts +63 -0
  194. package/src/parquet-loader-with-parser.ts +68 -0
  195. package/src/parquet-loader.ts +79 -0
  196. package/src/parquet-wasm-loader-with-parser.ts +115 -0
  197. package/src/parquet-writer.ts +44 -0
  198. package/src/parquetjs/codecs/declare.ts +2 -2
  199. package/src/parquetjs/codecs/dictionary.ts +1 -1
  200. package/src/parquetjs/codecs/plain.ts +67 -53
  201. package/src/parquetjs/codecs/rle.ts +20 -26
  202. package/src/parquetjs/compression.ts +7 -114
  203. package/src/parquetjs/encoder/parquet-encoder.ts +49 -43
  204. package/src/parquetjs/parquet-thrift/ColumnIndex.ts +1 -1
  205. package/src/parquetjs/parquet-thrift/index.ts +0 -2
  206. package/src/parquetjs/parser/decoders.ts +5 -23
  207. package/src/parquetjs/parser/parquet-reader.ts +10 -12
  208. package/src/parquetjs/schema/declare.ts +1 -1
  209. package/src/parquetjs/schema/types.ts +48 -40
  210. package/src/parquetjs/utils/binary-utils.ts +127 -0
  211. package/src/parquetjs/utils/file-utils.ts +4 -4
  212. package/src/parquetjs/utils/read-utils.ts +19 -34
  213. package/src/parquetjs/utils/uint8-array-compact-protocol-writer.ts +254 -0
  214. package/src/parquetjs/utils/uint8-array-compact-protocol.ts +322 -0
  215. package/src/parquetjs/utils/uint8-array-transport.ts +79 -0
  216. package/src/unbundled.ts +9 -0
  217. package/dist/parquet-arrow-loader.d.ts +0 -43
  218. package/dist/parquet-arrow-loader.d.ts.map +0 -1
  219. package/dist/parquet-arrow-loader.js +0 -49
  220. package/dist/parquet-arrow-loader.js.map +0 -1
  221. package/dist/parquet-arrow-writer.d.ts +0 -9
  222. package/dist/parquet-arrow-writer.d.ts.map +0 -1
  223. package/dist/parquet-arrow-writer.js +0 -23
  224. package/dist/parquet-arrow-writer.js.map +0 -1
  225. package/dist/parquet-json-loader.d.ts +0 -148
  226. package/dist/parquet-json-loader.d.ts.map +0 -1
  227. package/dist/parquet-json-loader.js +0 -106
  228. package/dist/parquet-json-loader.js.map +0 -1
  229. package/dist/parquet-json-writer.d.ts +0 -19
  230. package/dist/parquet-json-writer.d.ts.map +0 -1
  231. package/dist/parquet-json-writer.js +0 -20
  232. package/dist/parquet-json-writer.js.map +0 -1
  233. package/dist/polyfills/buffer/buffer-polyfill.browser.d.ts +0 -3
  234. package/dist/polyfills/buffer/buffer-polyfill.browser.d.ts.map +0 -1
  235. package/dist/polyfills/buffer/buffer-polyfill.browser.js +0 -12
  236. package/dist/polyfills/buffer/buffer-polyfill.browser.js.map +0 -1
  237. package/dist/polyfills/buffer/buffer-polyfill.node.d.ts +0 -3
  238. package/dist/polyfills/buffer/buffer-polyfill.node.d.ts.map +0 -1
  239. package/dist/polyfills/buffer/buffer-polyfill.node.js +0 -17
  240. package/dist/polyfills/buffer/buffer-polyfill.node.js.map +0 -1
  241. package/dist/polyfills/buffer/buffer.d.ts +0 -222
  242. package/dist/polyfills/buffer/buffer.d.ts.map +0 -1
  243. package/dist/polyfills/buffer/buffer.js +0 -1868
  244. package/dist/polyfills/buffer/buffer.js.map +0 -1
  245. package/dist/polyfills/buffer/index.d.ts +0 -4
  246. package/dist/polyfills/buffer/index.d.ts.map +0 -1
  247. package/dist/polyfills/buffer/index.js +0 -9
  248. package/dist/polyfills/buffer/index.js.map +0 -1
  249. package/dist/polyfills/buffer/install-buffer-polyfill.d.ts +0 -2
  250. package/dist/polyfills/buffer/install-buffer-polyfill.d.ts.map +0 -1
  251. package/dist/polyfills/buffer/install-buffer-polyfill.js +0 -10
  252. package/dist/polyfills/buffer/install-buffer-polyfill.js.map +0 -1
  253. package/dist/workers/parquet-json-worker.d.ts +0 -2
  254. package/dist/workers/parquet-json-worker.d.ts.map +0 -1
  255. package/dist/workers/parquet-json-worker.js +0 -7
  256. package/dist/workers/parquet-json-worker.js.map +0 -1
  257. package/src/parquet-arrow-loader.ts +0 -74
  258. package/src/parquet-arrow-writer.ts +0 -33
  259. package/src/parquet-json-loader.ts +0 -160
  260. package/src/parquet-json-writer.ts +0 -27
  261. package/src/parquetjs/modules.d.ts +0 -25
  262. package/src/polyfills/buffer/buffer-polyfill.browser.ts +0 -14
  263. package/src/polyfills/buffer/buffer-polyfill.node.ts +0 -19
  264. package/src/polyfills/buffer/buffer.ts +0 -2205
  265. package/src/polyfills/buffer/index.ts +0 -11
  266. package/src/polyfills/buffer/install-buffer-polyfill.ts +0 -12
  267. package/src/workers/parquet-json-worker.ts +0 -8
@@ -0,0 +1,23 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { convertTable } from '@loaders.gl/schema-utils';
5
+ import { normalizeArrowTableGeoMetadata } from "../geo/geospatial-metadata.js";
6
+ import { parseParquetFile, parseParquetFileInBatches } from "./parse-parquet-to-json.js";
7
+ export async function parseParquetFileToArrowWithJs(file, options) {
8
+ const objectRowTable = await parseParquetFile(file, options);
9
+ return normalizeArrowTableGeoMetadata(convertTable(objectRowTable, 'arrow-table'));
10
+ }
11
+ export async function* parseParquetFileToArrowInBatchesWithJs(file, options) {
12
+ for await (const batch of parseParquetFileInBatches(file, options)) {
13
+ const arrowTable = normalizeArrowTableGeoMetadata(convertTable(batch, 'arrow-table'));
14
+ yield {
15
+ batchType: batch.batchType,
16
+ shape: arrowTable.shape,
17
+ schema: arrowTable.schema,
18
+ data: arrowTable.data,
19
+ length: batch.length
20
+ };
21
+ }
22
+ }
23
+ //# sourceMappingURL=parse-parquet-to-arrow-js.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-parquet-to-arrow-js.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-arrow-js.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAIpC,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAGtD,OAAO,EAAC,8BAA8B,EAAC,sCAAmC;AAC1E,OAAO,EAAC,gBAAgB,EAAE,yBAAyB,EAAC,mCAAgC;AAEpF,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,IAAkB,EAClB,OAA8B;IAE9B,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7D,OAAO,8BAA8B,CAAC,YAAY,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,sCAAsC,CAC3D,IAAkB,EAClB,OAA8B;IAE9B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,yBAAyB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QACnE,MAAM,UAAU,GAAG,8BAA8B,CAAC,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;QAEtF,MAAM;YACJ,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import type { ReadableFile } from '@loaders.gl/loader-utils';
2
2
  import type { ArrowTable, ArrowTableBatch } from '@loaders.gl/schema';
3
- import type * as parquetWasm from 'parquet-wasm';
4
- export declare function parseParquetFileToArrow(file: ReadableFile, options?: parquetWasm.ReaderOptions & {
5
- wasmUrl: string;
6
- }): Promise<ArrowTable>;
7
- export declare function parseParquetFileToArrowInBatches(file: ReadableFile, options: parquetWasm.ReaderOptions & {
8
- wasmUrl: string;
9
- }): AsyncIterable<ArrowTableBatch>;
3
+ import type * as parquetWasm from 'parquet-wasm/esm/parquet_wasm.js';
4
+ type ParquetWasmReaderOptions = parquetWasm.ReaderOptions & {
5
+ wasmUrl?: string;
6
+ };
7
+ export declare function parseParquetFileToArrow(file: ReadableFile, options?: ParquetWasmReaderOptions): Promise<ArrowTable>;
8
+ export declare function parseParquetFileToArrowInBatches(file: ReadableFile, options?: ParquetWasmReaderOptions): AsyncIterable<ArrowTableBatch>;
9
+ export {};
10
10
  //# sourceMappingURL=parse-parquet-to-arrow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-parquet-to-arrow.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-arrow.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAC,UAAU,EAAE,eAAe,EAAS,MAAM,oBAAoB,CAAC;AAG5E,OAAO,KAAK,KAAK,WAAW,MAAM,cAAc,CAAC;AAMjD,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,WAAW,CAAC,aAAa,GAAG;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,GACtD,OAAO,CAAC,UAAU,CAAC,CAsBrB;AAED,wBAAuB,gCAAgC,CACrD,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,WAAW,CAAC,aAAa,GAAG;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,GACrD,aAAa,CAAC,eAAe,CAAC,CA0BhC"}
1
+ {"version":3,"file":"parse-parquet-to-arrow.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-arrow.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAC,UAAU,EAAE,eAAe,EAAS,MAAM,oBAAoB,CAAC;AAE5E,OAAO,KAAK,KAAK,WAAW,MAAM,kCAAkC,CAAC;AAUrE,KAAK,wBAAwB,GAAG,WAAW,CAAC,aAAa,GAAG;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC;AAE/E,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,UAAU,CAAC,CAqBrB;AAED,wBAAuB,gCAAgC,CACrD,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,wBAAwB,GACjC,aAAa,CAAC,eAAe,CAAC,CAgChC"}
@@ -1,52 +1,65 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { convertArrowToSchema } from '@loaders.gl/schema-utils';
5
4
  import * as arrow from 'apache-arrow';
5
+ import { normalizeArrowTableGeoMetadata, getParquetFileMetadataMap } from "../geo/geospatial-metadata.js";
6
6
  import { loadWasm } from "../utils/load-wasm.js";
7
7
  import { makeStreamIterator } from "../utils/make-stream-iterator.js";
8
8
  export async function parseParquetFileToArrow(file, options) {
9
9
  const wasmUrl = options?.wasmUrl;
10
+ const readerOptions = getReaderOptions(options);
10
11
  const wasm = await loadWasm(wasmUrl);
11
- let parquetFile;
12
- if (file.handle instanceof Blob) {
13
- // TODO - let's assume fromFile() works on Blobs and not just on File...
14
- parquetFile = await wasm.ParquetFile.fromFile(file.handle);
12
+ const parquetFile = await createParquetFile(file, wasm);
13
+ try {
14
+ const wasmTable = await parquetFile.read(readerOptions);
15
+ const ipcStream = wasmTable.intoIPCStream();
16
+ const arrowTable = arrow.tableFromIPC(ipcStream);
17
+ return normalizeArrowTableGeoMetadata({
18
+ shape: 'arrow-table',
19
+ data: arrowTable
20
+ }, getParquetFileMetadataMap(parquetFile.metadata()));
15
21
  }
16
- else {
17
- parquetFile = await wasm.ParquetFile.fromUrl(file.url);
22
+ finally {
23
+ parquetFile.free();
18
24
  }
19
- const wasmTable = await parquetFile.read(options);
20
- const ipcStream = wasmTable.intoIPCStream();
21
- const arrowTable = arrow.tableFromIPC(ipcStream);
22
- return {
23
- shape: 'arrow-table',
24
- schema: convertArrowToSchema(arrowTable.schema),
25
- data: arrowTable
26
- };
27
25
  }
28
26
  export async function* parseParquetFileToArrowInBatches(file, options) {
29
27
  const wasmUrl = options?.wasmUrl;
28
+ const readerOptions = getReaderOptions(options);
30
29
  const wasm = await loadWasm(wasmUrl);
31
- let parquetFile;
32
- if (file.handle instanceof Blob) {
33
- // Works on Blobs: https://kylebarron.dev/parquet-wasm/classes/esm_parquet_wasm.ParquetFile.html#fromFile
34
- parquetFile = await wasm.ParquetFile.fromFile(file.handle);
30
+ const parquetFile = await createParquetFile(file, wasm);
31
+ try {
32
+ const stream = await parquetFile.stream(readerOptions);
33
+ const schemaMetadata = getParquetFileMetadataMap(parquetFile.metadata());
34
+ let schema;
35
+ for await (const wasmRecordBatch of makeStreamIterator(stream)) {
36
+ const normalizedArrowTable = normalizeArrowTableGeoMetadata({
37
+ shape: 'arrow-table',
38
+ data: arrow.tableFromIPC(wasmRecordBatch.intoIPCStream())
39
+ }, schemaMetadata);
40
+ schema ||= normalizedArrowTable.schema;
41
+ yield {
42
+ batchType: 'data',
43
+ shape: 'arrow-table',
44
+ schema,
45
+ data: normalizedArrowTable.data,
46
+ length: normalizedArrowTable.data.numRows
47
+ };
48
+ }
35
49
  }
36
- else {
37
- parquetFile = await wasm.ParquetFile.fromUrl(file.url);
50
+ finally {
51
+ parquetFile.free();
38
52
  }
39
- const stream = await parquetFile.stream(options);
40
- let schema;
41
- for await (const recordBatch of makeStreamIterator(stream)) {
42
- schema ||= convertArrowToSchema(recordBatch.schema);
43
- yield {
44
- batchType: 'data',
45
- shape: 'arrow-table',
46
- schema,
47
- data: new arrow.Table(recordBatch),
48
- length: recordBatch.numRows
49
- };
53
+ }
54
+ async function createParquetFile(file, wasm) {
55
+ if (file.handle instanceof Blob) {
56
+ // Works on Blobs: https://kylebarron.dev/parquet-wasm/classes/esm_parquet_wasm.ParquetFile.html#fromFile
57
+ return await wasm.ParquetFile.fromFile(file.handle);
50
58
  }
59
+ return await wasm.ParquetFile.fromUrl(file.url);
60
+ }
61
+ function getReaderOptions(options) {
62
+ const { wasmUrl, ...readerOptions } = options || {};
63
+ return readerOptions;
51
64
  }
52
65
  //# sourceMappingURL=parse-parquet-to-arrow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-parquet-to-arrow.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-arrow.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAKpC,OAAO,EAAC,oBAAoB,EAAC,MAAM,0BAA0B,CAAC;AAG9D,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAC,QAAQ,EAAC,8BAA2B;AAC5C,OAAO,EAAC,kBAAkB,EAAC,yCAAsC;AAEjE,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,IAAkB,EAClB,OAAuD;IAEvD,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;IAEjC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;IAErC,IAAI,WAAoC,CAAC;IACzC,IAAI,IAAI,CAAC,MAAM,YAAY,IAAI,EAAE,CAAC;QAChC,wEAAwE;QACxE,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAc,CAAC,CAAC;IACrE,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;IAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAEjD,OAAO;QACL,KAAK,EAAE,aAAa;QACpB,MAAM,EAAE,oBAAoB,CAAC,UAAU,CAAC,MAAM,CAAC;QAC/C,IAAI,EAAE,UAAU;KACjB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,gCAAgC,CACrD,IAAkB,EAClB,OAAsD;IAEtD,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;IAEjC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;IAErC,IAAI,WAAoC,CAAC;IACzC,IAAI,IAAI,CAAC,MAAM,YAAY,IAAI,EAAE,CAAC;QAChC,yGAAyG;QACzG,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAc,CAAC,CAAC;IACrE,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,MAAM,GAAsC,MAAM,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEpF,IAAI,MAAc,CAAC;IACnB,IAAI,KAAK,EAAE,MAAM,WAAW,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3D,MAAM,KAAK,oBAAoB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM;YACJ,SAAS,EAAE,MAAM;YACjB,KAAK,EAAE,aAAa;YACpB,MAAM;YACN,IAAI,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;YAClC,MAAM,EAAE,WAAW,CAAC,OAAO;SAC5B,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"parse-parquet-to-arrow.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-arrow.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAOpC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EAC1B,sCAAmC;AACpC,OAAO,EAAC,QAAQ,EAAC,8BAA2B;AAC5C,OAAO,EAAC,kBAAkB,EAAC,yCAAsC;AAIjE,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,IAAkB,EAClB,OAAkC;IAElC,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;IACjC,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAEhD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;IAErC,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxD,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACjD,OAAO,8BAA8B,CACnC;YACE,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,UAAU;SACjB,EACD,yBAAyB,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAClD,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,WAAW,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,gCAAgC,CACrD,IAAkB,EAClB,OAAkC;IAElC,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;IACjC,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAEhD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;IAErC,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACvD,MAAM,cAAc,GAAG,yBAAyB,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEzE,IAAI,MAA0B,CAAC;QAC/B,IAAI,KAAK,EAAE,MAAM,eAAe,IAAI,kBAAkB,CAA0B,MAAM,CAAC,EAAE,CAAC;YACxF,MAAM,oBAAoB,GAAG,8BAA8B,CACzD;gBACE,KAAK,EAAE,aAAa;gBACpB,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;aAC1D,EACD,cAAc,CACf,CAAC;YACF,MAAM,KAAK,oBAAoB,CAAC,MAAM,CAAC;YACvC,MAAM;gBACJ,SAAS,EAAE,MAAM;gBACjB,KAAK,EAAE,aAAa;gBACpB,MAAM;gBACN,IAAI,EAAE,oBAAoB,CAAC,IAAI;gBAC/B,MAAM,EAAE,oBAAoB,CAAC,IAAI,CAAC,OAAO;aAC1C,CAAC;QACJ,CAAC;IACH,CAAC;YAAS,CAAC;QACT,WAAW,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,IAAkB,EAClB,IAAwB;IAExB,IAAI,IAAI,CAAC,MAAM,YAAY,IAAI,EAAE,CAAC;QAChC,yGAAyG;QACzG,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAc,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAkC;IAC1D,MAAM,EAAC,OAAO,EAAE,GAAG,aAAa,EAAC,GAAG,OAAO,IAAI,EAAE,CAAC;IAClD,OAAO,aAAa,CAAC;AACvB,CAAC"}
@@ -1,12 +1,12 @@
1
1
  import type { ColumnarTable, ColumnarTableBatch } from '@loaders.gl/schema';
2
2
  import type { ReadableFile } from '@loaders.gl/loader-utils';
3
- import type { ParquetJSONLoaderOptions } from "../../parquet-json-loader.js";
3
+ import type { ParquetLoaderOptions } from "../../parquet-loader.js";
4
4
  /**
5
5
  * @deprecated - Use parseParquetToArrow
6
6
  */
7
- export declare function parseParquetFileInColumns(file: ReadableFile, options?: ParquetJSONLoaderOptions): Promise<ColumnarTable>;
7
+ export declare function parseParquetFileInColumns(file: ReadableFile, options?: ParquetLoaderOptions): Promise<ColumnarTable>;
8
8
  /**
9
9
  * @deprecated
10
10
  */
11
- export declare function parseParquetFileInColumnarBatches(file: ReadableFile, options?: ParquetJSONLoaderOptions): AsyncIterable<ColumnarTableBatch>;
11
+ export declare function parseParquetFileInColumnarBatches(file: ReadableFile, options?: ParquetLoaderOptions): AsyncIterable<ColumnarTableBatch>;
12
12
  //# sourceMappingURL=parse-parquet-to-columns.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-parquet-to-columns.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-columns.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,aAAa,EAAE,kBAAkB,EAAS,MAAM,oBAAoB,CAAC;AAClF,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAC,wBAAwB,EAAC,qCAAkC;AASxE;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,aAAa,CAAC,CAYxB;AAED;;GAEG;AACH,wBAAuB,iCAAiC,CACtD,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,wBAAwB,GACjC,aAAa,CAAC,kBAAkB,CAAC,CAgBnC"}
1
+ {"version":3,"file":"parse-parquet-to-columns.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-columns.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,aAAa,EAAE,kBAAkB,EAAS,MAAM,oBAAoB,CAAC;AAClF,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAC,oBAAoB,EAAC,gCAA6B;AAQ/D;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,aAAa,CAAC,CAWxB;AAED;;GAEG;AACH,wBAAuB,iCAAiC,CACtD,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,aAAa,CAAC,kBAAkB,CAAC,CAiBnC"}
@@ -4,13 +4,11 @@
4
4
  import { ParquetReader } from "../../parquetjs/parser/parquet-reader.js";
5
5
  import { materializeColumns } from "../../parquetjs/schema/shred.js";
6
6
  import { getSchemaFromParquetReader } from "./get-parquet-schema.js";
7
- import { installBufferPolyfill } from "../../polyfills/buffer/index.js";
8
7
  import { preloadCompressions } from "../../parquetjs/compression.js";
9
8
  /**
10
9
  * @deprecated - Use parseParquetToArrow
11
10
  */
12
11
  export async function parseParquetFileInColumns(file, options) {
13
- installBufferPolyfill();
14
12
  await preloadCompressions(options);
15
13
  for await (const batch of parseParquetFileInColumnarBatches(file, options)) {
16
14
  return {
@@ -25,14 +23,13 @@ export async function parseParquetFileInColumns(file, options) {
25
23
  * @deprecated
26
24
  */
27
25
  export async function* parseParquetFileInColumnarBatches(file, options) {
28
- installBufferPolyfill();
29
26
  await preloadCompressions(options);
30
27
  const reader = new ParquetReader(file);
31
28
  // Extract schema and geo metadata
32
29
  const schema = await getSchemaFromParquetReader(reader);
33
30
  const parquetSchema = await reader.getSchema();
34
31
  // Iterate over row batches
35
- const rowGroups = reader.rowGroupIterator(options?.parquet);
32
+ const rowGroups = reader.rowGroupIterator(options?.parquet?.columns?.length ? { columnList: options.parquet.columns } : undefined);
36
33
  for await (const rowGroup of rowGroups) {
37
34
  yield convertRowGroupToTableBatch(rowGroup, parquetSchema, schema);
38
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parse-parquet-to-columns.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-columns.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAKpC,OAAO,EAAC,aAAa,EAAC,iDAA8C;AAGpE,OAAO,EAAC,kBAAkB,EAAC,wCAAqC;AAChE,OAAO,EAAC,0BAA0B,EAAC,gCAA6B;AAChE,OAAO,EAAC,qBAAqB,EAAC,wCAAqC;AACnE,OAAO,EAAC,mBAAmB,EAAC,uCAAoC;AAEhE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,IAAkB,EAClB,OAAkC;IAElC,qBAAqB,EAAE,CAAC;IACxB,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAEnC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,iCAAiC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QAC3E,OAAO;YACL,KAAK,EAAE,gBAAgB;YACvB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,iCAAiC,CACtD,IAAkB,EAClB,OAAkC;IAElC,qBAAqB,EAAE,CAAC;IACxB,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAEnC,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IAEvC,kCAAkC;IAClC,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAExD,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;IAE/C,2BAA2B;IAC3B,MAAM,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5D,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACvC,MAAM,2BAA2B,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAClC,QAAyB,EACzB,aAA4B,EAC5B,MAAc;IAEd,kEAAkE;IAClE,MAAM,IAAI,GAAG,kBAAkB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACzD,OAAO;QACL,KAAK,EAAE,gBAAgB;QACvB,SAAS,EAAE,MAAM;QACjB,MAAM;QACN,IAAI;QACJ,MAAM,EAAE,QAAQ,CAAC,QAAQ;KAC1B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"parse-parquet-to-columns.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-columns.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAKpC,OAAO,EAAC,aAAa,EAAC,iDAA8C;AAGpE,OAAO,EAAC,kBAAkB,EAAC,wCAAqC;AAChE,OAAO,EAAC,0BAA0B,EAAC,gCAA6B;AAChE,OAAO,EAAC,mBAAmB,EAAC,uCAAoC;AAEhE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,IAAkB,EAClB,OAA8B;IAE9B,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAEnC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,iCAAiC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QAC3E,OAAO;YACL,KAAK,EAAE,gBAAgB;YACvB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,iCAAiC,CACtD,IAAkB,EAClB,OAA8B;IAE9B,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAEnC,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IAEvC,kCAAkC;IAClC,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAExD,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;IAE/C,2BAA2B;IAC3B,MAAM,SAAS,GAAG,MAAM,CAAC,gBAAgB,CACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,EAAC,CAAC,CAAC,CAAC,SAAS,CACtF,CAAC;IACF,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACvC,MAAM,2BAA2B,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAClC,QAAyB,EACzB,aAA4B,EAC5B,MAAc;IAEd,kEAAkE;IAClE,MAAM,IAAI,GAAG,kBAAkB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACzD,OAAO;QACL,KAAK,EAAE,gBAAgB;QACvB,SAAS,EAAE,MAAM;QACjB,MAAM;QACN,IAAI;QACJ,MAAM,EAAE,QAAQ,CAAC,QAAQ;KAC1B,CAAC;AACJ,CAAC"}
@@ -1,17 +1,17 @@
1
1
  import type { ReadableFile } from '@loaders.gl/loader-utils';
2
2
  import type { ObjectRowTable, ObjectRowTableBatch } from '@loaders.gl/schema';
3
- import type { ParquetJSONLoaderOptions } from "../../parquet-json-loader.js";
3
+ import type { ParquetLoaderOptions } from "../../parquet-loader-options.js";
4
4
  /**
5
5
  * * Parse a parquet file using parquetjs
6
6
  * @param file
7
7
  * @param options
8
8
  * @returns
9
9
  */
10
- export declare function parseParquetFile(file: ReadableFile, options?: ParquetJSONLoaderOptions): Promise<ObjectRowTable>;
10
+ export declare function parseParquetFile(file: ReadableFile, options?: ParquetLoaderOptions): Promise<ObjectRowTable>;
11
11
  /**
12
12
  * Parse a parquet file in batches using parquetjs
13
13
  * @param file
14
14
  * @param options
15
15
  */
16
- export declare function parseParquetFileInBatches(file: ReadableFile, options?: ParquetJSONLoaderOptions): AsyncIterable<ObjectRowTableBatch>;
16
+ export declare function parseParquetFileInBatches(file: ReadableFile, options?: ParquetLoaderOptions): AsyncIterable<ObjectRowTableBatch>;
17
17
  //# sourceMappingURL=parse-parquet-to-json.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-parquet-to-json.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-json.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAC,cAAc,EAAE,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AAE5E,OAAO,KAAK,EAAC,wBAAwB,EAAC,qCAAkC;AAOxE;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,cAAc,CAAC,CAqCzB;AAED;;;;GAIG;AACH,wBAAuB,yBAAyB,CAC9C,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,wBAAwB,GACjC,aAAa,CAAC,mBAAmB,CAAC,CAwBpC"}
1
+ {"version":3,"file":"parse-parquet-to-json.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-json.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAC,cAAc,EAAE,mBAAmB,EAAS,MAAM,oBAAoB,CAAC;AAEpF,OAAO,KAAK,EAAC,oBAAoB,EAAC,wCAAqC;AAMvE;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,cAAc,CAAC,CA2CzB;AAED;;;;GAIG;AACH,wBAAuB,yBAAyB,CAC9C,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,aAAa,CAAC,mBAAmB,CAAC,CAsDpC"}
@@ -4,7 +4,6 @@
4
4
  import { default as log } from '@probe.gl/log';
5
5
  import { ParquetReader } from "../../parquetjs/parser/parquet-reader.js";
6
6
  import { getSchemaFromParquetReader } from "./get-parquet-schema.js";
7
- import { installBufferPolyfill } from "../../polyfills/buffer/index.js";
8
7
  import { preloadCompressions } from "../../parquetjs/compression.js";
9
8
  /**
10
9
  * * Parse a parquet file using parquetjs
@@ -13,32 +12,37 @@ import { preloadCompressions } from "../../parquetjs/compression.js";
13
12
  * @returns
14
13
  */
15
14
  export async function parseParquetFile(file, options) {
16
- installBufferPolyfill();
17
15
  await preloadCompressions(options);
18
16
  const reader = new ParquetReader(file, {
19
17
  preserveBinary: options?.parquet?.preserveBinary
20
18
  });
21
19
  const schema = await getSchemaFromParquetReader(reader);
20
+ const projectedSchema = projectSchema(schema, options?.parquet?.columns);
22
21
  const rows = [];
23
- const rowBatches = reader.rowBatchIterator(options?.parquet);
22
+ const rowBatches = reader.rowBatchIterator(getParquetIterationProps(options));
23
+ const rowOffset = options?.parquet?.offset || 0;
24
+ const rowLimit = options?.parquet?.limit;
25
+ let rowsSkipped = 0;
24
26
  for await (const rowBatch of rowBatches) {
25
- let limitHasReached = false;
26
- // we have only one input batch so return
27
27
  for (const row of rowBatch) {
28
- if (options?.limit && rows.length >= options?.core?.limit) {
29
- limitHasReached = true;
30
- break;
28
+ if (rowsSkipped < rowOffset) {
29
+ rowsSkipped++;
30
+ continue;
31
+ }
32
+ if (rowLimit !== undefined && rows.length >= rowLimit) {
33
+ log.warn(`Rows number limit has been reached. Only first ${rowLimit} are loaded`)();
34
+ return {
35
+ shape: 'object-row-table',
36
+ schema: projectedSchema,
37
+ data: rows
38
+ };
31
39
  }
32
40
  rows.push(row);
33
41
  }
34
- if (limitHasReached) {
35
- log.warn(`Rows number limit has been reached. Only first ${options?.core?.limit} are loaded`)();
36
- break;
37
- }
38
42
  }
39
43
  const objectRowTable = {
40
44
  shape: 'object-row-table',
41
- schema,
45
+ schema: projectedSchema,
42
46
  data: rows
43
47
  };
44
48
  return objectRowTable;
@@ -49,25 +53,72 @@ export async function parseParquetFile(file, options) {
49
53
  * @param options
50
54
  */
51
55
  export async function* parseParquetFileInBatches(file, options) {
52
- installBufferPolyfill();
53
56
  await preloadCompressions(options);
54
57
  const reader = new ParquetReader(file, {
55
58
  preserveBinary: options?.parquet?.preserveBinary
56
59
  });
57
60
  const schema = await getSchemaFromParquetReader(reader);
58
- const rowBatches = reader.rowBatchIterator(options?.parquet);
61
+ const projectedSchema = projectSchema(schema, options?.parquet?.columns);
62
+ const rowBatches = reader.rowBatchIterator(getParquetIterationProps(options));
63
+ const rowOffset = options?.parquet?.offset || 0;
64
+ const rowLimit = options?.parquet?.limit;
65
+ const outputBatchSize = options?.parquet?.batchSize;
66
+ let rowsSkipped = 0;
67
+ let rowsYielded = 0;
68
+ let reachedLimit = false;
59
69
  for await (const rows of rowBatches) {
60
- const objectRowTable = {
61
- shape: 'object-row-table',
62
- schema,
63
- data: rows
64
- };
65
- yield {
66
- batchType: 'data',
67
- schema,
68
- ...objectRowTable,
69
- length: rows.length
70
- };
70
+ const nextRows = [];
71
+ for (const row of rows) {
72
+ if (rowsSkipped < rowOffset) {
73
+ rowsSkipped++;
74
+ continue;
75
+ }
76
+ if (rowLimit !== undefined && rowsYielded >= rowLimit) {
77
+ reachedLimit = true;
78
+ break;
79
+ }
80
+ nextRows.push(row);
81
+ rowsYielded++;
82
+ }
83
+ if (nextRows.length === 0) {
84
+ continue;
85
+ }
86
+ if (!outputBatchSize || outputBatchSize <= 0) {
87
+ yield makeObjectRowBatch(projectedSchema, nextRows);
88
+ continue;
89
+ }
90
+ for (let rowIndex = 0; rowIndex < nextRows.length; rowIndex += outputBatchSize) {
91
+ yield makeObjectRowBatch(projectedSchema, nextRows.slice(rowIndex, rowIndex + outputBatchSize));
92
+ }
93
+ if (reachedLimit) {
94
+ return;
95
+ }
71
96
  }
72
97
  }
98
+ function getParquetIterationProps(options) {
99
+ const columnList = options?.parquet?.columns;
100
+ return columnList?.length ? { columnList } : undefined;
101
+ }
102
+ function makeObjectRowBatch(schema, rows) {
103
+ const objectRowTable = {
104
+ shape: 'object-row-table',
105
+ schema,
106
+ data: rows
107
+ };
108
+ return {
109
+ batchType: 'data',
110
+ schema,
111
+ ...objectRowTable,
112
+ length: rows.length
113
+ };
114
+ }
115
+ function projectSchema(schema, columns) {
116
+ if (!columns?.length) {
117
+ return schema;
118
+ }
119
+ return {
120
+ ...schema,
121
+ fields: schema.fields.filter(field => columns.includes(field.name))
122
+ };
123
+ }
73
124
  //# sourceMappingURL=parse-parquet-to-json.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-parquet-to-json.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-json.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,OAAO,IAAI,GAAG,EAAC,MAAM,eAAe,CAAC;AAM7C,OAAO,EAAC,aAAa,EAAC,iDAA8C;AACpE,OAAO,EAAC,0BAA0B,EAAC,gCAA6B;AAChE,OAAO,EAAC,qBAAqB,EAAC,wCAAqC;AACnE,OAAO,EAAC,mBAAmB,EAAC,uCAAoC;AAEhE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAkB,EAClB,OAAkC;IAElC,qBAAqB,EAAE,CAAC;IACxB,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAEnC,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE;QACrC,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc;KACjD,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAExD,MAAM,IAAI,GAAiB,EAAE,CAAC;IAE9B,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7D,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QACxC,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,yCAAyC;QACzC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,IAAI,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,EAAE,IAAI,EAAE,KAAM,EAAE,CAAC;gBAC3D,eAAe,GAAG,IAAI,CAAC;gBACvB,MAAM;YACR,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;QACD,IAAI,eAAe,EAAE,CAAC;YACpB,GAAG,CAAC,IAAI,CACN,kDAAkD,OAAO,EAAE,IAAI,EAAE,KAAK,aAAa,CACpF,EAAE,CAAC;YACJ,MAAM;QACR,CAAC;IACH,CAAC;IACD,MAAM,cAAc,GAAmB;QACrC,KAAK,EAAE,kBAAkB;QACzB,MAAM;QACN,IAAI,EAAE,IAAI;KACX,CAAC;IAEF,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,yBAAyB,CAC9C,IAAkB,EAClB,OAAkC;IAElC,qBAAqB,EAAE,CAAC;IACxB,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAEnC,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE;QACrC,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc;KACjD,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7D,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QACpC,MAAM,cAAc,GAAmB;YACrC,KAAK,EAAE,kBAAkB;YACzB,MAAM;YACN,IAAI,EAAE,IAAI;SACX,CAAC;QAEF,MAAM;YACJ,SAAS,EAAE,MAAM;YACjB,MAAM;YACN,GAAG,cAAc;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"parse-parquet-to-json.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-json.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import * as parquetWasm from 'parquet-wasm';
2
- export declare function loadWasm(wasmUrl?: string): Promise<typeof parquetWasm>;
1
+ import type * as ParquetWasm from 'parquet-wasm/esm/parquet_wasm.js';
2
+ export declare function loadWasm(wasmUrl?: ParquetWasm.InitInput | Promise<ParquetWasm.InitInput>): Promise<typeof ParquetWasm>;
3
3
  //# sourceMappingURL=load-wasm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"load-wasm.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/load-wasm.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,WAAW,MAAM,cAAc,CAAC;AAK5C,wBAAsB,QAAQ,CAAC,OAAO,GAAE,MAAyB,+BAUhE"}
1
+ {"version":3,"file":"load-wasm.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/load-wasm.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,WAAW,MAAM,kCAAkC,CAAC;AAKrE,wBAAsB,QAAQ,CAC5B,OAAO,GAAE,WAAW,CAAC,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAoB,GACjF,OAAO,CAAC,OAAO,WAAW,CAAC,CAS7B"}
@@ -1,20 +1,20 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- // eslint-disable-next-line import/default
5
- import initWasm from 'parquet-wasm';
6
- import * as parquetWasm from 'parquet-wasm';
7
4
  import { PARQUET_WASM_URL } from "../constants.js";
8
5
  let initializePromise;
9
6
  export async function loadWasm(wasmUrl = PARQUET_WASM_URL) {
10
- if (!initializePromise && typeof initWasm === 'function') {
7
+ if (!initializePromise) {
11
8
  if (!wasmUrl) {
12
9
  throw new Error('ParquetLoader: No wasmUrl provided');
13
10
  }
14
- // @ts-ignore
15
- initializePromise = initWasm(wasmUrl);
11
+ initializePromise = loadAndInitializeWasm(wasmUrl);
16
12
  }
17
- await initializePromise;
13
+ return await initializePromise;
14
+ }
15
+ async function loadAndInitializeWasm(wasmUrl) {
16
+ const parquetWasm = await import('parquet-wasm/esm/parquet_wasm.js');
17
+ await parquetWasm.default({ module_or_path: wasmUrl });
18
18
  return parquetWasm;
19
19
  }
20
20
  //# sourceMappingURL=load-wasm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"load-wasm.js","sourceRoot":"","sources":["../../../src/lib/utils/load-wasm.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,0CAA0C;AAC1C,OAAO,QAAQ,MAAM,cAAc,CAAC;AACpC,OAAO,KAAK,WAAW,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAC,gBAAgB,EAAC,wBAAqB;AAE9C,IAAI,iBAAsB,CAAC;AAE3B,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,UAAkB,gBAAgB;IAC/D,IAAI,CAAC,iBAAiB,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QACzD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QACD,aAAa;QACb,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,iBAAiB,CAAC;IACxB,OAAO,WAAW,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"load-wasm.js","sourceRoot":"","sources":["../../../src/lib/utils/load-wasm.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,gBAAgB,EAAC,wBAAqB;AAE9C,IAAI,iBAA8C,CAAC;AAEnD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,UAAkE,gBAAgB;IAElF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QACD,iBAAiB,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,MAAM,iBAAiB,CAAC;AACjC,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,OAA+D;IAE/D,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAC;IACrE,MAAM,WAAW,CAAC,OAAO,CAAC,EAAC,cAAc,EAAE,OAAO,EAAC,CAAC,CAAC;IACrD,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -49,7 +49,7 @@ async function* makeBrowserStreamIterator(stream, options) {
49
49
  }
50
50
  }
51
51
  }
52
- catch (error) {
52
+ catch (_error) {
53
53
  // TODO - examples makes it look like this should always be called,
54
54
  // but that generates exceptions so only call it if we do not reach the end
55
55
  reader.releaseLock();
@@ -1 +1 @@
1
- {"version":3,"file":"make-stream-iterator.js","sourceRoot":"","sources":["../../../src/lib/utils/make-stream-iterator.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAMnD;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAoC,EACpC,OAA+B;IAE/B,OAAO,SAAS;QACd,CAAC,CAAC,yBAAyB,CAAC,MAA2B,EAAE,OAAO,CAAC;QACjE,CAAC,CAAC,sBAAsB,CAAC,MAAkB,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED;;;;GAIG;AACH,KAAK,SAAS,CAAC,CAAC,yBAAyB,CACvC,MAAyB,EACzB,OAA+B;IAE/B,4DAA4D;IAC5D,kDAAkD;IAClD,iCAAiC;IACjC,IAAI;IACJ,4DAA4D;IAC5D,8CAA8C;IAC9C,IAAI;IAEJ,4DAA4D;IAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAElC,IAAI,gBAAkE,CAAC;IAEvE,IAAI,CAAC;QACH,iDAAiD;QACjD,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,mBAAmB,GAAG,gBAAgB,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9D,sEAAsE;YACtE,wEAAwE;YACxE,IAAI,OAAO,EAAE,gBAAgB,EAAE,CAAC;gBAC9B,gBAAgB,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YACnC,CAAC;YACD,uBAAuB;YACvB,wBAAwB;YACxB,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,mBAAmB,CAAC;YAChD,qBAAqB;YACrB,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YACD,uBAAuB;YACvB,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,mEAAmE;QACnE,2EAA2E;QAC3E,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,SAAS,CAAC,CAAC,sBAAsB,CACpC,MAAgB,EAChB,OAA+B;IAE/B,oEAAoE;IACpE,uCAAuC;IACvC,KAAK,CAAC,CAAC,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"make-stream-iterator.js","sourceRoot":"","sources":["../../../src/lib/utils/make-stream-iterator.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAMnD;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAoC,EACpC,OAA+B;IAE/B,OAAO,SAAS;QACd,CAAC,CAAC,yBAAyB,CAAC,MAA2B,EAAE,OAAO,CAAC;QACjE,CAAC,CAAC,sBAAsB,CAAC,MAAkB,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED;;;;GAIG;AACH,KAAK,SAAS,CAAC,CAAC,yBAAyB,CACvC,MAAyB,EACzB,OAA+B;IAE/B,4DAA4D;IAC5D,kDAAkD;IAClD,iCAAiC;IACjC,IAAI;IACJ,4DAA4D;IAC5D,8CAA8C;IAC9C,IAAI;IAEJ,4DAA4D;IAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAElC,IAAI,gBAAkE,CAAC;IAEvE,IAAI,CAAC;QACH,iDAAiD;QACjD,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,mBAAmB,GAAG,gBAAgB,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9D,sEAAsE;YACtE,wEAAwE;YACxE,IAAI,OAAO,EAAE,gBAAgB,EAAE,CAAC;gBAC9B,gBAAgB,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YACnC,CAAC;YACD,uBAAuB;YACvB,wBAAwB;YACxB,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,mBAAmB,CAAC;YAChD,qBAAqB;YACrB,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YACD,uBAAuB;YACvB,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,mEAAmE;QACnE,2EAA2E;QAC3E,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,SAAS,CAAC,CAAC,sBAAsB,CACpC,MAAgB,EAChB,OAA+B;IAE/B,oEAAoE;IACpE,uCAAuC;IACvC,KAAK,CAAC,CAAC,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,5 @@
1
+ /** Merge caller options with default parquet options while preserving top-level option bags. */
2
+ export declare function normalizeParquetOptions<OptionsT extends {
3
+ parquet?: unknown;
4
+ }>(options: OptionsT | undefined, parquetDefaults: Record<string, unknown>): OptionsT;
5
+ //# sourceMappingURL=normalize-parquet-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-parquet-options.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/normalize-parquet-options.ts"],"names":[],"mappings":"AAIA,gGAAgG;AAChG,wBAAgB,uBAAuB,CAAC,QAAQ,SAAS;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAC,EAC1E,OAAO,EAAE,QAAQ,GAAG,SAAS,EAC7B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvC,QAAQ,CAKV"}
@@ -0,0 +1,11 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ /** Merge caller options with default parquet options while preserving top-level option bags. */
5
+ export function normalizeParquetOptions(options, parquetDefaults) {
6
+ return {
7
+ ...options,
8
+ parquet: { ...parquetDefaults, ...options?.parquet }
9
+ };
10
+ }
11
+ //# sourceMappingURL=normalize-parquet-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-parquet-options.js","sourceRoot":"","sources":["../../../src/lib/utils/normalize-parquet-options.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,gGAAgG;AAChG,MAAM,UAAU,uBAAuB,CACrC,OAA6B,EAC7B,eAAwC;IAExC,OAAO;QACL,GAAG,OAAO;QACV,OAAO,EAAE,EAAC,GAAG,eAAe,EAAE,GAAI,OAAO,EAAE,OAA+C,EAAC;KACrE,CAAC;AAC3B,CAAC"}
@@ -1,6 +1,8 @@
1
1
  export declare const ParquetFormat: {
2
2
  readonly name: "Apache Parquet";
3
3
  readonly category: "table";
4
+ readonly encoding: "parquet";
5
+ readonly format: "parquet";
4
6
  readonly extensions: ["parquet"];
5
7
  readonly mimeTypes: ["application/octet-stream"];
6
8
  readonly binary: true;
@@ -1 +1 @@
1
- {"version":3,"file":"parquet-format.d.ts","sourceRoot":"","sources":["../src/parquet-format.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa;;;;;;;CAOU,CAAC"}
1
+ {"version":3,"file":"parquet-format.d.ts","sourceRoot":"","sources":["../src/parquet-format.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa;;;;;;;;;CASU,CAAC"}
@@ -4,6 +4,8 @@
4
4
  export const ParquetFormat = {
5
5
  name: 'Apache Parquet',
6
6
  category: 'table',
7
+ encoding: 'parquet',
8
+ format: 'parquet',
7
9
  extensions: ['parquet'],
8
10
  mimeTypes: ['application/octet-stream'],
9
11
  binary: true,
@@ -1 +1 @@
1
- {"version":3,"file":"parquet-format.js","sourceRoot":"","sources":["../src/parquet-format.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAIpC,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,gBAAgB;IACtB,QAAQ,EAAE,OAAO;IACjB,UAAU,EAAE,CAAC,SAAS,CAAC;IACvB,SAAS,EAAE,CAAC,0BAA0B,CAAC;IACvC,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;CACW,CAAC"}
1
+ {"version":3,"file":"parquet-format.js","sourceRoot":"","sources":["../src/parquet-format.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAIpC,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,gBAAgB;IACtB,QAAQ,EAAE,OAAO;IACjB,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE,SAAS;IACjB,UAAU,EAAE,CAAC,SAAS,CAAC;IACvB,SAAS,EAAE,CAAC,0BAA0B,CAAC;IACvC,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;CACW,CAAC"}
@@ -0,0 +1,57 @@
1
+ import type { ObjectRowTable, ObjectRowTableBatch } from '@loaders.gl/schema';
2
+ /** Preloads the parser-bearing parquetjs loader implementation. */
3
+ declare function preload(): Promise<{
4
+ readonly parse: (arrayBuffer: ArrayBuffer, options?: import("./parquet-loader-options").ParquetLoaderOptions) => Promise<ObjectRowTable>;
5
+ readonly parseFile: (file: import("@loaders.gl/loader-utils").ReadableFile, options?: import("./parquet-loader-options").ParquetLoaderOptions) => Promise<ObjectRowTable>;
6
+ readonly parseFileInBatches: (file: import("@loaders.gl/loader-utils").ReadableFile, options?: import("./parquet-loader-options").ParquetLoaderOptions) => AsyncIterable<ObjectRowTableBatch>;
7
+ readonly parseInBatches: (asyncIterator: AsyncIterable<ArrayBufferLike | ArrayBufferView> | Iterable<ArrayBufferLike | ArrayBufferView>, options?: import("./parquet-loader-options").ParquetLoaderOptions, _context?: unknown) => AsyncGenerator<ObjectRowTableBatch, void, any>;
8
+ readonly dataType: ObjectRowTable | import("@loaders.gl/schema").ArrowTable;
9
+ readonly batchType: ObjectRowTableBatch | import("@loaders.gl/schema").ArrowTableBatch;
10
+ readonly id: "parquet";
11
+ readonly module: "parquet";
12
+ readonly version: any;
13
+ readonly worker: false;
14
+ readonly options: {
15
+ readonly parquet: {
16
+ readonly backend: "wasm";
17
+ readonly columns: undefined;
18
+ readonly preserveBinary: false;
19
+ readonly shape: "object-row-table";
20
+ };
21
+ };
22
+ readonly name: "Apache Parquet";
23
+ readonly category: "table";
24
+ readonly encoding: "parquet";
25
+ readonly format: "parquet";
26
+ readonly extensions: ["parquet"];
27
+ readonly mimeTypes: ["application/octet-stream"];
28
+ readonly binary: true;
29
+ readonly tests: ["PAR1", "PARE"];
30
+ }>;
31
+ /** Metadata-only plain-row Parquet loader backed by the experimental parquetjs implementation. */
32
+ export declare const ParquetJSLoader: {
33
+ readonly dataType: ObjectRowTable;
34
+ readonly batchType: ObjectRowTableBatch;
35
+ readonly id: "parquet-js";
36
+ readonly module: "parquet";
37
+ readonly version: any;
38
+ readonly worker: false;
39
+ readonly options: {
40
+ readonly parquet: {
41
+ backend: "typescript";
42
+ columns: undefined;
43
+ preserveBinary: boolean;
44
+ };
45
+ };
46
+ readonly preload: typeof preload;
47
+ readonly name: "Apache Parquet";
48
+ readonly category: "table";
49
+ readonly encoding: "parquet";
50
+ readonly format: "parquet";
51
+ readonly extensions: ["parquet"];
52
+ readonly mimeTypes: ["application/octet-stream"];
53
+ readonly binary: true;
54
+ readonly tests: ["PAR1", "PARE"];
55
+ };
56
+ export {};
57
+ //# sourceMappingURL=parquet-js-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parquet-js-loader.d.ts","sourceRoot":"","sources":["../src/parquet-js-loader.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,cAAc,EAAE,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AAgB5E,mEAAmE;AACnE,iBAAe,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;GAGrB;AAED,kGAAkG;AAClG,eAAO,MAAM,eAAe;uBAGG,cAAc;wBACb,mBAAmB;;;;;;;;;;;;;;;;;;;;;CAUqC,CAAC"}