@loaders.gl/parquet 4.0.0-alpha.5 → 4.0.0-alpha.6
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.
- package/dist/bundle.js +2 -2
- package/dist/constants.js +18 -6
- package/dist/dist.min.js +27 -25
- package/dist/dist.min.js.map +3 -3
- package/dist/es5/bundle.js +6 -0
- package/dist/es5/bundle.js.map +1 -0
- package/dist/es5/constants.js +17 -0
- package/dist/es5/constants.js.map +1 -0
- package/dist/es5/index.js +128 -0
- package/dist/es5/index.js.map +1 -0
- package/dist/es5/lib/arrow/convert-columns-to-row-group.js +2 -0
- package/dist/es5/lib/arrow/convert-columns-to-row-group.js.map +1 -0
- package/dist/es5/lib/arrow/convert-row-group-to-columns.js +19 -0
- package/dist/es5/lib/arrow/convert-row-group-to-columns.js.map +1 -0
- package/dist/es5/lib/arrow/convert-schema-from-parquet.js +114 -0
- package/dist/es5/lib/arrow/convert-schema-from-parquet.js.map +1 -0
- package/dist/es5/lib/arrow/convert-schema-to-parquet.js +47 -0
- package/dist/es5/lib/arrow/convert-schema-to-parquet.js.map +1 -0
- package/dist/es5/lib/geo/decode-geo-metadata.js +81 -0
- package/dist/es5/lib/geo/decode-geo-metadata.js.map +1 -0
- package/dist/es5/lib/geo/geoparquet-schema.js +83 -0
- package/dist/es5/lib/geo/geoparquet-schema.js.map +1 -0
- package/dist/es5/lib/parsers/parse-parquet-to-columns.js +177 -0
- package/dist/es5/lib/parsers/parse-parquet-to-columns.js.map +1 -0
- package/dist/es5/lib/parsers/parse-parquet-to-rows.js +172 -0
- package/dist/es5/lib/parsers/parse-parquet-to-rows.js.map +1 -0
- package/dist/es5/lib/wasm/encode-parquet-wasm.js +43 -0
- package/dist/es5/lib/wasm/encode-parquet-wasm.js.map +1 -0
- package/dist/es5/lib/wasm/load-wasm/index.js +13 -0
- package/dist/es5/lib/wasm/load-wasm/index.js.map +1 -0
- package/dist/es5/lib/wasm/load-wasm/load-wasm-browser.js +42 -0
- package/dist/es5/lib/wasm/load-wasm/load-wasm-browser.js.map +1 -0
- package/dist/es5/lib/wasm/load-wasm/load-wasm-node.js +31 -0
- package/dist/es5/lib/wasm/load-wasm/load-wasm-node.js.map +1 -0
- package/dist/es5/lib/wasm/parse-parquet-wasm.js +60 -0
- package/dist/es5/lib/wasm/parse-parquet-wasm.js.map +1 -0
- package/dist/es5/lib/wip/convert-schema-deep.java.disabled +910 -0
- package/dist/es5/lib/wip/convert-schema-deep.rs.disabled +976 -0
- package/dist/es5/parquet-loader.js +44 -0
- package/dist/es5/parquet-loader.js.map +1 -0
- package/dist/es5/parquet-wasm-loader.js +30 -0
- package/dist/es5/parquet-wasm-loader.js.map +1 -0
- package/dist/es5/parquet-wasm-writer.js +26 -0
- package/dist/es5/parquet-wasm-writer.js.map +1 -0
- package/dist/es5/parquet-writer.js +24 -0
- package/dist/es5/parquet-writer.js.map +1 -0
- package/dist/es5/parquetjs/codecs/declare.js +2 -0
- package/dist/es5/parquetjs/codecs/declare.js.map +1 -0
- package/dist/es5/parquetjs/codecs/dictionary.js +23 -0
- package/dist/es5/parquetjs/codecs/dictionary.js.map +1 -0
- package/dist/es5/parquetjs/codecs/index.js +47 -0
- package/dist/es5/parquetjs/codecs/index.js.map +1 -0
- package/dist/es5/parquetjs/codecs/plain.js +208 -0
- package/dist/es5/parquetjs/codecs/plain.js.map +1 -0
- package/dist/es5/parquetjs/codecs/rle.js +132 -0
- package/dist/es5/parquetjs/codecs/rle.js.map +1 -0
- package/dist/es5/parquetjs/compression.js +137 -0
- package/dist/es5/parquetjs/compression.js.map +1 -0
- package/dist/es5/parquetjs/encoder/parquet-encoder.js +625 -0
- package/dist/es5/parquetjs/encoder/parquet-encoder.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/BoundaryOrder.js +14 -0
- package/dist/es5/parquetjs/parquet-thrift/BoundaryOrder.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/BsonType.js +52 -0
- package/dist/es5/parquetjs/parquet-thrift/BsonType.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/ColumnChunk.js +193 -0
- package/dist/es5/parquetjs/parquet-thrift/ColumnChunk.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/ColumnIndex.js +198 -0
- package/dist/es5/parquetjs/parquet-thrift/ColumnIndex.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/ColumnMetaData.js +367 -0
- package/dist/es5/parquetjs/parquet-thrift/ColumnMetaData.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/ColumnOrder.js +99 -0
- package/dist/es5/parquetjs/parquet-thrift/ColumnOrder.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/CompressionCodec.js +19 -0
- package/dist/es5/parquetjs/parquet-thrift/CompressionCodec.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/ConvertedType.js +33 -0
- package/dist/es5/parquetjs/parquet-thrift/ConvertedType.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/DataPageHeader.js +152 -0
- package/dist/es5/parquetjs/parquet-thrift/DataPageHeader.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/DataPageHeaderV2.js +207 -0
- package/dist/es5/parquetjs/parquet-thrift/DataPageHeaderV2.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/DateType.js +52 -0
- package/dist/es5/parquetjs/parquet-thrift/DateType.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/DecimalType.js +96 -0
- package/dist/es5/parquetjs/parquet-thrift/DecimalType.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/DictionaryPageHeader.js +113 -0
- package/dist/es5/parquetjs/parquet-thrift/DictionaryPageHeader.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/Encoding.js +19 -0
- package/dist/es5/parquetjs/parquet-thrift/Encoding.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/EnumType.js +52 -0
- package/dist/es5/parquetjs/parquet-thrift/EnumType.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/FieldRepetitionType.js +14 -0
- package/dist/es5/parquetjs/parquet-thrift/FieldRepetitionType.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/FileMetaData.js +239 -0
- package/dist/es5/parquetjs/parquet-thrift/FileMetaData.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/IndexPageHeader.js +52 -0
- package/dist/es5/parquetjs/parquet-thrift/IndexPageHeader.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/IntType.js +96 -0
- package/dist/es5/parquetjs/parquet-thrift/IntType.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/JsonType.js +52 -0
- package/dist/es5/parquetjs/parquet-thrift/JsonType.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/KeyValue.js +94 -0
- package/dist/es5/parquetjs/parquet-thrift/KeyValue.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/ListType.js +52 -0
- package/dist/es5/parquetjs/parquet-thrift/ListType.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/LogicalType.js +423 -0
- package/dist/es5/parquetjs/parquet-thrift/LogicalType.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/MapType.js +52 -0
- package/dist/es5/parquetjs/parquet-thrift/MapType.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/MicroSeconds.js +52 -0
- package/dist/es5/parquetjs/parquet-thrift/MicroSeconds.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/MilliSeconds.js +52 -0
- package/dist/es5/parquetjs/parquet-thrift/MilliSeconds.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/NullType.js +52 -0
- package/dist/es5/parquetjs/parquet-thrift/NullType.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/OffsetIndex.js +89 -0
- package/dist/es5/parquetjs/parquet-thrift/OffsetIndex.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/PageEncodingStats.js +115 -0
- package/dist/es5/parquetjs/parquet-thrift/PageEncodingStats.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/PageHeader.js +204 -0
- package/dist/es5/parquetjs/parquet-thrift/PageHeader.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/PageLocation.js +124 -0
- package/dist/es5/parquetjs/parquet-thrift/PageLocation.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/PageType.js +15 -0
- package/dist/es5/parquetjs/parquet-thrift/PageType.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/RowGroup.js +165 -0
- package/dist/es5/parquetjs/parquet-thrift/RowGroup.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/SchemaElement.js +231 -0
- package/dist/es5/parquetjs/parquet-thrift/SchemaElement.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/SortingColumn.js +115 -0
- package/dist/es5/parquetjs/parquet-thrift/SortingColumn.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/Statistics.js +165 -0
- package/dist/es5/parquetjs/parquet-thrift/Statistics.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/StringType.js +52 -0
- package/dist/es5/parquetjs/parquet-thrift/StringType.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/TimeType.js +97 -0
- package/dist/es5/parquetjs/parquet-thrift/TimeType.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/TimeUnit.js +126 -0
- package/dist/es5/parquetjs/parquet-thrift/TimeUnit.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/TimestampType.js +97 -0
- package/dist/es5/parquetjs/parquet-thrift/TimestampType.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/Type.js +19 -0
- package/dist/es5/parquetjs/parquet-thrift/Type.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/TypeDefinedOrder.js +52 -0
- package/dist/es5/parquetjs/parquet-thrift/TypeDefinedOrder.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/UUIDType.js +52 -0
- package/dist/es5/parquetjs/parquet-thrift/UUIDType.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/index.js +479 -0
- package/dist/es5/parquetjs/parquet-thrift/index.js.map +1 -0
- package/dist/es5/parquetjs/parser/decoders.js +393 -0
- package/dist/es5/parquetjs/parser/decoders.js.map +1 -0
- package/dist/es5/parquetjs/parser/parquet-reader.js +610 -0
- package/dist/es5/parquetjs/parser/parquet-reader.js.map +1 -0
- package/dist/es5/parquetjs/schema/declare.js +21 -0
- package/dist/es5/parquetjs/schema/declare.js.map +1 -0
- package/dist/es5/parquetjs/schema/schema.js +165 -0
- package/dist/es5/parquetjs/schema/schema.js.map +1 -0
- package/dist/es5/parquetjs/schema/shred.js +282 -0
- package/dist/es5/parquetjs/schema/shred.js.map +1 -0
- package/dist/es5/parquetjs/schema/types.js +406 -0
- package/dist/es5/parquetjs/schema/types.js.map +1 -0
- package/dist/es5/parquetjs/utils/file-utils.js +47 -0
- package/dist/es5/parquetjs/utils/file-utils.js.map +1 -0
- package/dist/es5/parquetjs/utils/read-utils.js +120 -0
- package/dist/es5/parquetjs/utils/read-utils.js.map +1 -0
- package/dist/es5/workers/parquet-worker.js +6 -0
- package/dist/es5/workers/parquet-worker.js.map +1 -0
- package/dist/esm/bundle.js +4 -0
- package/dist/esm/bundle.js.map +1 -0
- package/dist/esm/constants.js +6 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/index.js +31 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/arrow/convert-columns-to-row-group.js +2 -0
- package/dist/esm/lib/arrow/convert-columns-to-row-group.js.map +1 -0
- package/dist/esm/lib/arrow/convert-row-group-to-columns.js +8 -0
- package/dist/esm/lib/arrow/convert-row-group-to-columns.js.map +1 -0
- package/dist/esm/lib/arrow/convert-schema-from-parquet.js +95 -0
- package/dist/esm/lib/arrow/convert-schema-from-parquet.js.map +1 -0
- package/dist/esm/lib/arrow/convert-schema-to-parquet.js +39 -0
- package/dist/esm/lib/arrow/convert-schema-to-parquet.js.map +1 -0
- package/dist/esm/lib/geo/decode-geo-metadata.js +62 -0
- package/dist/esm/lib/geo/decode-geo-metadata.js.map +1 -0
- package/dist/esm/lib/geo/geoparquet-schema.js +76 -0
- package/dist/esm/lib/geo/geoparquet-schema.js.map +1 -0
- package/dist/esm/lib/parsers/parse-parquet-to-columns.js +39 -0
- package/dist/esm/lib/parsers/parse-parquet-to-columns.js.map +1 -0
- package/dist/esm/lib/parsers/parse-parquet-to-rows.js +29 -0
- package/dist/esm/lib/parsers/parse-parquet-to-rows.js.map +1 -0
- package/dist/esm/lib/wasm/encode-parquet-wasm.js +15 -0
- package/dist/esm/lib/wasm/encode-parquet-wasm.js.map +1 -0
- package/dist/esm/lib/wasm/load-wasm/index.js +2 -0
- package/dist/esm/lib/wasm/load-wasm/index.js.map +1 -0
- package/dist/esm/lib/wasm/load-wasm/load-wasm-browser.js +11 -0
- package/dist/esm/lib/wasm/load-wasm/load-wasm-browser.js.map +1 -0
- package/dist/esm/lib/wasm/load-wasm/load-wasm-node.js +5 -0
- package/dist/esm/lib/wasm/load-wasm/load-wasm-node.js.map +1 -0
- package/dist/esm/lib/wasm/parse-parquet-wasm.js +21 -0
- package/dist/esm/lib/wasm/parse-parquet-wasm.js.map +1 -0
- package/dist/esm/lib/wip/convert-schema-deep.java.disabled +910 -0
- package/dist/esm/lib/wip/convert-schema-deep.rs.disabled +976 -0
- package/dist/esm/parquet-loader.js +36 -0
- package/dist/esm/parquet-loader.js.map +1 -0
- package/dist/esm/parquet-wasm-loader.js +22 -0
- package/dist/esm/parquet-wasm-loader.js.map +1 -0
- package/dist/esm/parquet-wasm-writer.js +19 -0
- package/dist/esm/parquet-wasm-writer.js.map +1 -0
- package/dist/esm/parquet-writer.js +17 -0
- package/dist/esm/parquet-writer.js.map +1 -0
- package/dist/esm/parquetjs/LICENSE +20 -0
- package/dist/esm/parquetjs/codecs/declare.js +2 -0
- package/dist/esm/parquetjs/codecs/declare.js.map +1 -0
- package/dist/esm/parquetjs/codecs/dictionary.js +13 -0
- package/dist/esm/parquetjs/codecs/dictionary.js.map +1 -0
- package/dist/esm/parquetjs/codecs/index.js +23 -0
- package/dist/esm/parquetjs/codecs/index.js.map +1 -0
- package/dist/esm/parquetjs/codecs/plain.js +200 -0
- package/dist/esm/parquetjs/codecs/plain.js.map +1 -0
- package/dist/esm/parquetjs/codecs/rle.js +119 -0
- package/dist/esm/parquetjs/codecs/rle.js.map +1 -0
- package/dist/esm/parquetjs/compression.js +61 -0
- package/dist/esm/parquetjs/compression.js.map +1 -0
- package/dist/{parquetjs/encoder/writer.js → esm/parquetjs/encoder/parquet-encoder.js} +8 -106
- package/dist/esm/parquetjs/encoder/parquet-encoder.js.map +1 -0
- package/dist/esm/parquetjs/modules.d.ts +21 -0
- package/dist/esm/parquetjs/parquet-thrift/BoundaryOrder.js +7 -0
- package/dist/esm/parquetjs/parquet-thrift/BoundaryOrder.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/BsonType.js +31 -0
- package/dist/esm/parquetjs/parquet-thrift/BsonType.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/ColumnChunk.js +173 -0
- package/dist/esm/parquetjs/parquet-thrift/ColumnChunk.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/ColumnIndex.js +176 -0
- package/dist/esm/parquetjs/parquet-thrift/ColumnIndex.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/ColumnMetaData.js +347 -0
- package/dist/esm/parquetjs/parquet-thrift/ColumnMetaData.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/ColumnOrder.js +77 -0
- package/dist/esm/parquetjs/parquet-thrift/ColumnOrder.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/CompressionCodec.js +12 -0
- package/dist/esm/parquetjs/parquet-thrift/CompressionCodec.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/ConvertedType.js +26 -0
- package/dist/esm/parquetjs/parquet-thrift/ConvertedType.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/DataPageHeader.js +132 -0
- package/dist/esm/parquetjs/parquet-thrift/DataPageHeader.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/DataPageHeaderV2.js +187 -0
- package/dist/esm/parquetjs/parquet-thrift/DataPageHeaderV2.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/DateType.js +31 -0
- package/dist/esm/parquetjs/parquet-thrift/DateType.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/DecimalType.js +76 -0
- package/dist/esm/parquetjs/parquet-thrift/DecimalType.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/DictionaryPageHeader.js +93 -0
- package/dist/esm/parquetjs/parquet-thrift/DictionaryPageHeader.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/Encoding.js +12 -0
- package/dist/esm/parquetjs/parquet-thrift/Encoding.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/EnumType.js +31 -0
- package/dist/esm/parquetjs/parquet-thrift/EnumType.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/FieldRepetitionType.js +7 -0
- package/dist/esm/parquetjs/parquet-thrift/FieldRepetitionType.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/FileMetaData.js +219 -0
- package/dist/esm/parquetjs/parquet-thrift/FileMetaData.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/IndexPageHeader.js +31 -0
- package/dist/esm/parquetjs/parquet-thrift/IndexPageHeader.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/IntType.js +76 -0
- package/dist/esm/parquetjs/parquet-thrift/IntType.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/JsonType.js +31 -0
- package/dist/esm/parquetjs/parquet-thrift/JsonType.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/KeyValue.js +74 -0
- package/dist/esm/parquetjs/parquet-thrift/KeyValue.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/ListType.js +31 -0
- package/dist/esm/parquetjs/parquet-thrift/ListType.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/LogicalType.js +377 -0
- package/dist/esm/parquetjs/parquet-thrift/LogicalType.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/MapType.js +31 -0
- package/dist/esm/parquetjs/parquet-thrift/MapType.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/MicroSeconds.js +31 -0
- package/dist/esm/parquetjs/parquet-thrift/MicroSeconds.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/MilliSeconds.js +31 -0
- package/dist/esm/parquetjs/parquet-thrift/MilliSeconds.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/NullType.js +31 -0
- package/dist/esm/parquetjs/parquet-thrift/NullType.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/OffsetIndex.js +69 -0
- package/dist/esm/parquetjs/parquet-thrift/OffsetIndex.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/PageEncodingStats.js +95 -0
- package/dist/esm/parquetjs/parquet-thrift/PageEncodingStats.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/PageHeader.js +184 -0
- package/dist/esm/parquetjs/parquet-thrift/PageHeader.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/PageLocation.js +104 -0
- package/dist/esm/parquetjs/parquet-thrift/PageLocation.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/PageType.js +8 -0
- package/dist/esm/parquetjs/parquet-thrift/PageType.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/RowGroup.js +145 -0
- package/dist/esm/parquetjs/parquet-thrift/RowGroup.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/SchemaElement.js +211 -0
- package/dist/esm/parquetjs/parquet-thrift/SchemaElement.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/SortingColumn.js +95 -0
- package/dist/esm/parquetjs/parquet-thrift/SortingColumn.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/Statistics.js +145 -0
- package/dist/esm/parquetjs/parquet-thrift/Statistics.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/StringType.js +31 -0
- package/dist/esm/parquetjs/parquet-thrift/StringType.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/TimeType.js +77 -0
- package/dist/esm/parquetjs/parquet-thrift/TimeType.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/TimeUnit.js +102 -0
- package/dist/esm/parquetjs/parquet-thrift/TimeUnit.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/TimestampType.js +77 -0
- package/dist/esm/parquetjs/parquet-thrift/TimestampType.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/Type.js +12 -0
- package/dist/esm/parquetjs/parquet-thrift/Type.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/TypeDefinedOrder.js +31 -0
- package/dist/esm/parquetjs/parquet-thrift/TypeDefinedOrder.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/UUIDType.js +31 -0
- package/dist/esm/parquetjs/parquet-thrift/UUIDType.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/index.js +44 -0
- package/dist/esm/parquetjs/parquet-thrift/index.js.map +1 -0
- package/dist/esm/parquetjs/parser/decoders.js +253 -0
- package/dist/esm/parquetjs/parser/decoders.js.map +1 -0
- package/dist/{parquetjs/parser/parquet-envelope-reader.js → esm/parquetjs/parser/parquet-reader.js} +95 -74
- package/dist/esm/parquetjs/parser/parquet-reader.js.map +1 -0
- package/dist/esm/parquetjs/schema/declare.js +12 -0
- package/dist/esm/parquetjs/schema/declare.js.map +1 -0
- package/dist/esm/parquetjs/schema/schema.js +140 -0
- package/dist/esm/parquetjs/schema/schema.js.map +1 -0
- package/dist/esm/parquetjs/schema/shred.js +228 -0
- package/dist/esm/parquetjs/schema/shred.js.map +1 -0
- package/dist/esm/parquetjs/schema/types.js +397 -0
- package/dist/esm/parquetjs/schema/types.js.map +1 -0
- package/dist/esm/parquetjs/utils/file-utils.js +34 -0
- package/dist/esm/parquetjs/utils/file-utils.js.map +1 -0
- package/dist/esm/parquetjs/utils/read-utils.js +90 -0
- package/dist/esm/parquetjs/utils/read-utils.js.map +1 -0
- package/dist/esm/workers/parquet-worker.js +4 -0
- package/dist/esm/workers/parquet-worker.js.map +1 -0
- package/dist/index.d.ts +16 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +58 -15
- package/dist/lib/arrow/convert-columns-to-row-group.d.ts +1 -0
- package/dist/lib/arrow/convert-columns-to-row-group.d.ts.map +1 -0
- package/dist/lib/arrow/convert-columns-to-row-group.js +1 -0
- package/dist/lib/arrow/convert-row-group-to-columns.d.ts +4 -0
- package/dist/lib/arrow/convert-row-group-to-columns.d.ts.map +1 -0
- package/dist/lib/arrow/convert-row-group-to-columns.js +12 -0
- package/dist/lib/arrow/convert-schema-from-parquet.d.ts +9 -0
- package/dist/lib/arrow/convert-schema-from-parquet.d.ts.map +1 -0
- package/dist/lib/arrow/convert-schema-from-parquet.js +86 -0
- package/dist/lib/arrow/convert-schema-to-parquet.d.ts +7 -0
- package/dist/lib/arrow/convert-schema-to-parquet.d.ts.map +1 -0
- package/dist/lib/arrow/convert-schema-to-parquet.js +71 -0
- package/dist/lib/geo/decode-geo-metadata.d.ts +31 -0
- package/dist/lib/geo/decode-geo-metadata.d.ts.map +1 -0
- package/dist/lib/geo/decode-geo-metadata.js +77 -0
- package/dist/lib/geo/geoparquet-schema.d.ts +80 -0
- package/dist/lib/geo/geoparquet-schema.d.ts.map +1 -0
- package/dist/lib/geo/geoparquet-schema.js +69 -0
- package/dist/lib/parsers/parse-parquet-to-columns.d.ts +5 -0
- package/dist/lib/parsers/parse-parquet-to-columns.d.ts.map +1 -0
- package/dist/lib/parsers/parse-parquet-to-columns.js +46 -0
- package/dist/lib/parsers/parse-parquet-to-rows.d.ts +5 -0
- package/dist/lib/parsers/parse-parquet-to-rows.d.ts.map +1 -0
- package/dist/lib/parsers/parse-parquet-to-rows.js +37 -0
- package/dist/lib/wasm/encode-parquet-wasm.d.ts +21 -0
- package/dist/lib/wasm/encode-parquet-wasm.d.ts.map +1 -0
- package/dist/lib/wasm/encode-parquet-wasm.js +30 -0
- package/dist/lib/wasm/load-wasm/index.d.ts +2 -0
- package/dist/lib/wasm/load-wasm/index.d.ts.map +1 -0
- package/dist/lib/wasm/load-wasm/index.js +5 -0
- package/dist/lib/wasm/load-wasm/load-wasm-browser.d.ts +3 -0
- package/dist/lib/wasm/load-wasm/load-wasm-browser.d.ts.map +1 -0
- package/dist/lib/wasm/load-wasm/load-wasm-browser.js +38 -0
- package/dist/lib/wasm/load-wasm/load-wasm-node.d.ts +3 -0
- package/dist/lib/wasm/load-wasm/load-wasm-node.d.ts.map +1 -0
- package/dist/lib/wasm/load-wasm/load-wasm-node.js +31 -0
- package/dist/lib/wasm/parse-parquet-wasm.d.ts +10 -0
- package/dist/lib/wasm/parse-parquet-wasm.d.ts.map +1 -0
- package/dist/lib/wasm/parse-parquet-wasm.js +27 -0
- package/dist/parquet-loader.d.ts +6 -15
- package/dist/parquet-loader.d.ts.map +1 -1
- package/dist/parquet-loader.js +38 -19
- package/dist/parquet-wasm-loader.d.ts +23 -0
- package/dist/parquet-wasm-loader.d.ts.map +1 -0
- package/dist/parquet-wasm-loader.js +27 -0
- package/dist/parquet-wasm-writer.d.ts +3 -0
- package/dist/parquet-wasm-writer.d.ts.map +1 -0
- package/dist/parquet-wasm-writer.js +23 -0
- package/dist/parquet-worker.js +27 -25
- package/dist/parquet-worker.js.map +3 -3
- package/dist/parquet-writer.d.ts +3 -2
- package/dist/parquet-writer.d.ts.map +1 -1
- package/dist/parquet-writer.js +18 -14
- package/dist/parquetjs/codecs/declare.js +2 -2
- package/dist/parquetjs/codecs/dictionary.js +12 -10
- package/dist/parquetjs/codecs/index.js +54 -22
- package/dist/parquetjs/codecs/plain.js +173 -232
- package/dist/parquetjs/codecs/rle.js +134 -140
- package/dist/parquetjs/compression.d.ts +3 -0
- package/dist/parquetjs/compression.d.ts.map +1 -1
- package/dist/parquetjs/compression.js +169 -48
- package/dist/parquetjs/encoder/{writer.d.ts → parquet-encoder.d.ts} +15 -23
- package/dist/parquetjs/encoder/parquet-encoder.d.ts.map +1 -0
- package/dist/parquetjs/encoder/parquet-encoder.js +484 -0
- package/dist/parquetjs/parquet-thrift/BoundaryOrder.js +14 -7
- package/dist/parquetjs/parquet-thrift/BsonType.js +60 -37
- package/dist/parquetjs/parquet-thrift/ColumnChunk.js +209 -215
- package/dist/parquetjs/parquet-thrift/ColumnIndex.js +210 -211
- package/dist/parquetjs/parquet-thrift/ColumnMetaData.js +394 -421
- package/dist/parquetjs/parquet-thrift/ColumnOrder.js +102 -89
- package/dist/parquetjs/parquet-thrift/CompressionCodec.js +19 -12
- package/dist/parquetjs/parquet-thrift/ConvertedType.js +33 -26
- package/dist/parquetjs/parquet-thrift/DataPageHeader.js +165 -161
- package/dist/parquetjs/parquet-thrift/DataPageHeaderV2.js +228 -234
- package/dist/parquetjs/parquet-thrift/DateType.js +60 -37
- package/dist/parquetjs/parquet-thrift/DecimalType.js +104 -90
- package/dist/parquetjs/parquet-thrift/DictionaryPageHeader.js +121 -112
- package/dist/parquetjs/parquet-thrift/Encoding.js +19 -12
- package/dist/parquetjs/parquet-thrift/EnumType.js +60 -37
- package/dist/parquetjs/parquet-thrift/FieldRepetitionType.js +14 -7
- package/dist/parquetjs/parquet-thrift/FileMetaData.js +253 -263
- package/dist/parquetjs/parquet-thrift/IndexPageHeader.js +60 -37
- package/dist/parquetjs/parquet-thrift/IntType.js +104 -90
- package/dist/parquetjs/parquet-thrift/JsonType.js +60 -37
- package/dist/parquetjs/parquet-thrift/KeyValue.js +101 -88
- package/dist/parquetjs/parquet-thrift/ListType.js +60 -37
- package/dist/parquetjs/parquet-thrift/LogicalType.js +366 -449
- package/dist/parquetjs/parquet-thrift/MapType.js +60 -37
- package/dist/parquetjs/parquet-thrift/MicroSeconds.js +60 -37
- package/dist/parquetjs/parquet-thrift/MilliSeconds.js +60 -37
- package/dist/parquetjs/parquet-thrift/NullType.js +60 -37
- package/dist/parquetjs/parquet-thrift/OffsetIndex.js +96 -80
- package/dist/parquetjs/parquet-thrift/PageEncodingStats.js +126 -114
- package/dist/parquetjs/parquet-thrift/PageHeader.js +218 -231
- package/dist/parquetjs/parquet-thrift/PageLocation.js +140 -123
- package/dist/parquetjs/parquet-thrift/PageType.js +15 -8
- package/dist/parquetjs/parquet-thrift/RowGroup.js +179 -171
- package/dist/parquetjs/parquet-thrift/SchemaElement.js +241 -268
- package/dist/parquetjs/parquet-thrift/SortingColumn.js +126 -114
- package/dist/parquetjs/parquet-thrift/Statistics.js +175 -178
- package/dist/parquetjs/parquet-thrift/StringType.js +60 -37
- package/dist/parquetjs/parquet-thrift/TimeType.js +105 -91
- package/dist/parquetjs/parquet-thrift/TimeUnit.js +124 -119
- package/dist/parquetjs/parquet-thrift/TimestampType.js +105 -91
- package/dist/parquetjs/parquet-thrift/Type.js +19 -12
- package/dist/parquetjs/parquet-thrift/TypeDefinedOrder.js +60 -37
- package/dist/parquetjs/parquet-thrift/UUIDType.js +60 -37
- package/dist/parquetjs/parquet-thrift/index.js +65 -44
- package/dist/parquetjs/parser/decoders.d.ts +2 -2
- package/dist/parquetjs/parser/decoders.d.ts.map +1 -1
- package/dist/parquetjs/parser/decoders.js +301 -283
- package/dist/parquetjs/parser/parquet-reader.d.ts +47 -57
- package/dist/parquetjs/parser/parquet-reader.d.ts.map +1 -1
- package/dist/parquetjs/parser/parquet-reader.js +193 -113
- package/dist/parquetjs/schema/declare.d.ts +26 -18
- package/dist/parquetjs/schema/declare.d.ts.map +1 -1
- package/dist/parquetjs/schema/declare.js +11 -12
- package/dist/parquetjs/schema/schema.d.ts +4 -4
- package/dist/parquetjs/schema/schema.d.ts.map +1 -1
- package/dist/parquetjs/schema/schema.js +148 -162
- package/dist/parquetjs/schema/shred.d.ts +33 -12
- package/dist/parquetjs/schema/shred.d.ts.map +1 -1
- package/dist/parquetjs/schema/shred.js +340 -147
- package/dist/parquetjs/schema/types.d.ts +2 -2
- package/dist/parquetjs/schema/types.d.ts.map +1 -1
- package/dist/parquetjs/schema/types.js +355 -415
- package/dist/parquetjs/utils/file-utils.d.ts +5 -4
- package/dist/parquetjs/utils/file-utils.d.ts.map +1 -1
- package/dist/parquetjs/utils/file-utils.js +37 -28
- package/dist/parquetjs/utils/read-utils.js +99 -95
- package/dist/workers/parquet-worker.js +5 -4
- package/package.json +17 -12
- package/src/index.ts +58 -7
- package/src/lib/arrow/convert-columns-to-row-group.ts +0 -0
- package/src/lib/arrow/convert-row-group-to-columns.ts +15 -0
- package/src/lib/arrow/convert-schema-from-parquet.ts +104 -0
- package/src/lib/arrow/convert-schema-to-parquet.ts +90 -0
- package/src/lib/geo/decode-geo-metadata.ts +108 -0
- package/src/lib/geo/geoparquet-schema.ts +69 -0
- package/src/lib/parsers/parse-parquet-to-columns.ts +60 -0
- package/src/lib/parsers/parse-parquet-to-rows.ts +45 -0
- package/src/lib/wasm/encode-parquet-wasm.ts +40 -0
- package/src/lib/wasm/load-wasm/index.ts +1 -0
- package/src/lib/wasm/load-wasm/load-wasm-browser.ts +15 -0
- package/src/lib/wasm/load-wasm/load-wasm-node.ts +5 -0
- package/src/lib/wasm/parse-parquet-wasm.ts +42 -0
- package/src/lib/wip/convert-schema-deep.java.disabled +910 -0
- package/src/lib/wip/convert-schema-deep.rs.disabled +976 -0
- package/src/parquet-loader.ts +30 -3
- package/src/parquet-wasm-loader.ts +36 -0
- package/src/parquet-wasm-writer.ts +24 -0
- package/src/parquet-writer.ts +4 -1
- package/src/parquetjs/compression.ts +24 -7
- package/src/parquetjs/encoder/{writer.ts → parquet-encoder.ts} +33 -38
- package/src/parquetjs/parser/decoders.ts +3 -3
- package/src/parquetjs/parser/parquet-reader.ts +239 -122
- package/src/parquetjs/schema/declare.ts +22 -13
- package/src/parquetjs/schema/schema.ts +8 -8
- package/src/parquetjs/schema/shred.ts +239 -71
- package/src/parquetjs/schema/types.ts +25 -30
- package/src/parquetjs/utils/file-utils.ts +3 -4
- package/dist/bundle.js.map +0 -1
- package/dist/constants.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/convert-schema.d.ts +0 -8
- package/dist/lib/convert-schema.d.ts.map +0 -1
- package/dist/lib/convert-schema.js +0 -71
- package/dist/lib/convert-schema.js.map +0 -1
- package/dist/lib/parse-parquet.d.ts +0 -4
- package/dist/lib/parse-parquet.d.ts.map +0 -1
- package/dist/lib/parse-parquet.js +0 -28
- package/dist/lib/parse-parquet.js.map +0 -1
- package/dist/lib/read-array-buffer.d.ts +0 -19
- package/dist/lib/read-array-buffer.d.ts.map +0 -1
- package/dist/lib/read-array-buffer.js +0 -9
- package/dist/lib/read-array-buffer.js.map +0 -1
- package/dist/parquet-loader.js.map +0 -1
- package/dist/parquet-writer.js.map +0 -1
- package/dist/parquetjs/codecs/declare.js.map +0 -1
- package/dist/parquetjs/codecs/dictionary.js.map +0 -1
- package/dist/parquetjs/codecs/index.js.map +0 -1
- package/dist/parquetjs/codecs/plain.js.map +0 -1
- package/dist/parquetjs/codecs/rle.js.map +0 -1
- package/dist/parquetjs/compression.js.map +0 -1
- package/dist/parquetjs/encoder/writer.d.ts.map +0 -1
- package/dist/parquetjs/encoder/writer.js.map +0 -1
- package/dist/parquetjs/file.d.ts +0 -10
- package/dist/parquetjs/file.d.ts.map +0 -1
- package/dist/parquetjs/file.js +0 -80
- package/dist/parquetjs/file.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/BoundaryOrder.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/BsonType.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/ColumnChunk.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/ColumnIndex.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/ColumnMetaData.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/ColumnOrder.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/CompressionCodec.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/ConvertedType.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/DataPageHeader.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/DataPageHeaderV2.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/DateType.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/DecimalType.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/DictionaryPageHeader.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/Encoding.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/EnumType.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/FieldRepetitionType.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/FileMetaData.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/IndexPageHeader.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/IntType.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/JsonType.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/KeyValue.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/ListType.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/LogicalType.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/MapType.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/MicroSeconds.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/MilliSeconds.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/NullType.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/OffsetIndex.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/PageEncodingStats.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/PageHeader.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/PageLocation.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/PageType.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/RowGroup.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/SchemaElement.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/SortingColumn.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/Statistics.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/StringType.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/TimeType.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/TimeUnit.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/TimestampType.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/Type.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/TypeDefinedOrder.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/UUIDType.js.map +0 -1
- package/dist/parquetjs/parquet-thrift/index.js.map +0 -1
- package/dist/parquetjs/parser/decoders.js.map +0 -1
- package/dist/parquetjs/parser/parquet-cursor.d.ts +0 -36
- package/dist/parquetjs/parser/parquet-cursor.d.ts.map +0 -1
- package/dist/parquetjs/parser/parquet-cursor.js +0 -90
- package/dist/parquetjs/parser/parquet-cursor.js.map +0 -1
- package/dist/parquetjs/parser/parquet-envelope-reader.d.ts +0 -40
- package/dist/parquetjs/parser/parquet-envelope-reader.d.ts.map +0 -1
- package/dist/parquetjs/parser/parquet-envelope-reader.js.map +0 -1
- package/dist/parquetjs/parser/parquet-reader.js.map +0 -1
- package/dist/parquetjs/schema/declare.js.map +0 -1
- package/dist/parquetjs/schema/schema.js.map +0 -1
- package/dist/parquetjs/schema/shred.js.map +0 -1
- package/dist/parquetjs/schema/types.js.map +0 -1
- package/dist/parquetjs/utils/buffer-utils.d.ts +0 -10
- package/dist/parquetjs/utils/buffer-utils.d.ts.map +0 -1
- package/dist/parquetjs/utils/buffer-utils.js +0 -12
- package/dist/parquetjs/utils/buffer-utils.js.map +0 -1
- package/dist/parquetjs/utils/file-utils.js.map +0 -1
- package/dist/parquetjs/utils/read-utils.js.map +0 -1
- package/dist/workers/parquet-worker.js.map +0 -1
- package/src/lib/convert-schema.ts +0 -95
- package/src/lib/parse-parquet.ts +0 -27
- package/src/lib/read-array-buffer.ts +0 -31
- package/src/parquetjs/file.ts +0 -90
- package/src/parquetjs/parser/parquet-cursor.ts +0 -94
- package/src/parquetjs/parser/parquet-envelope-reader.ts +0 -199
- package/src/parquetjs/utils/buffer-utils.ts +0 -18
- /package/dist/{parquetjs → es5/parquetjs}/LICENSE +0 -0
- /package/dist/{parquetjs → es5/parquetjs}/modules.d.ts +0 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.decodeFileMetadata = decodeFileMetadata;
|
|
8
|
+
exports.decodePageHeader = decodePageHeader;
|
|
9
|
+
exports.decodeThrift = decodeThrift;
|
|
10
|
+
exports.fieldIndexOf = fieldIndexOf;
|
|
11
|
+
exports.getBitWidth = getBitWidth;
|
|
12
|
+
exports.getThriftEnum = getThriftEnum;
|
|
13
|
+
exports.serializeThrift = serializeThrift;
|
|
14
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
16
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
17
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
18
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
20
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
21
|
+
var _thrift = require("thrift");
|
|
22
|
+
var _parquetThrift = require("../parquet-thrift");
|
|
23
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
24
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
25
|
+
var UFramedTransport = function (_TFramedTransport) {
|
|
26
|
+
(0, _inherits2.default)(UFramedTransport, _TFramedTransport);
|
|
27
|
+
var _super = _createSuper(UFramedTransport);
|
|
28
|
+
function UFramedTransport() {
|
|
29
|
+
var _this;
|
|
30
|
+
(0, _classCallCheck2.default)(this, UFramedTransport);
|
|
31
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
32
|
+
args[_key] = arguments[_key];
|
|
33
|
+
}
|
|
34
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
35
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "readPos", 0);
|
|
36
|
+
return _this;
|
|
37
|
+
}
|
|
38
|
+
return (0, _createClass2.default)(UFramedTransport);
|
|
39
|
+
}(_thrift.TFramedTransport);
|
|
40
|
+
function serializeThrift(obj) {
|
|
41
|
+
var output = [];
|
|
42
|
+
var transport = new _thrift.TBufferedTransport(undefined, function (buf) {
|
|
43
|
+
output.push(buf);
|
|
44
|
+
});
|
|
45
|
+
var protocol = new _thrift.TCompactProtocol(transport);
|
|
46
|
+
obj.write(protocol);
|
|
47
|
+
transport.flush();
|
|
48
|
+
return Buffer.concat(output);
|
|
49
|
+
}
|
|
50
|
+
function decodeThrift(obj, buf, offset) {
|
|
51
|
+
if (!offset) {
|
|
52
|
+
offset = 0;
|
|
53
|
+
}
|
|
54
|
+
var transport = new UFramedTransport(buf);
|
|
55
|
+
transport.readPos = offset;
|
|
56
|
+
var protocol = new _thrift.TCompactProtocol(transport);
|
|
57
|
+
obj.read(protocol);
|
|
58
|
+
return transport.readPos - offset;
|
|
59
|
+
}
|
|
60
|
+
function getThriftEnum(klass, value) {
|
|
61
|
+
for (var k in klass) {
|
|
62
|
+
if (klass[k] === value) {
|
|
63
|
+
return k;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
throw new Error('Invalid ENUM value');
|
|
67
|
+
}
|
|
68
|
+
function decodeFileMetadata(buf, offset) {
|
|
69
|
+
if (!offset) {
|
|
70
|
+
offset = 0;
|
|
71
|
+
}
|
|
72
|
+
var transport = new UFramedTransport(buf);
|
|
73
|
+
transport.readPos = offset;
|
|
74
|
+
var protocol = new _thrift.TCompactProtocol(transport);
|
|
75
|
+
var metadata = _parquetThrift.FileMetaData.read(protocol);
|
|
76
|
+
return {
|
|
77
|
+
length: transport.readPos - offset,
|
|
78
|
+
metadata: metadata
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
function decodePageHeader(buf, offset) {
|
|
82
|
+
if (!offset) {
|
|
83
|
+
offset = 0;
|
|
84
|
+
}
|
|
85
|
+
var transport = new UFramedTransport(buf);
|
|
86
|
+
transport.readPos = offset;
|
|
87
|
+
var protocol = new _thrift.TCompactProtocol(transport);
|
|
88
|
+
var pageHeader = _parquetThrift.PageHeader.read(protocol);
|
|
89
|
+
return {
|
|
90
|
+
length: transport.readPos - offset,
|
|
91
|
+
pageHeader: pageHeader
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
function getBitWidth(val) {
|
|
95
|
+
if (val === 0) {
|
|
96
|
+
return 0;
|
|
97
|
+
}
|
|
98
|
+
return Math.ceil(Math.log2(val + 1));
|
|
99
|
+
}
|
|
100
|
+
function fieldIndexOf(arr, elem) {
|
|
101
|
+
for (var j = 0; j < arr.length; j++) {
|
|
102
|
+
if (arr[j].length > elem.length) {
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
var m = true;
|
|
106
|
+
for (var i = 0; i < elem.length; i++) {
|
|
107
|
+
if (arr[j][i] === elem[i] || arr[j][i] === '+' || arr[j][i] === '#') {
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
if (i >= arr[j].length && arr[j][arr[j].length - 1] === '#') {
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
m = false;
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
116
|
+
if (m) return j;
|
|
117
|
+
}
|
|
118
|
+
return -1;
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=read-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-utils.js","names":["_thrift","require","_parquetThrift","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","UFramedTransport","_TFramedTransport","_inherits2","_super","_this","_classCallCheck2","_len","length","args","Array","_key","concat","_defineProperty2","_assertThisInitialized2","_createClass2","TFramedTransport","serializeThrift","obj","output","transport","TBufferedTransport","undefined","buf","push","protocol","TCompactProtocol","write","flush","Buffer","decodeThrift","offset","readPos","read","getThriftEnum","klass","value","k","Error","decodeFileMetadata","metadata","FileMetaData","decodePageHeader","pageHeader","PageHeader","getBitWidth","val","Math","ceil","log2","fieldIndexOf","arr","elem","j","m","i"],"sources":["../../../../src/parquetjs/utils/read-utils.ts"],"sourcesContent":["import {TBufferedTransport, TCompactProtocol, TFramedTransport} from 'thrift';\nimport {FileMetaData, PageHeader} from '../parquet-thrift';\n\nclass UFramedTransport extends TFramedTransport {\n public readPos: number = 0;\n}\n\n/**\n * Helper function that serializes a thrift object into a buffer\n */\nexport function serializeThrift(obj: any): Buffer {\n const output: Buffer[] = [];\n\n const transport = new TBufferedTransport(undefined, (buf) => {\n output.push(buf as Buffer);\n });\n\n const protocol = new TCompactProtocol(transport);\n obj.write(protocol);\n transport.flush();\n\n return Buffer.concat(output);\n}\n\nexport function decodeThrift(obj: any, buf: Buffer, offset?: number) {\n if (!offset) {\n // tslint:disable-next-line:no-parameter-reassignment\n offset = 0;\n }\n\n const transport = new UFramedTransport(buf);\n transport.readPos = offset;\n const protocol = new TCompactProtocol(transport);\n obj.read(protocol);\n return transport.readPos - offset;\n}\n\n/**\n * FIXME not ideal that this is linear\n */\nexport function getThriftEnum(klass: any, value: number | string): string {\n for (const k in klass) {\n if (klass[k] === value) {\n return k;\n }\n }\n throw new Error('Invalid ENUM value');\n}\n\nexport function decodeFileMetadata(buf: Buffer, offset?: number) {\n if (!offset) {\n // tslint:disable-next-line:no-parameter-reassignment\n offset = 0;\n }\n\n const transport = new UFramedTransport(buf);\n transport.readPos = offset;\n const protocol = new TCompactProtocol(transport);\n const metadata = FileMetaData.read(protocol);\n return {length: transport.readPos - offset, metadata};\n}\n\nexport function decodePageHeader(buf: Buffer, offset?: number) {\n if (!offset) {\n // tslint:disable-next-line:no-parameter-reassignment\n offset = 0;\n }\n\n const transport = new UFramedTransport(buf);\n transport.readPos = offset;\n const protocol = new TCompactProtocol(transport);\n const pageHeader = PageHeader.read(protocol);\n return {length: transport.readPos - offset, pageHeader};\n}\n\n/**\n * Get the number of bits required to store a given value\n */\nexport function getBitWidth(val: number): number {\n if (val === 0) {\n return 0;\n // tslint:disable-next-line:no-else-after-return\n }\n return Math.ceil(Math.log2(val + 1));\n}\n\n// Supports MQTT path wildcards\n// + all immediate children\n// # all descendents\nexport function fieldIndexOf(arr: string[][], elem: string[]): number {\n for (let j = 0; j < arr.length; j++) {\n if (arr[j].length > elem.length) {\n continue; // eslint-disable-line no-continue\n }\n let m = true;\n for (let i = 0; i < elem.length; i++) {\n if (arr[j][i] === elem[i] || arr[j][i] === '+' || arr[j][i] === '#') {\n continue; // eslint-disable-line no-continue\n }\n if (i >= arr[j].length && arr[j][arr[j].length - 1] === '#') {\n continue; // eslint-disable-line no-continue\n }\n m = false;\n break;\n }\n if (m) return j;\n }\n return -1;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parquet-worker.js","names":["_loaderUtils","require","_index","createLoaderWorker","ParquetLoader"],"sources":["../../../src/workers/parquet-worker.ts"],"sourcesContent":["import {createLoaderWorker} from '@loaders.gl/loader-utils';\nimport {ParquetLoader} from '../index';\n\ncreateLoaderWorker(ParquetLoader);\n"],"mappings":";;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,IAAAE,+BAAkB,EAACC,oBAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle.js","names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"sources":["../../src/bundle.ts"],"sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"mappings":"AACA,MAAMA,aAAa,GAAGC,OAAO,CAAC,SAAS,CAAC;AACxCC,UAAU,CAACC,OAAO,GAAGD,UAAU,CAACC,OAAO,IAAI,CAAC,CAAC;AAC7CC,MAAM,CAACC,OAAO,GAAGC,MAAM,CAACC,MAAM,CAACL,UAAU,CAACC,OAAO,EAAEH,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","names":["PARQUET_MAGIC","PARQUET_MAGIC_ENCRYPTED","PARQUET_VERSION","PARQUET_RDLVL_TYPE","PARQUET_RDLVL_ENCODING"],"sources":["../../src/constants.ts"],"sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\n/**\n * Parquet File Magic String\n */\nexport const PARQUET_MAGIC = 'PAR1';\nexport const PARQUET_MAGIC_ENCRYPTED = 'PARE';\n\n/**\n * Parquet File Format Version\n */\nexport const PARQUET_VERSION = 1;\n\n/**\n * Internal type used for repetition/definition levels\n */\nexport const PARQUET_RDLVL_TYPE = 'INT32';\nexport const PARQUET_RDLVL_ENCODING = 'RLE';\n"],"mappings":"AAIA,OAAO,MAAMA,aAAa,GAAG,MAAM;AACnC,OAAO,MAAMC,uBAAuB,GAAG,MAAM;AAK7C,OAAO,MAAMC,eAAe,GAAG,CAAC;AAKhC,OAAO,MAAMC,kBAAkB,GAAG,OAAO;AACzC,OAAO,MAAMC,sBAAsB,GAAG,KAAK"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ParquetLoader as ParquetWorkerLoader, ParquetLoader as ParquetColumnarWorkerLoader } from './parquet-loader';
|
|
2
|
+
import { parseParquet, parseParquetFileInBatches } from './lib/parsers/parse-parquet-to-rows';
|
|
3
|
+
import { parseParquetInColumns, parseParquetFileInColumnarBatches } from './lib/parsers/parse-parquet-to-columns';
|
|
4
|
+
import { parseParquetWasm } from './lib/wasm/parse-parquet-wasm';
|
|
5
|
+
import { ParquetWasmLoader as ParquetWasmWorkerLoader } from './parquet-wasm-loader';
|
|
6
|
+
export { ParquetWorkerLoader, ParquetWasmWorkerLoader };
|
|
7
|
+
export const ParquetLoader = {
|
|
8
|
+
...ParquetWorkerLoader,
|
|
9
|
+
parse: parseParquet,
|
|
10
|
+
parseFileInBatches: parseParquetFileInBatches
|
|
11
|
+
};
|
|
12
|
+
export const ParquetColumnarLoader = {
|
|
13
|
+
...ParquetColumnarWorkerLoader,
|
|
14
|
+
parse: parseParquetInColumns,
|
|
15
|
+
parseFileInBatches: parseParquetFileInColumnarBatches
|
|
16
|
+
};
|
|
17
|
+
export const ParquetWasmLoader = {
|
|
18
|
+
...ParquetWasmWorkerLoader,
|
|
19
|
+
parse: parseParquetWasm
|
|
20
|
+
};
|
|
21
|
+
export { ParquetWriter as _ParquetWriter } from './parquet-writer';
|
|
22
|
+
export { ParquetWasmWriter } from './parquet-wasm-writer';
|
|
23
|
+
export { preloadCompressions } from './parquetjs/compression';
|
|
24
|
+
export { ParquetSchema } from './parquetjs/schema/schema';
|
|
25
|
+
export { ParquetReader } from './parquetjs/parser/parquet-reader';
|
|
26
|
+
export { ParquetEncoder } from './parquetjs/encoder/parquet-encoder';
|
|
27
|
+
export { convertParquetSchema, convertParquetSchema as convertParquetToArrowSchema } from './lib/arrow/convert-schema-from-parquet';
|
|
28
|
+
export const _typecheckParquetLoader = ParquetLoader;
|
|
29
|
+
export { default as geoJSONSchema } from './lib/geo/geoparquet-schema';
|
|
30
|
+
export { getGeoMetadata, setGeoMetadata, unpackGeoMetadata } from './lib/geo/decode-geo-metadata';
|
|
31
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["ParquetLoader","ParquetWorkerLoader","ParquetColumnarWorkerLoader","parseParquet","parseParquetFileInBatches","parseParquetInColumns","parseParquetFileInColumnarBatches","parseParquetWasm","ParquetWasmLoader","ParquetWasmWorkerLoader","parse","parseFileInBatches","ParquetColumnarLoader","ParquetWriter","_ParquetWriter","ParquetWasmWriter","preloadCompressions","ParquetSchema","ParquetReader","ParquetEncoder","convertParquetSchema","convertParquetToArrowSchema","_typecheckParquetLoader","default","geoJSONSchema","getGeoMetadata","setGeoMetadata","unpackGeoMetadata"],"sources":["../../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {\n ObjectRowTable,\n ObjectRowTableBatch,\n ColumnarTable,\n ColumnarTableBatch\n} from '@loaders.gl/schema';\nimport type {Table as ArrowTable} from 'apache-arrow';\n\n// ParquetLoader\n\nimport {\n ParquetLoader as ParquetWorkerLoader,\n ParquetLoader as ParquetColumnarWorkerLoader,\n ParquetLoaderOptions\n} from './parquet-loader';\nimport {parseParquet, parseParquetFileInBatches} from './lib/parsers/parse-parquet-to-rows';\nimport {\n parseParquetInColumns,\n parseParquetFileInColumnarBatches\n} from './lib/parsers/parse-parquet-to-columns';\n\nimport {parseParquetWasm, ParquetWasmLoaderOptions} from './lib/wasm/parse-parquet-wasm';\nimport {ParquetWasmLoader as ParquetWasmWorkerLoader} from './parquet-wasm-loader';\n\nexport {ParquetWorkerLoader, ParquetWasmWorkerLoader};\n\n/** ParquetJS table loader */\nexport const ParquetLoader: LoaderWithParser<\n ObjectRowTable,\n ObjectRowTableBatch,\n ParquetLoaderOptions\n> = {\n ...ParquetWorkerLoader,\n parse: parseParquet,\n parseFileInBatches: parseParquetFileInBatches\n};\n\n/** ParquetJS table loader */\n// @ts-expect-error\nexport const ParquetColumnarLoader: LoaderWithParser<\n ColumnarTable,\n ColumnarTableBatch,\n ParquetLoaderOptions\n> = {\n ...ParquetColumnarWorkerLoader,\n parse: parseParquetInColumns,\n parseFileInBatches: parseParquetFileInColumnarBatches\n};\n\nexport const ParquetWasmLoader: LoaderWithParser<ArrowTable, never, ParquetWasmLoaderOptions> = {\n ...ParquetWasmWorkerLoader,\n parse: parseParquetWasm\n};\n\n// ParquetWriter\n\nexport {ParquetWriter as _ParquetWriter} from './parquet-writer';\nexport {ParquetWasmWriter} from './parquet-wasm-writer';\n\n// EXPERIMENTAL - expose the internal parquetjs API\n\nexport {preloadCompressions} from './parquetjs/compression';\n\nexport {ParquetSchema} from './parquetjs/schema/schema';\nexport {ParquetReader} from './parquetjs/parser/parquet-reader';\nexport {ParquetEncoder} from './parquetjs/encoder/parquet-encoder';\n\nexport {\n convertParquetSchema,\n convertParquetSchema as convertParquetToArrowSchema\n} from './lib/arrow/convert-schema-from-parquet';\n\n// TESTS\nexport const _typecheckParquetLoader: LoaderWithParser = ParquetLoader;\n\n// Geo Metadata\nexport {default as geoJSONSchema} from './lib/geo/geoparquet-schema';\n\nexport type {GeoMetadata} from './lib/geo/decode-geo-metadata';\nexport {getGeoMetadata, setGeoMetadata, unpackGeoMetadata} from './lib/geo/decode-geo-metadata';\n"],"mappings":"AAaA,SACEA,aAAa,IAAIC,mBAAmB,EACpCD,aAAa,IAAIE,2BAA2B,QAEvC,kBAAkB;AACzB,SAAQC,YAAY,EAAEC,yBAAyB,QAAO,qCAAqC;AAC3F,SACEC,qBAAqB,EACrBC,iCAAiC,QAC5B,wCAAwC;AAE/C,SAAQC,gBAAgB,QAAiC,+BAA+B;AACxF,SAAQC,iBAAiB,IAAIC,uBAAuB,QAAO,uBAAuB;AAElF,SAAQR,mBAAmB,EAAEQ,uBAAuB;AAGpD,OAAO,MAAMT,aAIZ,GAAG;EACF,GAAGC,mBAAmB;EACtBS,KAAK,EAAEP,YAAY;EACnBQ,kBAAkB,EAAEP;AACtB,CAAC;AAID,OAAO,MAAMQ,qBAIZ,GAAG;EACF,GAAGV,2BAA2B;EAC9BQ,KAAK,EAAEL,qBAAqB;EAC5BM,kBAAkB,EAAEL;AACtB,CAAC;AAED,OAAO,MAAME,iBAAgF,GAAG;EAC9F,GAAGC,uBAAuB;EAC1BC,KAAK,EAAEH;AACT,CAAC;AAID,SAAQM,aAAa,IAAIC,cAAc,QAAO,kBAAkB;AAChE,SAAQC,iBAAiB,QAAO,uBAAuB;AAIvD,SAAQC,mBAAmB,QAAO,yBAAyB;AAE3D,SAAQC,aAAa,QAAO,2BAA2B;AACvD,SAAQC,aAAa,QAAO,mCAAmC;AAC/D,SAAQC,cAAc,QAAO,qCAAqC;AAElE,SACEC,oBAAoB,EACpBA,oBAAoB,IAAIC,2BAA2B,QAC9C,yCAAyC;AAGhD,OAAO,MAAMC,uBAAyC,GAAGtB,aAAa;AAGtE,SAAQuB,OAAO,IAAIC,aAAa,QAAO,6BAA6B;AAGpE,SAAQC,cAAc,EAAEC,cAAc,EAAEC,iBAAiB,QAAO,+BAA+B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-columns-to-row-group.js","names":[],"sources":["../../../../src/lib/arrow/convert-columns-to-row-group.ts"],"sourcesContent":[""],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export function convertParquetRowGroupToColumns(schema, rowGroup) {
|
|
2
|
+
const columns = {};
|
|
3
|
+
for (const [columnName, data] of Object.entries(rowGroup.columnData)) {
|
|
4
|
+
columns[columnName] = columns[columnName] || data.values;
|
|
5
|
+
}
|
|
6
|
+
return columns;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=convert-row-group-to-columns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-row-group-to-columns.js","names":["convertParquetRowGroupToColumns","schema","rowGroup","columns","columnName","data","Object","entries","columnData","values"],"sources":["../../../../src/lib/arrow/convert-row-group-to-columns.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport {Schema} from '@loaders.gl/schema';\nimport {ParquetRowGroup} from '@loaders.gl/parquet/parquetjs/schema/declare';\n\nexport function convertParquetRowGroupToColumns(\n schema: Schema,\n rowGroup: ParquetRowGroup\n): Record<string, any[]> {\n const columns: Record<string, any[]> = {};\n for (const [columnName, data] of Object.entries(rowGroup.columnData)) {\n columns[columnName] = columns[columnName] || data.values;\n }\n return columns;\n}\n"],"mappings":"AAKA,OAAO,SAASA,+BAA+BA,CAC7CC,MAAc,EACdC,QAAyB,EACF;EACvB,MAAMC,OAA8B,GAAG,CAAC,CAAC;EACzC,KAAK,MAAM,CAACC,UAAU,EAAEC,IAAI,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACL,QAAQ,CAACM,UAAU,CAAC,EAAE;IACpEL,OAAO,CAACC,UAAU,CAAC,GAAGD,OAAO,CAACC,UAAU,CAAC,IAAIC,IAAI,CAACI,MAAM;EAC1D;EACA,OAAON,OAAO;AAChB"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
export const PARQUET_TYPE_MAPPING = {
|
|
2
|
+
BOOLEAN: 'bool',
|
|
3
|
+
INT32: 'int32',
|
|
4
|
+
INT64: 'float64',
|
|
5
|
+
INT96: 'float64',
|
|
6
|
+
FLOAT: 'float32',
|
|
7
|
+
DOUBLE: 'float64',
|
|
8
|
+
BYTE_ARRAY: 'binary',
|
|
9
|
+
FIXED_LEN_BYTE_ARRAY: 'binary',
|
|
10
|
+
UTF8: 'utf8',
|
|
11
|
+
DATE: 'int32',
|
|
12
|
+
TIME_MILLIS: 'int64',
|
|
13
|
+
TIME_MICROS: 'int64',
|
|
14
|
+
TIMESTAMP_MILLIS: 'int64',
|
|
15
|
+
TIMESTAMP_MICROS: 'int64',
|
|
16
|
+
UINT_8: 'int32',
|
|
17
|
+
UINT_16: 'uint16',
|
|
18
|
+
UINT_32: 'uint32',
|
|
19
|
+
UINT_64: 'uint64',
|
|
20
|
+
INT_8: 'int8',
|
|
21
|
+
INT_16: 'int16',
|
|
22
|
+
INT_32: 'int32',
|
|
23
|
+
INT_64: 'int64',
|
|
24
|
+
JSON: 'binary',
|
|
25
|
+
BSON: 'binary',
|
|
26
|
+
INTERVAL: 'binary',
|
|
27
|
+
DECIMAL_INT32: 'float32',
|
|
28
|
+
DECIMAL_INT64: 'float64',
|
|
29
|
+
DECIMAL_BYTE_ARRAY: 'float64',
|
|
30
|
+
DECIMAL_FIXED_LEN_BYTE_ARRAY: 'float64'
|
|
31
|
+
};
|
|
32
|
+
export function convertParquetSchema(parquetSchema, parquetMetadata) {
|
|
33
|
+
const fields = getFields(parquetSchema.schema);
|
|
34
|
+
const metadata = parquetMetadata && getSchemaMetadata(parquetMetadata);
|
|
35
|
+
const schema = {
|
|
36
|
+
fields,
|
|
37
|
+
metadata: metadata || {}
|
|
38
|
+
};
|
|
39
|
+
return schema;
|
|
40
|
+
}
|
|
41
|
+
function getFields(schema) {
|
|
42
|
+
const fields = [];
|
|
43
|
+
for (const name in schema) {
|
|
44
|
+
const field = schema[name];
|
|
45
|
+
if (field.fields) {
|
|
46
|
+
const children = getFields(field.fields);
|
|
47
|
+
fields.push({
|
|
48
|
+
name,
|
|
49
|
+
type: {
|
|
50
|
+
type: 'struct',
|
|
51
|
+
children
|
|
52
|
+
},
|
|
53
|
+
nullable: field.optional
|
|
54
|
+
});
|
|
55
|
+
} else {
|
|
56
|
+
const type = PARQUET_TYPE_MAPPING[field.type];
|
|
57
|
+
const metadata = getFieldMetadata(field);
|
|
58
|
+
const arrowField = {
|
|
59
|
+
name,
|
|
60
|
+
type,
|
|
61
|
+
nullable: field.optional,
|
|
62
|
+
metadata
|
|
63
|
+
};
|
|
64
|
+
fields.push(arrowField);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return fields;
|
|
68
|
+
}
|
|
69
|
+
function getFieldMetadata(field) {
|
|
70
|
+
let metadata;
|
|
71
|
+
for (const key in field) {
|
|
72
|
+
if (key !== 'name') {
|
|
73
|
+
let value = field[key] || '';
|
|
74
|
+
value = typeof field[key] !== 'string' ? JSON.stringify(field[key]) : field[key];
|
|
75
|
+
metadata = metadata || {};
|
|
76
|
+
metadata[key] = value;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return metadata;
|
|
80
|
+
}
|
|
81
|
+
function getSchemaMetadata(parquetMetadata) {
|
|
82
|
+
let metadata;
|
|
83
|
+
const keyValueList = parquetMetadata.key_value_metadata || [];
|
|
84
|
+
for (const {
|
|
85
|
+
key,
|
|
86
|
+
value
|
|
87
|
+
} of keyValueList) {
|
|
88
|
+
if (typeof value === 'string') {
|
|
89
|
+
metadata = metadata || {};
|
|
90
|
+
metadata[key] = value;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return metadata;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=convert-schema-from-parquet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-schema-from-parquet.js","names":["PARQUET_TYPE_MAPPING","BOOLEAN","INT32","INT64","INT96","FLOAT","DOUBLE","BYTE_ARRAY","FIXED_LEN_BYTE_ARRAY","UTF8","DATE","TIME_MILLIS","TIME_MICROS","TIMESTAMP_MILLIS","TIMESTAMP_MICROS","UINT_8","UINT_16","UINT_32","UINT_64","INT_8","INT_16","INT_32","INT_64","JSON","BSON","INTERVAL","DECIMAL_INT32","DECIMAL_INT64","DECIMAL_BYTE_ARRAY","DECIMAL_FIXED_LEN_BYTE_ARRAY","convertParquetSchema","parquetSchema","parquetMetadata","fields","getFields","schema","metadata","getSchemaMetadata","name","field","children","push","type","nullable","optional","getFieldMetadata","arrowField","key","value","stringify","keyValueList","key_value_metadata"],"sources":["../../../../src/lib/arrow/convert-schema-from-parquet.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport {Schema, Field, DataType} from '@loaders.gl/schema';\n\nimport type {ParquetSchema} from '../../parquetjs/schema/schema';\nimport type {FieldDefinition, ParquetField, ParquetType} from '../../parquetjs/schema/declare';\nimport {FileMetaData} from '../../parquetjs/parquet-thrift';\n\nexport const PARQUET_TYPE_MAPPING: {[type in ParquetType]: DataType} = {\n BOOLEAN: 'bool',\n INT32: 'int32',\n INT64: 'float64',\n INT96: 'float64',\n FLOAT: 'float32',\n DOUBLE: 'float64',\n BYTE_ARRAY: 'binary',\n FIXED_LEN_BYTE_ARRAY: 'binary',\n UTF8: 'utf8',\n DATE: 'int32',\n TIME_MILLIS: 'int64',\n TIME_MICROS: 'int64',\n TIMESTAMP_MILLIS: 'int64',\n TIMESTAMP_MICROS: 'int64',\n UINT_8: 'int32',\n UINT_16: 'uint16',\n UINT_32: 'uint32',\n UINT_64: 'uint64',\n INT_8: 'int8',\n INT_16: 'int16',\n INT_32: 'int32',\n INT_64: 'int64',\n JSON: 'binary',\n BSON: 'binary',\n // TODO check interal type\n INTERVAL: 'binary',\n DECIMAL_INT32: 'float32',\n DECIMAL_INT64: 'float64',\n DECIMAL_BYTE_ARRAY: 'float64',\n DECIMAL_FIXED_LEN_BYTE_ARRAY: 'float64'\n};\n\nexport function convertParquetSchema(\n parquetSchema: ParquetSchema,\n parquetMetadata: FileMetaData | null\n): Schema {\n const fields = getFields(parquetSchema.schema);\n const metadata = parquetMetadata && getSchemaMetadata(parquetMetadata);\n\n const schema: Schema = {\n fields,\n metadata: metadata || {}\n };\n\n return schema;\n}\n\nfunction getFields(schema: FieldDefinition): Field[] {\n const fields: Field[] = [];\n\n for (const name in schema) {\n const field = schema[name];\n\n if (field.fields) {\n const children = getFields(field.fields);\n fields.push({name, type: {type: 'struct', children}, nullable: field.optional});\n } else {\n const type = PARQUET_TYPE_MAPPING[field.type];\n const metadata = getFieldMetadata(field);\n const arrowField = {name, type, nullable: field.optional, metadata};\n fields.push(arrowField);\n }\n }\n\n return fields;\n}\n\nfunction getFieldMetadata(field: ParquetField): Record<string, string> | undefined {\n let metadata: Record<string, string> | undefined;\n\n for (const key in field) {\n if (key !== 'name') {\n let value = field[key] || '';\n value = typeof field[key] !== 'string' ? JSON.stringify(field[key]) : field[key];\n metadata = metadata || {};\n metadata[key] = value;\n }\n }\n\n return metadata;\n}\n\nfunction getSchemaMetadata(parquetMetadata: FileMetaData): Record<string, string> | undefined {\n let metadata: Record<string, string> | undefined;\n\n const keyValueList = parquetMetadata.key_value_metadata || [];\n for (const {key, value} of keyValueList) {\n if (typeof value === 'string') {\n metadata = metadata || {};\n metadata[key] = value;\n }\n }\n\n return metadata;\n}\n"],"mappings":"AAQA,OAAO,MAAMA,oBAAuD,GAAG;EACrEC,OAAO,EAAE,MAAM;EACfC,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE,SAAS;EAChBC,KAAK,EAAE,SAAS;EAChBC,KAAK,EAAE,SAAS;EAChBC,MAAM,EAAE,SAAS;EACjBC,UAAU,EAAE,QAAQ;EACpBC,oBAAoB,EAAE,QAAQ;EAC9BC,IAAI,EAAE,MAAM;EACZC,IAAI,EAAE,OAAO;EACbC,WAAW,EAAE,OAAO;EACpBC,WAAW,EAAE,OAAO;EACpBC,gBAAgB,EAAE,OAAO;EACzBC,gBAAgB,EAAE,OAAO;EACzBC,MAAM,EAAE,OAAO;EACfC,OAAO,EAAE,QAAQ;EACjBC,OAAO,EAAE,QAAQ;EACjBC,OAAO,EAAE,QAAQ;EACjBC,KAAK,EAAE,MAAM;EACbC,MAAM,EAAE,OAAO;EACfC,MAAM,EAAE,OAAO;EACfC,MAAM,EAAE,OAAO;EACfC,IAAI,EAAE,QAAQ;EACdC,IAAI,EAAE,QAAQ;EAEdC,QAAQ,EAAE,QAAQ;EAClBC,aAAa,EAAE,SAAS;EACxBC,aAAa,EAAE,SAAS;EACxBC,kBAAkB,EAAE,SAAS;EAC7BC,4BAA4B,EAAE;AAChC,CAAC;AAED,OAAO,SAASC,oBAAoBA,CAClCC,aAA4B,EAC5BC,eAAoC,EAC5B;EACR,MAAMC,MAAM,GAAGC,SAAS,CAACH,aAAa,CAACI,MAAM,CAAC;EAC9C,MAAMC,QAAQ,GAAGJ,eAAe,IAAIK,iBAAiB,CAACL,eAAe,CAAC;EAEtE,MAAMG,MAAc,GAAG;IACrBF,MAAM;IACNG,QAAQ,EAAEA,QAAQ,IAAI,CAAC;EACzB,CAAC;EAED,OAAOD,MAAM;AACf;AAEA,SAASD,SAASA,CAACC,MAAuB,EAAW;EACnD,MAAMF,MAAe,GAAG,EAAE;EAE1B,KAAK,MAAMK,IAAI,IAAIH,MAAM,EAAE;IACzB,MAAMI,KAAK,GAAGJ,MAAM,CAACG,IAAI,CAAC;IAE1B,IAAIC,KAAK,CAACN,MAAM,EAAE;MAChB,MAAMO,QAAQ,GAAGN,SAAS,CAACK,KAAK,CAACN,MAAM,CAAC;MACxCA,MAAM,CAACQ,IAAI,CAAC;QAACH,IAAI;QAAEI,IAAI,EAAE;UAACA,IAAI,EAAE,QAAQ;UAAEF;QAAQ,CAAC;QAAEG,QAAQ,EAAEJ,KAAK,CAACK;MAAQ,CAAC,CAAC;IACjF,CAAC,MAAM;MACL,MAAMF,IAAI,GAAG1C,oBAAoB,CAACuC,KAAK,CAACG,IAAI,CAAC;MAC7C,MAAMN,QAAQ,GAAGS,gBAAgB,CAACN,KAAK,CAAC;MACxC,MAAMO,UAAU,GAAG;QAACR,IAAI;QAAEI,IAAI;QAAEC,QAAQ,EAAEJ,KAAK,CAACK,QAAQ;QAAER;MAAQ,CAAC;MACnEH,MAAM,CAACQ,IAAI,CAACK,UAAU,CAAC;IACzB;EACF;EAEA,OAAOb,MAAM;AACf;AAEA,SAASY,gBAAgBA,CAACN,KAAmB,EAAsC;EACjF,IAAIH,QAA4C;EAEhD,KAAK,MAAMW,GAAG,IAAIR,KAAK,EAAE;IACvB,IAAIQ,GAAG,KAAK,MAAM,EAAE;MAClB,IAAIC,KAAK,GAAGT,KAAK,CAACQ,GAAG,CAAC,IAAI,EAAE;MAC5BC,KAAK,GAAG,OAAOT,KAAK,CAACQ,GAAG,CAAC,KAAK,QAAQ,GAAGxB,IAAI,CAAC0B,SAAS,CAACV,KAAK,CAACQ,GAAG,CAAC,CAAC,GAAGR,KAAK,CAACQ,GAAG,CAAC;MAChFX,QAAQ,GAAGA,QAAQ,IAAI,CAAC,CAAC;MACzBA,QAAQ,CAACW,GAAG,CAAC,GAAGC,KAAK;IACvB;EACF;EAEA,OAAOZ,QAAQ;AACjB;AAEA,SAASC,iBAAiBA,CAACL,eAA6B,EAAsC;EAC5F,IAAII,QAA4C;EAEhD,MAAMc,YAAY,GAAGlB,eAAe,CAACmB,kBAAkB,IAAI,EAAE;EAC7D,KAAK,MAAM;IAACJ,GAAG;IAAEC;EAAK,CAAC,IAAIE,YAAY,EAAE;IACvC,IAAI,OAAOF,KAAK,KAAK,QAAQ,EAAE;MAC7BZ,QAAQ,GAAGA,QAAQ,IAAI,CAAC,CAAC;MACzBA,QAAQ,CAACW,GAAG,CAAC,GAAGC,KAAK;IACvB;EACF;EAEA,OAAOZ,QAAQ;AACjB"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export const PARQUET_TYPE_MAPPING = {
|
|
2
|
+
BOOLEAN: 'bool',
|
|
3
|
+
INT32: 'int32',
|
|
4
|
+
INT64: 'float64',
|
|
5
|
+
INT96: 'float64',
|
|
6
|
+
FLOAT: 'float32',
|
|
7
|
+
DOUBLE: 'float64',
|
|
8
|
+
BYTE_ARRAY: 'binary',
|
|
9
|
+
FIXED_LEN_BYTE_ARRAY: 'binary',
|
|
10
|
+
UTF8: 'utf8',
|
|
11
|
+
DATE: 'int32',
|
|
12
|
+
TIME_MILLIS: 'int64',
|
|
13
|
+
TIME_MICROS: 'int64',
|
|
14
|
+
TIMESTAMP_MILLIS: 'int64',
|
|
15
|
+
TIMESTAMP_MICROS: 'int64',
|
|
16
|
+
UINT_8: 'int32',
|
|
17
|
+
UINT_16: 'uint16',
|
|
18
|
+
UINT_32: 'uint32',
|
|
19
|
+
UINT_64: 'uint64',
|
|
20
|
+
INT_8: 'int8',
|
|
21
|
+
INT_16: 'int16',
|
|
22
|
+
INT_32: 'int32',
|
|
23
|
+
INT_64: 'int64',
|
|
24
|
+
JSON: 'binary',
|
|
25
|
+
BSON: 'binary',
|
|
26
|
+
INTERVAL: 'binary',
|
|
27
|
+
DECIMAL_INT32: 'float32',
|
|
28
|
+
DECIMAL_INT64: 'float64',
|
|
29
|
+
DECIMAL_BYTE_ARRAY: 'float64',
|
|
30
|
+
DECIMAL_FIXED_LEN_BYTE_ARRAY: 'float64'
|
|
31
|
+
};
|
|
32
|
+
export function convertToParquetSchema(schema) {
|
|
33
|
+
const fields = [];
|
|
34
|
+
return {
|
|
35
|
+
fields,
|
|
36
|
+
metadata: {}
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=convert-schema-to-parquet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-schema-to-parquet.js","names":["PARQUET_TYPE_MAPPING","BOOLEAN","INT32","INT64","INT96","FLOAT","DOUBLE","BYTE_ARRAY","FIXED_LEN_BYTE_ARRAY","UTF8","DATE","TIME_MILLIS","TIME_MICROS","TIMESTAMP_MILLIS","TIMESTAMP_MICROS","UINT_8","UINT_16","UINT_32","UINT_64","INT_8","INT_16","INT_32","INT_64","JSON","BSON","INTERVAL","DECIMAL_INT32","DECIMAL_INT64","DECIMAL_BYTE_ARRAY","DECIMAL_FIXED_LEN_BYTE_ARRAY","convertToParquetSchema","schema","fields","metadata"],"sources":["../../../../src/lib/arrow/convert-schema-to-parquet.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n// import type {ParquetSchema} from '../../parquetjs/schema/schema';\nimport type {\n // FieldDefinition, ParquetField,\n ParquetType\n} from '../../parquetjs/schema/declare';\n\nimport {\n Schema,\n // Struct,\n // Field,\n DataType\n} from '@loaders.gl/schema';\n\nexport const PARQUET_TYPE_MAPPING: {[type in ParquetType]: DataType} = {\n BOOLEAN: 'bool',\n INT32: 'int32',\n INT64: 'float64',\n INT96: 'float64',\n FLOAT: 'float32',\n DOUBLE: 'float64',\n BYTE_ARRAY: 'binary',\n FIXED_LEN_BYTE_ARRAY: 'binary',\n UTF8: 'utf8',\n DATE: 'int32',\n TIME_MILLIS: 'int64',\n TIME_MICROS: 'int64',\n TIMESTAMP_MILLIS: 'int64',\n TIMESTAMP_MICROS: 'int64',\n UINT_8: 'int32',\n UINT_16: 'uint16',\n UINT_32: 'uint32',\n UINT_64: 'uint64',\n INT_8: 'int8',\n INT_16: 'int16',\n INT_32: 'int32',\n INT_64: 'int64',\n JSON: 'binary',\n BSON: 'binary',\n // TODO check interval type\n INTERVAL: 'binary',\n DECIMAL_INT32: 'float32',\n DECIMAL_INT64: 'float64',\n DECIMAL_BYTE_ARRAY: 'float64',\n DECIMAL_FIXED_LEN_BYTE_ARRAY: 'float64'\n};\n\nexport function convertToParquetSchema(schema: Schema): Schema {\n const fields = []; // getFields(schema.fields);\n\n // TODO add metadata if needed.\n return {fields, metadata: {}};\n}\n\n// function getFields(schema: Field[]): Definition[] {\n// const fields: Field[] = [];\n\n// for (const name in schema) {\n// const field = schema[name];\n\n// // @ts-ignore\n// const children = field.children as DataType[];\n// if (children) {\n// const childField = getFields(field.fields);\n// const nestedField = new Field(name, new Struct(childField), field.optional);\n// fields.push(nestedField);\n// } else {\n// const FieldType = PARQUET_TYPE_MAPPING[field.type];\n// const metadata = getFieldMetadata(field);\n// const arrowField = new Field(name, new FieldType(), field.optional, metadata);\n// fields.push(arrowField);\n// }\n// }\n\n// return fields;\n// }\n\n// function getFieldMetadata(field: ParquetField): Map<string, string> {\n// const metadata = new Map();\n\n// for (const key in field) {\n// if (key !== 'name') {\n// const value = typeof field[key] !== 'string' ? JSON.stringify(field[key]) : field[key];\n// metadata.set(key, value);\n// }\n// }\n\n// return metadata;\n// }\n"],"mappings":"AAeA,OAAO,MAAMA,oBAAuD,GAAG;EACrEC,OAAO,EAAE,MAAM;EACfC,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE,SAAS;EAChBC,KAAK,EAAE,SAAS;EAChBC,KAAK,EAAE,SAAS;EAChBC,MAAM,EAAE,SAAS;EACjBC,UAAU,EAAE,QAAQ;EACpBC,oBAAoB,EAAE,QAAQ;EAC9BC,IAAI,EAAE,MAAM;EACZC,IAAI,EAAE,OAAO;EACbC,WAAW,EAAE,OAAO;EACpBC,WAAW,EAAE,OAAO;EACpBC,gBAAgB,EAAE,OAAO;EACzBC,gBAAgB,EAAE,OAAO;EACzBC,MAAM,EAAE,OAAO;EACfC,OAAO,EAAE,QAAQ;EACjBC,OAAO,EAAE,QAAQ;EACjBC,OAAO,EAAE,QAAQ;EACjBC,KAAK,EAAE,MAAM;EACbC,MAAM,EAAE,OAAO;EACfC,MAAM,EAAE,OAAO;EACfC,MAAM,EAAE,OAAO;EACfC,IAAI,EAAE,QAAQ;EACdC,IAAI,EAAE,QAAQ;EAEdC,QAAQ,EAAE,QAAQ;EAClBC,aAAa,EAAE,SAAS;EACxBC,aAAa,EAAE,SAAS;EACxBC,kBAAkB,EAAE,SAAS;EAC7BC,4BAA4B,EAAE;AAChC,CAAC;AAED,OAAO,SAASC,sBAAsBA,CAACC,MAAc,EAAU;EAC7D,MAAMC,MAAM,GAAG,EAAE;EAGjB,OAAO;IAACA,MAAM;IAAEC,QAAQ,EAAE,CAAC;EAAC,CAAC;AAC/B"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
export function getGeoMetadata(schema) {
|
|
2
|
+
const stringifiedGeoMetadata = schema.metadata.geo;
|
|
3
|
+
if (!stringifiedGeoMetadata) {
|
|
4
|
+
return null;
|
|
5
|
+
}
|
|
6
|
+
try {
|
|
7
|
+
const geoMetadata = JSON.parse(stringifiedGeoMetadata);
|
|
8
|
+
return geoMetadata;
|
|
9
|
+
} catch {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export function setGeoMetadata(schema, geoMetadata) {
|
|
14
|
+
const stringifiedGeoMetadata = JSON.stringify(geoMetadata);
|
|
15
|
+
schema.metadata.geo = stringifiedGeoMetadata;
|
|
16
|
+
}
|
|
17
|
+
export function unpackGeoMetadata(schema) {
|
|
18
|
+
const geoMetadata = getGeoMetadata(schema);
|
|
19
|
+
if (!geoMetadata) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const {
|
|
23
|
+
version,
|
|
24
|
+
primary_column,
|
|
25
|
+
columns
|
|
26
|
+
} = geoMetadata;
|
|
27
|
+
if (version) {
|
|
28
|
+
schema.metadata['geo.version'] = version;
|
|
29
|
+
}
|
|
30
|
+
if (primary_column) {
|
|
31
|
+
schema.metadata['geo.primary_column'] = primary_column;
|
|
32
|
+
}
|
|
33
|
+
schema.metadata['geo.columns'] = Object.keys(columns || {}).join('');
|
|
34
|
+
for (const [columnName, columnMetadata] of Object.entries(columns || {})) {
|
|
35
|
+
const field = schema.fields.find(field => field.name === columnName);
|
|
36
|
+
if (field) {
|
|
37
|
+
if (field.name === primary_column) {
|
|
38
|
+
setFieldMetadata(field, 'geo.primary_field', 'true');
|
|
39
|
+
}
|
|
40
|
+
unpackGeoFieldMetadata(field, columnMetadata);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function unpackGeoFieldMetadata(field, columnMetadata) {
|
|
45
|
+
for (const [key, value] of Object.entries(columnMetadata || {})) {
|
|
46
|
+
switch (key) {
|
|
47
|
+
case 'geometry_type':
|
|
48
|
+
setFieldMetadata(field, "geo.".concat(key), value.join(','));
|
|
49
|
+
break;
|
|
50
|
+
case 'bbox':
|
|
51
|
+
case 'crs':
|
|
52
|
+
case 'edges':
|
|
53
|
+
default:
|
|
54
|
+
setFieldMetadata(field, "geo.".concat(key), typeof value === 'string' ? value : JSON.stringify(value));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function setFieldMetadata(field, key, value) {
|
|
59
|
+
field.metadata = field.metadata || {};
|
|
60
|
+
field.metadata[key] = value;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=decode-geo-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decode-geo-metadata.js","names":["getGeoMetadata","schema","stringifiedGeoMetadata","metadata","geo","geoMetadata","JSON","parse","setGeoMetadata","stringify","unpackGeoMetadata","version","primary_column","columns","Object","keys","join","columnName","columnMetadata","entries","field","fields","find","name","setFieldMetadata","unpackGeoFieldMetadata","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":"AA2BA,OAAO,SAASA,cAAcA,CAACC,MAAc,EAAsB;EACjE,MAAMC,sBAAsB,GAAGD,MAAM,CAACE,QAAQ,CAACC,GAAG;EAClD,IAAI,CAACF,sBAAsB,EAAE;IAC3B,OAAO,IAAI;EACb;EAEA,IAAI;IACF,MAAMG,WAAW,GAAGC,IAAI,CAACC,KAAK,CAACL,sBAAsB,CAAgB;IACrE,OAAOG,WAAW;EACpB,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF;AAMA,OAAO,SAASG,cAAcA,CAACP,MAAc,EAAEI,WAAwB,EAAQ;EAC7E,MAAMH,sBAAsB,GAAGI,IAAI,CAACG,SAAS,CAACJ,WAAW,CAAC;EAC1DJ,MAAM,CAACE,QAAQ,CAACC,GAAG,GAAGF,sBAAsB;AAC9C;AAMA,OAAO,SAASQ,iBAAiBA,CAACT,MAAc,EAAQ;EACtD,MAAMI,WAAW,GAAGL,cAAc,CAACC,MAAM,CAAC;EAC1C,IAAI,CAACI,WAAW,EAAE;IAChB;EACF;EAIA,MAAM;IAACM,OAAO;IAAEC,cAAc;IAAEC;EAAO,CAAC,GAAGR,WAAW;EACtD,IAAIM,OAAO,EAAE;IACXV,MAAM,CAACE,QAAQ,CAAC,aAAa,CAAC,GAAGQ,OAAO;EAC1C;EAEA,IAAIC,cAAc,EAAE;IAClBX,MAAM,CAACE,QAAQ,CAAC,oBAAoB,CAAC,GAAGS,cAAc;EACxD;EAGAX,MAAM,CAACE,QAAQ,CAAC,aAAa,CAAC,GAAGW,MAAM,CAACC,IAAI,CAACF,OAAO,IAAI,CAAC,CAAC,CAAC,CAACG,IAAI,CAAC,EAAE,CAAC;EAEpE,KAAK,MAAM,CAACC,UAAU,EAAEC,cAAc,CAAC,IAAIJ,MAAM,CAACK,OAAO,CAACN,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE;IACxE,MAAMO,KAAK,GAAGnB,MAAM,CAACoB,MAAM,CAACC,IAAI,CAAEF,KAAK,IAAKA,KAAK,CAACG,IAAI,KAAKN,UAAU,CAAC;IACtE,IAAIG,KAAK,EAAE;MACT,IAAIA,KAAK,CAACG,IAAI,KAAKX,cAAc,EAAE;QACjCY,gBAAgB,CAACJ,KAAK,EAAE,mBAAmB,EAAE,MAAM,CAAC;MACtD;MACAK,sBAAsB,CAACL,KAAK,EAAEF,cAAc,CAAC;IAC/C;EACF;AACF;AAEA,SAASO,sBAAsBA,CAACL,KAAY,EAAEF,cAAc,EAAQ;EAClE,KAAK,MAAM,CAACQ,GAAG,EAAEC,KAAK,CAAC,IAAIb,MAAM,CAACK,OAAO,CAACD,cAAc,IAAI,CAAC,CAAC,CAAC,EAAE;IAC/D,QAAQQ,GAAG;MACT,KAAK,eAAe;QAClBF,gBAAgB,CAACJ,KAAK,SAAAQ,MAAA,CAASF,GAAG,GAAKC,KAAK,CAAcX,IAAI,CAAC,GAAG,CAAC,CAAC;QACpE;MACF,KAAK,MAAM;MACX,KAAK,KAAK;MACV,KAAK,OAAO;MACZ;QACEQ,gBAAgB,CACdJ,KAAK,SAAAQ,MAAA,CACEF,GAAG,GACV,OAAOC,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGrB,IAAI,CAACG,SAAS,CAACkB,KAAK,CAC1D,CAAC;IACL;EACF;AACF;AAEA,SAASH,gBAAgBA,CAACJ,KAAY,EAAEM,GAAW,EAAEC,KAAa,EAAQ;EACxEP,KAAK,CAACjB,QAAQ,GAAGiB,KAAK,CAACjB,QAAQ,IAAI,CAAC,CAAC;EACrCiB,KAAK,CAACjB,QAAQ,CAACuB,GAAG,CAAC,GAAGC,KAAK;AAC7B"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
export default {
|
|
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: {
|
|
9
|
+
type: 'string',
|
|
10
|
+
const: '1.0.0-beta.1'
|
|
11
|
+
},
|
|
12
|
+
primary_column: {
|
|
13
|
+
type: 'string',
|
|
14
|
+
minLength: 1
|
|
15
|
+
},
|
|
16
|
+
columns: {
|
|
17
|
+
type: 'object',
|
|
18
|
+
minProperties: 1,
|
|
19
|
+
patternProperties: {
|
|
20
|
+
'.+': {
|
|
21
|
+
type: 'object',
|
|
22
|
+
required: ['encoding', 'geometry_types'],
|
|
23
|
+
properties: {
|
|
24
|
+
encoding: {
|
|
25
|
+
type: 'string',
|
|
26
|
+
const: 'WKB'
|
|
27
|
+
},
|
|
28
|
+
geometry_types: {
|
|
29
|
+
type: 'array',
|
|
30
|
+
uniqueItems: true,
|
|
31
|
+
items: {
|
|
32
|
+
type: 'string',
|
|
33
|
+
pattern: '^(GeometryCollection|(Multi)?(Point|LineString|Polygon))( Z)?$'
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
crs: {
|
|
37
|
+
oneOf: [{
|
|
38
|
+
$ref: 'https://proj.org/schemas/v0.5/projjson.schema.json'
|
|
39
|
+
}, {
|
|
40
|
+
type: 'null'
|
|
41
|
+
}]
|
|
42
|
+
},
|
|
43
|
+
edges: {
|
|
44
|
+
type: 'string',
|
|
45
|
+
enum: ['planar', 'spherical']
|
|
46
|
+
},
|
|
47
|
+
orientation: {
|
|
48
|
+
type: 'string',
|
|
49
|
+
const: 'counterclockwise'
|
|
50
|
+
},
|
|
51
|
+
bbox: {
|
|
52
|
+
type: 'array',
|
|
53
|
+
items: {
|
|
54
|
+
type: 'number'
|
|
55
|
+
},
|
|
56
|
+
oneOf: [{
|
|
57
|
+
description: '2D bbox consisting of (xmin, ymin, xmax, ymax)',
|
|
58
|
+
minItems: 4,
|
|
59
|
+
maxItems: 4
|
|
60
|
+
}, {
|
|
61
|
+
description: '3D bbox consisting of (xmin, ymin, zmin, xmax, ymax, zmax)',
|
|
62
|
+
minItems: 6,
|
|
63
|
+
maxItems: 6
|
|
64
|
+
}]
|
|
65
|
+
},
|
|
66
|
+
epoch: {
|
|
67
|
+
type: 'number'
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
additionalProperties: false
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=geoparquet-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geoparquet-schema.js","names":["$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"],"sources":["../../../../src/lib/geo/geoparquet-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 default {\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":"AASA,eAAe;EACbA,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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { makeReadableFile } from '@loaders.gl/loader-utils';
|
|
2
|
+
import { ParquetReader } from '../../parquetjs/parser/parquet-reader';
|
|
3
|
+
import { convertParquetSchema } from '../arrow/convert-schema-from-parquet';
|
|
4
|
+
import { materializeColumns } from '../../parquetjs/schema/shred';
|
|
5
|
+
import { unpackGeoMetadata } from '../geo/decode-geo-metadata';
|
|
6
|
+
export async function parseParquetInColumns(arrayBuffer, options) {
|
|
7
|
+
const blob = new Blob([arrayBuffer]);
|
|
8
|
+
for await (const batch of parseParquetFileInColumnarBatches(blob, options)) {
|
|
9
|
+
return {
|
|
10
|
+
shape: 'columnar-table',
|
|
11
|
+
schema: batch.schema,
|
|
12
|
+
data: batch.data
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
throw new Error('empty table');
|
|
16
|
+
}
|
|
17
|
+
export async function* parseParquetFileInColumnarBatches(blob, options) {
|
|
18
|
+
const file = makeReadableFile(blob);
|
|
19
|
+
const reader = new ParquetReader(file);
|
|
20
|
+
const parquetSchema = await reader.getSchema();
|
|
21
|
+
const parquetMetadata = await reader.getFileMetadata();
|
|
22
|
+
const schema = convertParquetSchema(parquetSchema, parquetMetadata);
|
|
23
|
+
unpackGeoMetadata(schema);
|
|
24
|
+
const rowGroups = reader.rowGroupIterator(options === null || options === void 0 ? void 0 : options.parquet);
|
|
25
|
+
for await (const rowGroup of rowGroups) {
|
|
26
|
+
yield convertRowGroupToTableBatch(parquetSchema, rowGroup, schema);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function convertRowGroupToTableBatch(parquetSchema, rowGroup, schema) {
|
|
30
|
+
const data = materializeColumns(parquetSchema, rowGroup);
|
|
31
|
+
return {
|
|
32
|
+
shape: 'columnar-table',
|
|
33
|
+
batchType: 'data',
|
|
34
|
+
schema,
|
|
35
|
+
data,
|
|
36
|
+
length: rowGroup.rowCount
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=parse-parquet-to-columns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-parquet-to-columns.js","names":["makeReadableFile","ParquetReader","convertParquetSchema","materializeColumns","unpackGeoMetadata","parseParquetInColumns","arrayBuffer","options","blob","Blob","batch","parseParquetFileInColumnarBatches","shape","schema","data","Error","file","reader","parquetSchema","getSchema","parquetMetadata","getFileMetadata","rowGroups","rowGroupIterator","parquet","rowGroup","convertRowGroupToTableBatch","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":"AAIA,SAAQA,gBAAgB,QAAO,0BAA0B;AAEzD,SAAQC,aAAa,QAAO,uCAAuC;AAGnE,SAAQC,oBAAoB,QAAO,sCAAsC;AACzE,SAAQC,kBAAkB,QAAO,8BAA8B;AAE/D,SAAQC,iBAAiB,QAAO,4BAA4B;AAE5D,OAAO,eAAeC,qBAAqBA,CACzCC,WAAwB,EACxBC,OAA8B,EACN;EACxB,MAAMC,IAAI,GAAG,IAAIC,IAAI,CAAC,CAACH,WAAW,CAAC,CAAC;EACpC,WAAW,MAAMI,KAAK,IAAIC,iCAAiC,CAACH,IAAI,EAAED,OAAO,CAAC,EAAE;IAC1E,OAAO;MACLK,KAAK,EAAE,gBAAgB;MACvBC,MAAM,EAAEH,KAAK,CAACG,MAAM;MACpBC,IAAI,EAAEJ,KAAK,CAACI;IACd,CAAC;EACH;EACA,MAAM,IAAIC,KAAK,CAAC,aAAa,CAAC;AAChC;AAEA,OAAO,gBAAgBJ,iCAAiCA,CACtDH,IAAU,EACVD,OAA8B,EACK;EACnC,MAAMS,IAAI,GAAGhB,gBAAgB,CAACQ,IAAI,CAAC;EACnC,MAAMS,MAAM,GAAG,IAAIhB,aAAa,CAACe,IAAI,CAAC;EACtC,MAAME,aAAa,GAAG,MAAMD,MAAM,CAACE,SAAS,CAAC,CAAC;EAC9C,MAAMC,eAAe,GAAG,MAAMH,MAAM,CAACI,eAAe,CAAC,CAAC;EACtD,MAAMR,MAAM,GAAGX,oBAAoB,CAACgB,aAAa,EAAEE,eAAe,CAAC;EACnEhB,iBAAiB,CAACS,MAAM,CAAC;EACzB,MAAMS,SAAS,GAAGL,MAAM,CAACM,gBAAgB,CAAChB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEiB,OAAO,CAAC;EAC3D,WAAW,MAAMC,QAAQ,IAAIH,SAAS,EAAE;IACtC,MAAMI,2BAA2B,CAACR,aAAa,EAAEO,QAAQ,EAAEZ,MAAM,CAAC;EACpE;AACF;AAEA,SAASa,2BAA2BA,CAClCR,aAA4B,EAC5BO,QAAyB,EACzBZ,MAAc,EACM;EAEpB,MAAMC,IAAI,GAAGX,kBAAkB,CAACe,aAAa,EAAEO,QAAQ,CAAC;EACxD,OAAO;IACLb,KAAK,EAAE,gBAAgB;IACvBe,SAAS,EAAE,MAAM;IACjBd,MAAM;IACNC,IAAI;IACJc,MAAM,EAAEH,QAAQ,CAACI;EACnB,CAAC;AACH"}
|