@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,36 @@
|
|
|
1
|
+
const VERSION = typeof "4.0.0-alpha.6" !== 'undefined' ? "4.0.0-alpha.6" : 'latest';
|
|
2
|
+
const DEFAULT_PARQUET_LOADER_OPTIONS = {
|
|
3
|
+
parquet: {
|
|
4
|
+
type: 'object-row-table',
|
|
5
|
+
url: undefined,
|
|
6
|
+
columnList: [],
|
|
7
|
+
geoparquet: true
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
export const ParquetLoader = {
|
|
11
|
+
name: 'Apache Parquet',
|
|
12
|
+
id: 'parquet',
|
|
13
|
+
module: 'parquet',
|
|
14
|
+
version: VERSION,
|
|
15
|
+
worker: true,
|
|
16
|
+
category: 'table',
|
|
17
|
+
extensions: ['parquet'],
|
|
18
|
+
mimeTypes: ['application/octet-stream'],
|
|
19
|
+
binary: true,
|
|
20
|
+
tests: ['PAR1', 'PARE'],
|
|
21
|
+
options: DEFAULT_PARQUET_LOADER_OPTIONS
|
|
22
|
+
};
|
|
23
|
+
export const ParqueColumnnartLoader = {
|
|
24
|
+
name: 'Apache Parquet',
|
|
25
|
+
id: 'parquet',
|
|
26
|
+
module: 'parquet',
|
|
27
|
+
version: VERSION,
|
|
28
|
+
worker: true,
|
|
29
|
+
category: 'table',
|
|
30
|
+
extensions: ['parquet'],
|
|
31
|
+
mimeTypes: ['application/octet-stream'],
|
|
32
|
+
binary: true,
|
|
33
|
+
tests: ['PAR1', 'PARE'],
|
|
34
|
+
options: DEFAULT_PARQUET_LOADER_OPTIONS
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=parquet-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parquet-loader.js","names":["VERSION","DEFAULT_PARQUET_LOADER_OPTIONS","parquet","type","url","undefined","columnList","geoparquet","ParquetLoader","name","id","module","version","worker","category","extensions","mimeTypes","binary","tests","options","ParqueColumnnartLoader"],"sources":["../../src/parquet-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\nimport type {Loader, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {\n ObjectRowTable,\n ObjectRowTableBatch,\n ColumnarTable,\n ColumnarTableBatch\n} from '@loaders.gl/schema';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type ParquetLoaderOptions = LoaderOptions & {\n parquet?: {\n type?: 'object-row-table';\n url?: string;\n columnList?: string[] | string[][];\n geoparquet?: boolean;\n };\n};\n\nconst DEFAULT_PARQUET_LOADER_OPTIONS: ParquetLoaderOptions = {\n parquet: {\n type: 'object-row-table',\n url: undefined,\n columnList: [],\n geoparquet: true\n }\n};\n\n/** ParquetJS table loader */\nexport const ParquetLoader: Loader<ObjectRowTable, ObjectRowTableBatch, ParquetLoaderOptions> = {\n name: 'Apache Parquet',\n id: 'parquet',\n module: 'parquet',\n version: VERSION,\n worker: true,\n category: 'table',\n extensions: ['parquet'],\n mimeTypes: ['application/octet-stream'],\n binary: true,\n tests: ['PAR1', 'PARE'],\n options: DEFAULT_PARQUET_LOADER_OPTIONS\n};\n\nexport const ParqueColumnnartLoader: Loader<\n ColumnarTable,\n ColumnarTableBatch,\n ParquetLoaderOptions\n> = {\n name: 'Apache Parquet',\n id: 'parquet',\n module: 'parquet',\n version: VERSION,\n worker: true,\n category: 'table',\n extensions: ['parquet'],\n mimeTypes: ['application/octet-stream'],\n binary: true,\n tests: ['PAR1', 'PARE'],\n options: DEFAULT_PARQUET_LOADER_OPTIONS\n};\n"],"mappings":"AAWA,MAAMA,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;AAW3E,MAAMC,8BAAoD,GAAG;EAC3DC,OAAO,EAAE;IACPC,IAAI,EAAE,kBAAkB;IACxBC,GAAG,EAAEC,SAAS;IACdC,UAAU,EAAE,EAAE;IACdC,UAAU,EAAE;EACd;AACF,CAAC;AAGD,OAAO,MAAMC,aAAgF,GAAG;EAC9FC,IAAI,EAAE,gBAAgB;EACtBC,EAAE,EAAE,SAAS;EACbC,MAAM,EAAE,SAAS;EACjBC,OAAO,EAAEZ,OAAO;EAChBa,MAAM,EAAE,IAAI;EACZC,QAAQ,EAAE,OAAO;EACjBC,UAAU,EAAE,CAAC,SAAS,CAAC;EACvBC,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,MAAM,EAAE,IAAI;EACZC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;EACvBC,OAAO,EAAElB;AACX,CAAC;AAED,OAAO,MAAMmB,sBAIZ,GAAG;EACFX,IAAI,EAAE,gBAAgB;EACtBC,EAAE,EAAE,SAAS;EACbC,MAAM,EAAE,SAAS;EACjBC,OAAO,EAAEZ,OAAO;EAChBa,MAAM,EAAE,IAAI;EACZC,QAAQ,EAAE,OAAO;EACjBC,UAAU,EAAE,CAAC,SAAS,CAAC;EACvBC,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,MAAM,EAAE,IAAI;EACZC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;EACvBC,OAAO,EAAElB;AACX,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
const VERSION = typeof "4.0.0-alpha.6" !== 'undefined' ? "4.0.0-alpha.6" : 'latest';
|
|
2
|
+
const DEFAULT_PARQUET_LOADER_OPTIONS = {
|
|
3
|
+
parquet: {
|
|
4
|
+
type: 'arrow-table',
|
|
5
|
+
wasmUrl: 'https://unpkg.com/parquet-wasm@0.3.1/esm2/arrow1_bg.wasm'
|
|
6
|
+
}
|
|
7
|
+
};
|
|
8
|
+
export const ParquetWasmLoader = {
|
|
9
|
+
name: 'Apache Parquet',
|
|
10
|
+
id: 'parquet-wasm',
|
|
11
|
+
module: 'parquet',
|
|
12
|
+
version: VERSION,
|
|
13
|
+
worker: false,
|
|
14
|
+
category: 'table',
|
|
15
|
+
extensions: ['parquet'],
|
|
16
|
+
mimeTypes: ['application/octet-stream'],
|
|
17
|
+
binary: true,
|
|
18
|
+
tests: ['PAR1', 'PARE'],
|
|
19
|
+
options: DEFAULT_PARQUET_LOADER_OPTIONS
|
|
20
|
+
};
|
|
21
|
+
export const _typecheckParquetLoader = ParquetWasmLoader;
|
|
22
|
+
//# sourceMappingURL=parquet-wasm-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parquet-wasm-loader.js","names":["VERSION","DEFAULT_PARQUET_LOADER_OPTIONS","parquet","type","wasmUrl","ParquetWasmLoader","name","id","module","version","worker","category","extensions","mimeTypes","binary","tests","options","_typecheckParquetLoader"],"sources":["../../src/parquet-wasm-loader.ts"],"sourcesContent":["import type {Loader, LoaderOptions} from '@loaders.gl/loader-utils';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type ParquetLoaderOptions = LoaderOptions & {\n parquet?: {\n type?: 'arrow-table';\n wasmUrl?: string;\n };\n};\n\nconst DEFAULT_PARQUET_LOADER_OPTIONS: ParquetLoaderOptions = {\n parquet: {\n type: 'arrow-table',\n wasmUrl: 'https://unpkg.com/parquet-wasm@0.3.1/esm2/arrow1_bg.wasm'\n }\n};\n\n/** ParquetJS table loader */\nexport const ParquetWasmLoader = {\n name: 'Apache Parquet',\n id: 'parquet-wasm',\n module: 'parquet',\n version: VERSION,\n worker: false,\n category: 'table',\n extensions: ['parquet'],\n mimeTypes: ['application/octet-stream'],\n binary: true,\n tests: ['PAR1', 'PARE'],\n options: DEFAULT_PARQUET_LOADER_OPTIONS\n};\n\nexport const _typecheckParquetLoader: Loader = ParquetWasmLoader;\n"],"mappings":"AAIA,MAAMA,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;AAS3E,MAAMC,8BAAoD,GAAG;EAC3DC,OAAO,EAAE;IACPC,IAAI,EAAE,aAAa;IACnBC,OAAO,EAAE;EACX;AACF,CAAC;AAGD,OAAO,MAAMC,iBAAiB,GAAG;EAC/BC,IAAI,EAAE,gBAAgB;EACtBC,EAAE,EAAE,cAAc;EAClBC,MAAM,EAAE,SAAS;EACjBC,OAAO,EAAET,OAAO;EAChBU,MAAM,EAAE,KAAK;EACbC,QAAQ,EAAE,OAAO;EACjBC,UAAU,EAAE,CAAC,SAAS,CAAC;EACvBC,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,MAAM,EAAE,IAAI;EACZC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;EACvBC,OAAO,EAAEf;AACX,CAAC;AAED,OAAO,MAAMgB,uBAA+B,GAAGZ,iBAAiB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { encode } from './lib/wasm/encode-parquet-wasm';
|
|
2
|
+
const VERSION = typeof "4.0.0-alpha.6" !== 'undefined' ? "4.0.0-alpha.6" : 'latest';
|
|
3
|
+
const DEFAULT_PARQUET_WRITER_OPTIONS = {
|
|
4
|
+
parquet: {
|
|
5
|
+
wasmUrl: 'https://unpkg.com/parquet-wasm@0.3.1/esm2/arrow1_bg.wasm'
|
|
6
|
+
}
|
|
7
|
+
};
|
|
8
|
+
export const ParquetWasmWriter = {
|
|
9
|
+
name: 'Apache Parquet',
|
|
10
|
+
id: 'parquet-wasm',
|
|
11
|
+
module: 'parquet',
|
|
12
|
+
version: VERSION,
|
|
13
|
+
extensions: ['parquet'],
|
|
14
|
+
mimeTypes: ['application/octet-stream'],
|
|
15
|
+
encode,
|
|
16
|
+
binary: true,
|
|
17
|
+
options: DEFAULT_PARQUET_WRITER_OPTIONS
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=parquet-wasm-writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parquet-wasm-writer.js","names":["encode","VERSION","DEFAULT_PARQUET_WRITER_OPTIONS","parquet","wasmUrl","ParquetWasmWriter","name","id","module","version","extensions","mimeTypes","binary","options"],"sources":["../../src/parquet-wasm-writer.ts"],"sourcesContent":["import type {Writer} from '@loaders.gl/loader-utils';\nimport {encode, ParquetWriterOptions} from './lib/wasm/encode-parquet-wasm';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nconst DEFAULT_PARQUET_WRITER_OPTIONS: ParquetWriterOptions = {\n parquet: {\n wasmUrl: 'https://unpkg.com/parquet-wasm@0.3.1/esm2/arrow1_bg.wasm'\n }\n};\n\nexport const ParquetWasmWriter: Writer = {\n name: 'Apache Parquet',\n id: 'parquet-wasm',\n module: 'parquet',\n version: VERSION,\n extensions: ['parquet'],\n mimeTypes: ['application/octet-stream'],\n encode,\n binary: true,\n options: DEFAULT_PARQUET_WRITER_OPTIONS\n};\n"],"mappings":"AACA,SAAQA,MAAM,QAA6B,gCAAgC;AAI3E,MAAMC,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;AAE3E,MAAMC,8BAAoD,GAAG;EAC3DC,OAAO,EAAE;IACPC,OAAO,EAAE;EACX;AACF,CAAC;AAED,OAAO,MAAMC,iBAAyB,GAAG;EACvCC,IAAI,EAAE,gBAAgB;EACtBC,EAAE,EAAE,cAAc;EAClBC,MAAM,EAAE,SAAS;EACjBC,OAAO,EAAER,OAAO;EAChBS,UAAU,EAAE,CAAC,SAAS,CAAC;EACvBC,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCX,MAAM;EACNY,MAAM,EAAE,IAAI;EACZC,OAAO,EAAEX;AACX,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const VERSION = typeof "4.0.0-alpha.6" !== 'undefined' ? "4.0.0-alpha.6" : 'latest';
|
|
2
|
+
const DEFAULT_PARQUET_LOADER_OPTIONS = {};
|
|
3
|
+
export const ParquetWriter = {
|
|
4
|
+
name: 'Apache Parquet',
|
|
5
|
+
id: 'parquet',
|
|
6
|
+
module: 'parquet',
|
|
7
|
+
version: VERSION,
|
|
8
|
+
extensions: ['parquet'],
|
|
9
|
+
mimeTypes: ['application/octet-stream'],
|
|
10
|
+
encodeSync,
|
|
11
|
+
binary: true,
|
|
12
|
+
options: DEFAULT_PARQUET_LOADER_OPTIONS
|
|
13
|
+
};
|
|
14
|
+
function encodeSync(data, options) {
|
|
15
|
+
return new ArrayBuffer(0);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=parquet-writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parquet-writer.js","names":["VERSION","DEFAULT_PARQUET_LOADER_OPTIONS","ParquetWriter","name","id","module","version","extensions","mimeTypes","encodeSync","binary","options","data","ArrayBuffer"],"sources":["../../src/parquet-writer.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Writer} from '@loaders.gl/loader-utils';\nimport {Table, TableBatch} from '@loaders.gl/schema';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type ParquetWriterOptions = {};\n\nconst DEFAULT_PARQUET_LOADER_OPTIONS = {};\n\nexport const ParquetWriter: Writer<Table, TableBatch, ParquetWriterOptions> = {\n name: 'Apache Parquet',\n id: 'parquet',\n module: 'parquet',\n version: VERSION,\n extensions: ['parquet'],\n mimeTypes: ['application/octet-stream'],\n encodeSync,\n binary: true,\n options: DEFAULT_PARQUET_LOADER_OPTIONS\n};\n\nfunction encodeSync(data, options?: ParquetWriterOptions) {\n return new ArrayBuffer(0);\n}\n"],"mappings":"AAOA,MAAMA,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;AAI3E,MAAMC,8BAA8B,GAAG,CAAC,CAAC;AAEzC,OAAO,MAAMC,aAA8D,GAAG;EAC5EC,IAAI,EAAE,gBAAgB;EACtBC,EAAE,EAAE,SAAS;EACbC,MAAM,EAAE,SAAS;EACjBC,OAAO,EAAEN,OAAO;EAChBO,UAAU,EAAE,CAAC,SAAS,CAAC;EACvBC,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,UAAU;EACVC,MAAM,EAAE,IAAI;EACZC,OAAO,EAAEV;AACX,CAAC;AAED,SAASQ,UAAUA,CAACG,IAAI,EAAED,OAA8B,EAAE;EACxD,OAAO,IAAIE,WAAW,CAAC,CAAC,CAAC;AAC3B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
The code in the parquetjs is forked from https://github.com/kbajalc/parquets under MIT license
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2017 ironSource Ltd.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
6
|
+
this software and associated documentation files (the "Software"), to deal in the
|
|
7
|
+
Software without restriction, including without limitation the rights to use,
|
|
8
|
+
copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
|
|
9
|
+
Software, and to permit persons to whom the Software is furnished to do so,
|
|
10
|
+
subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
|
16
|
+
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
|
17
|
+
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
18
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
20
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"declare.js","names":[],"sources":["../../../../src/parquetjs/codecs/declare.ts"],"sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\nimport {PrimitiveType} from '../schema/declare';\n\nexport interface CursorBuffer {\n buffer: Buffer;\n offset: number;\n size?: number;\n}\n\nexport interface ParquetCodecOptions {\n bitWidth?: number;\n disableEnvelope?: boolean;\n typeLength?: number;\n}\n\nexport interface ParquetCodecKit {\n encodeValues(type: PrimitiveType, values: any[], opts?: ParquetCodecOptions): Buffer;\n decodeValues(\n type: PrimitiveType,\n cursor: CursorBuffer,\n count: number,\n opts: ParquetCodecOptions\n ): any[];\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { decodeValues as decodeRleValues } from './rle';
|
|
2
|
+
export function decodeValues(type, cursor, count, opts) {
|
|
3
|
+
opts.bitWidth = cursor.buffer.slice(cursor.offset, cursor.offset + 1).readInt8(0);
|
|
4
|
+
cursor.offset += 1;
|
|
5
|
+
return decodeRleValues(type, cursor, count, {
|
|
6
|
+
...opts,
|
|
7
|
+
disableEnvelope: true
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
export function encodeValues(type, cursor, count, opts) {
|
|
11
|
+
throw new Error('Encode dictionary functionality is not supported');
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=dictionary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dictionary.js","names":["decodeValues","decodeRleValues","type","cursor","count","opts","bitWidth","buffer","slice","offset","readInt8","disableEnvelope","encodeValues","Error"],"sources":["../../../../src/parquetjs/codecs/dictionary.ts"],"sourcesContent":["import {decodeValues as decodeRleValues} from './rle';\n\nexport function decodeValues(type, cursor, count, opts) {\n opts.bitWidth = cursor.buffer.slice(cursor.offset, cursor.offset + 1).readInt8(0);\n cursor.offset += 1;\n return decodeRleValues(type, cursor, count, {...opts, disableEnvelope: true});\n}\n\nexport function encodeValues(type, cursor, count, opts) {\n throw new Error('Encode dictionary functionality is not supported');\n}\n"],"mappings":"AAAA,SAAQA,YAAY,IAAIC,eAAe,QAAO,OAAO;AAErD,OAAO,SAASD,YAAYA,CAACE,IAAI,EAAEC,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAE;EACtDA,IAAI,CAACC,QAAQ,GAAGH,MAAM,CAACI,MAAM,CAACC,KAAK,CAACL,MAAM,CAACM,MAAM,EAAEN,MAAM,CAACM,MAAM,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,CAAC;EACjFP,MAAM,CAACM,MAAM,IAAI,CAAC;EAClB,OAAOR,eAAe,CAACC,IAAI,EAAEC,MAAM,EAAEC,KAAK,EAAE;IAAC,GAAGC,IAAI;IAAEM,eAAe,EAAE;EAAI,CAAC,CAAC;AAC/E;AAEA,OAAO,SAASC,YAAYA,CAACV,IAAI,EAAEC,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAE;EACtD,MAAM,IAAIQ,KAAK,CAAC,kDAAkD,CAAC;AACrE"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as PLAIN from './plain';
|
|
2
|
+
import * as RLE from './rle';
|
|
3
|
+
import * as DICTIONARY from './dictionary';
|
|
4
|
+
export * from './declare';
|
|
5
|
+
export const PARQUET_CODECS = {
|
|
6
|
+
PLAIN: {
|
|
7
|
+
encodeValues: PLAIN.encodeValues,
|
|
8
|
+
decodeValues: PLAIN.decodeValues
|
|
9
|
+
},
|
|
10
|
+
RLE: {
|
|
11
|
+
encodeValues: RLE.encodeValues,
|
|
12
|
+
decodeValues: RLE.decodeValues
|
|
13
|
+
},
|
|
14
|
+
PLAIN_DICTIONARY: {
|
|
15
|
+
encodeValues: DICTIONARY.encodeValues,
|
|
16
|
+
decodeValues: DICTIONARY.decodeValues
|
|
17
|
+
},
|
|
18
|
+
RLE_DICTIONARY: {
|
|
19
|
+
encodeValues: DICTIONARY.encodeValues,
|
|
20
|
+
decodeValues: DICTIONARY.decodeValues
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["PLAIN","RLE","DICTIONARY","PARQUET_CODECS","encodeValues","decodeValues","PLAIN_DICTIONARY","RLE_DICTIONARY"],"sources":["../../../../src/parquetjs/codecs/index.ts"],"sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\nimport type {ParquetCodec} from '../schema/declare';\nimport type {ParquetCodecKit} from './declare';\nimport * as PLAIN from './plain';\nimport * as RLE from './rle';\nimport * as DICTIONARY from './dictionary';\n\nexport * from './declare';\n\nexport const PARQUET_CODECS: Record<ParquetCodec, ParquetCodecKit> = {\n PLAIN: {\n encodeValues: PLAIN.encodeValues,\n decodeValues: PLAIN.decodeValues\n },\n RLE: {\n encodeValues: RLE.encodeValues,\n decodeValues: RLE.decodeValues\n },\n // Using the PLAIN_DICTIONARY enum value is deprecated in the Parquet 2.0 specification.\n PLAIN_DICTIONARY: {\n // @ts-ignore\n encodeValues: DICTIONARY.encodeValues,\n decodeValues: DICTIONARY.decodeValues\n },\n // Prefer using RLE_DICTIONARY in a data page and PLAIN in a dictionary page for Parquet 2.0+ files.\n RLE_DICTIONARY: {\n // @ts-ignore\n encodeValues: DICTIONARY.encodeValues,\n decodeValues: DICTIONARY.decodeValues\n }\n};\n"],"mappings":"AAGA,OAAO,KAAKA,KAAK,MAAM,SAAS;AAChC,OAAO,KAAKC,GAAG,MAAM,OAAO;AAC5B,OAAO,KAAKC,UAAU,MAAM,cAAc;AAE1C,cAAc,WAAW;AAEzB,OAAO,MAAMC,cAAqD,GAAG;EACnEH,KAAK,EAAE;IACLI,YAAY,EAAEJ,KAAK,CAACI,YAAY;IAChCC,YAAY,EAAEL,KAAK,CAACK;EACtB,CAAC;EACDJ,GAAG,EAAE;IACHG,YAAY,EAAEH,GAAG,CAACG,YAAY;IAC9BC,YAAY,EAAEJ,GAAG,CAACI;EACpB,CAAC;EAEDC,gBAAgB,EAAE;IAEhBF,YAAY,EAAEF,UAAU,CAACE,YAAY;IACrCC,YAAY,EAAEH,UAAU,CAACG;EAC3B,CAAC;EAEDE,cAAc,EAAE;IAEdH,YAAY,EAAEF,UAAU,CAACE,YAAY;IACrCC,YAAY,EAAEH,UAAU,CAACG;EAC3B;AACF,CAAC"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import INT53 from 'int53';
|
|
2
|
+
export function encodeValues(type, values, opts) {
|
|
3
|
+
switch (type) {
|
|
4
|
+
case 'BOOLEAN':
|
|
5
|
+
return encodeValues_BOOLEAN(values);
|
|
6
|
+
case 'INT32':
|
|
7
|
+
return encodeValues_INT32(values);
|
|
8
|
+
case 'INT64':
|
|
9
|
+
return encodeValues_INT64(values);
|
|
10
|
+
case 'INT96':
|
|
11
|
+
return encodeValues_INT96(values);
|
|
12
|
+
case 'FLOAT':
|
|
13
|
+
return encodeValues_FLOAT(values);
|
|
14
|
+
case 'DOUBLE':
|
|
15
|
+
return encodeValues_DOUBLE(values);
|
|
16
|
+
case 'BYTE_ARRAY':
|
|
17
|
+
return encodeValues_BYTE_ARRAY(values);
|
|
18
|
+
case 'FIXED_LEN_BYTE_ARRAY':
|
|
19
|
+
return encodeValues_FIXED_LEN_BYTE_ARRAY(values, opts);
|
|
20
|
+
default:
|
|
21
|
+
throw new Error("unsupported type: ".concat(type));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export function decodeValues(type, cursor, count, opts) {
|
|
25
|
+
switch (type) {
|
|
26
|
+
case 'BOOLEAN':
|
|
27
|
+
return decodeValues_BOOLEAN(cursor, count);
|
|
28
|
+
case 'INT32':
|
|
29
|
+
return decodeValues_INT32(cursor, count);
|
|
30
|
+
case 'INT64':
|
|
31
|
+
return decodeValues_INT64(cursor, count);
|
|
32
|
+
case 'INT96':
|
|
33
|
+
return decodeValues_INT96(cursor, count);
|
|
34
|
+
case 'FLOAT':
|
|
35
|
+
return decodeValues_FLOAT(cursor, count);
|
|
36
|
+
case 'DOUBLE':
|
|
37
|
+
return decodeValues_DOUBLE(cursor, count);
|
|
38
|
+
case 'BYTE_ARRAY':
|
|
39
|
+
return decodeValues_BYTE_ARRAY(cursor, count);
|
|
40
|
+
case 'FIXED_LEN_BYTE_ARRAY':
|
|
41
|
+
return decodeValues_FIXED_LEN_BYTE_ARRAY(cursor, count, opts);
|
|
42
|
+
default:
|
|
43
|
+
throw new Error("unsupported type: ".concat(type));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function encodeValues_BOOLEAN(values) {
|
|
47
|
+
const buf = Buffer.alloc(Math.ceil(values.length / 8));
|
|
48
|
+
buf.fill(0);
|
|
49
|
+
for (let i = 0; i < values.length; i++) {
|
|
50
|
+
if (values[i]) {
|
|
51
|
+
buf[Math.floor(i / 8)] |= 1 << i % 8;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return buf;
|
|
55
|
+
}
|
|
56
|
+
function decodeValues_BOOLEAN(cursor, count) {
|
|
57
|
+
const values = [];
|
|
58
|
+
for (let i = 0; i < count; i++) {
|
|
59
|
+
const b = cursor.buffer[cursor.offset + Math.floor(i / 8)];
|
|
60
|
+
values.push((b & 1 << i % 8) > 0);
|
|
61
|
+
}
|
|
62
|
+
cursor.offset += Math.ceil(count / 8);
|
|
63
|
+
return values;
|
|
64
|
+
}
|
|
65
|
+
function encodeValues_INT32(values) {
|
|
66
|
+
const buf = Buffer.alloc(4 * values.length);
|
|
67
|
+
for (let i = 0; i < values.length; i++) {
|
|
68
|
+
buf.writeInt32LE(values[i], i * 4);
|
|
69
|
+
}
|
|
70
|
+
return buf;
|
|
71
|
+
}
|
|
72
|
+
function decodeValues_INT32(cursor, count) {
|
|
73
|
+
const values = [];
|
|
74
|
+
for (let i = 0; i < count; i++) {
|
|
75
|
+
values.push(cursor.buffer.readInt32LE(cursor.offset));
|
|
76
|
+
cursor.offset += 4;
|
|
77
|
+
}
|
|
78
|
+
return values;
|
|
79
|
+
}
|
|
80
|
+
function encodeValues_INT64(values) {
|
|
81
|
+
const buf = Buffer.alloc(8 * values.length);
|
|
82
|
+
for (let i = 0; i < values.length; i++) {
|
|
83
|
+
INT53.writeInt64LE(values[i], buf, i * 8);
|
|
84
|
+
}
|
|
85
|
+
return buf;
|
|
86
|
+
}
|
|
87
|
+
function decodeValues_INT64(cursor, count) {
|
|
88
|
+
const values = [];
|
|
89
|
+
for (let i = 0; i < count; i++) {
|
|
90
|
+
values.push(INT53.readInt64LE(cursor.buffer, cursor.offset));
|
|
91
|
+
cursor.offset += 8;
|
|
92
|
+
}
|
|
93
|
+
return values;
|
|
94
|
+
}
|
|
95
|
+
function encodeValues_INT96(values) {
|
|
96
|
+
const buf = Buffer.alloc(12 * values.length);
|
|
97
|
+
for (let i = 0; i < values.length; i++) {
|
|
98
|
+
if (values[i] >= 0) {
|
|
99
|
+
INT53.writeInt64LE(values[i], buf, i * 12);
|
|
100
|
+
buf.writeUInt32LE(0, i * 12 + 8);
|
|
101
|
+
} else {
|
|
102
|
+
INT53.writeInt64LE(~-values[i] + 1, buf, i * 12);
|
|
103
|
+
buf.writeUInt32LE(0xffffffff, i * 12 + 8);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return buf;
|
|
107
|
+
}
|
|
108
|
+
function decodeValues_INT96(cursor, count) {
|
|
109
|
+
const values = [];
|
|
110
|
+
for (let i = 0; i < count; i++) {
|
|
111
|
+
const low = INT53.readInt64LE(cursor.buffer, cursor.offset);
|
|
112
|
+
const high = cursor.buffer.readUInt32LE(cursor.offset + 8);
|
|
113
|
+
if (high === 0xffffffff) {
|
|
114
|
+
values.push(~-low + 1);
|
|
115
|
+
} else {
|
|
116
|
+
values.push(low);
|
|
117
|
+
}
|
|
118
|
+
cursor.offset += 12;
|
|
119
|
+
}
|
|
120
|
+
return values;
|
|
121
|
+
}
|
|
122
|
+
function encodeValues_FLOAT(values) {
|
|
123
|
+
const buf = Buffer.alloc(4 * values.length);
|
|
124
|
+
for (let i = 0; i < values.length; i++) {
|
|
125
|
+
buf.writeFloatLE(values[i], i * 4);
|
|
126
|
+
}
|
|
127
|
+
return buf;
|
|
128
|
+
}
|
|
129
|
+
function decodeValues_FLOAT(cursor, count) {
|
|
130
|
+
const values = [];
|
|
131
|
+
for (let i = 0; i < count; i++) {
|
|
132
|
+
values.push(cursor.buffer.readFloatLE(cursor.offset));
|
|
133
|
+
cursor.offset += 4;
|
|
134
|
+
}
|
|
135
|
+
return values;
|
|
136
|
+
}
|
|
137
|
+
function encodeValues_DOUBLE(values) {
|
|
138
|
+
const buf = Buffer.alloc(8 * values.length);
|
|
139
|
+
for (let i = 0; i < values.length; i++) {
|
|
140
|
+
buf.writeDoubleLE(values[i], i * 8);
|
|
141
|
+
}
|
|
142
|
+
return buf;
|
|
143
|
+
}
|
|
144
|
+
function decodeValues_DOUBLE(cursor, count) {
|
|
145
|
+
const values = [];
|
|
146
|
+
for (let i = 0; i < count; i++) {
|
|
147
|
+
values.push(cursor.buffer.readDoubleLE(cursor.offset));
|
|
148
|
+
cursor.offset += 8;
|
|
149
|
+
}
|
|
150
|
+
return values;
|
|
151
|
+
}
|
|
152
|
+
function encodeValues_BYTE_ARRAY(values) {
|
|
153
|
+
let buf_len = 0;
|
|
154
|
+
for (let i = 0; i < values.length; i++) {
|
|
155
|
+
values[i] = Buffer.from(values[i]);
|
|
156
|
+
buf_len += 4 + values[i].length;
|
|
157
|
+
}
|
|
158
|
+
const buf = Buffer.alloc(buf_len);
|
|
159
|
+
let buf_pos = 0;
|
|
160
|
+
for (let i = 0; i < values.length; i++) {
|
|
161
|
+
buf.writeUInt32LE(values[i].length, buf_pos);
|
|
162
|
+
values[i].copy(buf, buf_pos + 4);
|
|
163
|
+
buf_pos += 4 + values[i].length;
|
|
164
|
+
}
|
|
165
|
+
return buf;
|
|
166
|
+
}
|
|
167
|
+
function decodeValues_BYTE_ARRAY(cursor, count) {
|
|
168
|
+
const values = [];
|
|
169
|
+
for (let i = 0; i < count; i++) {
|
|
170
|
+
const len = cursor.buffer.readUInt32LE(cursor.offset);
|
|
171
|
+
cursor.offset += 4;
|
|
172
|
+
values.push(cursor.buffer.slice(cursor.offset, cursor.offset + len));
|
|
173
|
+
cursor.offset += len;
|
|
174
|
+
}
|
|
175
|
+
return values;
|
|
176
|
+
}
|
|
177
|
+
function encodeValues_FIXED_LEN_BYTE_ARRAY(values, opts) {
|
|
178
|
+
if (!opts.typeLength) {
|
|
179
|
+
throw new Error('missing option: typeLength (required for FIXED_LEN_BYTE_ARRAY)');
|
|
180
|
+
}
|
|
181
|
+
for (let i = 0; i < values.length; i++) {
|
|
182
|
+
values[i] = Buffer.from(values[i]);
|
|
183
|
+
if (values[i].length !== opts.typeLength) {
|
|
184
|
+
throw new Error("invalid value for FIXED_LEN_BYTE_ARRAY: ".concat(values[i]));
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return Buffer.concat(values);
|
|
188
|
+
}
|
|
189
|
+
function decodeValues_FIXED_LEN_BYTE_ARRAY(cursor, count, opts) {
|
|
190
|
+
const values = [];
|
|
191
|
+
if (!opts.typeLength) {
|
|
192
|
+
throw new Error('missing option: typeLength (required for FIXED_LEN_BYTE_ARRAY)');
|
|
193
|
+
}
|
|
194
|
+
for (let i = 0; i < count; i++) {
|
|
195
|
+
values.push(cursor.buffer.slice(cursor.offset, cursor.offset + opts.typeLength));
|
|
196
|
+
cursor.offset += opts.typeLength;
|
|
197
|
+
}
|
|
198
|
+
return values;
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=plain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plain.js","names":["INT53","encodeValues","type","values","opts","encodeValues_BOOLEAN","encodeValues_INT32","encodeValues_INT64","encodeValues_INT96","encodeValues_FLOAT","encodeValues_DOUBLE","encodeValues_BYTE_ARRAY","encodeValues_FIXED_LEN_BYTE_ARRAY","Error","concat","decodeValues","cursor","count","decodeValues_BOOLEAN","decodeValues_INT32","decodeValues_INT64","decodeValues_INT96","decodeValues_FLOAT","decodeValues_DOUBLE","decodeValues_BYTE_ARRAY","decodeValues_FIXED_LEN_BYTE_ARRAY","buf","Buffer","alloc","Math","ceil","length","fill","i","floor","b","buffer","offset","push","writeInt32LE","readInt32LE","writeInt64LE","readInt64LE","writeUInt32LE","low","high","readUInt32LE","writeFloatLE","readFloatLE","writeDoubleLE","readDoubleLE","buf_len","from","buf_pos","copy","len","slice","typeLength"],"sources":["../../../../src/parquetjs/codecs/plain.ts"],"sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\n/* eslint-disable camelcase */\nimport type {PrimitiveType} from '../schema/declare';\nimport type {CursorBuffer, ParquetCodecOptions} from './declare';\nimport INT53 from 'int53';\n\nexport function encodeValues(\n type: PrimitiveType,\n values: any[],\n opts: ParquetCodecOptions\n): Buffer {\n switch (type) {\n case 'BOOLEAN':\n return encodeValues_BOOLEAN(values);\n case 'INT32':\n return encodeValues_INT32(values);\n case 'INT64':\n return encodeValues_INT64(values);\n case 'INT96':\n return encodeValues_INT96(values);\n case 'FLOAT':\n return encodeValues_FLOAT(values);\n case 'DOUBLE':\n return encodeValues_DOUBLE(values);\n case 'BYTE_ARRAY':\n return encodeValues_BYTE_ARRAY(values);\n case 'FIXED_LEN_BYTE_ARRAY':\n return encodeValues_FIXED_LEN_BYTE_ARRAY(values, opts);\n default:\n throw new Error(`unsupported type: ${type}`);\n }\n}\n\nexport function decodeValues(\n type: PrimitiveType,\n cursor: CursorBuffer,\n count: number,\n opts: ParquetCodecOptions\n): any[] {\n switch (type) {\n case 'BOOLEAN':\n return decodeValues_BOOLEAN(cursor, count);\n case 'INT32':\n return decodeValues_INT32(cursor, count);\n case 'INT64':\n return decodeValues_INT64(cursor, count);\n case 'INT96':\n return decodeValues_INT96(cursor, count);\n case 'FLOAT':\n return decodeValues_FLOAT(cursor, count);\n case 'DOUBLE':\n return decodeValues_DOUBLE(cursor, count);\n case 'BYTE_ARRAY':\n return decodeValues_BYTE_ARRAY(cursor, count);\n case 'FIXED_LEN_BYTE_ARRAY':\n return decodeValues_FIXED_LEN_BYTE_ARRAY(cursor, count, opts);\n default:\n throw new Error(`unsupported type: ${type}`);\n }\n}\n\nfunction encodeValues_BOOLEAN(values: boolean[]): Buffer {\n const buf = Buffer.alloc(Math.ceil(values.length / 8));\n buf.fill(0);\n for (let i = 0; i < values.length; i++) {\n if (values[i]) {\n buf[Math.floor(i / 8)] |= 1 << i % 8;\n }\n }\n return buf;\n}\n\nfunction decodeValues_BOOLEAN(cursor: CursorBuffer, count: number): boolean[] {\n const values: boolean[] = [];\n for (let i = 0; i < count; i++) {\n const b = cursor.buffer[cursor.offset + Math.floor(i / 8)];\n values.push((b & (1 << i % 8)) > 0);\n }\n cursor.offset += Math.ceil(count / 8);\n return values;\n}\n\nfunction encodeValues_INT32(values: number[]): Buffer {\n const buf = Buffer.alloc(4 * values.length);\n for (let i = 0; i < values.length; i++) {\n buf.writeInt32LE(values[i], i * 4);\n }\n return buf;\n}\n\nfunction decodeValues_INT32(cursor: CursorBuffer, count: number): number[] {\n const values: number[] = [];\n for (let i = 0; i < count; i++) {\n values.push(cursor.buffer.readInt32LE(cursor.offset));\n cursor.offset += 4;\n }\n return values;\n}\n\nfunction encodeValues_INT64(values: number[]): Buffer {\n const buf = Buffer.alloc(8 * values.length);\n for (let i = 0; i < values.length; i++) {\n INT53.writeInt64LE(values[i], buf, i * 8);\n }\n return buf;\n}\n\nfunction decodeValues_INT64(cursor: CursorBuffer, count: number): number[] {\n const values: number[] = [];\n for (let i = 0; i < count; i++) {\n values.push(INT53.readInt64LE(cursor.buffer, cursor.offset));\n cursor.offset += 8;\n }\n return values;\n}\n\nfunction encodeValues_INT96(values: number[]): Buffer {\n const buf = Buffer.alloc(12 * values.length);\n for (let i = 0; i < values.length; i++) {\n if (values[i] >= 0) {\n INT53.writeInt64LE(values[i], buf, i * 12);\n buf.writeUInt32LE(0, i * 12 + 8); // truncate to 64 actual precision\n } else {\n INT53.writeInt64LE(~-values[i] + 1, buf, i * 12);\n buf.writeUInt32LE(0xffffffff, i * 12 + 8); // truncate to 64 actual precision\n }\n }\n return buf;\n}\n\nfunction decodeValues_INT96(cursor: CursorBuffer, count: number): number[] {\n const values: number[] = [];\n for (let i = 0; i < count; i++) {\n const low = INT53.readInt64LE(cursor.buffer, cursor.offset);\n const high = cursor.buffer.readUInt32LE(cursor.offset + 8);\n if (high === 0xffffffff) {\n values.push(~-low + 1); // truncate to 64 actual precision\n } else {\n values.push(low); // truncate to 64 actual precision\n }\n cursor.offset += 12;\n }\n return values;\n}\n\nfunction encodeValues_FLOAT(values: number[]): Buffer {\n const buf = Buffer.alloc(4 * values.length);\n for (let i = 0; i < values.length; i++) {\n buf.writeFloatLE(values[i], i * 4);\n }\n return buf;\n}\n\nfunction decodeValues_FLOAT(cursor: CursorBuffer, count: number): number[] {\n const values: number[] = [];\n for (let i = 0; i < count; i++) {\n values.push(cursor.buffer.readFloatLE(cursor.offset));\n cursor.offset += 4;\n }\n return values;\n}\n\nfunction encodeValues_DOUBLE(values: number[]): Buffer {\n const buf = Buffer.alloc(8 * values.length);\n for (let i = 0; i < values.length; i++) {\n buf.writeDoubleLE(values[i], i * 8);\n }\n return buf;\n}\n\nfunction decodeValues_DOUBLE(cursor: CursorBuffer, count: number): number[] {\n const values: number[] = [];\n for (let i = 0; i < count; i++) {\n values.push(cursor.buffer.readDoubleLE(cursor.offset));\n cursor.offset += 8;\n }\n return values;\n}\n\nfunction encodeValues_BYTE_ARRAY(values: Buffer[]): Buffer {\n // tslint:disable-next-line:variable-name\n let buf_len = 0;\n for (let i = 0; i < values.length; i++) {\n values[i] = Buffer.from(values[i]);\n buf_len += 4 + values[i].length;\n }\n const buf = Buffer.alloc(buf_len);\n // tslint:disable-next-line:variable-name\n let buf_pos = 0;\n for (let i = 0; i < values.length; i++) {\n buf.writeUInt32LE(values[i].length, buf_pos);\n values[i].copy(buf, buf_pos + 4);\n buf_pos += 4 + values[i].length;\n }\n return buf;\n}\n\nfunction decodeValues_BYTE_ARRAY(cursor: CursorBuffer, count: number): Buffer[] {\n const values: Buffer[] = [];\n for (let i = 0; i < count; i++) {\n const len = cursor.buffer.readUInt32LE(cursor.offset);\n cursor.offset += 4;\n values.push(cursor.buffer.slice(cursor.offset, cursor.offset + len));\n cursor.offset += len;\n }\n return values;\n}\n\nfunction encodeValues_FIXED_LEN_BYTE_ARRAY(values: Buffer[], opts: ParquetCodecOptions): Buffer {\n if (!opts.typeLength) {\n throw new Error('missing option: typeLength (required for FIXED_LEN_BYTE_ARRAY)');\n }\n for (let i = 0; i < values.length; i++) {\n values[i] = Buffer.from(values[i]);\n if (values[i].length !== opts.typeLength) {\n throw new Error(`invalid value for FIXED_LEN_BYTE_ARRAY: ${values[i]}`);\n }\n }\n return Buffer.concat(values);\n}\n\nfunction decodeValues_FIXED_LEN_BYTE_ARRAY(\n cursor: CursorBuffer,\n count: number,\n opts: ParquetCodecOptions\n): Buffer[] {\n const values: Buffer[] = [];\n if (!opts.typeLength) {\n throw new Error('missing option: typeLength (required for FIXED_LEN_BYTE_ARRAY)');\n }\n for (let i = 0; i < count; i++) {\n values.push(cursor.buffer.slice(cursor.offset, cursor.offset + opts.typeLength));\n cursor.offset += opts.typeLength;\n }\n return values;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import varint from 'varint';
|
|
2
|
+
export function encodeValues(type, values, opts) {
|
|
3
|
+
if (!('bitWidth' in opts)) {
|
|
4
|
+
throw new Error('bitWidth is required');
|
|
5
|
+
}
|
|
6
|
+
switch (type) {
|
|
7
|
+
case 'BOOLEAN':
|
|
8
|
+
case 'INT32':
|
|
9
|
+
case 'INT64':
|
|
10
|
+
values = values.map(x => parseInt(x, 10));
|
|
11
|
+
break;
|
|
12
|
+
default:
|
|
13
|
+
throw new Error("unsupported type: ".concat(type));
|
|
14
|
+
}
|
|
15
|
+
let buf = Buffer.alloc(0);
|
|
16
|
+
let run = [];
|
|
17
|
+
let repeats = 0;
|
|
18
|
+
for (let i = 0; i < values.length; i++) {
|
|
19
|
+
if (repeats === 0 && run.length % 8 === 0 && values[i] === values[i + 1]) {
|
|
20
|
+
if (run.length) {
|
|
21
|
+
buf = Buffer.concat([buf, encodeRunBitpacked(run, opts)]);
|
|
22
|
+
run = [];
|
|
23
|
+
}
|
|
24
|
+
repeats = 1;
|
|
25
|
+
} else if (repeats > 0 && values[i] === values[i - 1]) {
|
|
26
|
+
repeats += 1;
|
|
27
|
+
} else {
|
|
28
|
+
if (repeats) {
|
|
29
|
+
buf = Buffer.concat([buf, encodeRunRepeated(values[i - 1], repeats, opts)]);
|
|
30
|
+
repeats = 0;
|
|
31
|
+
}
|
|
32
|
+
run.push(values[i]);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (repeats) {
|
|
36
|
+
buf = Buffer.concat([buf, encodeRunRepeated(values[values.length - 1], repeats, opts)]);
|
|
37
|
+
} else if (run.length) {
|
|
38
|
+
buf = Buffer.concat([buf, encodeRunBitpacked(run, opts)]);
|
|
39
|
+
}
|
|
40
|
+
if (opts.disableEnvelope) {
|
|
41
|
+
return buf;
|
|
42
|
+
}
|
|
43
|
+
const envelope = Buffer.alloc(buf.length + 4);
|
|
44
|
+
envelope.writeUInt32LE(buf.length, undefined);
|
|
45
|
+
buf.copy(envelope, 4);
|
|
46
|
+
return envelope;
|
|
47
|
+
}
|
|
48
|
+
export function decodeValues(type, cursor, count, opts) {
|
|
49
|
+
if (!('bitWidth' in opts)) {
|
|
50
|
+
throw new Error('bitWidth is required');
|
|
51
|
+
}
|
|
52
|
+
if (!opts.disableEnvelope) {
|
|
53
|
+
cursor.offset += 4;
|
|
54
|
+
}
|
|
55
|
+
let values = [];
|
|
56
|
+
while (values.length < count) {
|
|
57
|
+
const header = varint.decode(cursor.buffer, cursor.offset);
|
|
58
|
+
cursor.offset += varint.encodingLength(header);
|
|
59
|
+
if (header & 1) {
|
|
60
|
+
const count = (header >> 1) * 8;
|
|
61
|
+
values.push(...decodeRunBitpacked(cursor, count, opts));
|
|
62
|
+
} else {
|
|
63
|
+
const count = header >> 1;
|
|
64
|
+
values.push(...decodeRunRepeated(cursor, count, opts));
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
values = values.slice(0, count);
|
|
68
|
+
if (values.length !== count) {
|
|
69
|
+
throw new Error('invalid RLE encoding');
|
|
70
|
+
}
|
|
71
|
+
return values;
|
|
72
|
+
}
|
|
73
|
+
function decodeRunBitpacked(cursor, count, opts) {
|
|
74
|
+
const bitWidth = opts.bitWidth;
|
|
75
|
+
if (count % 8 !== 0) {
|
|
76
|
+
throw new Error('must be a multiple of 8');
|
|
77
|
+
}
|
|
78
|
+
const values = new Array(count).fill(0);
|
|
79
|
+
for (let b = 0; b < bitWidth * count; b++) {
|
|
80
|
+
if (cursor.buffer[cursor.offset + Math.floor(b / 8)] & 1 << b % 8) {
|
|
81
|
+
values[Math.floor(b / bitWidth)] |= 1 << b % bitWidth;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
cursor.offset += bitWidth * (count / 8);
|
|
85
|
+
return values;
|
|
86
|
+
}
|
|
87
|
+
function decodeRunRepeated(cursor, count, opts) {
|
|
88
|
+
const bitWidth = opts.bitWidth;
|
|
89
|
+
let value = 0;
|
|
90
|
+
for (let i = 0; i < Math.ceil(bitWidth / 8); i++) {
|
|
91
|
+
value << 8;
|
|
92
|
+
value += cursor.buffer[cursor.offset];
|
|
93
|
+
cursor.offset += 1;
|
|
94
|
+
}
|
|
95
|
+
return new Array(count).fill(value);
|
|
96
|
+
}
|
|
97
|
+
function encodeRunBitpacked(values, opts) {
|
|
98
|
+
const bitWidth = opts.bitWidth;
|
|
99
|
+
for (let i = 0; i < values.length % 8; i++) {
|
|
100
|
+
values.push(0);
|
|
101
|
+
}
|
|
102
|
+
const buf = Buffer.alloc(Math.ceil(bitWidth * (values.length / 8)));
|
|
103
|
+
for (let b = 0; b < bitWidth * values.length; b++) {
|
|
104
|
+
if ((values[Math.floor(b / bitWidth)] & 1 << b % bitWidth) > 0) {
|
|
105
|
+
buf[Math.floor(b / 8)] |= 1 << b % 8;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return Buffer.concat([Buffer.from(varint.encode(values.length / 8 << 1 | 1)), buf]);
|
|
109
|
+
}
|
|
110
|
+
function encodeRunRepeated(value, count, opts) {
|
|
111
|
+
const bitWidth = opts.bitWidth;
|
|
112
|
+
const buf = Buffer.alloc(Math.ceil(bitWidth / 8));
|
|
113
|
+
for (let i = 0; i < buf.length; i++) {
|
|
114
|
+
buf.writeUInt8(value & 0xff, i);
|
|
115
|
+
value >> 8;
|
|
116
|
+
}
|
|
117
|
+
return Buffer.concat([Buffer.from(varint.encode(count << 1)), buf]);
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=rle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rle.js","names":["varint","encodeValues","type","values","opts","Error","map","x","parseInt","concat","buf","Buffer","alloc","run","repeats","i","length","encodeRunBitpacked","encodeRunRepeated","push","disableEnvelope","envelope","writeUInt32LE","undefined","copy","decodeValues","cursor","count","offset","header","decode","buffer","encodingLength","decodeRunBitpacked","decodeRunRepeated","slice","bitWidth","Array","fill","b","Math","floor","value","ceil","from","encode","writeUInt8"],"sources":["../../../../src/parquetjs/codecs/rle.ts"],"sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\n\nimport type {PrimitiveType} from '../schema/declare';\nimport type {CursorBuffer, ParquetCodecOptions} from './declare';\nimport varint from 'varint';\n\n// eslint-disable-next-line max-statements, complexity\nexport function encodeValues(\n type: PrimitiveType,\n values: any[],\n opts: ParquetCodecOptions\n): Buffer {\n if (!('bitWidth' in opts)) {\n throw new Error('bitWidth is required');\n }\n\n switch (type) {\n case 'BOOLEAN':\n case 'INT32':\n case 'INT64':\n // tslint:disable-next-line:no-parameter-reassignment\n values = values.map((x) => parseInt(x, 10));\n break;\n\n default:\n throw new Error(`unsupported type: ${type}`);\n }\n\n let buf = Buffer.alloc(0);\n let run: any[] = [];\n let repeats = 0;\n\n for (let i = 0; i < values.length; i++) {\n // If we are at the beginning of a run and the next value is same we start\n // collecting repeated values\n if (repeats === 0 && run.length % 8 === 0 && values[i] === values[i + 1]) {\n // If we have any data in runs we need to encode them\n if (run.length) {\n buf = Buffer.concat([buf, encodeRunBitpacked(run, opts)]);\n run = [];\n }\n repeats = 1;\n } else if (repeats > 0 && values[i] === values[i - 1]) {\n repeats += 1;\n } else {\n // If values changes we need to post any previous repeated values\n if (repeats) {\n buf = Buffer.concat([buf, encodeRunRepeated(values[i - 1], repeats, opts)]);\n repeats = 0;\n }\n run.push(values[i]);\n }\n }\n\n if (repeats) {\n buf = Buffer.concat([buf, encodeRunRepeated(values[values.length - 1], repeats, opts)]);\n } else if (run.length) {\n buf = Buffer.concat([buf, encodeRunBitpacked(run, opts)]);\n }\n\n if (opts.disableEnvelope) {\n return buf;\n }\n\n const envelope = Buffer.alloc(buf.length + 4);\n envelope.writeUInt32LE(buf.length, undefined);\n buf.copy(envelope, 4);\n\n return envelope;\n}\n\nexport function decodeValues(\n type: PrimitiveType,\n cursor: CursorBuffer,\n count: number,\n opts: ParquetCodecOptions\n): number[] {\n if (!('bitWidth' in opts)) {\n throw new Error('bitWidth is required');\n }\n\n if (!opts.disableEnvelope) {\n cursor.offset += 4;\n }\n\n let values: number[] = [];\n while (values.length < count) {\n const header = varint.decode(cursor.buffer, cursor.offset);\n cursor.offset += varint.encodingLength(header);\n if (header & 1) {\n const count = (header >> 1) * 8;\n values.push(...decodeRunBitpacked(cursor, count, opts));\n } else {\n const count = header >> 1;\n values.push(...decodeRunRepeated(cursor, count, opts));\n }\n }\n values = values.slice(0, count);\n\n if (values.length !== count) {\n throw new Error('invalid RLE encoding');\n }\n\n return values;\n}\n\nfunction decodeRunBitpacked(\n cursor: CursorBuffer,\n count: number,\n opts: ParquetCodecOptions\n): number[] {\n // @ts-ignore\n const bitWidth: number = opts.bitWidth;\n\n if (count % 8 !== 0) {\n throw new Error('must be a multiple of 8');\n }\n\n // tslint:disable-next-line:prefer-array-literal\n const values = new Array(count).fill(0);\n for (let b = 0; b < bitWidth * count; b++) {\n if (cursor.buffer[cursor.offset + Math.floor(b / 8)] & (1 << b % 8)) {\n values[Math.floor(b / bitWidth)] |= 1 << b % bitWidth;\n }\n }\n\n cursor.offset += bitWidth * (count / 8);\n return values;\n}\n\nfunction decodeRunRepeated(\n cursor: CursorBuffer,\n count: number,\n opts: ParquetCodecOptions\n): number[] {\n // @ts-ignore\n const bitWidth: number = opts.bitWidth;\n\n let value = 0;\n for (let i = 0; i < Math.ceil(bitWidth / 8); i++) {\n // eslint-disable-next-line\n value << 8; // TODO - this looks wrong\n value += cursor.buffer[cursor.offset];\n cursor.offset += 1;\n }\n\n // tslint:disable-next-line:prefer-array-literal\n return new Array(count).fill(value);\n}\n\nfunction encodeRunBitpacked(values: number[], opts: ParquetCodecOptions): Buffer {\n // @ts-ignore\n const bitWidth: number = opts.bitWidth;\n\n for (let i = 0; i < values.length % 8; i++) {\n values.push(0);\n }\n\n const buf = Buffer.alloc(Math.ceil(bitWidth * (values.length / 8)));\n for (let b = 0; b < bitWidth * values.length; b++) {\n if ((values[Math.floor(b / bitWidth)] & (1 << b % bitWidth)) > 0) {\n buf[Math.floor(b / 8)] |= 1 << b % 8;\n }\n }\n\n return Buffer.concat([Buffer.from(varint.encode(((values.length / 8) << 1) | 1)), buf]);\n}\n\nfunction encodeRunRepeated(value: number, count: number, opts: ParquetCodecOptions): Buffer {\n // @ts-ignore\n const bitWidth: number = opts.bitWidth;\n\n const buf = Buffer.alloc(Math.ceil(bitWidth / 8));\n\n for (let i = 0; i < buf.length; i++) {\n buf.writeUInt8(value & 0xff, i);\n // eslint-disable-next-line\n value >> 8; // TODO - this looks wrong\n }\n\n return Buffer.concat([Buffer.from(varint.encode(count << 1)), buf]);\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { NoCompression, GZipCompression, SnappyCompression, BrotliCompression, LZ4Compression, ZstdCompression } from '@loaders.gl/compression';
|
|
2
|
+
function toBuffer(arrayBuffer) {
|
|
3
|
+
return Buffer.from(arrayBuffer);
|
|
4
|
+
}
|
|
5
|
+
function toArrayBuffer(buffer) {
|
|
6
|
+
if (Buffer.isBuffer(buffer)) {
|
|
7
|
+
const typedArray = new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.length);
|
|
8
|
+
return typedArray.slice().buffer;
|
|
9
|
+
}
|
|
10
|
+
return buffer;
|
|
11
|
+
}
|
|
12
|
+
import lz4js from 'lz4js';
|
|
13
|
+
const modules = {
|
|
14
|
+
lz4js
|
|
15
|
+
};
|
|
16
|
+
export const PARQUET_COMPRESSION_METHODS = {
|
|
17
|
+
UNCOMPRESSED: new NoCompression(),
|
|
18
|
+
GZIP: new GZipCompression(),
|
|
19
|
+
SNAPPY: new SnappyCompression(),
|
|
20
|
+
BROTLI: new BrotliCompression({
|
|
21
|
+
modules
|
|
22
|
+
}),
|
|
23
|
+
LZ4: new LZ4Compression({
|
|
24
|
+
modules
|
|
25
|
+
}),
|
|
26
|
+
LZ4_RAW: new LZ4Compression({
|
|
27
|
+
modules
|
|
28
|
+
}),
|
|
29
|
+
ZSTD: new ZstdCompression({
|
|
30
|
+
modules
|
|
31
|
+
})
|
|
32
|
+
};
|
|
33
|
+
export async function preloadCompressions(options) {
|
|
34
|
+
const compressions = Object.values(PARQUET_COMPRESSION_METHODS);
|
|
35
|
+
return await Promise.all(compressions.map(compression => compression.preload()));
|
|
36
|
+
}
|
|
37
|
+
export async function deflate(method, value) {
|
|
38
|
+
const compression = PARQUET_COMPRESSION_METHODS[method];
|
|
39
|
+
if (!compression) {
|
|
40
|
+
throw new Error("parquet: invalid compression method: ".concat(method));
|
|
41
|
+
}
|
|
42
|
+
const inputArrayBuffer = toArrayBuffer(value);
|
|
43
|
+
const compressedArrayBuffer = await compression.compress(inputArrayBuffer);
|
|
44
|
+
return toBuffer(compressedArrayBuffer);
|
|
45
|
+
}
|
|
46
|
+
export async function decompress(method, value, size) {
|
|
47
|
+
const compression = PARQUET_COMPRESSION_METHODS[method];
|
|
48
|
+
if (!compression) {
|
|
49
|
+
throw new Error("parquet: invalid compression method: ".concat(method));
|
|
50
|
+
}
|
|
51
|
+
const inputArrayBuffer = toArrayBuffer(value);
|
|
52
|
+
const compressedArrayBuffer = await compression.decompress(inputArrayBuffer, size);
|
|
53
|
+
return toBuffer(compressedArrayBuffer);
|
|
54
|
+
}
|
|
55
|
+
export function inflate(method, value, size) {
|
|
56
|
+
if (!(method in PARQUET_COMPRESSION_METHODS)) {
|
|
57
|
+
throw new Error("invalid compression method: ".concat(method));
|
|
58
|
+
}
|
|
59
|
+
return PARQUET_COMPRESSION_METHODS[method].inflate(value, size);
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=compression.js.map
|