@loaders.gl/parquet 4.0.0-alpha.9 → 4.0.0-beta.2

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 (463) hide show
  1. package/dist/dist.min.js +21 -32
  2. package/dist/dist.min.js.map +3 -3
  3. package/dist/es5/buffer-polyfill/buffer-polyfill.browser.js +12 -0
  4. package/dist/es5/buffer-polyfill/buffer-polyfill.browser.js.map +1 -0
  5. package/dist/es5/buffer-polyfill/buffer-polyfill.node.js +16 -0
  6. package/dist/es5/buffer-polyfill/buffer-polyfill.node.js.map +1 -0
  7. package/dist/es5/buffer-polyfill/buffer.js +1665 -0
  8. package/dist/es5/buffer-polyfill/buffer.js.map +1 -0
  9. package/dist/es5/buffer-polyfill/index.js +27 -0
  10. package/dist/es5/buffer-polyfill/index.js.map +1 -0
  11. package/dist/es5/buffer-polyfill/install-buffer-polyfill.js +10 -0
  12. package/dist/es5/buffer-polyfill/install-buffer-polyfill.js.map +1 -0
  13. package/dist/es5/index.js +25 -28
  14. package/dist/es5/index.js.map +1 -1
  15. package/dist/es5/lib/geo/decode-geo-column.js +53 -0
  16. package/dist/es5/lib/geo/decode-geo-column.js.map +1 -0
  17. package/dist/es5/lib/geo/decode-geo-metadata.js +52 -16
  18. package/dist/es5/lib/geo/decode-geo-metadata.js.map +1 -1
  19. package/dist/es5/lib/geo/{geoparquet-schema.js → geoparquet-metadata-schema.js} +4 -4
  20. package/dist/es5/lib/geo/geoparquet-metadata-schema.js.map +1 -0
  21. package/dist/es5/lib/geo/geoparquet-metadata-schema.json +60 -0
  22. package/dist/es5/lib/parsers/get-parquet-schema.js +41 -0
  23. package/dist/es5/lib/parsers/get-parquet-schema.js.map +1 -0
  24. package/dist/es5/lib/parsers/parse-parquet-to-columns.js +71 -72
  25. package/dist/es5/lib/parsers/parse-parquet-to-columns.js.map +1 -1
  26. package/dist/es5/lib/parsers/parse-parquet-to-rows.js +95 -62
  27. package/dist/es5/lib/parsers/parse-parquet-to-rows.js.map +1 -1
  28. package/dist/es5/parquet-loader.js +14 -14
  29. package/dist/es5/parquet-loader.js.map +1 -1
  30. package/dist/es5/parquet-wasm-loader.js +8 -11
  31. package/dist/es5/parquet-wasm-loader.js.map +1 -1
  32. package/dist/es5/parquet-wasm-writer.js +6 -7
  33. package/dist/es5/parquet-wasm-writer.js.map +1 -1
  34. package/dist/es5/parquet-writer.js +2 -3
  35. package/dist/es5/parquet-writer.js.map +1 -1
  36. package/dist/es5/parquetjs/codecs/plain.js.map +1 -1
  37. package/dist/es5/parquetjs/codecs/rle.js.map +1 -1
  38. package/dist/es5/parquetjs/encoder/parquet-encoder.js.map +1 -1
  39. package/dist/es5/parquetjs/parquet-thrift/index.js +75 -0
  40. package/dist/es5/parquetjs/parquet-thrift/index.js.map +1 -1
  41. package/dist/es5/parquetjs/parser/decoders.js +53 -36
  42. package/dist/es5/parquetjs/parser/decoders.js.map +1 -1
  43. package/dist/es5/parquetjs/parser/parquet-reader.js +15 -13
  44. package/dist/es5/parquetjs/parser/parquet-reader.js.map +1 -1
  45. package/dist/es5/parquetjs/schema/declare.js.map +1 -1
  46. package/dist/es5/parquetjs/utils/read-utils.js +6 -7
  47. package/dist/es5/parquetjs/utils/read-utils.js.map +1 -1
  48. package/dist/esm/buffer-polyfill/buffer-polyfill.browser.js +6 -0
  49. package/dist/esm/buffer-polyfill/buffer-polyfill.browser.js.map +1 -0
  50. package/dist/esm/buffer-polyfill/buffer-polyfill.node.js +10 -0
  51. package/dist/esm/buffer-polyfill/buffer-polyfill.node.js.map +1 -0
  52. package/dist/esm/buffer-polyfill/buffer.js +1489 -0
  53. package/dist/esm/buffer-polyfill/buffer.js.map +1 -0
  54. package/dist/esm/buffer-polyfill/index.js +4 -0
  55. package/dist/esm/buffer-polyfill/index.js.map +1 -0
  56. package/dist/esm/buffer-polyfill/install-buffer-polyfill.js +3 -0
  57. package/dist/esm/buffer-polyfill/install-buffer-polyfill.js.map +1 -0
  58. package/dist/esm/index.js +4 -10
  59. package/dist/esm/index.js.map +1 -1
  60. package/dist/esm/lib/geo/decode-geo-column.js +47 -0
  61. package/dist/esm/lib/geo/decode-geo-column.js.map +1 -0
  62. package/dist/esm/lib/geo/decode-geo-metadata.js +32 -5
  63. package/dist/esm/lib/geo/decode-geo-metadata.js.map +1 -1
  64. package/dist/esm/lib/geo/{geoparquet-schema.js → geoparquet-metadata-schema.js} +2 -2
  65. package/dist/esm/lib/geo/geoparquet-metadata-schema.js.map +1 -0
  66. package/dist/esm/lib/geo/geoparquet-metadata-schema.json +60 -0
  67. package/dist/esm/lib/parsers/get-parquet-schema.js +11 -0
  68. package/dist/esm/lib/parsers/get-parquet-schema.js.map +1 -0
  69. package/dist/esm/lib/parsers/parse-parquet-to-columns.js +10 -11
  70. package/dist/esm/lib/parsers/parse-parquet-to-columns.js.map +1 -1
  71. package/dist/esm/lib/parsers/parse-parquet-to-rows.js +32 -7
  72. package/dist/esm/lib/parsers/parse-parquet-to-rows.js.map +1 -1
  73. package/dist/esm/parquet-loader.js +12 -12
  74. package/dist/esm/parquet-loader.js.map +1 -1
  75. package/dist/esm/parquet-wasm-loader.js +7 -9
  76. package/dist/esm/parquet-wasm-loader.js.map +1 -1
  77. package/dist/esm/parquet-wasm-writer.js +6 -7
  78. package/dist/esm/parquet-wasm-writer.js.map +1 -1
  79. package/dist/esm/parquet-writer.js +2 -3
  80. package/dist/esm/parquet-writer.js.map +1 -1
  81. package/dist/esm/parquetjs/codecs/plain.js.map +1 -1
  82. package/dist/esm/parquetjs/codecs/rle.js.map +1 -1
  83. package/dist/esm/parquetjs/encoder/parquet-encoder.js.map +1 -1
  84. package/dist/esm/parquetjs/parquet-thrift/index.js +2 -0
  85. package/dist/esm/parquetjs/parquet-thrift/index.js.map +1 -1
  86. package/dist/esm/parquetjs/parser/decoders.js +48 -32
  87. package/dist/esm/parquetjs/parser/decoders.js.map +1 -1
  88. package/dist/esm/parquetjs/parser/parquet-reader.js +14 -12
  89. package/dist/esm/parquetjs/parser/parquet-reader.js.map +1 -1
  90. package/dist/esm/parquetjs/schema/declare.js.map +1 -1
  91. package/dist/esm/parquetjs/utils/read-utils.js +1 -1
  92. package/dist/esm/parquetjs/utils/read-utils.js.map +1 -1
  93. package/dist/parquet-worker.js +23 -34
  94. package/dist/parquet-worker.js.map +3 -3
  95. package/dist/src/buffer-polyfill/buffer-polyfill.browser.d.ts +4 -0
  96. package/dist/src/buffer-polyfill/buffer-polyfill.browser.d.ts.map +1 -0
  97. package/dist/src/buffer-polyfill/buffer-polyfill.node.d.ts +4 -0
  98. package/dist/src/buffer-polyfill/buffer-polyfill.node.d.ts.map +1 -0
  99. package/dist/src/buffer-polyfill/buffer.d.ts +222 -0
  100. package/dist/src/buffer-polyfill/buffer.d.ts.map +1 -0
  101. package/dist/src/buffer-polyfill/index.d.ts +4 -0
  102. package/dist/src/buffer-polyfill/index.d.ts.map +1 -0
  103. package/dist/src/buffer-polyfill/install-buffer-polyfill.d.ts +30 -0
  104. package/dist/src/buffer-polyfill/install-buffer-polyfill.d.ts.map +1 -0
  105. package/dist/src/bundle.d.ts.map +1 -0
  106. package/dist/src/constants.d.ts.map +1 -0
  107. package/dist/{index.d.ts → src/index.d.ts} +6 -10
  108. package/dist/src/index.d.ts.map +1 -0
  109. package/dist/src/lib/arrow/convert-columns-to-row-group.d.ts.map +1 -0
  110. package/dist/src/lib/arrow/convert-row-group-to-columns.d.ts.map +1 -0
  111. package/dist/src/lib/arrow/convert-schema-from-parquet.d.ts.map +1 -0
  112. package/dist/src/lib/arrow/convert-schema-to-parquet.d.ts.map +1 -0
  113. package/dist/src/lib/geo/decode-geo-column.d.ts +4 -0
  114. package/dist/src/lib/geo/decode-geo-column.d.ts.map +1 -0
  115. package/dist/src/lib/geo/decode-geo-metadata.d.ts +44 -0
  116. package/dist/src/lib/geo/decode-geo-metadata.d.ts.map +1 -0
  117. package/dist/{lib/geo/geoparquet-schema.d.ts → src/lib/geo/geoparquet-metadata-schema.d.ts} +2 -3
  118. package/dist/src/lib/geo/geoparquet-metadata-schema.d.ts.map +1 -0
  119. package/dist/src/lib/parsers/get-parquet-schema.d.ts +4 -0
  120. package/dist/src/lib/parsers/get-parquet-schema.d.ts.map +1 -0
  121. package/dist/src/lib/parsers/parse-parquet-to-columns.d.ts +6 -0
  122. package/dist/src/lib/parsers/parse-parquet-to-columns.d.ts.map +1 -0
  123. package/dist/src/lib/parsers/parse-parquet-to-rows.d.ts +6 -0
  124. package/dist/src/lib/parsers/parse-parquet-to-rows.d.ts.map +1 -0
  125. package/dist/src/lib/wasm/encode-parquet-wasm.d.ts.map +1 -0
  126. package/dist/src/lib/wasm/load-wasm/index.d.ts.map +1 -0
  127. package/dist/src/lib/wasm/load-wasm/load-wasm-browser.d.ts.map +1 -0
  128. package/dist/src/lib/wasm/load-wasm/load-wasm-node.d.ts.map +1 -0
  129. package/dist/src/lib/wasm/parse-parquet-wasm.d.ts.map +1 -0
  130. package/dist/src/parquet-loader.d.ts +22 -0
  131. package/dist/src/parquet-loader.d.ts.map +1 -0
  132. package/dist/src/parquet-wasm-loader.d.ts +12 -0
  133. package/dist/src/parquet-wasm-loader.d.ts.map +1 -0
  134. package/dist/src/parquet-wasm-writer.d.ts +6 -0
  135. package/dist/src/parquet-wasm-writer.d.ts.map +1 -0
  136. package/dist/src/parquet-writer.d.ts.map +1 -0
  137. package/dist/src/parquetjs/codecs/declare.d.ts.map +1 -0
  138. package/dist/src/parquetjs/codecs/dictionary.d.ts.map +1 -0
  139. package/dist/src/parquetjs/codecs/index.d.ts.map +1 -0
  140. package/dist/src/parquetjs/codecs/plain.d.ts.map +1 -0
  141. package/dist/src/parquetjs/codecs/rle.d.ts.map +1 -0
  142. package/dist/src/parquetjs/compression.d.ts.map +1 -0
  143. package/dist/src/parquetjs/encoder/parquet-encoder.d.ts.map +1 -0
  144. package/dist/src/parquetjs/parquet-thrift/BoundaryOrder.d.ts.map +1 -0
  145. package/dist/src/parquetjs/parquet-thrift/BsonType.d.ts.map +1 -0
  146. package/dist/src/parquetjs/parquet-thrift/ColumnChunk.d.ts.map +1 -0
  147. package/dist/src/parquetjs/parquet-thrift/ColumnIndex.d.ts.map +1 -0
  148. package/dist/src/parquetjs/parquet-thrift/ColumnMetaData.d.ts.map +1 -0
  149. package/dist/src/parquetjs/parquet-thrift/ColumnOrder.d.ts.map +1 -0
  150. package/dist/src/parquetjs/parquet-thrift/CompressionCodec.d.ts.map +1 -0
  151. package/dist/src/parquetjs/parquet-thrift/ConvertedType.d.ts.map +1 -0
  152. package/dist/src/parquetjs/parquet-thrift/DataPageHeader.d.ts.map +1 -0
  153. package/dist/src/parquetjs/parquet-thrift/DataPageHeaderV2.d.ts.map +1 -0
  154. package/dist/src/parquetjs/parquet-thrift/DateType.d.ts.map +1 -0
  155. package/dist/src/parquetjs/parquet-thrift/DecimalType.d.ts.map +1 -0
  156. package/dist/src/parquetjs/parquet-thrift/DictionaryPageHeader.d.ts.map +1 -0
  157. package/dist/src/parquetjs/parquet-thrift/Encoding.d.ts.map +1 -0
  158. package/dist/src/parquetjs/parquet-thrift/EnumType.d.ts.map +1 -0
  159. package/dist/src/parquetjs/parquet-thrift/FieldRepetitionType.d.ts.map +1 -0
  160. package/dist/src/parquetjs/parquet-thrift/FileMetaData.d.ts.map +1 -0
  161. package/dist/src/parquetjs/parquet-thrift/IndexPageHeader.d.ts.map +1 -0
  162. package/dist/src/parquetjs/parquet-thrift/IntType.d.ts.map +1 -0
  163. package/dist/src/parquetjs/parquet-thrift/JsonType.d.ts.map +1 -0
  164. package/dist/src/parquetjs/parquet-thrift/KeyValue.d.ts.map +1 -0
  165. package/dist/src/parquetjs/parquet-thrift/ListType.d.ts.map +1 -0
  166. package/dist/src/parquetjs/parquet-thrift/LogicalType.d.ts.map +1 -0
  167. package/dist/src/parquetjs/parquet-thrift/MapType.d.ts.map +1 -0
  168. package/dist/src/parquetjs/parquet-thrift/MicroSeconds.d.ts.map +1 -0
  169. package/dist/src/parquetjs/parquet-thrift/MilliSeconds.d.ts.map +1 -0
  170. package/dist/src/parquetjs/parquet-thrift/NullType.d.ts.map +1 -0
  171. package/dist/src/parquetjs/parquet-thrift/OffsetIndex.d.ts.map +1 -0
  172. package/dist/src/parquetjs/parquet-thrift/PageEncodingStats.d.ts.map +1 -0
  173. package/dist/src/parquetjs/parquet-thrift/PageHeader.d.ts.map +1 -0
  174. package/dist/src/parquetjs/parquet-thrift/PageLocation.d.ts.map +1 -0
  175. package/dist/src/parquetjs/parquet-thrift/PageType.d.ts.map +1 -0
  176. package/dist/src/parquetjs/parquet-thrift/RowGroup.d.ts.map +1 -0
  177. package/dist/src/parquetjs/parquet-thrift/SchemaElement.d.ts.map +1 -0
  178. package/dist/src/parquetjs/parquet-thrift/SortingColumn.d.ts.map +1 -0
  179. package/dist/src/parquetjs/parquet-thrift/Statistics.d.ts.map +1 -0
  180. package/dist/src/parquetjs/parquet-thrift/StringType.d.ts.map +1 -0
  181. package/dist/src/parquetjs/parquet-thrift/TimeType.d.ts.map +1 -0
  182. package/dist/src/parquetjs/parquet-thrift/TimeUnit.d.ts.map +1 -0
  183. package/dist/src/parquetjs/parquet-thrift/TimestampType.d.ts.map +1 -0
  184. package/dist/src/parquetjs/parquet-thrift/Type.d.ts.map +1 -0
  185. package/dist/src/parquetjs/parquet-thrift/TypeDefinedOrder.d.ts.map +1 -0
  186. package/dist/src/parquetjs/parquet-thrift/UUIDType.d.ts.map +1 -0
  187. package/dist/{parquetjs → src/parquetjs}/parquet-thrift/index.d.ts +2 -0
  188. package/dist/src/parquetjs/parquet-thrift/index.d.ts.map +1 -0
  189. package/dist/{parquetjs → src/parquetjs}/parser/decoders.d.ts +4 -4
  190. package/dist/src/parquetjs/parser/decoders.d.ts.map +1 -0
  191. package/dist/{parquetjs → src/parquetjs}/parser/parquet-reader.d.ts +5 -3
  192. package/dist/src/parquetjs/parser/parquet-reader.d.ts.map +1 -0
  193. package/dist/{parquetjs → src/parquetjs}/schema/declare.d.ts +3 -1
  194. package/dist/src/parquetjs/schema/declare.d.ts.map +1 -0
  195. package/dist/src/parquetjs/schema/schema.d.ts.map +1 -0
  196. package/dist/src/parquetjs/schema/shred.d.ts.map +1 -0
  197. package/dist/src/parquetjs/schema/types.d.ts.map +1 -0
  198. package/dist/src/parquetjs/utils/file-utils.d.ts.map +1 -0
  199. package/dist/src/parquetjs/utils/read-utils.d.ts.map +1 -0
  200. package/dist/src/workers/parquet-worker.d.ts.map +1 -0
  201. package/dist/tsconfig.tsbuildinfo +1 -0
  202. package/package.json +21 -9
  203. package/src/buffer-polyfill/buffer-polyfill.browser.ts +11 -0
  204. package/src/buffer-polyfill/buffer-polyfill.node.ts +15 -0
  205. package/src/buffer-polyfill/buffer.ts +2207 -0
  206. package/src/buffer-polyfill/index.ts +8 -0
  207. package/src/buffer-polyfill/install-buffer-polyfill.ts +3 -0
  208. package/src/index.ts +31 -17
  209. package/src/lib/geo/decode-geo-column.ts +54 -0
  210. package/src/lib/geo/decode-geo-metadata.ts +81 -15
  211. package/src/lib/geo/geoparquet-metadata-schema.json +60 -0
  212. package/src/lib/geo/{geoparquet-schema.ts → geoparquet-metadata-schema.ts} +1 -1
  213. package/src/lib/parsers/get-parquet-schema.ts +14 -0
  214. package/src/lib/parsers/parse-parquet-to-columns.ts +15 -13
  215. package/src/lib/parsers/parse-parquet-to-rows.ts +39 -11
  216. package/src/parquet-loader.ts +29 -16
  217. package/src/parquet-wasm-loader.ts +13 -13
  218. package/src/parquet-wasm-writer.ts +10 -8
  219. package/src/parquet-writer.ts +1 -3
  220. package/src/parquetjs/codecs/plain.ts +1 -0
  221. package/src/parquetjs/codecs/rle.ts +2 -0
  222. package/src/parquetjs/encoder/parquet-encoder.ts +1 -0
  223. package/src/parquetjs/parquet-thrift/index.ts +4 -0
  224. package/src/parquetjs/parser/decoders.ts +63 -41
  225. package/src/parquetjs/parser/parquet-reader.ts +19 -14
  226. package/src/parquetjs/schema/declare.ts +3 -1
  227. package/src/parquetjs/utils/read-utils.ts +2 -2
  228. package/dist/bundle.d.ts.map +0 -1
  229. package/dist/bundle.js +0 -5
  230. package/dist/constants.d.ts.map +0 -1
  231. package/dist/constants.js +0 -18
  232. package/dist/es5/lib/geo/geoparquet-schema.js.map +0 -1
  233. package/dist/esm/lib/geo/geoparquet-schema.js.map +0 -1
  234. package/dist/index.d.ts.map +0 -1
  235. package/dist/index.js +0 -58
  236. package/dist/lib/arrow/convert-columns-to-row-group.d.ts.map +0 -1
  237. package/dist/lib/arrow/convert-columns-to-row-group.js +0 -1
  238. package/dist/lib/arrow/convert-row-group-to-columns.d.ts.map +0 -1
  239. package/dist/lib/arrow/convert-row-group-to-columns.js +0 -12
  240. package/dist/lib/arrow/convert-schema-from-parquet.d.ts.map +0 -1
  241. package/dist/lib/arrow/convert-schema-from-parquet.js +0 -86
  242. package/dist/lib/arrow/convert-schema-to-parquet.d.ts.map +0 -1
  243. package/dist/lib/arrow/convert-schema-to-parquet.js +0 -71
  244. package/dist/lib/geo/decode-geo-metadata.d.ts +0 -31
  245. package/dist/lib/geo/decode-geo-metadata.d.ts.map +0 -1
  246. package/dist/lib/geo/decode-geo-metadata.js +0 -77
  247. package/dist/lib/geo/geoparquet-schema.d.ts.map +0 -1
  248. package/dist/lib/geo/geoparquet-schema.js +0 -69
  249. package/dist/lib/parsers/parse-parquet-to-columns.d.ts +0 -5
  250. package/dist/lib/parsers/parse-parquet-to-columns.d.ts.map +0 -1
  251. package/dist/lib/parsers/parse-parquet-to-columns.js +0 -46
  252. package/dist/lib/parsers/parse-parquet-to-rows.d.ts +0 -5
  253. package/dist/lib/parsers/parse-parquet-to-rows.d.ts.map +0 -1
  254. package/dist/lib/parsers/parse-parquet-to-rows.js +0 -37
  255. package/dist/lib/wasm/encode-parquet-wasm.d.ts.map +0 -1
  256. package/dist/lib/wasm/encode-parquet-wasm.js +0 -30
  257. package/dist/lib/wasm/load-wasm/index.d.ts.map +0 -1
  258. package/dist/lib/wasm/load-wasm/index.js +0 -5
  259. package/dist/lib/wasm/load-wasm/load-wasm-browser.d.ts.map +0 -1
  260. package/dist/lib/wasm/load-wasm/load-wasm-browser.js +0 -38
  261. package/dist/lib/wasm/load-wasm/load-wasm-node.d.ts.map +0 -1
  262. package/dist/lib/wasm/load-wasm/load-wasm-node.js +0 -31
  263. package/dist/lib/wasm/parse-parquet-wasm.d.ts.map +0 -1
  264. package/dist/lib/wasm/parse-parquet-wasm.js +0 -27
  265. package/dist/parquet-loader.d.ts +0 -14
  266. package/dist/parquet-loader.d.ts.map +0 -1
  267. package/dist/parquet-loader.js +0 -41
  268. package/dist/parquet-wasm-loader.d.ts +0 -23
  269. package/dist/parquet-wasm-loader.d.ts.map +0 -1
  270. package/dist/parquet-wasm-loader.js +0 -27
  271. package/dist/parquet-wasm-writer.d.ts +0 -3
  272. package/dist/parquet-wasm-writer.d.ts.map +0 -1
  273. package/dist/parquet-wasm-writer.js +0 -23
  274. package/dist/parquet-writer.d.ts.map +0 -1
  275. package/dist/parquet-writer.js +0 -22
  276. package/dist/parquetjs/codecs/declare.d.ts.map +0 -1
  277. package/dist/parquetjs/codecs/declare.js +0 -2
  278. package/dist/parquetjs/codecs/dictionary.d.ts.map +0 -1
  279. package/dist/parquetjs/codecs/dictionary.js +0 -14
  280. package/dist/parquetjs/codecs/index.d.ts.map +0 -1
  281. package/dist/parquetjs/codecs/index.js +0 -55
  282. package/dist/parquetjs/codecs/plain.d.ts.map +0 -1
  283. package/dist/parquetjs/codecs/plain.js +0 -211
  284. package/dist/parquetjs/codecs/rle.d.ts.map +0 -1
  285. package/dist/parquetjs/codecs/rle.js +0 -145
  286. package/dist/parquetjs/compression.d.ts.map +0 -1
  287. package/dist/parquetjs/compression.js +0 -183
  288. package/dist/parquetjs/encoder/parquet-encoder.d.ts.map +0 -1
  289. package/dist/parquetjs/encoder/parquet-encoder.js +0 -484
  290. package/dist/parquetjs/parquet-thrift/BoundaryOrder.d.ts.map +0 -1
  291. package/dist/parquetjs/parquet-thrift/BoundaryOrder.js +0 -15
  292. package/dist/parquetjs/parquet-thrift/BsonType.d.ts.map +0 -1
  293. package/dist/parquetjs/parquet-thrift/BsonType.js +0 -62
  294. package/dist/parquetjs/parquet-thrift/ColumnChunk.d.ts.map +0 -1
  295. package/dist/parquetjs/parquet-thrift/ColumnChunk.js +0 -211
  296. package/dist/parquetjs/parquet-thrift/ColumnIndex.d.ts.map +0 -1
  297. package/dist/parquetjs/parquet-thrift/ColumnIndex.js +0 -217
  298. package/dist/parquetjs/parquet-thrift/ColumnMetaData.d.ts.map +0 -1
  299. package/dist/parquetjs/parquet-thrift/ColumnMetaData.js +0 -402
  300. package/dist/parquetjs/parquet-thrift/ColumnOrder.d.ts.map +0 -1
  301. package/dist/parquetjs/parquet-thrift/ColumnOrder.js +0 -108
  302. package/dist/parquetjs/parquet-thrift/CompressionCodec.d.ts.map +0 -1
  303. package/dist/parquetjs/parquet-thrift/CompressionCodec.js +0 -20
  304. package/dist/parquetjs/parquet-thrift/ConvertedType.d.ts.map +0 -1
  305. package/dist/parquetjs/parquet-thrift/ConvertedType.js +0 -34
  306. package/dist/parquetjs/parquet-thrift/DataPageHeader.d.ts.map +0 -1
  307. package/dist/parquetjs/parquet-thrift/DataPageHeader.js +0 -170
  308. package/dist/parquetjs/parquet-thrift/DataPageHeaderV2.d.ts.map +0 -1
  309. package/dist/parquetjs/parquet-thrift/DataPageHeaderV2.js +0 -230
  310. package/dist/parquetjs/parquet-thrift/DateType.d.ts.map +0 -1
  311. package/dist/parquetjs/parquet-thrift/DateType.js +0 -62
  312. package/dist/parquetjs/parquet-thrift/DecimalType.d.ts.map +0 -1
  313. package/dist/parquetjs/parquet-thrift/DecimalType.js +0 -109
  314. package/dist/parquetjs/parquet-thrift/DictionaryPageHeader.d.ts.map +0 -1
  315. package/dist/parquetjs/parquet-thrift/DictionaryPageHeader.js +0 -126
  316. package/dist/parquetjs/parquet-thrift/Encoding.d.ts.map +0 -1
  317. package/dist/parquetjs/parquet-thrift/Encoding.js +0 -20
  318. package/dist/parquetjs/parquet-thrift/EnumType.d.ts.map +0 -1
  319. package/dist/parquetjs/parquet-thrift/EnumType.js +0 -62
  320. package/dist/parquetjs/parquet-thrift/FieldRepetitionType.d.ts.map +0 -1
  321. package/dist/parquetjs/parquet-thrift/FieldRepetitionType.js +0 -15
  322. package/dist/parquetjs/parquet-thrift/FileMetaData.d.ts.map +0 -1
  323. package/dist/parquetjs/parquet-thrift/FileMetaData.js +0 -260
  324. package/dist/parquetjs/parquet-thrift/IndexPageHeader.d.ts.map +0 -1
  325. package/dist/parquetjs/parquet-thrift/IndexPageHeader.js +0 -62
  326. package/dist/parquetjs/parquet-thrift/IntType.d.ts.map +0 -1
  327. package/dist/parquetjs/parquet-thrift/IntType.js +0 -109
  328. package/dist/parquetjs/parquet-thrift/JsonType.d.ts.map +0 -1
  329. package/dist/parquetjs/parquet-thrift/JsonType.js +0 -62
  330. package/dist/parquetjs/parquet-thrift/KeyValue.d.ts.map +0 -1
  331. package/dist/parquetjs/parquet-thrift/KeyValue.js +0 -106
  332. package/dist/parquetjs/parquet-thrift/ListType.d.ts.map +0 -1
  333. package/dist/parquetjs/parquet-thrift/ListType.js +0 -62
  334. package/dist/parquetjs/parquet-thrift/LogicalType.d.ts.map +0 -1
  335. package/dist/parquetjs/parquet-thrift/LogicalType.js +0 -384
  336. package/dist/parquetjs/parquet-thrift/MapType.d.ts.map +0 -1
  337. package/dist/parquetjs/parquet-thrift/MapType.js +0 -62
  338. package/dist/parquetjs/parquet-thrift/MicroSeconds.d.ts.map +0 -1
  339. package/dist/parquetjs/parquet-thrift/MicroSeconds.js +0 -62
  340. package/dist/parquetjs/parquet-thrift/MilliSeconds.d.ts.map +0 -1
  341. package/dist/parquetjs/parquet-thrift/MilliSeconds.js +0 -62
  342. package/dist/parquetjs/parquet-thrift/NullType.d.ts.map +0 -1
  343. package/dist/parquetjs/parquet-thrift/NullType.js +0 -62
  344. package/dist/parquetjs/parquet-thrift/OffsetIndex.d.ts.map +0 -1
  345. package/dist/parquetjs/parquet-thrift/OffsetIndex.js +0 -101
  346. package/dist/parquetjs/parquet-thrift/PageEncodingStats.d.ts.map +0 -1
  347. package/dist/parquetjs/parquet-thrift/PageEncodingStats.js +0 -131
  348. package/dist/parquetjs/parquet-thrift/PageHeader.d.ts.map +0 -1
  349. package/dist/parquetjs/parquet-thrift/PageHeader.js +0 -220
  350. package/dist/parquetjs/parquet-thrift/PageLocation.d.ts.map +0 -1
  351. package/dist/parquetjs/parquet-thrift/PageLocation.js +0 -145
  352. package/dist/parquetjs/parquet-thrift/PageType.d.ts.map +0 -1
  353. package/dist/parquetjs/parquet-thrift/PageType.js +0 -16
  354. package/dist/parquetjs/parquet-thrift/RowGroup.d.ts.map +0 -1
  355. package/dist/parquetjs/parquet-thrift/RowGroup.js +0 -186
  356. package/dist/parquetjs/parquet-thrift/SchemaElement.d.ts.map +0 -1
  357. package/dist/parquetjs/parquet-thrift/SchemaElement.js +0 -243
  358. package/dist/parquetjs/parquet-thrift/SortingColumn.d.ts.map +0 -1
  359. package/dist/parquetjs/parquet-thrift/SortingColumn.js +0 -131
  360. package/dist/parquetjs/parquet-thrift/Statistics.d.ts.map +0 -1
  361. package/dist/parquetjs/parquet-thrift/Statistics.js +0 -180
  362. package/dist/parquetjs/parquet-thrift/StringType.d.ts.map +0 -1
  363. package/dist/parquetjs/parquet-thrift/StringType.js +0 -62
  364. package/dist/parquetjs/parquet-thrift/TimeType.d.ts.map +0 -1
  365. package/dist/parquetjs/parquet-thrift/TimeType.js +0 -110
  366. package/dist/parquetjs/parquet-thrift/TimeUnit.d.ts.map +0 -1
  367. package/dist/parquetjs/parquet-thrift/TimeUnit.js +0 -131
  368. package/dist/parquetjs/parquet-thrift/TimestampType.d.ts.map +0 -1
  369. package/dist/parquetjs/parquet-thrift/TimestampType.js +0 -110
  370. package/dist/parquetjs/parquet-thrift/Type.d.ts.map +0 -1
  371. package/dist/parquetjs/parquet-thrift/Type.js +0 -20
  372. package/dist/parquetjs/parquet-thrift/TypeDefinedOrder.d.ts.map +0 -1
  373. package/dist/parquetjs/parquet-thrift/TypeDefinedOrder.js +0 -62
  374. package/dist/parquetjs/parquet-thrift/UUIDType.d.ts.map +0 -1
  375. package/dist/parquetjs/parquet-thrift/UUIDType.js +0 -62
  376. package/dist/parquetjs/parquet-thrift/index.d.ts.map +0 -1
  377. package/dist/parquetjs/parquet-thrift/index.js +0 -65
  378. package/dist/parquetjs/parser/decoders.d.ts.map +0 -1
  379. package/dist/parquetjs/parser/decoders.js +0 -318
  380. package/dist/parquetjs/parser/parquet-reader.d.ts.map +0 -1
  381. package/dist/parquetjs/parser/parquet-reader.js +0 -200
  382. package/dist/parquetjs/schema/declare.d.ts.map +0 -1
  383. package/dist/parquetjs/schema/declare.js +0 -12
  384. package/dist/parquetjs/schema/schema.d.ts.map +0 -1
  385. package/dist/parquetjs/schema/schema.js +0 -162
  386. package/dist/parquetjs/schema/shred.d.ts.map +0 -1
  387. package/dist/parquetjs/schema/shred.js +0 -355
  388. package/dist/parquetjs/schema/types.d.ts.map +0 -1
  389. package/dist/parquetjs/schema/types.js +0 -416
  390. package/dist/parquetjs/utils/file-utils.d.ts.map +0 -1
  391. package/dist/parquetjs/utils/file-utils.js +0 -43
  392. package/dist/parquetjs/utils/read-utils.d.ts.map +0 -1
  393. package/dist/parquetjs/utils/read-utils.js +0 -109
  394. package/dist/workers/parquet-worker.d.ts.map +0 -1
  395. package/dist/workers/parquet-worker.js +0 -5
  396. /package/dist/{bundle.d.ts → src/bundle.d.ts} +0 -0
  397. /package/dist/{constants.d.ts → src/constants.d.ts} +0 -0
  398. /package/dist/{lib → src/lib}/arrow/convert-columns-to-row-group.d.ts +0 -0
  399. /package/dist/{lib → src/lib}/arrow/convert-row-group-to-columns.d.ts +0 -0
  400. /package/dist/{lib → src/lib}/arrow/convert-schema-from-parquet.d.ts +0 -0
  401. /package/dist/{lib → src/lib}/arrow/convert-schema-to-parquet.d.ts +0 -0
  402. /package/dist/{lib → src/lib}/wasm/encode-parquet-wasm.d.ts +0 -0
  403. /package/dist/{lib → src/lib}/wasm/load-wasm/index.d.ts +0 -0
  404. /package/dist/{lib → src/lib}/wasm/load-wasm/load-wasm-browser.d.ts +0 -0
  405. /package/dist/{lib → src/lib}/wasm/load-wasm/load-wasm-node.d.ts +0 -0
  406. /package/dist/{lib → src/lib}/wasm/parse-parquet-wasm.d.ts +0 -0
  407. /package/dist/{parquet-writer.d.ts → src/parquet-writer.d.ts} +0 -0
  408. /package/dist/{parquetjs → src/parquetjs}/codecs/declare.d.ts +0 -0
  409. /package/dist/{parquetjs → src/parquetjs}/codecs/dictionary.d.ts +0 -0
  410. /package/dist/{parquetjs → src/parquetjs}/codecs/index.d.ts +0 -0
  411. /package/dist/{parquetjs → src/parquetjs}/codecs/plain.d.ts +0 -0
  412. /package/dist/{parquetjs → src/parquetjs}/codecs/rle.d.ts +0 -0
  413. /package/dist/{parquetjs → src/parquetjs}/compression.d.ts +0 -0
  414. /package/dist/{parquetjs → src/parquetjs}/encoder/parquet-encoder.d.ts +0 -0
  415. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/BoundaryOrder.d.ts +0 -0
  416. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/BsonType.d.ts +0 -0
  417. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/ColumnChunk.d.ts +0 -0
  418. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/ColumnIndex.d.ts +0 -0
  419. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/ColumnMetaData.d.ts +0 -0
  420. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/ColumnOrder.d.ts +0 -0
  421. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/CompressionCodec.d.ts +0 -0
  422. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/ConvertedType.d.ts +0 -0
  423. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/DataPageHeader.d.ts +0 -0
  424. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/DataPageHeaderV2.d.ts +0 -0
  425. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/DateType.d.ts +0 -0
  426. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/DecimalType.d.ts +0 -0
  427. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/DictionaryPageHeader.d.ts +0 -0
  428. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/Encoding.d.ts +0 -0
  429. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/EnumType.d.ts +0 -0
  430. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/FieldRepetitionType.d.ts +0 -0
  431. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/FileMetaData.d.ts +0 -0
  432. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/IndexPageHeader.d.ts +0 -0
  433. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/IntType.d.ts +0 -0
  434. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/JsonType.d.ts +0 -0
  435. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/KeyValue.d.ts +0 -0
  436. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/ListType.d.ts +0 -0
  437. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/LogicalType.d.ts +0 -0
  438. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/MapType.d.ts +0 -0
  439. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/MicroSeconds.d.ts +0 -0
  440. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/MilliSeconds.d.ts +0 -0
  441. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/NullType.d.ts +0 -0
  442. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/OffsetIndex.d.ts +0 -0
  443. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/PageEncodingStats.d.ts +0 -0
  444. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/PageHeader.d.ts +0 -0
  445. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/PageLocation.d.ts +0 -0
  446. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/PageType.d.ts +0 -0
  447. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/RowGroup.d.ts +0 -0
  448. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/SchemaElement.d.ts +0 -0
  449. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/SortingColumn.d.ts +0 -0
  450. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/Statistics.d.ts +0 -0
  451. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/StringType.d.ts +0 -0
  452. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/TimeType.d.ts +0 -0
  453. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/TimeUnit.d.ts +0 -0
  454. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/TimestampType.d.ts +0 -0
  455. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/Type.d.ts +0 -0
  456. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/TypeDefinedOrder.d.ts +0 -0
  457. /package/dist/{parquetjs → src/parquetjs}/parquet-thrift/UUIDType.d.ts +0 -0
  458. /package/dist/{parquetjs → src/parquetjs}/schema/schema.d.ts +0 -0
  459. /package/dist/{parquetjs → src/parquetjs}/schema/shred.d.ts +0 -0
  460. /package/dist/{parquetjs → src/parquetjs}/schema/types.d.ts +0 -0
  461. /package/dist/{parquetjs → src/parquetjs}/utils/file-utils.d.ts +0 -0
  462. /package/dist/{parquetjs → src/parquetjs}/utils/read-utils.d.ts +0 -0
  463. /package/dist/{workers → src/workers}/parquet-worker.d.ts +0 -0
