@loaders.gl/parquet 4.4.5 → 5.0.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +14 -3
- package/dist/bundled.d.ts +9 -0
- package/dist/bundled.d.ts.map +1 -0
- package/dist/bundled.js +10 -0
- package/dist/bundled.js.map +1 -0
- package/dist/geoparquet-loader-with-parser.d.ts +33 -0
- package/dist/geoparquet-loader-with-parser.d.ts.map +1 -0
- package/dist/geoparquet-loader-with-parser.js +52 -0
- package/dist/geoparquet-loader-with-parser.js.map +1 -0
- package/dist/geoparquet-loader.d.ts +59 -0
- package/dist/geoparquet-loader.d.ts.map +1 -0
- package/dist/geoparquet-loader.js +30 -0
- package/dist/geoparquet-loader.js.map +1 -0
- package/dist/index.cjs +25873 -4776
- package/dist/index.cjs.map +3 -4
- package/dist/index.d.ts +10 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -11
- package/dist/index.js.map +1 -1
- package/dist/lib/arrow/convert-columns-to-row-group.js +3 -0
- package/dist/lib/arrow/convert-columns-to-row-group.js.map +1 -1
- package/dist/lib/arrow/convert-schema-from-parquet.d.ts.map +1 -1
- package/dist/lib/arrow/convert-schema-from-parquet.js +86 -26
- package/dist/lib/arrow/convert-schema-from-parquet.js.map +1 -1
- package/dist/lib/arrow/convert-schema-to-parquet.d.ts.map +1 -1
- package/dist/lib/arrow/convert-schema-to-parquet.js +16 -7
- package/dist/lib/arrow/convert-schema-to-parquet.js.map +1 -1
- package/dist/lib/arrow/create-nested-arrow-vector.d.ts +8 -0
- package/dist/lib/arrow/create-nested-arrow-vector.d.ts.map +1 -0
- package/dist/lib/arrow/create-nested-arrow-vector.js +396 -0
- package/dist/lib/arrow/create-nested-arrow-vector.js.map +1 -0
- package/dist/lib/constants.d.ts +0 -1
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +1 -2
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/encoders/encode-arrow-to-parquet.d.ts +2 -2
- package/dist/lib/encoders/encode-arrow-to-parquet.d.ts.map +1 -1
- package/dist/lib/encoders/encode-arrow-to-parquet.js +3 -10
- package/dist/lib/encoders/encode-arrow-to-parquet.js.map +1 -1
- package/dist/lib/encoders/encode-table-to-parquet-js.d.ts +5 -0
- package/dist/lib/encoders/encode-table-to-parquet-js.d.ts.map +1 -0
- package/dist/lib/encoders/encode-table-to-parquet-js.js +199 -0
- package/dist/lib/encoders/encode-table-to-parquet-js.js.map +1 -0
- package/dist/lib/geo/geospatial-metadata.d.ts +67 -0
- package/dist/lib/geo/geospatial-metadata.d.ts.map +1 -0
- package/dist/lib/geo/geospatial-metadata.js +338 -0
- package/dist/lib/geo/geospatial-metadata.js.map +1 -0
- package/dist/lib/parquet-page-index.d.ts +62 -0
- package/dist/lib/parquet-page-index.d.ts.map +1 -0
- package/dist/lib/parquet-page-index.js +377 -0
- package/dist/lib/parquet-page-index.js.map +1 -0
- package/dist/lib/parquet-predicate.d.ts +17 -0
- package/dist/lib/parquet-predicate.d.ts.map +1 -0
- package/dist/lib/parquet-predicate.js +300 -0
- package/dist/lib/parquet-predicate.js.map +1 -0
- package/dist/lib/parquet-source-worker-client.d.ts +6 -0
- package/dist/lib/parquet-source-worker-client.d.ts.map +1 -0
- package/dist/lib/parquet-source-worker-client.js +22 -0
- package/dist/lib/parquet-source-worker-client.js.map +1 -0
- package/dist/lib/parquet-source-worker-decoder.d.ts +4 -0
- package/dist/lib/parquet-source-worker-decoder.d.ts.map +1 -0
- package/dist/lib/parquet-source-worker-decoder.js +115 -0
- package/dist/lib/parquet-source-worker-decoder.js.map +1 -0
- package/dist/lib/parquet-source-worker-file.d.ts +24 -0
- package/dist/lib/parquet-source-worker-file.d.ts.map +1 -0
- package/dist/lib/parquet-source-worker-file.js +40 -0
- package/dist/lib/parquet-source-worker-file.js.map +1 -0
- package/dist/lib/parquet-source-worker-types.d.ts +97 -0
- package/dist/lib/parquet-source-worker-types.d.ts.map +1 -0
- package/dist/lib/parquet-source-worker-types.js +5 -0
- package/dist/lib/parquet-source-worker-types.js.map +1 -0
- package/dist/lib/parquet-worker-transport.d.ts +8 -0
- package/dist/lib/parquet-worker-transport.d.ts.map +1 -0
- package/dist/lib/parquet-worker-transport.js +40 -0
- package/dist/lib/parquet-worker-transport.js.map +1 -0
- package/dist/lib/parsers/convert-parquet-tables.d.ts +16 -0
- package/dist/lib/parsers/convert-parquet-tables.d.ts.map +1 -0
- package/dist/lib/parsers/convert-parquet-tables.js +30 -0
- package/dist/lib/parsers/convert-parquet-tables.js.map +1 -0
- package/dist/lib/parsers/get-parquet-schema.d.ts.map +1 -1
- package/dist/lib/parsers/get-parquet-schema.js +3 -1
- package/dist/lib/parsers/get-parquet-schema.js.map +1 -1
- package/dist/lib/parsers/parse-geoparquet-to-geojson.d.ts +4 -4
- package/dist/lib/parsers/parse-geoparquet-to-geojson.d.ts.map +1 -1
- package/dist/lib/parsers/parse-geoparquet-to-geojson.js +19 -6
- package/dist/lib/parsers/parse-geoparquet-to-geojson.js.map +1 -1
- package/dist/lib/parsers/parse-parquet-tables.d.ts +37 -0
- package/dist/lib/parsers/parse-parquet-tables.d.ts.map +1 -0
- package/dist/lib/parsers/parse-parquet-tables.js +50 -0
- package/dist/lib/parsers/parse-parquet-tables.js.map +1 -0
- package/dist/lib/parsers/parse-parquet-to-arrow-js.d.ts +19 -0
- package/dist/lib/parsers/parse-parquet-to-arrow-js.d.ts.map +1 -0
- package/dist/lib/parsers/parse-parquet-to-arrow-js.js +608 -0
- package/dist/lib/parsers/parse-parquet-to-arrow-js.js.map +1 -0
- package/dist/lib/parsers/parse-parquet-to-arrow.d.ts +7 -7
- package/dist/lib/parsers/parse-parquet-to-arrow.d.ts.map +1 -1
- package/dist/lib/parsers/parse-parquet-to-arrow.js +45 -32
- package/dist/lib/parsers/parse-parquet-to-arrow.js.map +1 -1
- package/dist/lib/parsers/parse-parquet-to-columns.d.ts +3 -3
- package/dist/lib/parsers/parse-parquet-to-columns.d.ts.map +1 -1
- package/dist/lib/parsers/parse-parquet-to-columns.js +1 -4
- package/dist/lib/parsers/parse-parquet-to-columns.js.map +1 -1
- package/dist/lib/parsers/parse-parquet-to-json.d.ts +3 -3
- package/dist/lib/parsers/parse-parquet-to-json.d.ts.map +1 -1
- package/dist/lib/parsers/parse-parquet-to-json.js +77 -26
- package/dist/lib/parsers/parse-parquet-to-json.js.map +1 -1
- package/dist/lib/sources/parquet-range-file.d.ts +80 -0
- package/dist/lib/sources/parquet-range-file.d.ts.map +1 -0
- package/dist/lib/sources/parquet-range-file.js +261 -0
- package/dist/lib/sources/parquet-range-file.js.map +1 -0
- package/dist/lib/sources/single-batch-queue.d.ts +24 -0
- package/dist/lib/sources/single-batch-queue.d.ts.map +1 -0
- package/dist/lib/sources/single-batch-queue.js +91 -0
- package/dist/lib/sources/single-batch-queue.js.map +1 -0
- package/dist/lib/utils/load-wasm-node.d.ts +3 -0
- package/dist/lib/utils/load-wasm-node.d.ts.map +1 -0
- package/dist/lib/utils/load-wasm-node.js +23 -0
- package/dist/lib/utils/load-wasm-node.js.map +1 -0
- package/dist/lib/utils/load-wasm.d.ts +2 -2
- package/dist/lib/utils/load-wasm.d.ts.map +1 -1
- package/dist/lib/utils/load-wasm.js +28 -12
- package/dist/lib/utils/load-wasm.js.map +1 -1
- package/dist/lib/utils/make-stream-iterator.d.ts +2 -0
- package/dist/lib/utils/make-stream-iterator.d.ts.map +1 -1
- package/dist/lib/utils/make-stream-iterator.js +123 -14
- package/dist/lib/utils/make-stream-iterator.js.map +1 -1
- package/dist/lib/utils/normalize-parquet-options.d.ts +5 -0
- package/dist/lib/utils/normalize-parquet-options.d.ts.map +1 -0
- package/dist/lib/utils/normalize-parquet-options.js +11 -0
- package/dist/lib/utils/normalize-parquet-options.js.map +1 -0
- package/dist/parquet-dataset-source.cjs +26413 -0
- package/dist/parquet-dataset-source.cjs.map +6 -0
- package/dist/parquet-dataset-source.d.ts +54 -0
- package/dist/parquet-dataset-source.d.ts.map +1 -0
- package/dist/parquet-dataset-source.js +380 -0
- package/dist/parquet-dataset-source.js.map +1 -0
- package/dist/parquet-format.d.ts +2 -0
- package/dist/parquet-format.d.ts.map +1 -1
- package/dist/parquet-format.js +2 -0
- package/dist/parquet-format.js.map +1 -1
- package/dist/parquet-js-loader-types.d.ts +57 -0
- package/dist/parquet-js-loader-types.d.ts.map +1 -0
- package/dist/parquet-js-loader-types.js +33 -0
- package/dist/parquet-js-loader-types.js.map +1 -0
- package/dist/parquet-js-loader.d.ts +32 -0
- package/dist/parquet-js-loader.d.ts.map +1 -0
- package/dist/parquet-js-loader.js +58 -0
- package/dist/parquet-js-loader.js.map +1 -0
- package/dist/parquet-js-writer.d.ts +44 -0
- package/dist/parquet-js-writer.d.ts.map +1 -0
- package/dist/parquet-js-writer.js +28 -0
- package/dist/parquet-js-writer.js.map +1 -0
- package/dist/parquet-loader-base.d.ts +25 -0
- package/dist/parquet-loader-base.d.ts.map +1 -0
- package/dist/parquet-loader-base.js +23 -0
- package/dist/parquet-loader-base.js.map +1 -0
- package/dist/parquet-loader-options.d.ts +44 -0
- package/dist/parquet-loader-options.d.ts.map +1 -0
- package/dist/parquet-loader-options.js +10 -0
- package/dist/parquet-loader-options.js.map +1 -0
- package/dist/parquet-loader-types.d.ts +61 -0
- package/dist/parquet-loader-types.d.ts.map +1 -0
- package/dist/parquet-loader-types.js +17 -0
- package/dist/parquet-loader-types.js.map +1 -0
- package/dist/parquet-loader.d.ts +42 -0
- package/dist/parquet-loader.d.ts.map +1 -0
- package/dist/parquet-loader.js +68 -0
- package/dist/parquet-loader.js.map +1 -0
- package/dist/parquet-source-capabilities.d.ts +36 -0
- package/dist/parquet-source-capabilities.d.ts.map +1 -0
- package/dist/parquet-source-capabilities.js +22 -0
- package/dist/parquet-source-capabilities.js.map +1 -0
- package/dist/parquet-source-loader-types.d.ts +72 -0
- package/dist/parquet-source-loader-types.d.ts.map +1 -0
- package/dist/parquet-source-loader-types.js +74 -0
- package/dist/parquet-source-loader-types.js.map +1 -0
- package/dist/parquet-source-loader.cjs +25975 -0
- package/dist/parquet-source-loader.cjs.map +6 -0
- package/dist/parquet-source-loader.d.ts +120 -0
- package/dist/parquet-source-loader.d.ts.map +1 -0
- package/dist/parquet-source-loader.js +812 -0
- package/dist/parquet-source-loader.js.map +1 -0
- package/dist/parquet-source-types.d.ts +384 -0
- package/dist/parquet-source-types.d.ts.map +1 -0
- package/dist/parquet-source-types.js +5 -0
- package/dist/parquet-source-types.js.map +1 -0
- package/dist/parquet-source-worker-url.d.ts +3 -0
- package/dist/parquet-source-worker-url.d.ts.map +1 -0
- package/dist/parquet-source-worker-url.js +22 -0
- package/dist/parquet-source-worker-url.js.map +1 -0
- package/dist/parquet-source-worker.js +38491 -0
- package/dist/parquet-source-worker.js.map +7 -0
- package/dist/parquet-worker-node.cjs +54779 -0
- package/dist/parquet-worker-node.cjs.map +7 -0
- package/dist/parquet-worker-url.d.ts +3 -0
- package/dist/parquet-worker-url.d.ts.map +1 -0
- package/dist/parquet-worker-url.js +15 -0
- package/dist/parquet-worker-url.js.map +1 -0
- package/dist/parquet-worker.js +19920 -0
- package/dist/parquet-worker.js.map +7 -0
- package/dist/parquet-writer.d.ts +10 -0
- package/dist/parquet-writer.d.ts.map +1 -0
- package/dist/parquet-writer.js +27 -0
- package/dist/parquet-writer.js.map +1 -0
- package/dist/parquet_wasm_bg.wasm +0 -0
- package/dist/parquetjs/codecs/byte-stream-split.d.ts +9 -0
- package/dist/parquetjs/codecs/byte-stream-split.d.ts.map +1 -0
- package/dist/parquetjs/codecs/byte-stream-split.js +159 -0
- package/dist/parquetjs/codecs/byte-stream-split.js.map +1 -0
- package/dist/parquetjs/codecs/declare.d.ts +20 -3
- package/dist/parquetjs/codecs/declare.d.ts.map +1 -1
- package/dist/parquetjs/codecs/declare.js +7 -1
- package/dist/parquetjs/codecs/declare.js.map +1 -1
- package/dist/parquetjs/codecs/delta.d.ts +17 -0
- package/dist/parquetjs/codecs/delta.d.ts.map +1 -0
- package/dist/parquetjs/codecs/delta.js +439 -0
- package/dist/parquetjs/codecs/delta.js.map +1 -0
- package/dist/parquetjs/codecs/dictionary.d.ts +5 -2
- package/dist/parquetjs/codecs/dictionary.d.ts.map +1 -1
- package/dist/parquetjs/codecs/dictionary.js +16 -4
- package/dist/parquetjs/codecs/dictionary.js.map +1 -1
- package/dist/parquetjs/codecs/index.d.ts.map +1 -1
- package/dist/parquetjs/codecs/index.js +18 -0
- package/dist/parquetjs/codecs/index.js.map +1 -1
- package/dist/parquetjs/codecs/plain.d.ts +3 -3
- package/dist/parquetjs/codecs/plain.d.ts.map +1 -1
- package/dist/parquetjs/codecs/plain.js +88 -76
- package/dist/parquetjs/codecs/plain.js.map +1 -1
- package/dist/parquetjs/codecs/rle.d.ts +3 -3
- package/dist/parquetjs/codecs/rle.d.ts.map +1 -1
- package/dist/parquetjs/codecs/rle.js +196 -68
- package/dist/parquetjs/codecs/rle.js.map +1 -1
- package/dist/parquetjs/compression.d.ts +7 -8
- package/dist/parquetjs/compression.d.ts.map +1 -1
- package/dist/parquetjs/compression.js +95 -141
- package/dist/parquetjs/compression.js.map +1 -1
- package/dist/parquetjs/encoder/dictionary-planner.d.ts +17 -0
- package/dist/parquetjs/encoder/dictionary-planner.d.ts.map +1 -0
- package/dist/parquetjs/encoder/dictionary-planner.js +64 -0
- package/dist/parquetjs/encoder/dictionary-planner.js.map +1 -0
- package/dist/parquetjs/encoder/page-planner.d.ts +11 -0
- package/dist/parquetjs/encoder/page-planner.d.ts.map +1 -0
- package/dist/parquetjs/encoder/page-planner.js +60 -0
- package/dist/parquetjs/encoder/page-planner.js.map +1 -0
- package/dist/parquetjs/encoder/parquet-encoder.d.ts +11 -4
- package/dist/parquetjs/encoder/parquet-encoder.d.ts.map +1 -1
- package/dist/parquetjs/encoder/parquet-encoder.js +259 -52
- package/dist/parquetjs/encoder/parquet-encoder.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/BsonType.d.ts +1 -1
- package/dist/parquetjs/parquet-thrift/BsonType.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/BsonType.js +1 -1
- package/dist/parquetjs/parquet-thrift/BsonType.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/ColumnChunk.d.ts +2 -2
- package/dist/parquetjs/parquet-thrift/ColumnChunk.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/ColumnChunk.js +2 -2
- package/dist/parquetjs/parquet-thrift/ColumnChunk.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/ColumnIndex.d.ts +6 -6
- package/dist/parquetjs/parquet-thrift/ColumnIndex.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/ColumnIndex.js +3 -3
- package/dist/parquetjs/parquet-thrift/ColumnIndex.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/ColumnMetaData.d.ts +2 -2
- package/dist/parquetjs/parquet-thrift/ColumnMetaData.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/ColumnMetaData.js +2 -2
- package/dist/parquetjs/parquet-thrift/ColumnMetaData.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/ColumnOrder.d.ts +1 -1
- package/dist/parquetjs/parquet-thrift/ColumnOrder.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/ColumnOrder.js +1 -1
- package/dist/parquetjs/parquet-thrift/ColumnOrder.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/DataPageHeader.d.ts +1 -1
- package/dist/parquetjs/parquet-thrift/DataPageHeader.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/DataPageHeader.js +1 -1
- package/dist/parquetjs/parquet-thrift/DataPageHeader.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/DataPageHeaderV2.d.ts +1 -1
- package/dist/parquetjs/parquet-thrift/DataPageHeaderV2.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/DataPageHeaderV2.js +1 -1
- package/dist/parquetjs/parquet-thrift/DataPageHeaderV2.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/DateType.d.ts +1 -1
- package/dist/parquetjs/parquet-thrift/DateType.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/DateType.js +1 -1
- package/dist/parquetjs/parquet-thrift/DateType.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/DecimalType.d.ts +1 -1
- package/dist/parquetjs/parquet-thrift/DecimalType.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/DecimalType.js +1 -1
- package/dist/parquetjs/parquet-thrift/DecimalType.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/DictionaryPageHeader.d.ts +1 -1
- package/dist/parquetjs/parquet-thrift/DictionaryPageHeader.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/DictionaryPageHeader.js +1 -1
- package/dist/parquetjs/parquet-thrift/DictionaryPageHeader.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/EdgeInterpolationAlgorithm.d.ts +8 -0
- package/dist/parquetjs/parquet-thrift/EdgeInterpolationAlgorithm.d.ts.map +1 -0
- package/dist/parquetjs/parquet-thrift/EdgeInterpolationAlgorithm.js +14 -0
- package/dist/parquetjs/parquet-thrift/EdgeInterpolationAlgorithm.js.map +1 -0
- package/dist/parquetjs/parquet-thrift/Encoding.d.ts +2 -1
- package/dist/parquetjs/parquet-thrift/Encoding.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/Encoding.js +1 -0
- package/dist/parquetjs/parquet-thrift/Encoding.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/EnumType.d.ts +1 -1
- package/dist/parquetjs/parquet-thrift/EnumType.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/EnumType.js +1 -1
- package/dist/parquetjs/parquet-thrift/EnumType.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/FileMetaData.d.ts +2 -2
- package/dist/parquetjs/parquet-thrift/FileMetaData.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/FileMetaData.js +2 -2
- package/dist/parquetjs/parquet-thrift/FileMetaData.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/Float16Type.d.ts +9 -0
- package/dist/parquetjs/parquet-thrift/Float16Type.d.ts.map +1 -0
- package/dist/parquetjs/parquet-thrift/Float16Type.js +27 -0
- package/dist/parquetjs/parquet-thrift/Float16Type.js.map +1 -0
- package/dist/parquetjs/parquet-thrift/GeographyType.d.ts +14 -0
- package/dist/parquetjs/parquet-thrift/GeographyType.d.ts.map +1 -0
- package/dist/parquetjs/parquet-thrift/GeographyType.js +51 -0
- package/dist/parquetjs/parquet-thrift/GeographyType.js.map +1 -0
- package/dist/parquetjs/parquet-thrift/GeometryType.d.ts +11 -0
- package/dist/parquetjs/parquet-thrift/GeometryType.d.ts.map +1 -0
- package/dist/parquetjs/parquet-thrift/GeometryType.js +41 -0
- package/dist/parquetjs/parquet-thrift/GeometryType.js.map +1 -0
- package/dist/parquetjs/parquet-thrift/IndexPageHeader.d.ts +1 -1
- package/dist/parquetjs/parquet-thrift/IndexPageHeader.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/IndexPageHeader.js +1 -1
- package/dist/parquetjs/parquet-thrift/IndexPageHeader.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/IntType.d.ts +1 -1
- package/dist/parquetjs/parquet-thrift/IntType.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/IntType.js +1 -1
- package/dist/parquetjs/parquet-thrift/IntType.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/JsonType.d.ts +1 -1
- package/dist/parquetjs/parquet-thrift/JsonType.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/JsonType.js +1 -1
- package/dist/parquetjs/parquet-thrift/JsonType.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/KeyValue.d.ts +1 -1
- package/dist/parquetjs/parquet-thrift/KeyValue.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/KeyValue.js +1 -1
- package/dist/parquetjs/parquet-thrift/KeyValue.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/ListType.d.ts +1 -1
- package/dist/parquetjs/parquet-thrift/ListType.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/ListType.js +1 -1
- package/dist/parquetjs/parquet-thrift/ListType.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/LogicalType.d.ts +17 -1
- package/dist/parquetjs/parquet-thrift/LogicalType.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/LogicalType.js +97 -1
- package/dist/parquetjs/parquet-thrift/LogicalType.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/MapType.d.ts +1 -1
- package/dist/parquetjs/parquet-thrift/MapType.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/MapType.js +1 -1
- package/dist/parquetjs/parquet-thrift/MapType.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/MicroSeconds.d.ts +1 -1
- package/dist/parquetjs/parquet-thrift/MicroSeconds.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/MicroSeconds.js +1 -1
- package/dist/parquetjs/parquet-thrift/MicroSeconds.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/MilliSeconds.d.ts +1 -1
- package/dist/parquetjs/parquet-thrift/MilliSeconds.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/MilliSeconds.js +1 -1
- package/dist/parquetjs/parquet-thrift/MilliSeconds.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/NanoSeconds.d.ts +9 -0
- package/dist/parquetjs/parquet-thrift/NanoSeconds.d.ts.map +1 -0
- package/dist/parquetjs/parquet-thrift/NanoSeconds.js +27 -0
- package/dist/parquetjs/parquet-thrift/NanoSeconds.js.map +1 -0
- package/dist/parquetjs/parquet-thrift/NullType.d.ts +1 -1
- package/dist/parquetjs/parquet-thrift/NullType.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/NullType.js +1 -1
- package/dist/parquetjs/parquet-thrift/NullType.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/OffsetIndex.d.ts +1 -1
- package/dist/parquetjs/parquet-thrift/OffsetIndex.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/OffsetIndex.js +1 -1
- package/dist/parquetjs/parquet-thrift/OffsetIndex.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/PageEncodingStats.d.ts +1 -1
- package/dist/parquetjs/parquet-thrift/PageEncodingStats.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/PageEncodingStats.js +1 -1
- package/dist/parquetjs/parquet-thrift/PageEncodingStats.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/PageHeader.d.ts +1 -1
- package/dist/parquetjs/parquet-thrift/PageHeader.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/PageHeader.js +1 -1
- package/dist/parquetjs/parquet-thrift/PageHeader.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/PageLocation.d.ts +2 -2
- package/dist/parquetjs/parquet-thrift/PageLocation.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/PageLocation.js +2 -2
- package/dist/parquetjs/parquet-thrift/PageLocation.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/RowGroup.d.ts +2 -2
- package/dist/parquetjs/parquet-thrift/RowGroup.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/RowGroup.js +2 -2
- package/dist/parquetjs/parquet-thrift/RowGroup.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/SchemaElement.d.ts +1 -1
- package/dist/parquetjs/parquet-thrift/SchemaElement.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/SchemaElement.js +1 -1
- package/dist/parquetjs/parquet-thrift/SchemaElement.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/SortingColumn.d.ts +1 -1
- package/dist/parquetjs/parquet-thrift/SortingColumn.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/SortingColumn.js +1 -1
- package/dist/parquetjs/parquet-thrift/SortingColumn.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/Statistics.d.ts +14 -10
- package/dist/parquetjs/parquet-thrift/Statistics.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/Statistics.js +38 -2
- package/dist/parquetjs/parquet-thrift/Statistics.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/StringType.d.ts +1 -1
- package/dist/parquetjs/parquet-thrift/StringType.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/StringType.js +1 -1
- package/dist/parquetjs/parquet-thrift/StringType.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/TimeType.d.ts +1 -1
- package/dist/parquetjs/parquet-thrift/TimeType.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/TimeType.js +1 -1
- package/dist/parquetjs/parquet-thrift/TimeType.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/TimeUnit.d.ts +5 -1
- package/dist/parquetjs/parquet-thrift/TimeUnit.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/TimeUnit.js +25 -1
- package/dist/parquetjs/parquet-thrift/TimeUnit.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/TimestampType.d.ts +1 -1
- package/dist/parquetjs/parquet-thrift/TimestampType.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/TimestampType.js +1 -1
- package/dist/parquetjs/parquet-thrift/TimestampType.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/TypeDefinedOrder.d.ts +1 -1
- package/dist/parquetjs/parquet-thrift/TypeDefinedOrder.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/TypeDefinedOrder.js +1 -1
- package/dist/parquetjs/parquet-thrift/TypeDefinedOrder.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/UUIDType.d.ts +1 -1
- package/dist/parquetjs/parquet-thrift/UUIDType.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/UUIDType.js +1 -1
- package/dist/parquetjs/parquet-thrift/UUIDType.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/VariantType.d.ts +11 -0
- package/dist/parquetjs/parquet-thrift/VariantType.d.ts.map +1 -0
- package/dist/parquetjs/parquet-thrift/VariantType.js +41 -0
- package/dist/parquetjs/parquet-thrift/VariantType.js.map +1 -0
- package/dist/parquetjs/parquet-thrift/index.d.ts +6 -2
- package/dist/parquetjs/parquet-thrift/index.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/index.js +6 -2
- package/dist/parquetjs/parquet-thrift/index.js.map +1 -1
- package/dist/parquetjs/parser/decoders.d.ts +14 -3
- package/dist/parquetjs/parser/decoders.d.ts.map +1 -1
- package/dist/parquetjs/parser/decoders.js +381 -117
- package/dist/parquetjs/parser/decoders.js.map +1 -1
- package/dist/parquetjs/parser/parquet-reader.d.ts +35 -10
- package/dist/parquetjs/parser/parquet-reader.d.ts.map +1 -1
- package/dist/parquetjs/parser/parquet-reader.js +179 -59
- package/dist/parquetjs/parser/parquet-reader.js.map +1 -1
- package/dist/parquetjs/schema/declare.d.ts +62 -8
- package/dist/parquetjs/schema/declare.d.ts.map +1 -1
- package/dist/parquetjs/schema/declare.js.map +1 -1
- package/dist/parquetjs/schema/schema.d.ts +3 -0
- package/dist/parquetjs/schema/schema.d.ts.map +1 -1
- package/dist/parquetjs/schema/schema.js +21 -3
- package/dist/parquetjs/schema/schema.js.map +1 -1
- package/dist/parquetjs/schema/shred.d.ts +2 -0
- package/dist/parquetjs/schema/shred.d.ts.map +1 -1
- package/dist/parquetjs/schema/shred.js +71 -23
- package/dist/parquetjs/schema/shred.js.map +1 -1
- package/dist/parquetjs/schema/types.d.ts.map +1 -1
- package/dist/parquetjs/schema/types.js +272 -51
- package/dist/parquetjs/schema/types.js.map +1 -1
- package/dist/parquetjs/utils/binary-utils.d.ts +41 -0
- package/dist/parquetjs/utils/binary-utils.d.ts.map +1 -0
- package/dist/parquetjs/utils/binary-utils.js +106 -0
- package/dist/parquetjs/utils/binary-utils.js.map +1 -0
- package/dist/parquetjs/utils/file-utils.d.ts +1 -1
- package/dist/parquetjs/utils/file-utils.d.ts.map +1 -1
- package/dist/parquetjs/utils/file-utils.js +3 -3
- package/dist/parquetjs/utils/file-utils.js.map +1 -1
- package/dist/parquetjs/utils/read-utils.d.ts +14 -6
- package/dist/parquetjs/utils/read-utils.d.ts.map +1 -1
- package/dist/parquetjs/utils/read-utils.js +46 -39
- package/dist/parquetjs/utils/read-utils.js.map +1 -1
- package/dist/parquetjs/utils/thrift-runtime.d.ts +106 -0
- package/dist/parquetjs/utils/thrift-runtime.d.ts.map +1 -0
- package/dist/parquetjs/utils/thrift-runtime.js +50 -0
- package/dist/parquetjs/utils/thrift-runtime.js.map +1 -0
- package/dist/parquetjs/utils/uint8-array-compact-protocol-writer.d.ts +78 -0
- package/dist/parquetjs/utils/uint8-array-compact-protocol-writer.d.ts.map +1 -0
- package/dist/parquetjs/utils/uint8-array-compact-protocol-writer.js +213 -0
- package/dist/parquetjs/utils/uint8-array-compact-protocol-writer.js.map +1 -0
- package/dist/parquetjs/utils/uint8-array-compact-protocol.d.ts +80 -0
- package/dist/parquetjs/utils/uint8-array-compact-protocol.d.ts.map +1 -0
- package/dist/parquetjs/utils/uint8-array-compact-protocol.js +276 -0
- package/dist/parquetjs/utils/uint8-array-compact-protocol.js.map +1 -0
- package/dist/parquetjs/utils/uint8-array-transport.d.ts +25 -0
- package/dist/parquetjs/utils/uint8-array-transport.d.ts.map +1 -0
- package/dist/parquetjs/utils/uint8-array-transport.js +62 -0
- package/dist/parquetjs/utils/uint8-array-transport.js.map +1 -0
- package/dist/polyfills/process.d.ts +12 -0
- package/dist/polyfills/process.d.ts.map +1 -0
- package/dist/polyfills/process.js +17 -0
- package/dist/polyfills/process.js.map +1 -0
- package/dist/unbundled.d.ts +9 -0
- package/dist/unbundled.d.ts.map +1 -0
- package/dist/unbundled.js +10 -0
- package/dist/unbundled.js.map +1 -0
- package/dist/wasm.d.ts +3 -0
- package/dist/wasm.d.ts.map +1 -0
- package/dist/wasm.js +6 -0
- package/dist/wasm.js.map +1 -0
- package/dist/workers/parquet-source-worker.d.ts +2 -0
- package/dist/workers/parquet-source-worker.d.ts.map +1 -0
- package/dist/workers/parquet-source-worker.js +17 -0
- package/dist/workers/parquet-source-worker.js.map +1 -0
- package/dist/workers/parquet-worker-node.d.ts +2 -0
- package/dist/workers/parquet-worker-node.d.ts.map +1 -0
- package/dist/workers/parquet-worker-node.js +5 -0
- package/dist/workers/parquet-worker-node.js.map +1 -0
- package/dist/workers/parquet-worker.d.ts +2 -0
- package/dist/workers/parquet-worker.d.ts.map +1 -0
- package/dist/workers/parquet-worker.js +27 -0
- package/dist/workers/parquet-worker.js.map +1 -0
- package/package.json +63 -33
- package/src/bundled.ts +33 -0
- package/src/geoparquet-loader-with-parser.ts +95 -0
- package/src/geoparquet-loader.ts +54 -0
- package/src/index.ts +49 -23
- package/src/lib/arrow/convert-columns-to-row-group.ts +3 -0
- package/src/lib/arrow/convert-schema-from-parquet.ts +97 -30
- package/src/lib/arrow/convert-schema-to-parquet.ts +16 -7
- package/src/lib/arrow/create-nested-arrow-vector.ts +589 -0
- package/src/lib/constants.ts +0 -2
- package/src/lib/encoders/encode-arrow-to-parquet.ts +10 -16
- package/src/lib/encoders/encode-table-to-parquet-js.ts +261 -0
- package/src/lib/geo/geospatial-metadata.ts +457 -0
- package/src/lib/parquet-page-index.ts +581 -0
- package/src/lib/parquet-predicate.ts +374 -0
- package/src/lib/parquet-source-worker-client.ts +39 -0
- package/src/lib/parquet-source-worker-decoder.ts +156 -0
- package/src/lib/parquet-source-worker-file.ts +56 -0
- package/src/lib/parquet-source-worker-types.ts +107 -0
- package/src/lib/parquet-worker-transport.ts +57 -0
- package/src/lib/parsers/convert-parquet-tables.ts +39 -0
- package/src/lib/parsers/get-parquet-schema.ts +3 -1
- package/src/lib/parsers/parse-geoparquet-to-geojson.ts +27 -14
- package/src/lib/parsers/parse-parquet-tables.ts +82 -0
- package/src/lib/parsers/parse-parquet-to-arrow-js.ts +829 -0
- package/src/lib/parsers/parse-parquet-to-arrow.ts +63 -36
- package/src/lib/parsers/parse-parquet-to-columns.ts +6 -7
- package/src/lib/parsers/parse-parquet-to-json.ts +101 -33
- package/src/lib/sources/parquet-range-file.ts +359 -0
- package/src/lib/sources/single-batch-queue.ts +95 -0
- package/src/lib/utils/load-wasm-node.ts +25 -0
- package/src/lib/utils/load-wasm.ts +36 -13
- package/src/lib/utils/make-stream-iterator.ts +126 -14
- package/src/lib/utils/normalize-parquet-options.ts +14 -0
- package/src/parquet-dataset-source.ts +488 -0
- package/src/parquet-format.ts +2 -0
- package/src/parquet-js-loader-types.ts +52 -0
- package/src/parquet-js-loader.ts +83 -0
- package/src/parquet-js-writer.ts +68 -0
- package/src/parquet-loader-base.ts +34 -0
- package/src/parquet-loader-options.ts +51 -0
- package/src/parquet-loader-types.ts +35 -0
- package/src/parquet-loader.ts +115 -0
- package/src/parquet-source-capabilities.ts +56 -0
- package/src/parquet-source-loader-types.ts +87 -0
- package/src/parquet-source-loader.ts +1265 -0
- package/src/parquet-source-types.ts +458 -0
- package/src/parquet-source-worker-url.ts +23 -0
- package/src/parquet-worker-url.ts +18 -0
- package/src/parquet-writer.ts +42 -0
- package/src/parquetjs/LICENSE +23 -1
- package/src/parquetjs/codecs/byte-stream-split.ts +221 -0
- package/src/parquetjs/codecs/declare.ts +35 -3
- package/src/parquetjs/codecs/delta.ts +587 -0
- package/src/parquetjs/codecs/dictionary.ts +22 -4
- package/src/parquetjs/codecs/index.ts +18 -0
- package/src/parquetjs/codecs/plain.ts +149 -87
- package/src/parquetjs/codecs/rle.ts +268 -82
- package/src/parquetjs/compression.ts +110 -155
- package/src/parquetjs/encoder/dictionary-planner.ts +99 -0
- package/src/parquetjs/encoder/page-planner.ts +83 -0
- package/src/parquetjs/encoder/parquet-encoder.ts +378 -77
- package/src/parquetjs/parquet-thrift/BsonType.ts +1 -1
- package/src/parquetjs/parquet-thrift/ColumnChunk.ts +2 -2
- package/src/parquetjs/parquet-thrift/ColumnIndex.ts +13 -13
- package/src/parquetjs/parquet-thrift/ColumnMetaData.ts +2 -2
- package/src/parquetjs/parquet-thrift/ColumnOrder.ts +1 -1
- package/src/parquetjs/parquet-thrift/DataPageHeader.ts +1 -1
- package/src/parquetjs/parquet-thrift/DataPageHeaderV2.ts +1 -1
- package/src/parquetjs/parquet-thrift/DateType.ts +1 -1
- package/src/parquetjs/parquet-thrift/DecimalType.ts +1 -1
- package/src/parquetjs/parquet-thrift/DictionaryPageHeader.ts +1 -1
- package/src/parquetjs/parquet-thrift/EdgeInterpolationAlgorithm.ts +13 -0
- package/src/parquetjs/parquet-thrift/Encoding.ts +2 -1
- package/src/parquetjs/parquet-thrift/EnumType.ts +1 -1
- package/src/parquetjs/parquet-thrift/FileMetaData.ts +2 -2
- package/src/parquetjs/parquet-thrift/Float16Type.ts +28 -0
- package/src/parquetjs/parquet-thrift/GeographyType.ts +54 -0
- package/src/parquetjs/parquet-thrift/GeometryType.ts +43 -0
- package/src/parquetjs/parquet-thrift/IndexPageHeader.ts +1 -1
- package/src/parquetjs/parquet-thrift/IntType.ts +1 -1
- package/src/parquetjs/parquet-thrift/JsonType.ts +1 -1
- package/src/parquetjs/parquet-thrift/KeyValue.ts +1 -1
- package/src/parquetjs/parquet-thrift/ListType.ts +1 -1
- package/src/parquetjs/parquet-thrift/LogicalType.ts +97 -1
- package/src/parquetjs/parquet-thrift/MapType.ts +1 -1
- package/src/parquetjs/parquet-thrift/MicroSeconds.ts +1 -1
- package/src/parquetjs/parquet-thrift/MilliSeconds.ts +1 -1
- package/src/parquetjs/parquet-thrift/NanoSeconds.ts +28 -0
- package/src/parquetjs/parquet-thrift/NullType.ts +1 -1
- package/src/parquetjs/parquet-thrift/OffsetIndex.ts +1 -1
- package/src/parquetjs/parquet-thrift/PageEncodingStats.ts +1 -1
- package/src/parquetjs/parquet-thrift/PageHeader.ts +1 -1
- package/src/parquetjs/parquet-thrift/PageLocation.ts +2 -2
- package/src/parquetjs/parquet-thrift/RowGroup.ts +2 -2
- package/src/parquetjs/parquet-thrift/SchemaElement.ts +1 -1
- package/src/parquetjs/parquet-thrift/SortingColumn.ts +1 -1
- package/src/parquetjs/parquet-thrift/Statistics.ts +50 -14
- package/src/parquetjs/parquet-thrift/StringType.ts +1 -1
- package/src/parquetjs/parquet-thrift/TimeType.ts +1 -1
- package/src/parquetjs/parquet-thrift/TimeUnit.ts +25 -1
- package/src/parquetjs/parquet-thrift/TimestampType.ts +1 -1
- package/src/parquetjs/parquet-thrift/TypeDefinedOrder.ts +1 -1
- package/src/parquetjs/parquet-thrift/UUIDType.ts +1 -1
- package/src/parquetjs/parquet-thrift/VariantType.ts +43 -0
- package/src/parquetjs/parquet-thrift/index.ts +6 -4
- package/src/parquetjs/parser/decoders.ts +487 -133
- package/src/parquetjs/parser/parquet-reader.ts +297 -71
- package/src/parquetjs/schema/declare.ts +99 -7
- package/src/parquetjs/schema/schema.ts +23 -3
- package/src/parquetjs/schema/shred.ts +112 -35
- package/src/parquetjs/schema/types.ts +294 -61
- package/src/parquetjs/utils/binary-utils.ts +132 -0
- package/src/parquetjs/utils/file-utils.ts +4 -4
- package/src/parquetjs/utils/read-utils.ts +56 -55
- package/src/parquetjs/utils/thrift-runtime.ts +109 -0
- package/src/parquetjs/utils/uint8-array-compact-protocol-writer.ts +254 -0
- package/src/parquetjs/utils/uint8-array-compact-protocol.ts +322 -0
- package/src/parquetjs/utils/uint8-array-transport.ts +79 -0
- package/src/polyfills/process.ts +17 -0
- package/src/unbundled.ts +33 -0
- package/src/wasm.ts +6 -0
- package/src/workers/parquet-source-worker.ts +21 -0
- package/src/workers/parquet-worker-node.ts +5 -0
- package/src/workers/parquet-worker.ts +31 -0
- package/dist/parquet-arrow-loader.d.ts +0 -43
- package/dist/parquet-arrow-loader.d.ts.map +0 -1
- package/dist/parquet-arrow-loader.js +0 -49
- package/dist/parquet-arrow-loader.js.map +0 -1
- package/dist/parquet-arrow-writer.d.ts +0 -9
- package/dist/parquet-arrow-writer.d.ts.map +0 -1
- package/dist/parquet-arrow-writer.js +0 -23
- package/dist/parquet-arrow-writer.js.map +0 -1
- package/dist/parquet-json-loader.d.ts +0 -148
- package/dist/parquet-json-loader.d.ts.map +0 -1
- package/dist/parquet-json-loader.js +0 -106
- package/dist/parquet-json-loader.js.map +0 -1
- package/dist/parquet-json-writer.d.ts +0 -19
- package/dist/parquet-json-writer.d.ts.map +0 -1
- package/dist/parquet-json-writer.js +0 -20
- package/dist/parquet-json-writer.js.map +0 -1
- package/dist/polyfills/buffer/buffer-polyfill.browser.d.ts +0 -3
- package/dist/polyfills/buffer/buffer-polyfill.browser.d.ts.map +0 -1
- package/dist/polyfills/buffer/buffer-polyfill.browser.js +0 -12
- package/dist/polyfills/buffer/buffer-polyfill.browser.js.map +0 -1
- package/dist/polyfills/buffer/buffer-polyfill.node.d.ts +0 -3
- package/dist/polyfills/buffer/buffer-polyfill.node.d.ts.map +0 -1
- package/dist/polyfills/buffer/buffer-polyfill.node.js +0 -17
- package/dist/polyfills/buffer/buffer-polyfill.node.js.map +0 -1
- package/dist/polyfills/buffer/buffer.d.ts +0 -222
- package/dist/polyfills/buffer/buffer.d.ts.map +0 -1
- package/dist/polyfills/buffer/buffer.js +0 -1868
- package/dist/polyfills/buffer/buffer.js.map +0 -1
- package/dist/polyfills/buffer/index.d.ts +0 -4
- package/dist/polyfills/buffer/index.d.ts.map +0 -1
- package/dist/polyfills/buffer/index.js +0 -9
- package/dist/polyfills/buffer/index.js.map +0 -1
- package/dist/polyfills/buffer/install-buffer-polyfill.d.ts +0 -2
- package/dist/polyfills/buffer/install-buffer-polyfill.d.ts.map +0 -1
- package/dist/polyfills/buffer/install-buffer-polyfill.js +0 -10
- package/dist/polyfills/buffer/install-buffer-polyfill.js.map +0 -1
- package/dist/workers/parquet-json-worker.d.ts +0 -2
- package/dist/workers/parquet-json-worker.d.ts.map +0 -1
- package/dist/workers/parquet-json-worker.js +0 -7
- package/dist/workers/parquet-json-worker.js.map +0 -1
- package/src/parquet-arrow-loader.ts +0 -74
- package/src/parquet-arrow-writer.ts +0 -33
- package/src/parquet-json-loader.ts +0 -160
- package/src/parquet-json-writer.ts +0 -27
- package/src/parquetjs/modules.d.ts +0 -25
- package/src/polyfills/buffer/buffer-polyfill.browser.ts +0 -14
- package/src/polyfills/buffer/buffer-polyfill.node.ts +0 -19
- package/src/polyfills/buffer/buffer.ts +0 -2205
- package/src/polyfills/buffer/index.ts +0 -11
- package/src/polyfills/buffer/install-buffer-polyfill.ts +0 -12
- package/src/workers/parquet-json-worker.ts +0 -8
|
@@ -0,0 +1,608 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
import * as arrow from 'apache-arrow';
|
|
5
|
+
import { convertTable, deserializeArrowType } from '@loaders.gl/schema-utils';
|
|
6
|
+
import { preloadCompressions } from "../../parquetjs/compression.js";
|
|
7
|
+
import { ParquetReader } from "../../parquetjs/parser/parquet-reader.js";
|
|
8
|
+
import { materializeColumn, materializeRows } from "../../parquetjs/schema/shred.js";
|
|
9
|
+
import { createNestedArrowVector } from "../arrow/create-nested-arrow-vector.js";
|
|
10
|
+
import { getSchemaFromParquetReader } from "./get-parquet-schema.js";
|
|
11
|
+
/** Largest byte value copied inline to avoid TypedArray#set call overhead. */
|
|
12
|
+
const MAXIMUM_INLINE_BYTE_COPY_LENGTH = 7;
|
|
13
|
+
/** Primitive Arrow type instances used by serialized Parquet schemas. */
|
|
14
|
+
const PARQUET_ARROW_PRIMITIVE_TYPES = {
|
|
15
|
+
binary: new arrow.Binary(),
|
|
16
|
+
bool: new arrow.Bool(),
|
|
17
|
+
float32: new arrow.Float32(),
|
|
18
|
+
float64: new arrow.Float64(),
|
|
19
|
+
int8: new arrow.Int8(),
|
|
20
|
+
int16: new arrow.Int16(),
|
|
21
|
+
int32: new arrow.Int32(),
|
|
22
|
+
int64: new arrow.Int64(),
|
|
23
|
+
uint8: new arrow.Uint8(),
|
|
24
|
+
uint16: new arrow.Uint16(),
|
|
25
|
+
uint32: new arrow.Uint32(),
|
|
26
|
+
uint64: new arrow.Uint64(),
|
|
27
|
+
utf8: new arrow.Utf8()
|
|
28
|
+
};
|
|
29
|
+
/** Arrow schema that preserves identity when Apache Arrow assigns its existing fields. */
|
|
30
|
+
class ParquetArrowSchema extends arrow.Schema {
|
|
31
|
+
/** Whether the next exact field assignment may reuse this schema. */
|
|
32
|
+
reuseIdentityAssignment = false;
|
|
33
|
+
/** Enables identity reuse for one synchronous Arrow RecordBatch construction. */
|
|
34
|
+
enableIdentityAssignmentReuse() {
|
|
35
|
+
this.reuseIdentityAssignment = true;
|
|
36
|
+
}
|
|
37
|
+
/** Restores Apache Arrow's normal public assignment semantics. */
|
|
38
|
+
disableIdentityAssignmentReuse() {
|
|
39
|
+
this.reuseIdentityAssignment = false;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Avoids cloning fields and merging metadata when assignment is already an exact match.
|
|
43
|
+
* @param assignments schemas or fields to merge into this schema
|
|
44
|
+
* @returns this schema for an identity assignment, otherwise Apache Arrow's assigned schema
|
|
45
|
+
*/
|
|
46
|
+
assign(...assignments) {
|
|
47
|
+
const firstAssignment = assignments[0];
|
|
48
|
+
if (this.reuseIdentityAssignment &&
|
|
49
|
+
assignments.length === 1 &&
|
|
50
|
+
Array.isArray(firstAssignment) &&
|
|
51
|
+
firstAssignment.length === this.fields.length &&
|
|
52
|
+
firstAssignment.every((field, index) => field === this.fields[index])) {
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
55
|
+
const assignedSchema = assignments.length === 1 && firstAssignment instanceof arrow.Schema
|
|
56
|
+
? super.assign(firstAssignment)
|
|
57
|
+
: super.assign(...assignments);
|
|
58
|
+
return new ParquetArrowSchema(assignedSchema.fields, assignedSchema.metadata, assignedSchema.dictionaries, assignedSchema.metadataVersion);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Parses a Parquet file with the TypeScript implementation directly into Arrow batches.
|
|
63
|
+
* @param file readable Parquet file
|
|
64
|
+
* @param options loader options applied before Arrow conversion
|
|
65
|
+
* @returns Arrow table containing the decoded rows
|
|
66
|
+
*/
|
|
67
|
+
export async function parseParquetFileToArrowWithJs(file, options) {
|
|
68
|
+
const recordBatches = [];
|
|
69
|
+
let schema;
|
|
70
|
+
for await (const batch of parseParquetFileToArrowInBatchesWithJs(file, options)) {
|
|
71
|
+
schema ||= batch.schema;
|
|
72
|
+
recordBatches.push(...batch.data.batches);
|
|
73
|
+
}
|
|
74
|
+
schema ||= await readProjectedSchema(file, options);
|
|
75
|
+
const table = recordBatches.length
|
|
76
|
+
? new arrow.Table(recordBatches)
|
|
77
|
+
: new arrow.Table(createParquetArrowSchema(schema), []);
|
|
78
|
+
return { shape: 'arrow-table', data: table, schema };
|
|
79
|
+
}
|
|
80
|
+
/** Reads the projected loaders.gl schema when row selection produces no Arrow record batches. */
|
|
81
|
+
async function readProjectedSchema(file, options) {
|
|
82
|
+
const reader = new ParquetReader(file, {
|
|
83
|
+
preserveBinary: options?.parquet?.preserveBinary
|
|
84
|
+
});
|
|
85
|
+
return projectSchema(await getSchemaFromParquetReader(reader), options?.parquet?.columns);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Parses a Parquet file in batches with the TypeScript implementation and materializes Arrow directly
|
|
89
|
+
* from decoded columns whenever the selected schema is flat.
|
|
90
|
+
* @param file readable Parquet file
|
|
91
|
+
* @param options loader options applied before Arrow conversion
|
|
92
|
+
* @returns asynchronous Arrow table batches
|
|
93
|
+
*/
|
|
94
|
+
export async function* parseParquetFileToArrowInBatchesWithJs(file, options) {
|
|
95
|
+
await preloadCompressions(options);
|
|
96
|
+
const reader = new ParquetReader(file, {
|
|
97
|
+
preserveBinary: options?.parquet?.preserveBinary,
|
|
98
|
+
retainByteArrayViews: true,
|
|
99
|
+
useTypedValueBuffers: true,
|
|
100
|
+
useTypedLevelBuffers: true
|
|
101
|
+
});
|
|
102
|
+
const schema = projectSchema(await getSchemaFromParquetReader(reader), options?.parquet?.columns);
|
|
103
|
+
const arrowSchema = createParquetArrowSchema(schema);
|
|
104
|
+
const parquetSchema = await reader.getSchema();
|
|
105
|
+
const rowGroups = reader.rowGroupIterator(getParquetIterationProps(options));
|
|
106
|
+
const rowOffset = Math.max(0, options?.parquet?.offset || 0);
|
|
107
|
+
const rowLimit = options?.parquet?.limit;
|
|
108
|
+
const requestedBatchSize = options?.parquet?.batchSize;
|
|
109
|
+
let rowsVisited = 0;
|
|
110
|
+
let rowsYielded = 0;
|
|
111
|
+
for await (const rowGroup of rowGroups) {
|
|
112
|
+
const selectionStart = Math.min(rowGroup.rowCount, Math.max(0, rowOffset - rowsVisited));
|
|
113
|
+
const availableRowCount = rowGroup.rowCount - selectionStart;
|
|
114
|
+
const remainingRowCount = rowLimit === undefined
|
|
115
|
+
? availableRowCount
|
|
116
|
+
: Math.max(0, Math.min(availableRowCount, rowLimit - rowsYielded));
|
|
117
|
+
const selectionEnd = selectionStart + remainingRowCount;
|
|
118
|
+
rowsVisited += rowGroup.rowCount;
|
|
119
|
+
if (selectionEnd <= selectionStart) {
|
|
120
|
+
if (rowLimit !== undefined && rowsYielded >= rowLimit) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
const arrowTable = convertRowGroupSliceToArrow(schema, arrowSchema, parquetSchema, rowGroup, selectionStart, selectionEnd);
|
|
126
|
+
const batchSize = requestedBatchSize && requestedBatchSize > 0 ? requestedBatchSize : remainingRowCount;
|
|
127
|
+
for (let batchStart = selectionStart; batchStart < selectionEnd; batchStart += batchSize) {
|
|
128
|
+
const batchEnd = Math.min(batchStart + batchSize, selectionEnd);
|
|
129
|
+
const batchTable = sliceArrowTable(arrowTable, batchStart - selectionStart, batchEnd - selectionStart);
|
|
130
|
+
const length = batchEnd - batchStart;
|
|
131
|
+
yield {
|
|
132
|
+
batchType: 'data',
|
|
133
|
+
shape: batchTable.shape,
|
|
134
|
+
schema: batchTable.schema,
|
|
135
|
+
data: batchTable.data,
|
|
136
|
+
length
|
|
137
|
+
};
|
|
138
|
+
rowsYielded += length;
|
|
139
|
+
}
|
|
140
|
+
if (rowLimit !== undefined && rowsYielded >= rowLimit) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/** Converts a loaders.gl schema into the identity-aware Arrow schema used by Parquet batches. */
|
|
146
|
+
function createParquetArrowSchema(schema) {
|
|
147
|
+
return new ParquetArrowSchema(schema.fields.map(field => createParquetArrowField(field)), createParquetArrowMetadata(schema.metadata));
|
|
148
|
+
}
|
|
149
|
+
/** Hydrates one serialized Parquet field without generic Arrow conversion allocations. */
|
|
150
|
+
function createParquetArrowField(field) {
|
|
151
|
+
return new arrow.Field(field.name, createParquetArrowType(field.type), field.nullable, createParquetArrowMetadata(field.metadata));
|
|
152
|
+
}
|
|
153
|
+
/** Reuses immutable primitive Arrow types and falls back for composite serialized types. */
|
|
154
|
+
function createParquetArrowType(dataType) {
|
|
155
|
+
const primitiveType = typeof dataType === 'string' ? PARQUET_ARROW_PRIMITIVE_TYPES[dataType] : undefined;
|
|
156
|
+
return primitiveType || deserializeArrowType(dataType);
|
|
157
|
+
}
|
|
158
|
+
/** Hydrates serialized Parquet metadata without an intermediate entries array. */
|
|
159
|
+
function createParquetArrowMetadata(metadata) {
|
|
160
|
+
const arrowMetadata = new Map();
|
|
161
|
+
if (metadata) {
|
|
162
|
+
for (const key of Object.keys(metadata)) {
|
|
163
|
+
arrowMetadata.set(key, metadata[key]);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return arrowMetadata;
|
|
167
|
+
}
|
|
168
|
+
/** Builds Arrow from one selected row-group range with per-column fallbacks. */
|
|
169
|
+
function convertRowGroupSliceToArrow(schema, arrowSchema, parquetSchema, rowGroup, start, end) {
|
|
170
|
+
const vectors = {};
|
|
171
|
+
let materializedRows;
|
|
172
|
+
for (const field of arrowSchema.fields) {
|
|
173
|
+
const parquetField = parquetSchema.findField(field.name);
|
|
174
|
+
const columnData = rowGroup.columnData[field.name];
|
|
175
|
+
const nestedVector = createNestedArrowVector(field.type, parquetField, rowGroup, start, end);
|
|
176
|
+
if (nestedVector) {
|
|
177
|
+
vectors[field.name] = nestedVector;
|
|
178
|
+
continue;
|
|
179
|
+
}
|
|
180
|
+
const decimalVector = createDecimalArrowVector(field.type, parquetField, columnData, start, end);
|
|
181
|
+
if (decimalVector) {
|
|
182
|
+
vectors[field.name] = decimalVector;
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
const primitiveVector = createRawPrimitiveArrowVector(field.type, parquetField, columnData, start, end);
|
|
186
|
+
if (primitiveVector) {
|
|
187
|
+
vectors[field.name] = primitiveVector;
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
190
|
+
const byteVector = createRawByteArrowVector(field.type, parquetField, columnData, start, end);
|
|
191
|
+
if (byteVector) {
|
|
192
|
+
vectors[field.name] = byteVector;
|
|
193
|
+
continue;
|
|
194
|
+
}
|
|
195
|
+
let fullColumn = materializeColumn(parquetSchema, rowGroup, field.name);
|
|
196
|
+
if (!fullColumn && parquetField.fields) {
|
|
197
|
+
materializedRows ||= materializeRows(parquetSchema, rowGroup);
|
|
198
|
+
const fallbackTable = {
|
|
199
|
+
shape: 'object-row-table',
|
|
200
|
+
schema: {
|
|
201
|
+
...schema,
|
|
202
|
+
fields: schema.fields.filter(schemaField => schemaField.name === field.name)
|
|
203
|
+
},
|
|
204
|
+
data: materializedRows.slice(start, end)
|
|
205
|
+
};
|
|
206
|
+
const fallbackArrowTable = convertTable(fallbackTable, 'arrow-table');
|
|
207
|
+
const fallbackVector = fallbackArrowTable.data.getChild(field.name);
|
|
208
|
+
if (!fallbackVector) {
|
|
209
|
+
throw new Error(`Failed to materialize nested Parquet column ${field.name}`);
|
|
210
|
+
}
|
|
211
|
+
vectors[field.name] = fallbackVector;
|
|
212
|
+
continue;
|
|
213
|
+
}
|
|
214
|
+
fullColumn ||= new Array(rowGroup.rowCount).fill(null);
|
|
215
|
+
const column = sliceColumn(fullColumn, start, end);
|
|
216
|
+
vectors[field.name] = arrow.vectorFromArray(normalizeArrowColumn(column, field.type), field.type);
|
|
217
|
+
}
|
|
218
|
+
return {
|
|
219
|
+
shape: 'arrow-table',
|
|
220
|
+
schema,
|
|
221
|
+
data: createArrowTable(arrowSchema, vectors, end - start)
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
/** Creates an exact Arrow Decimal128/256 vector from unscaled Parquet decimal values. */
|
|
225
|
+
function createDecimalArrowVector(arrowType, parquetField, columnData, start, end) {
|
|
226
|
+
if (!(arrowType instanceof arrow.Decimal) || !columnData) {
|
|
227
|
+
return undefined;
|
|
228
|
+
}
|
|
229
|
+
const rowCount = end - start;
|
|
230
|
+
const wordCount = arrowType.bitWidth / 32;
|
|
231
|
+
const data = new Uint32Array(rowCount * wordCount);
|
|
232
|
+
const nullBitmap = parquetField.dLevelMax ? new Uint8Array(Math.ceil(rowCount / 8)) : undefined;
|
|
233
|
+
let nullCount = 0;
|
|
234
|
+
let valueIndex = 0;
|
|
235
|
+
if (nullBitmap) {
|
|
236
|
+
for (let rowIndex = 0; rowIndex < start; rowIndex++) {
|
|
237
|
+
if (columnData.dlevels[rowIndex] === parquetField.dLevelMax)
|
|
238
|
+
valueIndex++;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
valueIndex = start;
|
|
243
|
+
}
|
|
244
|
+
for (let rowIndex = 0; rowIndex < rowCount; rowIndex++) {
|
|
245
|
+
const sourceRowIndex = start + rowIndex;
|
|
246
|
+
if (!nullBitmap || columnData.dlevels[sourceRowIndex] === parquetField.dLevelMax) {
|
|
247
|
+
writeArrowDecimal(data, rowIndex * wordCount, wordCount, getUnscaledDecimal(columnData.values[valueIndex++]), arrowType.bitWidth);
|
|
248
|
+
if (nullBitmap)
|
|
249
|
+
nullBitmap[rowIndex >> 3] |= 1 << (rowIndex & 7);
|
|
250
|
+
}
|
|
251
|
+
else {
|
|
252
|
+
nullCount++;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
return new arrow.Vector([
|
|
256
|
+
arrow.makeData({
|
|
257
|
+
type: arrowType,
|
|
258
|
+
data,
|
|
259
|
+
nullBitmap: nullCount ? nullBitmap : undefined,
|
|
260
|
+
nullCount
|
|
261
|
+
})
|
|
262
|
+
]);
|
|
263
|
+
}
|
|
264
|
+
/** Converts one Parquet decimal physical value to its signed unscaled integer. */
|
|
265
|
+
function getUnscaledDecimal(value) {
|
|
266
|
+
if (typeof value === 'bigint')
|
|
267
|
+
return value;
|
|
268
|
+
if (typeof value === 'number')
|
|
269
|
+
return BigInt(value);
|
|
270
|
+
const bytes = value;
|
|
271
|
+
let unsignedValue = 0n;
|
|
272
|
+
for (const byte of bytes)
|
|
273
|
+
unsignedValue = (unsignedValue << 8n) | BigInt(byte);
|
|
274
|
+
return bytes.length && bytes[0] & 0x80
|
|
275
|
+
? unsignedValue - (1n << BigInt(bytes.length * 8))
|
|
276
|
+
: unsignedValue;
|
|
277
|
+
}
|
|
278
|
+
/** Writes one signed bigint into Arrow's little-endian two's-complement decimal buffer. */
|
|
279
|
+
function writeArrowDecimal(data, offset, wordCount, value, bitWidth) {
|
|
280
|
+
const minimum = -(1n << BigInt(bitWidth - 1));
|
|
281
|
+
const maximum = (1n << BigInt(bitWidth - 1)) - 1n;
|
|
282
|
+
if (value < minimum || value > maximum) {
|
|
283
|
+
throw new Error(`Parquet decimal value ${value} exceeds Arrow Decimal${bitWidth}`);
|
|
284
|
+
}
|
|
285
|
+
let unsignedValue = BigInt.asUintN(bitWidth, value);
|
|
286
|
+
for (let wordIndex = 0; wordIndex < wordCount; wordIndex++) {
|
|
287
|
+
data[offset + wordIndex] = Number(unsignedValue & 0xffffffffn);
|
|
288
|
+
unsignedValue >>= 32n;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
/** Creates an Arrow table while retaining row counts for a schema with no projected fields. */
|
|
292
|
+
function createArrowTable(schema, vectors, rowCount) {
|
|
293
|
+
if (schema.fields.length) {
|
|
294
|
+
// Every vector represents one row-group slice and therefore has one data chunk. Supplying the
|
|
295
|
+
// Struct directly avoids Arrow Table's generic vector redistribution and schema reassignment.
|
|
296
|
+
const children = schema.fields.map(field => vectors[field.name].data[0]);
|
|
297
|
+
const data = arrow.makeData({
|
|
298
|
+
type: new arrow.Struct(schema.fields),
|
|
299
|
+
length: rowCount,
|
|
300
|
+
nullCount: 0,
|
|
301
|
+
children
|
|
302
|
+
});
|
|
303
|
+
const recordBatch = createParquetRecordBatch(schema, data);
|
|
304
|
+
return new arrow.Table(recordBatch);
|
|
305
|
+
}
|
|
306
|
+
if (rowCount === 0) {
|
|
307
|
+
return new arrow.Table(schema, vectors);
|
|
308
|
+
}
|
|
309
|
+
const recordBatch = createParquetRecordBatch(schema, arrow.makeData({ type: new arrow.Struct([]), children: [] }));
|
|
310
|
+
// Apache Arrow JS derives RecordBatch length from its children and therefore resets an empty
|
|
311
|
+
// Struct to zero rows. Restore the explicit Parquet selection length after construction.
|
|
312
|
+
Object.defineProperty(recordBatch.data, 'length', { value: rowCount });
|
|
313
|
+
return new arrow.Table(schema, [recordBatch]);
|
|
314
|
+
}
|
|
315
|
+
/** Constructs a RecordBatch while restricting schema identity reuse to the synchronous call. */
|
|
316
|
+
function createParquetRecordBatch(schema, data) {
|
|
317
|
+
if (!(schema instanceof ParquetArrowSchema)) {
|
|
318
|
+
return new arrow.RecordBatch(schema, data);
|
|
319
|
+
}
|
|
320
|
+
schema.enableIdentityAssignmentReuse();
|
|
321
|
+
try {
|
|
322
|
+
return new arrow.RecordBatch(schema, data);
|
|
323
|
+
}
|
|
324
|
+
finally {
|
|
325
|
+
schema.disableIdentityAssignmentReuse();
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
/** Creates a fixed-width Arrow vector directly from decoded primitive Parquet values. */
|
|
329
|
+
function createRawPrimitiveArrowVector(arrowType, parquetField, columnData, start, end) {
|
|
330
|
+
if (!columnData) {
|
|
331
|
+
return undefined;
|
|
332
|
+
}
|
|
333
|
+
const rowCount = end - start;
|
|
334
|
+
const directData = createRawPrimitiveArrowArrayView(arrowType, parquetField, columnData, start, end);
|
|
335
|
+
const data = directData || createRawPrimitiveArrowArray(arrowType, parquetField, rowCount);
|
|
336
|
+
if (!data) {
|
|
337
|
+
return undefined;
|
|
338
|
+
}
|
|
339
|
+
const nullBitmap = parquetField.dLevelMax ? new Uint8Array(Math.ceil(rowCount / 8)) : undefined;
|
|
340
|
+
let valueIndex = 0;
|
|
341
|
+
let nullCount = 0;
|
|
342
|
+
if (!nullBitmap) {
|
|
343
|
+
if (!directData) {
|
|
344
|
+
valueIndex = start;
|
|
345
|
+
for (let rowIndex = 0; rowIndex < rowCount; rowIndex++) {
|
|
346
|
+
setRawPrimitiveArrowValue(data, rowIndex, columnData.values[valueIndex++]);
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
else {
|
|
351
|
+
for (let rowIndex = 0; rowIndex < start; rowIndex++) {
|
|
352
|
+
if (columnData.dlevels[rowIndex] === parquetField.dLevelMax) {
|
|
353
|
+
valueIndex++;
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
for (let rowIndex = 0; rowIndex < rowCount; rowIndex++) {
|
|
357
|
+
const sourceRowIndex = start + rowIndex;
|
|
358
|
+
if (columnData.dlevels[sourceRowIndex] === parquetField.dLevelMax) {
|
|
359
|
+
setRawPrimitiveArrowValue(data, rowIndex, columnData.values[valueIndex++]);
|
|
360
|
+
nullBitmap[rowIndex >> 3] |= 1 << (rowIndex & 7);
|
|
361
|
+
}
|
|
362
|
+
else {
|
|
363
|
+
nullCount++;
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
const nulls = nullCount ? nullBitmap : undefined;
|
|
368
|
+
return new arrow.Vector([
|
|
369
|
+
arrow.makeData({ type: arrowType, data, nullBitmap: nulls, nullCount })
|
|
370
|
+
]);
|
|
371
|
+
}
|
|
372
|
+
/** Reuses a typed decoded column as the Arrow value buffer for required primitive fields. */
|
|
373
|
+
function createRawPrimitiveArrowArrayView(arrowType, parquetField, columnData, start, end) {
|
|
374
|
+
if (parquetField.repetitionType !== 'REQUIRED') {
|
|
375
|
+
return undefined;
|
|
376
|
+
}
|
|
377
|
+
const values = columnData.values;
|
|
378
|
+
if (parquetField.primitiveType === 'FLOAT' &&
|
|
379
|
+
arrowType instanceof arrow.Float32 &&
|
|
380
|
+
values instanceof Float32Array) {
|
|
381
|
+
return values.subarray(start, end);
|
|
382
|
+
}
|
|
383
|
+
if (parquetField.primitiveType === 'DOUBLE' &&
|
|
384
|
+
arrowType instanceof arrow.Float64 &&
|
|
385
|
+
values instanceof Float64Array) {
|
|
386
|
+
return values.subarray(start, end);
|
|
387
|
+
}
|
|
388
|
+
if (parquetField.primitiveType === 'INT32' &&
|
|
389
|
+
(arrowType instanceof arrow.Int32 ||
|
|
390
|
+
arrowType instanceof arrow.DateDay ||
|
|
391
|
+
arrowType instanceof arrow.TimeMillisecond) &&
|
|
392
|
+
values instanceof Int32Array) {
|
|
393
|
+
return values.subarray(start, end);
|
|
394
|
+
}
|
|
395
|
+
if (parquetField.primitiveType === 'INT64' &&
|
|
396
|
+
(arrowType instanceof arrow.Int64 ||
|
|
397
|
+
arrowType instanceof arrow.TimeMicrosecond ||
|
|
398
|
+
arrowType instanceof arrow.TimeNanosecond ||
|
|
399
|
+
arrowType instanceof arrow.TimestampMillisecond ||
|
|
400
|
+
arrowType instanceof arrow.TimestampMicrosecond ||
|
|
401
|
+
arrowType instanceof arrow.TimestampNanosecond) &&
|
|
402
|
+
values instanceof BigInt64Array) {
|
|
403
|
+
return values.subarray(start, end);
|
|
404
|
+
}
|
|
405
|
+
return undefined;
|
|
406
|
+
}
|
|
407
|
+
/** Allocates the Arrow typed array matching an unconverted physical Parquet primitive. */
|
|
408
|
+
function createRawPrimitiveArrowArray(arrowType, parquetField, rowCount) {
|
|
409
|
+
if (parquetField.primitiveType === 'FLOAT' && arrowType instanceof arrow.Float32) {
|
|
410
|
+
return new Float32Array(rowCount);
|
|
411
|
+
}
|
|
412
|
+
if (parquetField.primitiveType === 'DOUBLE' && arrowType instanceof arrow.Float64) {
|
|
413
|
+
return new Float64Array(rowCount);
|
|
414
|
+
}
|
|
415
|
+
if (parquetField.primitiveType === 'INT32' && arrowType instanceof arrow.Int8) {
|
|
416
|
+
return new Int8Array(rowCount);
|
|
417
|
+
}
|
|
418
|
+
if (parquetField.primitiveType === 'INT32' && arrowType instanceof arrow.Int16) {
|
|
419
|
+
return new Int16Array(rowCount);
|
|
420
|
+
}
|
|
421
|
+
if (parquetField.primitiveType === 'INT32' &&
|
|
422
|
+
(arrowType instanceof arrow.Int32 ||
|
|
423
|
+
arrowType instanceof arrow.DateDay ||
|
|
424
|
+
arrowType instanceof arrow.TimeMillisecond)) {
|
|
425
|
+
return new Int32Array(rowCount);
|
|
426
|
+
}
|
|
427
|
+
if (parquetField.primitiveType === 'INT32' && arrowType instanceof arrow.Uint8) {
|
|
428
|
+
return new Uint8Array(rowCount);
|
|
429
|
+
}
|
|
430
|
+
if (parquetField.primitiveType === 'INT32' && arrowType instanceof arrow.Uint16) {
|
|
431
|
+
return new Uint16Array(rowCount);
|
|
432
|
+
}
|
|
433
|
+
if (parquetField.primitiveType === 'INT32' && arrowType instanceof arrow.Uint32) {
|
|
434
|
+
return new Uint32Array(rowCount);
|
|
435
|
+
}
|
|
436
|
+
if (parquetField.primitiveType === 'INT64' &&
|
|
437
|
+
(arrowType instanceof arrow.Int64 ||
|
|
438
|
+
arrowType instanceof arrow.TimeMicrosecond ||
|
|
439
|
+
arrowType instanceof arrow.TimeNanosecond ||
|
|
440
|
+
arrowType instanceof arrow.TimestampMillisecond ||
|
|
441
|
+
arrowType instanceof arrow.TimestampMicrosecond ||
|
|
442
|
+
arrowType instanceof arrow.TimestampNanosecond)) {
|
|
443
|
+
return new BigInt64Array(rowCount);
|
|
444
|
+
}
|
|
445
|
+
if (parquetField.primitiveType === 'INT64' && arrowType instanceof arrow.Uint64) {
|
|
446
|
+
return new BigUint64Array(rowCount);
|
|
447
|
+
}
|
|
448
|
+
return undefined;
|
|
449
|
+
}
|
|
450
|
+
/** Writes a decoded primitive into the exact TypedArray expected by Arrow. */
|
|
451
|
+
function setRawPrimitiveArrowValue(data, index, value) {
|
|
452
|
+
if (data instanceof BigInt64Array) {
|
|
453
|
+
data[index] = typeof value === 'bigint' ? value : BigInt(value);
|
|
454
|
+
}
|
|
455
|
+
else if (data instanceof BigUint64Array) {
|
|
456
|
+
data[index] = BigInt.asUintN(64, typeof value === 'bigint' ? value : BigInt(value));
|
|
457
|
+
}
|
|
458
|
+
else {
|
|
459
|
+
data[index] = Number(value);
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
/** Creates an Arrow Utf8 or Binary vector directly from decoded Parquet byte arrays. */
|
|
463
|
+
function createRawByteArrowVector(arrowType, parquetField, columnData, start, end) {
|
|
464
|
+
if (!columnData || !supportsRawByteArrowVector(arrowType, parquetField)) {
|
|
465
|
+
return undefined;
|
|
466
|
+
}
|
|
467
|
+
const rowCount = end - start;
|
|
468
|
+
const valueOffsets = new Int32Array(rowCount + 1);
|
|
469
|
+
const byteValues = columnData.values;
|
|
470
|
+
const nullBitmap = parquetField.dLevelMax ? new Uint8Array(Math.ceil(rowCount / 8)) : undefined;
|
|
471
|
+
let valueIndex = 0;
|
|
472
|
+
let firstValueIndex = 0;
|
|
473
|
+
let dataByteLength = 0;
|
|
474
|
+
let nullCount = 0;
|
|
475
|
+
if (!nullBitmap) {
|
|
476
|
+
valueIndex = start;
|
|
477
|
+
firstValueIndex = valueIndex;
|
|
478
|
+
for (let rowIndex = 0; rowIndex < rowCount; rowIndex++) {
|
|
479
|
+
dataByteLength += byteValues[valueIndex++].byteLength;
|
|
480
|
+
if (dataByteLength > 0x7fffffff) {
|
|
481
|
+
throw new Error('Arrow Utf8/Binary column exceeds the 32-bit offset range');
|
|
482
|
+
}
|
|
483
|
+
valueOffsets[rowIndex + 1] = dataByteLength;
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
else {
|
|
487
|
+
for (let rowIndex = 0; rowIndex < start; rowIndex++) {
|
|
488
|
+
if (columnData.dlevels[rowIndex] === parquetField.dLevelMax) {
|
|
489
|
+
valueIndex++;
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
firstValueIndex = valueIndex;
|
|
493
|
+
for (let rowIndex = 0; rowIndex < rowCount; rowIndex++) {
|
|
494
|
+
const sourceRowIndex = start + rowIndex;
|
|
495
|
+
if (columnData.dlevels[sourceRowIndex] === parquetField.dLevelMax) {
|
|
496
|
+
dataByteLength += byteValues[valueIndex++].byteLength;
|
|
497
|
+
nullBitmap[rowIndex >> 3] |= 1 << (rowIndex & 7);
|
|
498
|
+
}
|
|
499
|
+
else {
|
|
500
|
+
nullCount++;
|
|
501
|
+
}
|
|
502
|
+
if (dataByteLength > 0x7fffffff) {
|
|
503
|
+
throw new Error('Arrow Utf8/Binary column exceeds the 32-bit offset range');
|
|
504
|
+
}
|
|
505
|
+
valueOffsets[rowIndex + 1] = dataByteLength;
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
const data = new Uint8Array(dataByteLength);
|
|
509
|
+
let dataOffset = 0;
|
|
510
|
+
for (let index = firstValueIndex; index < valueIndex; index++) {
|
|
511
|
+
const bytes = byteValues[index];
|
|
512
|
+
if (bytes.byteLength <= MAXIMUM_INLINE_BYTE_COPY_LENGTH) {
|
|
513
|
+
for (let byteIndex = 0; byteIndex < bytes.byteLength; byteIndex++) {
|
|
514
|
+
data[dataOffset++] = bytes[byteIndex];
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
else {
|
|
518
|
+
data.set(bytes, dataOffset);
|
|
519
|
+
dataOffset += bytes.byteLength;
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
const nulls = nullCount ? nullBitmap : undefined;
|
|
523
|
+
if (arrowType instanceof arrow.Utf8) {
|
|
524
|
+
return new arrow.Vector([
|
|
525
|
+
arrow.makeData({
|
|
526
|
+
type: arrowType,
|
|
527
|
+
valueOffsets,
|
|
528
|
+
data,
|
|
529
|
+
nullBitmap: nulls,
|
|
530
|
+
nullCount
|
|
531
|
+
})
|
|
532
|
+
]);
|
|
533
|
+
}
|
|
534
|
+
if (arrowType instanceof arrow.Binary) {
|
|
535
|
+
return new arrow.Vector([
|
|
536
|
+
arrow.makeData({
|
|
537
|
+
type: arrowType,
|
|
538
|
+
valueOffsets,
|
|
539
|
+
data,
|
|
540
|
+
nullBitmap: nulls,
|
|
541
|
+
nullCount
|
|
542
|
+
})
|
|
543
|
+
]);
|
|
544
|
+
}
|
|
545
|
+
return undefined;
|
|
546
|
+
}
|
|
547
|
+
/** Returns whether one flat Parquet byte column maps directly to Arrow Utf8 or Binary. */
|
|
548
|
+
function supportsRawByteArrowVector(arrowType, parquetField) {
|
|
549
|
+
if (arrowType instanceof arrow.Utf8) {
|
|
550
|
+
return parquetField.originalType === 'UTF8' || parquetField.originalType === 'ENUM';
|
|
551
|
+
}
|
|
552
|
+
if (arrowType instanceof arrow.Binary) {
|
|
553
|
+
return ((!parquetField.originalType ||
|
|
554
|
+
parquetField.originalType === 'GEOMETRY' ||
|
|
555
|
+
parquetField.originalType === 'GEOGRAPHY') &&
|
|
556
|
+
(parquetField.primitiveType === 'BYTE_ARRAY' ||
|
|
557
|
+
parquetField.primitiveType === 'FIXED_LEN_BYTE_ARRAY'));
|
|
558
|
+
}
|
|
559
|
+
return false;
|
|
560
|
+
}
|
|
561
|
+
/** Normalizes JavaScript values that Apache Arrow's 64-bit integer builders require as bigints. */
|
|
562
|
+
function normalizeArrowColumn(column, type) {
|
|
563
|
+
if (!(type instanceof arrow.Int) || type.bitWidth !== 64) {
|
|
564
|
+
return column;
|
|
565
|
+
}
|
|
566
|
+
return Array.from(column, value => {
|
|
567
|
+
if (value === null || value === undefined || typeof value === 'bigint') {
|
|
568
|
+
return value;
|
|
569
|
+
}
|
|
570
|
+
if (value instanceof Date) {
|
|
571
|
+
return BigInt(value.getTime());
|
|
572
|
+
}
|
|
573
|
+
return BigInt(value);
|
|
574
|
+
});
|
|
575
|
+
}
|
|
576
|
+
/** Slices one Arrow table while preserving the loaders.gl schema wrapper. */
|
|
577
|
+
function sliceArrowTable(table, start, end) {
|
|
578
|
+
if (start === 0 && end === table.data.numRows) {
|
|
579
|
+
return table;
|
|
580
|
+
}
|
|
581
|
+
if (table.data.numCols === 0) {
|
|
582
|
+
return { ...table, data: createArrowTable(table.data.schema, {}, end - start) };
|
|
583
|
+
}
|
|
584
|
+
return { ...table, data: table.data.slice(start, end) };
|
|
585
|
+
}
|
|
586
|
+
/** Slices an arbitrary column while preserving efficient native slice implementations. */
|
|
587
|
+
function sliceColumn(column, start, end) {
|
|
588
|
+
if ('slice' in column && typeof column.slice === 'function') {
|
|
589
|
+
return column.slice(start, end);
|
|
590
|
+
}
|
|
591
|
+
return Array.from(column).slice(start, end);
|
|
592
|
+
}
|
|
593
|
+
/** Creates row-group projection properties from public loader options. */
|
|
594
|
+
function getParquetIterationProps(options) {
|
|
595
|
+
const columnList = options?.parquet?.columns;
|
|
596
|
+
return columnList?.length ? { columnList } : undefined;
|
|
597
|
+
}
|
|
598
|
+
/** Restricts the loaders.gl schema to explicitly selected top-level columns. */
|
|
599
|
+
function projectSchema(schema, columns) {
|
|
600
|
+
if (!columns?.length) {
|
|
601
|
+
return schema;
|
|
602
|
+
}
|
|
603
|
+
return {
|
|
604
|
+
...schema,
|
|
605
|
+
fields: schema.fields.filter(field => columns.includes(field.name))
|
|
606
|
+
};
|
|
607
|
+
}
|
|
608
|
+
//# sourceMappingURL=parse-parquet-to-arrow-js.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-parquet-to-arrow-js.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-arrow-js.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAYtC,OAAO,EAAC,YAAY,EAAE,oBAAoB,EAAC,MAAM,0BAA0B,CAAC;AAG5E,OAAO,EAAC,mBAAmB,EAAC,uCAAoC;AAChE,OAAO,EAAC,aAAa,EAAC,iDAA8C;AAOpE,OAAO,EAAC,iBAAiB,EAAE,eAAe,EAAC,wCAAqC;AAChF,OAAO,EAAC,uBAAuB,EAAC,+CAA4C;AAC5E,OAAO,EAAC,0BAA0B,EAAC,gCAA6B;AAEhE,8EAA8E;AAC9E,MAAM,+BAA+B,GAAG,CAAC,CAAC;AAE1C,yEAAyE;AACzE,MAAM,6BAA6B,GAA+D;IAChG,MAAM,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE;IAC1B,IAAI,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE;IACtB,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE;IAC5B,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE;IAC5B,IAAI,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE;IACtB,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;IACxB,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;IACxB,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;IACxB,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;IACxB,MAAM,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE;IAC1B,MAAM,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE;IAC1B,MAAM,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE;IAC1B,IAAI,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE;CACvB,CAAC;AAKF,0FAA0F;AAC1F,MAAM,kBAAmB,SAAQ,KAAK,CAAC,MAAM;IAC3C,qEAAqE;IAC7D,uBAAuB,GAAG,KAAK,CAAC;IAExC,iFAAiF;IACjF,6BAA6B;QAC3B,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;IACtC,CAAC;IAED,kEAAkE;IAClE,8BAA8B;QAC5B,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACM,MAAM,CAAC,GAAG,WAAoC;QACrD,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QACvC,IACE,IAAI,CAAC,uBAAuB;YAC5B,WAAW,CAAC,MAAM,KAAK,CAAC;YACxB,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC;YAC9B,eAAe,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM;YAC7C,eAAe,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EACrE,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,cAAc,GAClB,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,eAAe,YAAY,KAAK,CAAC,MAAM;YACjE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC;YAC/B,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAI,WAAkD,CAAC,CAAC;QAC3E,OAAO,IAAI,kBAAkB,CAC3B,cAAc,CAAC,MAAM,EACrB,cAAc,CAAC,QAAQ,EACvB,cAAc,CAAC,YAAY,EAC3B,cAAc,CAAC,eAAe,CAC/B,CAAC;IACJ,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,IAAkB,EAClB,OAAgC;IAEhC,MAAM,aAAa,GAAwB,EAAE,CAAC;IAC9C,IAAI,MAA0B,CAAC;IAE/B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,sCAAsC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QAChF,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC;QACxB,aAAa,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,KAAK,MAAM,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM;QAChC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC;QAChC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1D,OAAO,EAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAC,CAAC;AACrD,CAAC;AAED,iGAAiG;AACjG,KAAK,UAAU,mBAAmB,CAChC,IAAkB,EAClB,OAAgC;IAEhC,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE;QACrC,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc;KACjD,CAAC,CAAC;IACH,OAAO,aAAa,CAAC,MAAM,0BAA0B,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5F,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,sCAAsC,CAC3D,IAAkB,EAClB,OAAgC;IAEhC,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAEnC,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE;QACrC,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc;QAChD,oBAAoB,EAAE,IAAI;QAC1B,oBAAoB,EAAE,IAAI;QAC1B,oBAAoB,EAAE,IAAI;KAC3B,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,0BAA0B,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAClG,MAAM,WAAW,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;IAC/C,MAAM,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC;IACzC,MAAM,kBAAkB,GAAG,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC;IACvD,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACvC,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC;QACzF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,GAAG,cAAc,CAAC;QAC7D,MAAM,iBAAiB,GACrB,QAAQ,KAAK,SAAS;YACpB,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC;QACvE,MAAM,YAAY,GAAG,cAAc,GAAG,iBAAiB,CAAC;QACxD,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAAC;QAEjC,IAAI,YAAY,IAAI,cAAc,EAAE,CAAC;YACnC,IAAI,QAAQ,KAAK,SAAS,IAAI,WAAW,IAAI,QAAQ,EAAE,CAAC;gBACtD,OAAO;YACT,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GAAG,2BAA2B,CAC5C,MAAM,EACN,WAAW,EACX,aAAa,EACb,QAAQ,EACR,cAAc,EACd,YAAY,CACb,CAAC;QACF,MAAM,SAAS,GACb,kBAAkB,IAAI,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAExF,KAAK,IAAI,UAAU,GAAG,cAAc,EAAE,UAAU,GAAG,YAAY,EAAE,UAAU,IAAI,SAAS,EAAE,CAAC;YACzF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,SAAS,EAAE,YAAY,CAAC,CAAC;YAChE,MAAM,UAAU,GAAG,eAAe,CAChC,UAAU,EACV,UAAU,GAAG,cAAc,EAC3B,QAAQ,GAAG,cAAc,CAC1B,CAAC;YACF,MAAM,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;YAErC,MAAM;gBACJ,SAAS,EAAE,MAAM;gBACjB,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,MAAM;aACP,CAAC;YACF,WAAW,IAAI,MAAM,CAAC;QACxB,CAAC;QAED,IAAI,QAAQ,KAAK,SAAS,IAAI,WAAW,IAAI,QAAQ,EAAE,CAAC;YACtD,OAAO;QACT,CAAC;IACH,CAAC;AACH,CAAC;AAED,iGAAiG;AACjG,SAAS,wBAAwB,CAAC,MAAc;IAC9C,OAAO,IAAI,kBAAkB,CAC3B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,EAC1D,0BAA0B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAC5C,CAAC;AACJ,CAAC;AAED,0FAA0F;AAC1F,SAAS,uBAAuB,CAAC,KAAY;IAC3C,OAAO,IAAI,KAAK,CAAC,KAAK,CACpB,KAAK,CAAC,IAAI,EACV,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,EAClC,KAAK,CAAC,QAAQ,EACd,0BAA0B,CAAC,KAAK,CAAC,QAAQ,CAAC,CAC3C,CAAC;AACJ,CAAC;AAED,4FAA4F;AAC5F,SAAS,sBAAsB,CAAC,QAAkB;IAChD,MAAM,aAAa,GACjB,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,6BAA6B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrF,OAAO,aAAa,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AACzD,CAAC;AAED,kFAAkF;AAClF,SAAS,0BAA0B,CAAC,QAAyB;IAC3D,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAChD,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,gFAAgF;AAChF,SAAS,2BAA2B,CAClC,MAAc,EACd,WAAyB,EACzB,aAA4B,EAC5B,QAAyB,EACzB,KAAa,EACb,GAAW;IAEX,MAAM,OAAO,GAAiC,EAAE,CAAC;IACjD,IAAI,gBAAuD,CAAC;IAC5D,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;QACvC,MAAM,YAAY,GAAG,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,YAAY,GAAG,uBAAuB,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7F,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;YACnC,SAAS;QACX,CAAC;QACD,MAAM,aAAa,GAAG,wBAAwB,CAC5C,KAAK,CAAC,IAAI,EACV,YAAY,EACZ,UAAU,EACV,KAAK,EACL,GAAG,CACJ,CAAC;QACF,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC;YACpC,SAAS;QACX,CAAC;QACD,MAAM,eAAe,GAAG,6BAA6B,CACnD,KAAK,CAAC,IAAI,EACV,YAAY,EACZ,UAAU,EACV,KAAK,EACL,GAAG,CACJ,CAAC;QACF,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC;YACtC,SAAS;QACX,CAAC;QACD,MAAM,UAAU,GAAG,wBAAwB,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QAC9F,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;YACjC,SAAS;QACX,CAAC;QAED,IAAI,UAAU,GAAG,iBAAiB,CAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACxE,IAAI,CAAC,UAAU,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YACvC,gBAAgB,KAAK,eAAe,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;YAC9D,MAAM,aAAa,GAAmB;gBACpC,KAAK,EAAE,kBAAkB;gBACzB,MAAM,EAAE;oBACN,GAAG,MAAM;oBACT,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC;iBAC7E;gBACD,IAAI,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;aACzC,CAAC;YACF,MAAM,kBAAkB,GAAG,YAAY,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;YACtE,MAAM,cAAc,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,+CAA+C,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/E,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC;YACrC,SAAS;QACX,CAAC;QACD,UAAU,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACnD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,eAAe,CACzC,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,EACxC,KAAK,CAAC,IAAI,CACX,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,aAAa;QACpB,MAAM;QACN,IAAI,EAAE,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,GAAG,KAAK,CAAC;KAC1D,CAAC;AACJ,CAAC;AAED,yFAAyF;AACzF,SAAS,wBAAwB,CAC/B,SAAyB,EACzB,YAA0B,EAC1B,UAA0C,EAC1C,KAAa,EACb,GAAW;IAEX,IAAI,CAAC,CAAC,SAAS,YAAY,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACzD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,GAAG,GAAG,KAAK,CAAC;IAC7B,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,GAAG,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChG,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;YACpD,IAAI,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,YAAY,CAAC,SAAS;gBAAE,UAAU,EAAE,CAAC;QAC5E,CAAC;IACH,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC;QACvD,MAAM,cAAc,GAAG,KAAK,GAAG,QAAQ,CAAC;QACxC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,YAAY,CAAC,SAAS,EAAE,CAAC;YACjF,iBAAiB,CACf,IAAI,EACJ,QAAQ,GAAG,SAAS,EACpB,SAAS,EACT,kBAAkB,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,EACnD,SAAS,CAAC,QAAQ,CACnB,CAAC;YACF,IAAI,UAAU;gBAAE,UAAU,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACN,SAAS,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC;QACtB,KAAK,CAAC,QAAQ,CAAC;YACb,IAAI,EAAE,SAAS;YACf,IAAI;YACJ,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YAC9C,SAAS;SACV,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED,kFAAkF;AAClF,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,KAAmB,CAAC;IAClC,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,aAAa,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/E,OAAO,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;QACpC,CAAC,CAAC,aAAa,GAAG,CAAC,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC,aAAa,CAAC;AACpB,CAAC;AAED,2FAA2F;AAC3F,SAAS,iBAAiB,CACxB,IAAiB,EACjB,MAAc,EACd,SAAiB,EACjB,KAAa,EACb,QAAgB;IAEhB,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,CAAC,EAAE,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAClD,IAAI,KAAK,GAAG,OAAO,IAAI,KAAK,GAAG,OAAO,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,yBAAyB,QAAQ,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACpD,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC;QAC3D,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC,aAAa,GAAG,WAAW,CAAC,CAAC;QAC/D,aAAa,KAAK,GAAG,CAAC;IACxB,CAAC;AACH,CAAC;AAED,+FAA+F;AAC/F,SAAS,gBAAgB,CACvB,MAAoB,EACpB,OAAqC,EACrC,QAAgB;IAEhB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACzB,8FAA8F;QAC9F,8FAA8F;QAC9F,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC;YAC1B,IAAI,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;YACrC,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,CAAC;YACZ,QAAQ;SACT,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC3D,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,WAAW,GAAG,wBAAwB,CAC1C,MAAM,EACN,KAAK,CAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAC,CAC3D,CAAC;IACF,6FAA6F;IAC7F,yFAAyF;IACzF,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAC,KAAK,EAAE,QAAQ,EAAC,CAAC,CAAC;IACrE,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,gGAAgG;AAChG,SAAS,wBAAwB,CAC/B,MAAoB,EACpB,IAA8B;IAE9B,IAAI,CAAC,CAAC,MAAM,YAAY,kBAAkB,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,6BAA6B,EAAE,CAAC;IACvC,IAAI,CAAC;QACH,OAAO,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,8BAA8B,EAAE,CAAC;IAC1C,CAAC;AACH,CAAC;AAeD,yFAAyF;AACzF,SAAS,6BAA6B,CACpC,SAAyB,EACzB,YAA0B,EAC1B,UAA0C,EAC1C,KAAa,EACb,GAAW;IAEX,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,GAAG,GAAG,KAAK,CAAC;IAC7B,MAAM,UAAU,GAAG,gCAAgC,CACjD,SAAS,EACT,YAAY,EACZ,UAAU,EACV,KAAK,EACL,GAAG,CACJ,CAAC;IACF,MAAM,IAAI,GAAG,UAAU,IAAI,4BAA4B,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC3F,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChG,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,UAAU,GAAG,KAAK,CAAC;YACnB,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC;gBACvD,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;YACpD,IAAI,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,YAAY,CAAC,SAAS,EAAE,CAAC;gBAC5D,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC;QACD,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC;YACvD,MAAM,cAAc,GAAG,KAAK,GAAG,QAAQ,CAAC;YACxC,IAAI,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,YAAY,CAAC,SAAS,EAAE,CAAC;gBAClE,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;gBAC3E,UAAU,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,SAAS,EAAE,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IACjD,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC;QACtB,KAAK,CAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAQ,CAAC;KAC7E,CAAC,CAAC;AACL,CAAC;AAED,6FAA6F;AAC7F,SAAS,gCAAgC,CACvC,SAAyB,EACzB,YAA0B,EAC1B,UAA8B,EAC9B,KAAa,EACb,GAAW;IAEX,IAAI,YAAY,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;QAC/C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IACjC,IACE,YAAY,CAAC,aAAa,KAAK,OAAO;QACtC,SAAS,YAAY,KAAK,CAAC,OAAO;QAClC,MAAM,YAAY,YAAY,EAC9B,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IACD,IACE,YAAY,CAAC,aAAa,KAAK,QAAQ;QACvC,SAAS,YAAY,KAAK,CAAC,OAAO;QAClC,MAAM,YAAY,YAAY,EAC9B,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IACD,IACE,YAAY,CAAC,aAAa,KAAK,OAAO;QACtC,CAAC,SAAS,YAAY,KAAK,CAAC,KAAK;YAC/B,SAAS,YAAY,KAAK,CAAC,OAAO;YAClC,SAAS,YAAY,KAAK,CAAC,eAAe,CAAC;QAC7C,MAAM,YAAY,UAAU,EAC5B,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IACD,IACE,YAAY,CAAC,aAAa,KAAK,OAAO;QACtC,CAAC,SAAS,YAAY,KAAK,CAAC,KAAK;YAC/B,SAAS,YAAY,KAAK,CAAC,eAAe;YAC1C,SAAS,YAAY,KAAK,CAAC,cAAc;YACzC,SAAS,YAAY,KAAK,CAAC,oBAAoB;YAC/C,SAAS,YAAY,KAAK,CAAC,oBAAoB;YAC/C,SAAS,YAAY,KAAK,CAAC,mBAAmB,CAAC;QACjD,MAAM,YAAY,aAAa,EAC/B,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,0FAA0F;AAC1F,SAAS,4BAA4B,CACnC,SAAyB,EACzB,YAA0B,EAC1B,QAAgB;IAEhB,IAAI,YAAY,CAAC,aAAa,KAAK,OAAO,IAAI,SAAS,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC;QACjF,OAAO,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,YAAY,CAAC,aAAa,KAAK,QAAQ,IAAI,SAAS,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC;QAClF,OAAO,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,YAAY,CAAC,aAAa,KAAK,OAAO,IAAI,SAAS,YAAY,KAAK,CAAC,IAAI,EAAE,CAAC;QAC9E,OAAO,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,YAAY,CAAC,aAAa,KAAK,OAAO,IAAI,SAAS,YAAY,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/E,OAAO,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IACD,IACE,YAAY,CAAC,aAAa,KAAK,OAAO;QACtC,CAAC,SAAS,YAAY,KAAK,CAAC,KAAK;YAC/B,SAAS,YAAY,KAAK,CAAC,OAAO;YAClC,SAAS,YAAY,KAAK,CAAC,eAAe,CAAC,EAC7C,CAAC;QACD,OAAO,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,aAAa,KAAK,OAAO,IAAI,SAAS,YAAY,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/E,OAAO,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,aAAa,KAAK,OAAO,IAAI,SAAS,YAAY,KAAK,CAAC,MAAM,EAAE,CAAC;QAChF,OAAO,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,YAAY,CAAC,aAAa,KAAK,OAAO,IAAI,SAAS,YAAY,KAAK,CAAC,MAAM,EAAE,CAAC;QAChF,OAAO,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IACD,IACE,YAAY,CAAC,aAAa,KAAK,OAAO;QACtC,CAAC,SAAS,YAAY,KAAK,CAAC,KAAK;YAC/B,SAAS,YAAY,KAAK,CAAC,eAAe;YAC1C,SAAS,YAAY,KAAK,CAAC,cAAc;YACzC,SAAS,YAAY,KAAK,CAAC,oBAAoB;YAC/C,SAAS,YAAY,KAAK,CAAC,oBAAoB;YAC/C,SAAS,YAAY,KAAK,CAAC,mBAAmB,CAAC,EACjD,CAAC;QACD,OAAO,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,YAAY,CAAC,aAAa,KAAK,OAAO,IAAI,SAAS,YAAY,KAAK,CAAC,MAAM,EAAE,CAAC;QAChF,OAAO,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,8EAA8E;AAC9E,SAAS,yBAAyB,CAChC,IAA4B,EAC5B,KAAa,EACb,KAAc;IAEd,IAAI,IAAI,YAAY,aAAa,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAwB,CAAC,CAAC;IACrF,CAAC;SAAM,IAAI,IAAI,YAAY,cAAc,EAAE,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,CAC1B,EAAE,EACF,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAwB,CAAC,CACrE,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,wFAAwF;AACxF,SAAS,wBAAwB,CAC/B,SAAyB,EACzB,YAA0B,EAC1B,UAA0C,EAC1C,KAAa,EACb,GAAW;IAEX,IAAI,CAAC,UAAU,IAAI,CAAC,0BAA0B,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC;QACxE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,GAAG,KAAK,CAAC;IAC7B,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,UAAU,CAAC,MAAsB,CAAC;IACrD,MAAM,UAAU,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChG,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,UAAU,GAAG,KAAK,CAAC;QACnB,eAAe,GAAG,UAAU,CAAC;QAC7B,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC;YACvD,cAAc,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC;YACtD,IAAI,cAAc,GAAG,UAAU,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;YAC9E,CAAC;YACD,YAAY,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC;QAC9C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;YACpD,IAAI,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,YAAY,CAAC,SAAS,EAAE,CAAC;gBAC5D,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC;QACD,eAAe,GAAG,UAAU,CAAC;QAC7B,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC;YACvD,MAAM,cAAc,GAAG,KAAK,GAAG,QAAQ,CAAC;YACxC,IAAI,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,YAAY,CAAC,SAAS,EAAE,CAAC;gBAClE,cAAc,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC;gBACtD,UAAU,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,SAAS,EAAE,CAAC;YACd,CAAC;YACD,IAAI,cAAc,GAAG,UAAU,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;YAC9E,CAAC;YACD,YAAY,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,cAAc,CAAC,CAAC;IAC5C,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,IAAI,KAAK,GAAG,eAAe,EAAE,KAAK,GAAG,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC;QAC9D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,KAAK,CAAC,UAAU,IAAI,+BAA+B,EAAE,CAAC;YACxD,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC;gBAClE,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAC5B,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC;QACjC,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IACjD,IAAI,SAAS,YAAY,KAAK,CAAC,IAAI,EAAE,CAAC;QACpC,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC;YACtB,KAAK,CAAC,QAAQ,CAAC;gBACb,IAAI,EAAE,SAAS;gBACf,YAAY;gBACZ,IAAI;gBACJ,UAAU,EAAE,KAAK;gBACjB,SAAS;aACV,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IACD,IAAI,SAAS,YAAY,KAAK,CAAC,MAAM,EAAE,CAAC;QACtC,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC;YACtB,KAAK,CAAC,QAAQ,CAAC;gBACb,IAAI,EAAE,SAAS;gBACf,YAAY;gBACZ,IAAI;gBACJ,UAAU,EAAE,KAAK;gBACjB,SAAS;aACV,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,0FAA0F;AAC1F,SAAS,0BAA0B,CACjC,SAAyB,EACzB,YAA0B;IAE1B,IAAI,SAAS,YAAY,KAAK,CAAC,IAAI,EAAE,CAAC;QACpC,OAAO,YAAY,CAAC,YAAY,KAAK,MAAM,IAAI,YAAY,CAAC,YAAY,KAAK,MAAM,CAAC;IACtF,CAAC;IACD,IAAI,SAAS,YAAY,KAAK,CAAC,MAAM,EAAE,CAAC;QACtC,OAAO,CACL,CAAC,CAAC,YAAY,CAAC,YAAY;YACzB,YAAY,CAAC,YAAY,KAAK,UAAU;YACxC,YAAY,CAAC,YAAY,KAAK,WAAW,CAAC;YAC5C,CAAC,YAAY,CAAC,aAAa,KAAK,YAAY;gBAC1C,YAAY,CAAC,aAAa,KAAK,sBAAsB,CAAC,CACzD,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,mGAAmG;AACnG,SAAS,oBAAoB,CAC3B,MAA0B,EAC1B,IAAoB;IAEpB,IAAI,CAAC,CAAC,IAAI,YAAY,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;QACzD,OAAO,MAA4B,CAAC;IACtC,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;QAChC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC1B,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,MAAM,CAAC,KAAwB,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,6EAA6E;AAC7E,SAAS,eAAe,CAAC,KAAiB,EAAE,KAAa,EAAE,GAAW;IACpE,IAAI,KAAK,KAAK,CAAC,IAAI,GAAG,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAC,GAAG,KAAK,EAAE,IAAI,EAAE,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,KAAK,CAAC,EAAC,CAAC;IAChF,CAAC;IACD,OAAO,EAAC,GAAG,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,EAAC,CAAC;AACxD,CAAC;AAED,0FAA0F;AAC1F,SAAS,WAAW,CAAC,MAA0B,EAAE,KAAa,EAAE,GAAW;IACzE,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QAC5D,OAAQ,MAAM,CAAC,KAAmD,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED,0EAA0E;AAC1E,SAAS,wBAAwB,CAC/B,OAAgC;IAEhC,MAAM,UAAU,GAAG,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IAC7C,OAAO,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,EAAC,UAAU,EAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,gFAAgF;AAChF,SAAS,aAAa,CAAC,MAAc,EAAE,OAAkB;IACvD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO;QACL,GAAG,MAAM;QACT,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACpE,CAAC;AACJ,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { ReadableFile } from '@loaders.gl/loader-utils';
|
|
2
2
|
import type { ArrowTable, ArrowTableBatch } from '@loaders.gl/schema';
|
|
3
|
-
import type * as parquetWasm from 'parquet-wasm';
|
|
4
|
-
|
|
5
|
-
wasmUrl
|
|
6
|
-
}
|
|
7
|
-
export declare function
|
|
8
|
-
|
|
9
|
-
}
|
|
3
|
+
import type * as parquetWasm from 'parquet-wasm/esm/parquet_wasm.js';
|
|
4
|
+
type ParquetWasmReaderOptions = parquetWasm.ReaderOptions & {
|
|
5
|
+
wasmUrl?: string;
|
|
6
|
+
};
|
|
7
|
+
export declare function parseParquetFileToArrow(file: ReadableFile, options?: ParquetWasmReaderOptions): Promise<ArrowTable>;
|
|
8
|
+
export declare function parseParquetFileToArrowInBatches(file: ReadableFile, options?: ParquetWasmReaderOptions): AsyncIterable<ArrowTableBatch>;
|
|
9
|
+
export {};
|
|
10
10
|
//# sourceMappingURL=parse-parquet-to-arrow.d.ts.map
|