@@ -5,21 +5,40 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.getGeoMetadata = getGeoMetadata;
8
+ exports.parseJSONStringMetadata = parseJSONStringMetadata;
8
9
  exports.setGeoMetadata = setGeoMetadata;
9
10
  exports.unpackGeoMetadata = unpackGeoMetadata;
11
+ exports.unpackJSONStringMetadata = unpackJSONStringMetadata;
10
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
- function getGeoMetadata(schema) {
12
- var stringifiedGeoMetadata = schema.metadata.geo;
13
- if (!stringifiedGeoMetadata) {
13
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
14
+ function parseJSONStringMetadata(schema, metadataKey) {
15
+ var stringifiedMetadata = schema.metadata[metadataKey];
16
+ if (!stringifiedMetadata) {
14
17
  return null;
15
18
  }
16
19
  try {
17
- var geoMetadata = JSON.parse(stringifiedGeoMetadata);
18
- return geoMetadata;
20
+ var metadata = JSON.parse(stringifiedMetadata);
21
+ if (!metadata || (0, _typeof2.default)(metadata) !== 'object') {
22
+ return null;
23
+ }
24
+ return metadata;
19
25
  } catch (_unused) {
20
26
  return null;
21
27
  }
22
28
  }
29
+ function unpackJSONStringMetadata(schema, metadataKey) {
30
+ var json = parseJSONStringMetadata(schema, metadataKey);
31
+ for (var _i = 0, _Object$entries = Object.entries(json || {}); _i < _Object$entries.length; _i++) {
32
+ var _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2),
33
+ _key = _Object$entries$_i[0],
34
+ value = _Object$entries$_i[1];
35
+ schema.metadata["".concat(metadataKey, ".").concat(_key)] = typeof value === 'string' ? value : JSON.stringify(value);
36
+ }
37
+ }
38
+ function getGeoMetadata(schema) {
39
+ var geoMetadata = parseJSONStringMetadata(schema, 'geo');
40
+ return geoMetadata;
41
+ }
23
42
  function setGeoMetadata(schema, geoMetadata) {
24
43
  var stringifiedGeoMetadata = JSON.stringify(geoMetadata);
25
44
  schema.metadata.geo = stringifiedGeoMetadata;
@@ -40,9 +59,9 @@ function unpackGeoMetadata(schema) {
40
59
  }
41
60
  schema.metadata['geo.columns'] = Object.keys(columns || {}).join('');
42
61
  var _loop = function _loop() {
43
- var _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2),
44
- columnName = _Object$entries$_i[0],
45
- columnMetadata = _Object$entries$_i[1];
62
+ var _Object$entries2$_i = (0, _slicedToArray2.default)(_Object$entries2[_i2], 2),
63
+ columnName = _Object$entries2$_i[0],
64
+ columnMetadata = _Object$entries2$_i[1];
46
65
  var field = schema.fields.find(function (field) {
47
66
  return field.name === columnName;
48
67
  });
@@ -53,24 +72,41 @@ function unpackGeoMetadata(schema) {
53
72
  unpackGeoFieldMetadata(field, columnMetadata);
54
73
  }
55
74
  };
56
- for (var _i = 0, _Object$entries = Object.entries(columns || {}); _i < _Object$entries.length; _i++) {
75
+ for (var _i2 = 0, _Object$entries2 = Object.entries(columns || {}); _i2 < _Object$entries2.length; _i2++) {
57
76
  _loop();
58
77
  }
59
78
  }
60
79
  function unpackGeoFieldMetadata(field, columnMetadata) {
61
- for (var _i2 = 0, _Object$entries2 = Object.entries(columnMetadata || {}); _i2 < _Object$entries2.length; _i2++) {
62
- var _Object$entries2$_i = (0, _slicedToArray2.default)(_Object$entries2[_i2], 2),
63
- _key = _Object$entries2$_i[0],
64
- value = _Object$entries2$_i[1];
65
- switch (_key) {
80
+ for (var _i3 = 0, _Object$entries3 = Object.entries(columnMetadata || {}); _i3 < _Object$entries3.length; _i3++) {
81
+ var _Object$entries3$_i = (0, _slicedToArray2.default)(_Object$entries3[_i3], 2),
82
+ _key2 = _Object$entries3$_i[0],
83
+ value = _Object$entries3$_i[1];
84
+ switch (_key2) {
66
85
  case 'geometry_type':
67
- setFieldMetadata(field, "geo.".concat(_key), value.join(','));
86
+ setFieldMetadata(field, "geo.".concat(_key2), value.join(','));
68
87
  break;
69
88
  case 'bbox':
89
+ setFieldMetadata(field, "geo.crs.".concat(_key2), JSON.stringify(value));
90
+ break;
70
91
  case 'crs':
92
+ for (var _i4 = 0, _Object$entries4 = Object.entries(value || {}); _i4 < _Object$entries4.length; _i4++) {
93
+ var _Object$entries4$_i = (0, _slicedToArray2.default)(_Object$entries4[_i4], 2),
94
+ crsKey = _Object$entries4$_i[0],
95
+ crsValue = _Object$entries4$_i[1];
96
+ switch (crsKey) {
97
+ case 'id':
98
+ var crsId = (0, _typeof2.default)(crsValue) === 'object' ? "".concat(crsValue === null || crsValue === void 0 ? void 0 : crsValue.authority, ":").concat(crsValue === null || crsValue === void 0 ? void 0 : crsValue.code) : JSON.stringify(crsValue);
99
+ setFieldMetadata(field, "geo.crs.".concat(crsKey), crsId);
100
+ break;
101
+ default:
102
+ setFieldMetadata(field, "geo.crs.".concat(crsKey), typeof crsValue === 'string' ? crsValue : JSON.stringify(crsValue));
103
+ break;
104
+ }
105
+ }
106
+ break;
71
107
  case 'edges':
72
108
  default:
73
- setFieldMetadata(field, "geo.".concat(_key), typeof value === 'string' ? value : JSON.stringify(value));
109
+ setFieldMetadata(field, "geo.".concat(_key2), typeof value === 'string' ? value : JSON.stringify(value));
74
110
  }
75
111
  }
76
112
  }
@@ -1 +1 @@
1
- {"version":3,"file":"decode-geo-metadata.js","names":["getGeoMetadata","schema","stringifiedGeoMetadata","metadata","geo","geoMetadata","JSON","parse","_unused","setGeoMetadata","stringify","unpackGeoMetadata","version","primary_column","columns","Object","keys","join","_loop","_Object$entries$_i","_slicedToArray2","default","_Object$entries","_i","columnName","columnMetadata","field","fields","find","name","setFieldMetadata","unpackGeoFieldMetadata","entries","length","_i2","_Object$entries2","_Object$entries2$_i","key","value","concat"],"sources":["../../../../src/lib/geo/decode-geo-metadata.ts"],"sourcesContent":["// loaders.gl, MIT license\nimport {Schema, Field} from '@loaders.gl/schema';\n\n/* eslint-disable camelcase */\n\n/** A geoarrow / geoparquet geo metadata object (stored in stringified form in the top level metadata 'geo' key) */\nexport type GeoMetadata = {\n version?: string;\n primary_column?: string;\n columns: Record<string, GeoColumnMetadata>;\n [key: string]: unknown;\n};\n\n/** A geoarrow / geoparquet geo metadata for one geometry column */\nexport type GeoColumnMetadata = {\n bounding_box?:\n | [number, number, number, number]\n | [number, number, number, number, number, number];\n crs?: string;\n geometry_type?: string[];\n edges?: string;\n [key: string]: unknown;\n};\n\n/**\n * Reads the GeoMetadata object from the metadata\n * @note geoarrow / parquet schema is stringified into a single key-value pair in the parquet metadata */\nexport function getGeoMetadata(schema: Schema): GeoMetadata | null {\n const stringifiedGeoMetadata = schema.metadata.geo;\n if (!stringifiedGeoMetadata) {\n return null;\n }\n\n try {\n const geoMetadata = JSON.parse(stringifiedGeoMetadata) as GeoMetadata;\n return geoMetadata;\n } catch {\n return null;\n }\n}\n\n/**\n * Stores a geoarrow / geoparquet geo metadata object in the schema\n * @note geoarrow / geoparquet geo metadata is a single stringified JSON field\n */\nexport function setGeoMetadata(schema: Schema, geoMetadata: GeoMetadata): void {\n const stringifiedGeoMetadata = JSON.stringify(geoMetadata);\n schema.metadata.geo = stringifiedGeoMetadata;\n}\n\n/**\n * Unpacks geo metadata into separate metadata fields (parses the long JSON string)\n * @note geoarrow / parquet schema is stringified into a single key-value pair in the parquet metadata\n */\nexport function unpackGeoMetadata(schema: Schema): void {\n const geoMetadata = getGeoMetadata(schema);\n if (!geoMetadata) {\n return;\n }\n\n // Store Parquet Schema Level Metadata\n\n const {version, primary_column, columns} = geoMetadata;\n if (version) {\n schema.metadata['geo.version'] = version;\n }\n\n if (primary_column) {\n schema.metadata['geo.primary_column'] = primary_column;\n }\n\n // store column names as comma separated list\n schema.metadata['geo.columns'] = Object.keys(columns || {}).join('');\n\n for (const [columnName, columnMetadata] of Object.entries(columns || {})) {\n const field = schema.fields.find((field) => field.name === columnName);\n if (field) {\n if (field.name === primary_column) {\n setFieldMetadata(field, 'geo.primary_field', 'true');\n }\n unpackGeoFieldMetadata(field, columnMetadata);\n }\n }\n}\n\nfunction unpackGeoFieldMetadata(field: Field, columnMetadata): void {\n for (const [key, value] of Object.entries(columnMetadata || {})) {\n switch (key) {\n case 'geometry_type':\n setFieldMetadata(field, `geo.${key}`, (value as string[]).join(','));\n break;\n case 'bbox':\n case 'crs':\n case 'edges':\n default:\n setFieldMetadata(\n field,\n `geo.${key}`,\n typeof value === 'string' ? value : JSON.stringify(value)\n );\n }\n }\n}\n\nfunction setFieldMetadata(field: Field, key: string, value: string): void {\n field.metadata = field.metadata || {};\n field.metadata[key] = value;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"decode-geo-metadata.js","names":["parseJSONStringMetadata","schema","metadataKey","stringifiedMetadata","metadata","JSON","parse","_typeof2","default","_unused","unpackJSONStringMetadata","json","_i","_Object$entries","Object","entries","length","_Object$entries$_i","_slicedToArray2","key","value","concat","stringify","getGeoMetadata","geoMetadata","setGeoMetadata","stringifiedGeoMetadata","geo","unpackGeoMetadata","version","primary_column","columns","keys","join","_loop","_Object$entries2$_i","_Object$entries2","_i2","columnName","columnMetadata","field","fields","find","name","setFieldMetadata","unpackGeoFieldMetadata","_i3","_Object$entries3","_Object$entries3$_i","_i4","_Object$entries4","_Object$entries4$_i","crsKey","crsValue","crsId","authority","code"],"sources":["../../../../src/lib/geo/decode-geo-metadata.ts"],"sourcesContent":["// loaders.gl, MIT license\nimport {Schema, Field} from '@loaders.gl/schema';\n\n/* eslint-disable camelcase */\n\ntype GeometryType =\n | 'Point'\n | 'LineString'\n | 'Polygon'\n | 'MultiPoint'\n | 'MultiLineString'\n | 'MultiPolygon'\n | 'GeometryCollection'\n | 'Point Z'\n | 'LineString Z'\n | 'Polygon Z'\n | 'MultiPoint Z'\n | 'MultiLineString Z'\n | 'MultiPolygon Z'\n | 'GeometryCollection Z';\n\n/**\n * A geoarrow / geoparquet geo metadata object\n * (stored in stringified form in the top level metadata 'geo' key)\n * @see https://github.com/opengeospatial/geoparquet/blob/main/format-specs/geoparquet.md\n * @see https://github.com/geoarrow/geoarrow/blob/main/metadata.md\n * */\nexport type GeoMetadata = {\n version?: string;\n primary_column?: string;\n columns: Record<string, GeoColumnMetadata>;\n [key: string]: unknown;\n};\n\n/** A geoarrow / geoparquet geo metadata for one geometry column */\nexport type GeoColumnMetadata = {\n encoding: 'wkb' | 'wkt';\n geometry_types: GeometryType[];\n crs?: object | null;\n orientation?: 'counterclockwise';\n bbox?: [number, number, number, number] | [number, number, number, number, number, number];\n edges?: 'planar' | 'spherical';\n epoch?: number;\n [key: string]: unknown;\n};\n\n/** Parse a key with stringified arrow metadata */\nexport function parseJSONStringMetadata(\n schema: Schema,\n metadataKey: string\n): Record<string, unknown> | null {\n const stringifiedMetadata = schema.metadata[metadataKey];\n if (!stringifiedMetadata) {\n return null;\n }\n\n try {\n const metadata = JSON.parse(stringifiedMetadata);\n if (!metadata || typeof metadata !== 'object') {\n return null;\n }\n return metadata;\n } catch {\n return null;\n }\n}\n\nexport function unpackJSONStringMetadata(schema: Schema, metadataKey: string): void {\n const json = parseJSONStringMetadata(schema, metadataKey);\n for (const [key, value] of Object.entries(json || {})) {\n schema.metadata[`${metadataKey}.${key}`] =\n typeof value === 'string' ? value : JSON.stringify(value);\n }\n}\n\n// GEO METADATA\n\n/**\n * Reads the GeoMetadata object from the metadata\n * @note geoarrow / parquet schema is stringified into a single key-value pair in the parquet metadata */\nexport function getGeoMetadata(schema: Schema): GeoMetadata | null {\n const geoMetadata = parseJSONStringMetadata(schema, 'geo') as GeoMetadata;\n return geoMetadata;\n}\n\n/**\n * Stores a geoarrow / geoparquet geo metadata object in the schema\n * @note geoarrow / geoparquet geo metadata is a single stringified JSON field\n */\nexport function setGeoMetadata(schema: Schema, geoMetadata: GeoMetadata): void {\n const stringifiedGeoMetadata = JSON.stringify(geoMetadata);\n schema.metadata.geo = stringifiedGeoMetadata;\n}\n\n/**\n * Unpacks geo metadata into separate metadata fields (parses the long JSON string)\n * @note geoarrow / parquet schema is stringified into a single key-value pair in the parquet metadata\n */\nexport function unpackGeoMetadata(schema: Schema): void {\n const geoMetadata = getGeoMetadata(schema);\n if (!geoMetadata) {\n return;\n }\n\n // Store Parquet Schema Level Metadata\n\n const {version, primary_column, columns} = geoMetadata;\n if (version) {\n schema.metadata['geo.version'] = version;\n }\n\n if (primary_column) {\n schema.metadata['geo.primary_column'] = primary_column;\n }\n\n // store column names as comma separated list\n schema.metadata['geo.columns'] = Object.keys(columns || {}).join('');\n\n for (const [columnName, columnMetadata] of Object.entries(columns || {})) {\n const field = schema.fields.find((field) => field.name === columnName);\n if (field) {\n if (field.name === primary_column) {\n setFieldMetadata(field, 'geo.primary_field', 'true');\n }\n unpackGeoFieldMetadata(field, columnMetadata);\n }\n }\n}\n\n// eslint-disable-next-line complexity\nfunction unpackGeoFieldMetadata(field: Field, columnMetadata): void {\n for (const [key, value] of Object.entries(columnMetadata || {})) {\n switch (key) {\n case 'geometry_type':\n setFieldMetadata(field, `geo.${key}`, (value as string[]).join(','));\n break;\n case 'bbox':\n setFieldMetadata(field, `geo.crs.${key}`, JSON.stringify(value));\n break;\n case 'crs':\n for (const [crsKey, crsValue] of Object.entries(value || {})) {\n switch (crsKey) {\n case 'id':\n const crsId =\n typeof crsValue === 'object'\n ? `${crsValue?.authority}:${crsValue?.code}`\n : JSON.stringify(crsValue);\n setFieldMetadata(field, `geo.crs.${crsKey}`, crsId);\n break;\n default:\n setFieldMetadata(\n field,\n `geo.crs.${crsKey}`,\n typeof crsValue === 'string' ? crsValue : JSON.stringify(crsValue)\n );\n break;\n }\n }\n break;\n case 'edges':\n default:\n setFieldMetadata(\n field,\n `geo.${key}`,\n typeof value === 'string' ? value : JSON.stringify(value)\n );\n }\n }\n}\n\nfunction setFieldMetadata(field: Field, key: string, value: string): void {\n field.metadata = field.metadata || {};\n field.metadata[key] = value;\n}\n"],"mappings":"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"}
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
7
- var _default = {
6
+ exports.GEOPARQUET_METADATA_JSON_SCHEMA = void 0;
7
+ var GEOPARQUET_METADATA_JSON_SCHEMA = {
8
8
  $schema: 'http://json-schema.org/draft-07/schema#',
9
9
  title: 'GeoParquet',
10
10
  description: 'Parquet metadata included in the geo field.',
@@ -79,5 +79,5 @@ var _default = {
79
79
  }
80
80
  }
81
81
  };
82
- exports.default = _default;
83
- //# sourceMappingURL=geoparquet-schema.js.map
82
+ exports.GEOPARQUET_METADATA_JSON_SCHEMA = GEOPARQUET_METADATA_JSON_SCHEMA;
83
+ //# sourceMappingURL=geoparquet-metadata-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geoparquet-metadata-schema.js","names":["GEOPARQUET_METADATA_JSON_SCHEMA","$schema","title","description","type","required","properties","version","const","primary_column","minLength","columns","minProperties","patternProperties","encoding","geometry_types","uniqueItems","items","pattern","crs","oneOf","$ref","edges","enum","orientation","bbox","minItems","maxItems","epoch","additionalProperties","exports"],"sources":["../../../../src/lib/geo/geoparquet-metadata-schema.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n/* eslint-disable camelcase */\n\n/**\n * Geoparquet JSON schema for geo metadata\n * @see https://github.com/geoarrow/geoarrow/blob/main/metadata.md\n * @see https://github.com/opengeospatial/geoparquet/blob/main/format-specs/geoparquet.md\n */\nexport const GEOPARQUET_METADATA_JSON_SCHEMA = {\n $schema: 'http://json-schema.org/draft-07/schema#',\n title: 'GeoParquet',\n description: 'Parquet metadata included in the geo field.',\n type: 'object',\n required: ['version', 'primary_column', 'columns'],\n properties: {\n version: {type: 'string', const: '1.0.0-beta.1'},\n primary_column: {type: 'string', minLength: 1},\n columns: {\n type: 'object',\n minProperties: 1,\n patternProperties: {\n '.+': {\n type: 'object',\n required: ['encoding', 'geometry_types'],\n properties: {\n encoding: {type: 'string', const: 'WKB'},\n geometry_types: {\n type: 'array',\n uniqueItems: true,\n items: {\n type: 'string',\n pattern: '^(GeometryCollection|(Multi)?(Point|LineString|Polygon))( Z)?$'\n }\n },\n crs: {\n oneOf: [\n {\n $ref: 'https://proj.org/schemas/v0.5/projjson.schema.json'\n },\n {type: 'null'}\n ]\n },\n edges: {type: 'string', enum: ['planar', 'spherical']},\n orientation: {type: 'string', const: 'counterclockwise'},\n bbox: {\n type: 'array',\n items: {type: 'number'},\n oneOf: [\n {\n description: '2D bbox consisting of (xmin, ymin, xmax, ymax)',\n minItems: 4,\n maxItems: 4\n },\n {\n description: '3D bbox consisting of (xmin, ymin, zmin, xmax, ymax, zmax)',\n minItems: 6,\n maxItems: 6\n }\n ]\n },\n epoch: {type: 'number'}\n }\n }\n },\n additionalProperties: false\n }\n }\n};\n"],"mappings":";;;;;;AASO,IAAMA,+BAA+B,GAAG;EAC7CC,OAAO,EAAE,yCAAyC;EAClDC,KAAK,EAAE,YAAY;EACnBC,WAAW,EAAE,6CAA6C;EAC1DC,IAAI,EAAE,QAAQ;EACdC,QAAQ,EAAE,CAAC,SAAS,EAAE,gBAAgB,EAAE,SAAS,CAAC;EAClDC,UAAU,EAAE;IACVC,OAAO,EAAE;MAACH,IAAI,EAAE,QAAQ;MAAEI,KAAK,EAAE;IAAc,CAAC;IAChDC,cAAc,EAAE;MAACL,IAAI,EAAE,QAAQ;MAAEM,SAAS,EAAE;IAAC,CAAC;IAC9CC,OAAO,EAAE;MACPP,IAAI,EAAE,QAAQ;MACdQ,aAAa,EAAE,CAAC;MAChBC,iBAAiB,EAAE;QACjB,IAAI,EAAE;UACJT,IAAI,EAAE,QAAQ;UACdC,QAAQ,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC;UACxCC,UAAU,EAAE;YACVQ,QAAQ,EAAE;cAACV,IAAI,EAAE,QAAQ;cAAEI,KAAK,EAAE;YAAK,CAAC;YACxCO,cAAc,EAAE;cACdX,IAAI,EAAE,OAAO;cACbY,WAAW,EAAE,IAAI;cACjBC,KAAK,EAAE;gBACLb,IAAI,EAAE,QAAQ;gBACdc,OAAO,EAAE;cACX;YACF,CAAC;YACDC,GAAG,EAAE;cACHC,KAAK,EAAE,CACL;gBACEC,IAAI,EAAE;cACR,CAAC,EACD;gBAACjB,IAAI,EAAE;cAAM,CAAC;YAElB,CAAC;YACDkB,KAAK,EAAE;cAAClB,IAAI,EAAE,QAAQ;cAAEmB,IAAI,EAAE,CAAC,QAAQ,EAAE,WAAW;YAAC,CAAC;YACtDC,WAAW,EAAE;cAACpB,IAAI,EAAE,QAAQ;cAAEI,KAAK,EAAE;YAAkB,CAAC;YACxDiB,IAAI,EAAE;cACJrB,IAAI,EAAE,OAAO;cACba,KAAK,EAAE;gBAACb,IAAI,EAAE;cAAQ,CAAC;cACvBgB,KAAK,EAAE,CACL;gBACEjB,WAAW,EAAE,gDAAgD;gBAC7DuB,QAAQ,EAAE,CAAC;gBACXC,QAAQ,EAAE;cACZ,CAAC,EACD;gBACExB,WAAW,EAAE,4DAA4D;gBACzEuB,QAAQ,EAAE,CAAC;gBACXC,QAAQ,EAAE;cACZ,CAAC;YAEL,CAAC;YACDC,KAAK,EAAE;cAACxB,IAAI,EAAE;YAAQ;UACxB;QACF;MACF,CAAC;MACDyB,oBAAoB,EAAE;IACxB;EACF;AACF,CAAC;AAACC,OAAA,CAAA9B,+BAAA,GAAAA,+BAAA"}
@@ -0,0 +1,60 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "GeoParquet",
4
+ "description": "Parquet metadata included in the geo field.",
5
+ "type": "object",
6
+ "required": ["version", "primary_column", "columns"],
7
+ "properties": {
8
+ "version": {"type": "string", "const": "1.0.0-beta.1"},
9
+ "primary_column": {"type": "string", "minLength": 1},
10
+ "columns": {
11
+ "type": "object",
12
+ "minProperties": 1,
13
+ "patternProperties": {
14
+ ".+": {
15
+ "type": "object",
16
+ "required": ["encoding", "geometry_types"],
17
+ "properties": {
18
+ "encoding": {"type": "string", "const": "WKB"},
19
+ "geometry_types": {
20
+ "type": "array",
21
+ "uniqueItems": true,
22
+ "items": {
23
+ "type": "string",
24
+ "pattern": "^(GeometryCollection|(Multi)?(Point|LineString|Polygon))( Z)?$"
25
+ }
26
+ },
27
+ "crs": {
28
+ "oneOf": [
29
+ {
30
+ "$ref": "https://proj.org/schemas/v0.5/projjson.schema.json"
31
+ },
32
+ {"type": "null"}
33
+ ]
34
+ },
35
+ "edges": {"type": "string", "enum": ["planar", "spherical"]},
36
+ "orientation": {"type": "string", "const": "counterclockwise"},
37
+ "bbox": {
38
+ "type": "array",
39
+ "items": {"type": "number"},
40
+ "oneOf": [
41
+ {
42
+ "description": "2D bbox consisting of (xmin, ymin, xmax, ymax)",
43
+ "minItems": 4,
44
+ "maxItems": 4
45
+ },
46
+ {
47
+ "description": "3D bbox consisting of (xmin, ymin, zmin, xmax, ymax, zmax)",
48
+ "minItems": 6,
49
+ "maxItems": 6
50
+ }
51
+ ]
52
+ },
53
+ "epoch": {"type": "number"}
54
+ }
55
+ }
56
+ },
57
+ "additionalProperties": false
58
+ }
59
+ }
60
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getSchemaFromParquetReader = getSchemaFromParquetReader;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _convertSchemaFromParquet = require("../arrow/convert-schema-from-parquet");
11
+ var _decodeGeoMetadata = require("../geo/decode-geo-metadata");
12
+ function getSchemaFromParquetReader(_x) {
13
+ return _getSchemaFromParquetReader.apply(this, arguments);
14
+ }
15
+ function _getSchemaFromParquetReader() {
16
+ _getSchemaFromParquetReader = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(reader) {
17
+ var parquetSchema, parquetMetadata, schema;
18
+ return _regenerator.default.wrap(function _callee$(_context) {
19
+ while (1) switch (_context.prev = _context.next) {
20
+ case 0:
21
+ _context.next = 2;
22
+ return reader.getSchema();
23
+ case 2:
24
+ parquetSchema = _context.sent;
25
+ _context.next = 5;
26
+ return reader.getFileMetadata();
27
+ case 5:
28
+ parquetMetadata = _context.sent;
29
+ schema = (0, _convertSchemaFromParquet.convertParquetSchema)(parquetSchema, parquetMetadata);
30
+ (0, _decodeGeoMetadata.unpackGeoMetadata)(schema);
31
+ (0, _decodeGeoMetadata.unpackJSONStringMetadata)(schema, 'pandas');
32
+ return _context.abrupt("return", schema);
33
+ case 10:
34
+ case "end":
35
+ return _context.stop();
36
+ }
37
+ }, _callee);
38
+ }));
39
+ return _getSchemaFromParquetReader.apply(this, arguments);
40
+ }
41
+ //# sourceMappingURL=get-parquet-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-parquet-schema.js","names":["_convertSchemaFromParquet","require","_decodeGeoMetadata","getSchemaFromParquetReader","_x","_getSchemaFromParquetReader","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","reader","parquetSchema","parquetMetadata","schema","wrap","_callee$","_context","prev","next","getSchema","sent","getFileMetadata","convertParquetSchema","unpackGeoMetadata","unpackJSONStringMetadata","abrupt","stop"],"sources":["../../../../src/lib/parsers/get-parquet-schema.ts"],"sourcesContent":["// loaders.gl\nimport {Schema} from '@loaders.gl/schema';\nimport {ParquetReader} from '../../parquetjs/parser/parquet-reader';\nimport {convertParquetSchema} from '../arrow/convert-schema-from-parquet';\nimport {unpackGeoMetadata, unpackJSONStringMetadata} from '../geo/decode-geo-metadata';\n\nexport async function getSchemaFromParquetReader(reader: ParquetReader): Promise<Schema> {\n const parquetSchema = await reader.getSchema();\n const parquetMetadata = await reader.getFileMetadata();\n const schema = convertParquetSchema(parquetSchema, parquetMetadata);\n unpackGeoMetadata(schema);\n unpackJSONStringMetadata(schema, 'pandas');\n return schema;\n}\n"],"mappings":";;;;;;;;;AAGA,IAAAA,yBAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAAuF,SAEjEE,0BAA0BA,CAAAC,EAAA;EAAA,OAAAC,2BAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,4BAAA;EAAAA,2BAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAzC,SAAAC,QAA0CC,MAAqB;IAAA,IAAAC,aAAA,EAAAC,eAAA,EAAAC,MAAA;IAAA,OAAAN,YAAA,CAAAD,OAAA,CAAAQ,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAAF,QAAA,CAAAE,IAAA;UAAA,OACxCR,MAAM,CAACS,SAAS,CAAC,CAAC;QAAA;UAAxCR,aAAa,GAAAK,QAAA,CAAAI,IAAA;UAAAJ,QAAA,CAAAE,IAAA;UAAA,OACWR,MAAM,CAACW,eAAe,CAAC,CAAC;QAAA;UAAhDT,eAAe,GAAAI,QAAA,CAAAI,IAAA;UACfP,MAAM,GAAG,IAAAS,8CAAoB,EAACX,aAAa,EAAEC,eAAe,CAAC;UACnE,IAAAW,oCAAiB,EAACV,MAAM,CAAC;UACzB,IAAAW,2CAAwB,EAACX,MAAM,EAAE,QAAQ,CAAC;UAAC,OAAAG,QAAA,CAAAS,MAAA,WACpCZ,MAAM;QAAA;QAAA;UAAA,OAAAG,QAAA,CAAAU,IAAA;MAAA;IAAA,GAAAjB,OAAA;EAAA,CACd;EAAA,OAAAP,2BAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA"}
@@ -12,9 +12,9 @@ var _awaitAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpe
12
12
  var _wrapAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapAsyncGenerator"));
13
13
  var _loaderUtils = require("@loaders.gl/loader-utils");
14
14
  var _parquetReader = require("../../parquetjs/parser/parquet-reader");
15
- var _convertSchemaFromParquet = require("../arrow/convert-schema-from-parquet");
16
15
  var _shred = require("../../parquetjs/schema/shred");
17
- var _decodeGeoMetadata = require("../geo/decode-geo-metadata");
16
+ var _getParquetSchema = require("./get-parquet-schema");
17
+ var _bufferPolyfill = require("../../buffer-polyfill");
18
18
  function _asyncIterator(iterable) { var method, async, sync, retry = 2; for ("undefined" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;) { if (async && null != (method = iterable[async])) return method.call(iterable); if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable)); async = "@@asyncIterator", sync = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
19
19
  function AsyncFromSyncIterator(s) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var done = r.done; return Promise.resolve(r.value).then(function (value) { return { value: value, done: done }; }); } return AsyncFromSyncIterator = function AsyncFromSyncIterator(s) { this.s = s, this.n = s.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function next() { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, return: function _return(value) { var ret = this.s.return; return void 0 === ret ? Promise.resolve({ value: value, done: !0 }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments)); }, throw: function _throw(value) { var thr = this.s.return; return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(s); }
20
20
  function parseParquetInColumns(_x3, _x4) {
@@ -22,21 +22,24 @@ function parseParquetInColumns(_x3, _x4) {
22
22
  }
23
23
  function _parseParquetInColumns() {
24
24
  _parseParquetInColumns = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(arrayBuffer, options) {
25
- var blob, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, batch;
25
+ var blob, file, reader, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, batch;
26
26
  return _regenerator.default.wrap(function _callee2$(_context2) {
27
27
  while (1) switch (_context2.prev = _context2.next) {
28
28
  case 0:
29
+ (0, _bufferPolyfill.installBufferPolyfill)();
29
30
  blob = new Blob([arrayBuffer]);
31
+ file = (0, _loaderUtils.makeReadableFile)(blob);
32
+ reader = new _parquetReader.ParquetReader(file);
30
33
  _iteratorAbruptCompletion = false;
31
34
  _didIteratorError = false;
32
- _context2.prev = 3;
33
- _iterator = _asyncIterator(parseParquetFileInColumnarBatches(blob, options));
34
- case 5:
35
- _context2.next = 7;
35
+ _context2.prev = 6;
36
+ _iterator = _asyncIterator(parseParquetFileInColumnarBatches(reader, options));
37
+ case 8:
38
+ _context2.next = 10;
36
39
  return _iterator.next();
37
- case 7:
40
+ case 10:
38
41
  if (!(_iteratorAbruptCompletion = !(_step = _context2.sent).done)) {
39
- _context2.next = 13;
42
+ _context2.next = 16;
40
43
  break;
41
44
  }
42
45
  batch = _step.value;
@@ -45,45 +48,45 @@ function _parseParquetInColumns() {
45
48
  schema: batch.schema,
46
49
  data: batch.data
47
50
  });
48
- case 10:
51
+ case 13:
49
52
  _iteratorAbruptCompletion = false;
50
- _context2.next = 5;
53
+ _context2.next = 8;
51
54
  break;
52
- case 13:
53
- _context2.next = 19;
55
+ case 16:
56
+ _context2.next = 22;
54
57
  break;
55
- case 15:
56
- _context2.prev = 15;
57
- _context2.t0 = _context2["catch"](3);
58
+ case 18:
59
+ _context2.prev = 18;
60
+ _context2.t0 = _context2["catch"](6);
58
61
  _didIteratorError = true;
59
62
  _iteratorError = _context2.t0;
60
- case 19:
61
- _context2.prev = 19;
62
- _context2.prev = 20;
63
+ case 22:
64
+ _context2.prev = 22;
65
+ _context2.prev = 23;
63
66
  if (!(_iteratorAbruptCompletion && _iterator.return != null)) {
64
- _context2.next = 24;
67
+ _context2.next = 27;
65
68
  break;
66
69
  }
67
- _context2.next = 24;
70
+ _context2.next = 27;
68
71
  return _iterator.return();
69
- case 24:
70
- _context2.prev = 24;
72
+ case 27:
73
+ _context2.prev = 27;
71
74
  if (!_didIteratorError) {
72
- _context2.next = 27;
75
+ _context2.next = 30;
73
76
  break;
74
77
  }
75
78
  throw _iteratorError;
76
- case 27:
77
- return _context2.finish(24);
78
- case 28:
79
- return _context2.finish(19);
80
- case 29:
81
- throw new Error('empty table');
82
79
  case 30:
80
+ return _context2.finish(27);
81
+ case 31:
82
+ return _context2.finish(22);
83
+ case 32:
84
+ throw new Error('empty table');
85
+ case 33:
83
86
  case "end":
84
87
  return _context2.stop();
85
88
  }
86
- }, _callee2, null, [[3, 15, 19, 29], [20,, 24, 28]]);
89
+ }, _callee2, null, [[6, 18, 22, 32], [23,, 27, 31]]);
87
90
  }));
88
91
  return _parseParquetInColumns.apply(this, arguments);
89
92
  }
@@ -91,80 +94,76 @@ function parseParquetFileInColumnarBatches(_x, _x2) {
91
94
  return _parseParquetFileInColumnarBatches.apply(this, arguments);
92
95
  }
93
96
  function _parseParquetFileInColumnarBatches() {
94
- _parseParquetFileInColumnarBatches = (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee(blob, options) {
95
- var file, reader, parquetSchema, parquetMetadata, schema, rowGroups, _iteratorAbruptCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, rowGroup;
97
+ _parseParquetFileInColumnarBatches = (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee(reader, options) {
98
+ var schema, parquetSchema, rowGroups, _iteratorAbruptCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, rowGroup;
96
99
  return _regenerator.default.wrap(function _callee$(_context) {
97
100
  while (1) switch (_context.prev = _context.next) {
98
101
  case 0:
99
- file = (0, _loaderUtils.makeReadableFile)(blob);
100
- reader = new _parquetReader.ParquetReader(file);
101
- _context.next = 4;
102
+ _context.next = 2;
103
+ return (0, _awaitAsyncGenerator2.default)((0, _getParquetSchema.getSchemaFromParquetReader)(reader));
104
+ case 2:
105
+ schema = _context.sent;
106
+ _context.next = 5;
102
107
  return (0, _awaitAsyncGenerator2.default)(reader.getSchema());
103
- case 4:
108
+ case 5:
104
109
  parquetSchema = _context.sent;
105
- _context.next = 7;
106
- return (0, _awaitAsyncGenerator2.default)(reader.getFileMetadata());
107
- case 7:
108
- parquetMetadata = _context.sent;
109
- schema = (0, _convertSchemaFromParquet.convertParquetSchema)(parquetSchema, parquetMetadata);
110
- (0, _decodeGeoMetadata.unpackGeoMetadata)(schema);
111
110
  rowGroups = reader.rowGroupIterator(options === null || options === void 0 ? void 0 : options.parquet);
112
111
  _iteratorAbruptCompletion2 = false;
113
112
  _didIteratorError2 = false;
114
- _context.prev = 13;
113
+ _context.prev = 9;
115
114
  _iterator2 = _asyncIterator(rowGroups);
116
- case 15:
117
- _context.next = 17;
115
+ case 11:
116
+ _context.next = 13;
118
117
  return (0, _awaitAsyncGenerator2.default)(_iterator2.next());
119
- case 17:
118
+ case 13:
120
119
  if (!(_iteratorAbruptCompletion2 = !(_step2 = _context.sent).done)) {
121
- _context.next = 24;
120
+ _context.next = 20;
122
121
  break;
123
122
  }
124
123
  rowGroup = _step2.value;
125
- _context.next = 21;
126
- return convertRowGroupToTableBatch(parquetSchema, rowGroup, schema);
127
- case 21:
124
+ _context.next = 17;
125
+ return convertRowGroupToTableBatch(rowGroup, parquetSchema, schema);
126
+ case 17:
128
127
  _iteratorAbruptCompletion2 = false;
129
- _context.next = 15;
128
+ _context.next = 11;
130
129
  break;
131
- case 24:
132
- _context.next = 30;
130
+ case 20:
131
+ _context.next = 26;
133
132
  break;
134
- case 26:
135
- _context.prev = 26;
136
- _context.t0 = _context["catch"](13);
133
+ case 22:
134
+ _context.prev = 22;
135
+ _context.t0 = _context["catch"](9);
137
136
  _didIteratorError2 = true;
138
137
  _iteratorError2 = _context.t0;
139
- case 30:
140
- _context.prev = 30;
141
- _context.prev = 31;
138
+ case 26:
139
+ _context.prev = 26;
140
+ _context.prev = 27;
142
141
  if (!(_iteratorAbruptCompletion2 && _iterator2.return != null)) {
143
- _context.next = 35;
142
+ _context.next = 31;
144
143
  break;
145
144
  }
146
- _context.next = 35;
145
+ _context.next = 31;
147
146
  return (0, _awaitAsyncGenerator2.default)(_iterator2.return());
148
- case 35:
149
- _context.prev = 35;
147
+ case 31:
148
+ _context.prev = 31;
150
149
  if (!_didIteratorError2) {
151
- _context.next = 38;
150
+ _context.next = 34;
152
151
  break;
153
152
  }
154
153
  throw _iteratorError2;
155
- case 38:
156
- return _context.finish(35);
157
- case 39:
158
- return _context.finish(30);
159
- case 40:
154
+ case 34:
155
+ return _context.finish(31);
156
+ case 35:
157
+ return _context.finish(26);
158
+ case 36:
160
159
  case "end":
161
160
  return _context.stop();
162
161
  }
163
- }, _callee, null, [[13, 26, 30, 40], [31,, 35, 39]]);
162
+ }, _callee, null, [[9, 22, 26, 36], [27,, 31, 35]]);
164
163
  }));
165
164
  return _parseParquetFileInColumnarBatches.apply(this, arguments);
166
165
  }
167
- function convertRowGroupToTableBatch(parquetSchema, rowGroup, schema) {
166
+ function convertRowGroupToTableBatch(rowGroup, parquetSchema, schema) {
168
167
  var data = (0, _shred.materializeColumns)(parquetSchema, rowGroup);
169
168
  return {
170
169
  shape: 'columnar-table',
@@ -1 +1 @@
1
- {"version":3,"file":"parse-parquet-to-columns.js","names":["_loaderUtils","require","_parquetReader","_convertSchemaFromParquet","_shred","_decodeGeoMetadata","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Object","Promise","reject","done","resolve","value","then","n","next","prototype","apply","arguments","return","_return","ret","throw","_throw","thr","parseParquetInColumns","_x3","_x4","_parseParquetInColumns","_asyncToGenerator2","default","_regenerator","mark","_callee2","arrayBuffer","options","blob","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","batch","wrap","_callee2$","_context2","prev","Blob","parseParquetFileInColumnarBatches","sent","abrupt","shape","schema","data","t0","finish","Error","stop","_x","_x2","_parseParquetFileInColumnarBatches","_wrapAsyncGenerator2","_callee","file","reader","parquetSchema","parquetMetadata","rowGroups","_iteratorAbruptCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","rowGroup","_callee$","_context","makeReadableFile","ParquetReader","_awaitAsyncGenerator2","getSchema","getFileMetadata","convertParquetSchema","unpackGeoMetadata","rowGroupIterator","parquet","convertRowGroupToTableBatch","materializeColumns","batchType","length","rowCount"],"sources":["../../../../src/lib/parsers/parse-parquet-to-columns.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n// import type {LoaderWithParser, Loader, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {ColumnarTable, ColumnarTableBatch, Schema} from '@loaders.gl/schema';\nimport {makeReadableFile} from '@loaders.gl/loader-utils';\nimport type {ParquetLoaderOptions} from '../../parquet-loader';\nimport {ParquetReader} from '../../parquetjs/parser/parquet-reader';\nimport {ParquetRowGroup} from '../../parquetjs/schema/declare';\nimport {ParquetSchema} from '../../parquetjs/schema/schema';\nimport {convertParquetSchema} from '../arrow/convert-schema-from-parquet';\nimport {materializeColumns} from '../../parquetjs/schema/shred';\n// import {convertParquetRowGroupToColumns} from '../arrow/convert-row-group-to-columns';\nimport {unpackGeoMetadata} from '../geo/decode-geo-metadata';\n\nexport async function parseParquetInColumns(\n arrayBuffer: ArrayBuffer,\n options?: ParquetLoaderOptions\n): Promise<ColumnarTable> {\n const blob = new Blob([arrayBuffer]);\n for await (const batch of parseParquetFileInColumnarBatches(blob, options)) {\n return {\n shape: 'columnar-table',\n schema: batch.schema,\n data: batch.data\n };\n }\n throw new Error('empty table');\n}\n\nexport async function* parseParquetFileInColumnarBatches(\n blob: Blob,\n options?: ParquetLoaderOptions\n): AsyncIterable<ColumnarTableBatch> {\n const file = makeReadableFile(blob);\n const reader = new ParquetReader(file);\n const parquetSchema = await reader.getSchema();\n const parquetMetadata = await reader.getFileMetadata();\n const schema = convertParquetSchema(parquetSchema, parquetMetadata);\n unpackGeoMetadata(schema);\n const rowGroups = reader.rowGroupIterator(options?.parquet);\n for await (const rowGroup of rowGroups) {\n yield convertRowGroupToTableBatch(parquetSchema, rowGroup, schema);\n }\n}\n\nfunction convertRowGroupToTableBatch(\n parquetSchema: ParquetSchema,\n rowGroup: ParquetRowGroup,\n schema: Schema\n): ColumnarTableBatch {\n // const data = convertParquetRowGroupToColumns(schema, rowGroup);\n const data = materializeColumns(parquetSchema, rowGroup);\n return {\n shape: 'columnar-table',\n batchType: 'data',\n schema,\n data,\n length: rowGroup.rowCount\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"parse-parquet-to-columns.js","names":["_loaderUtils","require","_parquetReader","_shred","_getParquetSchema","_bufferPolyfill","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Object","Promise","reject","done","resolve","value","then","n","next","prototype","apply","arguments","return","_return","ret","throw","_throw","thr","parseParquetInColumns","_x3","_x4","_parseParquetInColumns","_asyncToGenerator2","default","_regenerator","mark","_callee2","arrayBuffer","options","blob","file","reader","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","batch","wrap","_callee2$","_context2","prev","installBufferPolyfill","Blob","makeReadableFile","ParquetReader","parseParquetFileInColumnarBatches","sent","abrupt","shape","schema","data","t0","finish","Error","stop","_x","_x2","_parseParquetFileInColumnarBatches","_wrapAsyncGenerator2","_callee","parquetSchema","rowGroups","_iteratorAbruptCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","rowGroup","_callee$","_context","_awaitAsyncGenerator2","getSchemaFromParquetReader","getSchema","rowGroupIterator","parquet","convertRowGroupToTableBatch","materializeColumns","batchType","length","rowCount"],"sources":["../../../../src/lib/parsers/parse-parquet-to-columns.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport {ColumnarTable, ColumnarTableBatch, Schema} from '@loaders.gl/schema';\nimport {makeReadableFile} from '@loaders.gl/loader-utils';\nimport type {ParquetLoaderOptions} from '../../parquet-loader';\nimport {ParquetReader} from '../../parquetjs/parser/parquet-reader';\nimport {ParquetRowGroup} from '../../parquetjs/schema/declare';\nimport {ParquetSchema} from '../../parquetjs/schema/schema';\nimport {materializeColumns} from '../../parquetjs/schema/shred';\nimport {getSchemaFromParquetReader} from './get-parquet-schema';\nimport {installBufferPolyfill} from '../../buffer-polyfill';\n\nexport async function parseParquetInColumns(\n arrayBuffer: ArrayBuffer,\n options?: ParquetLoaderOptions\n): Promise<ColumnarTable> {\n installBufferPolyfill();\n const blob = new Blob([arrayBuffer]);\n const file = makeReadableFile(blob);\n const reader = new ParquetReader(file);\n\n for await (const batch of parseParquetFileInColumnarBatches(reader, options)) {\n return {\n shape: 'columnar-table',\n schema: batch.schema,\n data: batch.data\n };\n }\n throw new Error('empty table');\n}\n\nexport async function* parseParquetFileInColumnarBatches(\n reader: ParquetReader,\n options?: ParquetLoaderOptions\n): AsyncIterable<ColumnarTableBatch> {\n // Extract schema and geo metadata\n const schema = await getSchemaFromParquetReader(reader);\n\n const parquetSchema = await reader.getSchema();\n\n // Iterate over row batches\n const rowGroups = reader.rowGroupIterator(options?.parquet);\n for await (const rowGroup of rowGroups) {\n yield convertRowGroupToTableBatch(rowGroup, parquetSchema, schema);\n }\n}\n\nfunction convertRowGroupToTableBatch(\n rowGroup: ParquetRowGroup,\n parquetSchema: ParquetSchema,\n schema: Schema\n): ColumnarTableBatch {\n // const data = convertParquetRowGroupToColumns(schema, rowGroup);\n const data = materializeColumns(parquetSchema, rowGroup);\n return {\n shape: 'columnar-table',\n batchType: 'data',\n schema,\n data,\n length: rowGroup.rowCount\n };\n}\n"],"mappings":";;;;;;;;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,cAAA,GAAAD,OAAA;AAGA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AACA,IAAAI,eAAA,GAAAJ,OAAA;AAA4D,SAAAK,eAAAC,QAAA,QAAAC,MAAA,EAAAC,KAAA,EAAAC,IAAA,EAAAC,KAAA,iCAAAC,MAAA,KAAAH,KAAA,GAAAG,MAAA,CAAAC,aAAA,EAAAH,IAAA,GAAAE,MAAA,CAAAE,QAAA,GAAAH,KAAA,WAAAF,KAAA,aAAAD,MAAA,GAAAD,QAAA,CAAAE,KAAA,WAAAD,MAAA,CAAAO,IAAA,CAAAR,QAAA,OAAAG,IAAA,aAAAF,MAAA,GAAAD,QAAA,CAAAG,IAAA,eAAAM,qBAAA,CAAAR,MAAA,CAAAO,IAAA,CAAAR,QAAA,IAAAE,KAAA,sBAAAC,IAAA,6BAAAO,SAAA;AAAA,SAAAD,sBAAAE,CAAA,aAAAC,kCAAAC,CAAA,QAAAC,MAAA,CAAAD,CAAA,MAAAA,CAAA,SAAAE,OAAA,CAAAC,MAAA,KAAAN,SAAA,CAAAG,CAAA,+BAAAI,IAAA,GAAAJ,CAAA,CAAAI,IAAA,SAAAF,OAAA,CAAAG,OAAA,CAAAL,CAAA,CAAAM,KAAA,EAAAC,IAAA,WAAAD,KAAA,aAAAA,KAAA,EAAAA,KAAA,EAAAF,IAAA,EAAAA,IAAA,iBAAAR,qBAAA,YAAAA,sBAAAE,CAAA,SAAAA,CAAA,GAAAA,CAAA,OAAAU,CAAA,GAAAV,CAAA,CAAAW,IAAA,KAAAb,qBAAA,CAAAc,SAAA,KAAAZ,CAAA,QAAAU,CAAA,QAAAC,IAAA,WAAAA,KAAA,WAAAV,iCAAA,MAAAS,CAAA,CAAAG,KAAA,MAAAb,CAAA,EAAAc,SAAA,OAAAC,MAAA,WAAAC,QAAAR,KAAA,QAAAS,GAAA,QAAAjB,CAAA,CAAAe,MAAA,oBAAAE,GAAA,GAAAb,OAAA,CAAAG,OAAA,GAAAC,KAAA,EAAAA,KAAA,EAAAF,IAAA,UAAAL,iCAAA,CAAAgB,GAAA,CAAAJ,KAAA,MAAAb,CAAA,EAAAc,SAAA,OAAAI,KAAA,WAAAC,OAAAX,KAAA,QAAAY,GAAA,QAAApB,CAAA,CAAAe,MAAA,oBAAAK,GAAA,GAAAhB,OAAA,CAAAC,MAAA,CAAAG,KAAA,IAAAP,iCAAA,CAAAmB,GAAA,CAAAP,KAAA,MAAAb,CAAA,EAAAc,SAAA,aAAAhB,qBAAA,CAAAE,CAAA;AAAA,SAEtCqB,qBAAqBA,CAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,sBAAA,CAAAX,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAU,uBAAA;EAAAA,sBAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAApC,SAAAC,SACLC,WAAwB,EACxBC,OAA8B;IAAA,IAAAC,IAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,yBAAA,EAAAC,iBAAA,EAAAC,cAAA,EAAAC,SAAA,EAAAC,KAAA,EAAAC,KAAA;IAAA,OAAAb,YAAA,CAAAD,OAAA,CAAAe,IAAA,UAAAC,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAC,IAAA,GAAAD,SAAA,CAAAhC,IAAA;QAAA;UAE9B,IAAAkC,qCAAqB,EAAC,CAAC;UACjBb,IAAI,GAAG,IAAIc,IAAI,CAAC,CAAChB,WAAW,CAAC,CAAC;UAC9BG,IAAI,GAAG,IAAAc,6BAAgB,EAACf,IAAI,CAAC;UAC7BE,MAAM,GAAG,IAAIc,4BAAa,CAACf,IAAI,CAAC;UAAAE,yBAAA;UAAAC,iBAAA;UAAAO,SAAA,CAAAC,IAAA;UAAAN,SAAA,GAAAlD,cAAA,CAEZ6D,iCAAiC,CAACf,MAAM,EAAEH,OAAO,CAAC;QAAA;UAAAY,SAAA,CAAAhC,IAAA;UAAA,OAAA2B,SAAA,CAAA3B,IAAA;QAAA;UAAA,MAAAwB,yBAAA,KAAAI,KAAA,GAAAI,SAAA,CAAAO,IAAA,EAAA5C,IAAA;YAAAqC,SAAA,CAAAhC,IAAA;YAAA;UAAA;UAA3D6B,KAAK,GAAAD,KAAA,CAAA/B,KAAA;UAAA,OAAAmC,SAAA,CAAAQ,MAAA,WACb;YACLC,KAAK,EAAE,gBAAgB;YACvBC,MAAM,EAAEb,KAAK,CAACa,MAAM;YACpBC,IAAI,EAAEd,KAAK,CAACc;UACd,CAAC;QAAA;UAAAnB,yBAAA;UAAAQ,SAAA,CAAAhC,IAAA;UAAA;QAAA;UAAAgC,SAAA,CAAAhC,IAAA;UAAA;QAAA;UAAAgC,SAAA,CAAAC,IAAA;UAAAD,SAAA,CAAAY,EAAA,GAAAZ,SAAA;UAAAP,iBAAA;UAAAC,cAAA,GAAAM,SAAA,CAAAY,EAAA;QAAA;UAAAZ,SAAA,CAAAC,IAAA;UAAAD,SAAA,CAAAC,IAAA;UAAA,MAAAT,yBAAA,IAAAG,SAAA,CAAAvB,MAAA;YAAA4B,SAAA,CAAAhC,IAAA;YAAA;UAAA;UAAAgC,SAAA,CAAAhC,IAAA;UAAA,OAAA2B,SAAA,CAAAvB,MAAA;QAAA;UAAA4B,SAAA,CAAAC,IAAA;UAAA,KAAAR,iBAAA;YAAAO,SAAA,CAAAhC,IAAA;YAAA;UAAA;UAAA,MAAA0B,cAAA;QAAA;UAAA,OAAAM,SAAA,CAAAa,MAAA;QAAA;UAAA,OAAAb,SAAA,CAAAa,MAAA;QAAA;UAAA,MAEG,IAAIC,KAAK,CAAC,aAAa,CAAC;QAAA;QAAA;UAAA,OAAAd,SAAA,CAAAe,IAAA;MAAA;IAAA,GAAA7B,QAAA;EAAA,CAC/B;EAAA,OAAAL,sBAAA,CAAAX,KAAA,OAAAC,SAAA;AAAA;AAAA,SAEsBmC,iCAAiCA,CAAAU,EAAA,EAAAC,GAAA;EAAA,OAAAC,kCAAA,CAAAhD,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAA+C,mCAAA;EAAAA,kCAAA,OAAAC,oBAAA,CAAApC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAjD,SAAAmC,QACL7B,MAAqB,EACrBH,OAA8B;IAAA,IAAAsB,MAAA,EAAAW,aAAA,EAAAC,SAAA,EAAAC,0BAAA,EAAAC,kBAAA,EAAAC,eAAA,EAAAC,UAAA,EAAAC,MAAA,EAAAC,QAAA;IAAA,OAAA5C,YAAA,CAAAD,OAAA,CAAAe,IAAA,UAAA+B,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAA7B,IAAA,GAAA6B,QAAA,CAAA9D,IAAA;QAAA;UAAA8D,QAAA,CAAA9D,IAAA;UAAA,WAAA+D,qBAAA,CAAAhD,OAAA,EAGT,IAAAiD,4CAA0B,EAACzC,MAAM,CAAC;QAAA;UAAjDmB,MAAM,GAAAoB,QAAA,CAAAvB,IAAA;UAAAuB,QAAA,CAAA9D,IAAA;UAAA,WAAA+D,qBAAA,CAAAhD,OAAA,EAEgBQ,MAAM,CAAC0C,SAAS,CAAC,CAAC;QAAA;UAAxCZ,aAAa,GAAAS,QAAA,CAAAvB,IAAA;UAGbe,SAAS,GAAG/B,MAAM,CAAC2C,gBAAgB,CAAC9C,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE+C,OAAO,CAAC;UAAAZ,0BAAA;UAAAC,kBAAA;UAAAM,QAAA,CAAA7B,IAAA;UAAAyB,UAAA,GAAAjF,cAAA,CAC9B6E,SAAS;QAAA;UAAAQ,QAAA,CAAA9D,IAAA;UAAA,WAAA+D,qBAAA,CAAAhD,OAAA,EAAA2C,UAAA,CAAA1D,IAAA;QAAA;UAAA,MAAAuD,0BAAA,KAAAI,MAAA,GAAAG,QAAA,CAAAvB,IAAA,EAAA5C,IAAA;YAAAmE,QAAA,CAAA9D,IAAA;YAAA;UAAA;UAArB4D,QAAQ,GAAAD,MAAA,CAAA9D,KAAA;UAAAiE,QAAA,CAAA9D,IAAA;UACvB,OAAMoE,2BAA2B,CAACR,QAAQ,EAAEP,aAAa,EAAEX,MAAM,CAAC;QAAA;UAAAa,0BAAA;UAAAO,QAAA,CAAA9D,IAAA;UAAA;QAAA;UAAA8D,QAAA,CAAA9D,IAAA;UAAA;QAAA;UAAA8D,QAAA,CAAA7B,IAAA;UAAA6B,QAAA,CAAAlB,EAAA,GAAAkB,QAAA;UAAAN,kBAAA;UAAAC,eAAA,GAAAK,QAAA,CAAAlB,EAAA;QAAA;UAAAkB,QAAA,CAAA7B,IAAA;UAAA6B,QAAA,CAAA7B,IAAA;UAAA,MAAAsB,0BAAA,IAAAG,UAAA,CAAAtD,MAAA;YAAA0D,QAAA,CAAA9D,IAAA;YAAA;UAAA;UAAA8D,QAAA,CAAA9D,IAAA;UAAA,WAAA+D,qBAAA,CAAAhD,OAAA,EAAA2C,UAAA,CAAAtD,MAAA;QAAA;UAAA0D,QAAA,CAAA7B,IAAA;UAAA,KAAAuB,kBAAA;YAAAM,QAAA,CAAA9D,IAAA;YAAA;UAAA;UAAA,MAAAyD,eAAA;QAAA;UAAA,OAAAK,QAAA,CAAAjB,MAAA;QAAA;UAAA,OAAAiB,QAAA,CAAAjB,MAAA;QAAA;QAAA;UAAA,OAAAiB,QAAA,CAAAf,IAAA;MAAA;IAAA,GAAAK,OAAA;EAAA,CAErE;EAAA,OAAAF,kCAAA,CAAAhD,KAAA,OAAAC,SAAA;AAAA;AAED,SAASiE,2BAA2BA,CAClCR,QAAyB,EACzBP,aAA4B,EAC5BX,MAAc,EACM;EAEpB,IAAMC,IAAI,GAAG,IAAA0B,yBAAkB,EAAChB,aAAa,EAAEO,QAAQ,CAAC;EACxD,OAAO;IACLnB,KAAK,EAAE,gBAAgB;IACvB6B,SAAS,EAAE,MAAM;IACjB5B,MAAM,EAANA,MAAM;IACNC,IAAI,EAAJA,IAAI;IACJ4B,MAAM,EAAEX,QAAQ,CAACY;EACnB,CAAC;AACH"}