@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
|
@@ -19,9 +19,9 @@ export interface WriteStreamOptions {
|
|
|
19
19
|
start?: number;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
export function oswrite(os: stream.Writable, buf:
|
|
22
|
+
export function oswrite(os: stream.Writable, buf: Uint8Array): Promise<void> {
|
|
23
23
|
return new Promise((resolve, reject) => {
|
|
24
|
-
os.write(buf,
|
|
24
|
+
os.write(buf, err => {
|
|
25
25
|
if (err) {
|
|
26
26
|
reject(err);
|
|
27
27
|
} else {
|
|
@@ -46,7 +46,7 @@ export function osclose(os: stream.Writable): Promise<void> {
|
|
|
46
46
|
export function osopen(path: string, opts?: WriteStreamOptions): Promise<fs.WriteStream> {
|
|
47
47
|
return new Promise((resolve, reject) => {
|
|
48
48
|
const outputStream = fs.createWriteStream(path, opts as any);
|
|
49
|
-
outputStream.once('open',
|
|
50
|
-
outputStream.once('error',
|
|
49
|
+
outputStream.once('open', _fd => resolve(outputStream));
|
|
50
|
+
outputStream.once('error', err => reject(err));
|
|
51
51
|
});
|
|
52
52
|
}
|
|
@@ -4,83 +4,79 @@
|
|
|
4
4
|
// Copyright (c) 2017 ironSource Ltd.
|
|
5
5
|
// Forked from https://github.com/kbajalc/parquets under MIT license
|
|
6
6
|
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
FileMetaData,
|
|
12
|
-
PageHeader
|
|
13
|
-
} from '../parquet-thrift/index';
|
|
14
|
-
|
|
15
|
-
class UFramedTransport extends TFramedTransport {
|
|
16
|
-
public readPos: number = 0;
|
|
17
|
-
}
|
|
7
|
+
import {FileMetaData, PageHeader} from '../parquet-thrift/index';
|
|
8
|
+
import {Uint8ArrayCompactProtocol} from './uint8-array-compact-protocol';
|
|
9
|
+
import {Uint8ArrayCompactProtocolWriter} from './uint8-array-compact-protocol-writer';
|
|
10
|
+
import {Uint8ArrayTransport} from './uint8-array-transport';
|
|
18
11
|
|
|
19
12
|
/**
|
|
20
13
|
* Helper function that serializes a thrift object into a buffer
|
|
21
14
|
*/
|
|
22
|
-
export function serializeThrift(obj: any):
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
output.push(buf as unknown as Buffer);
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
const protocol = new TCompactProtocol(transport);
|
|
30
|
-
obj.write(protocol);
|
|
31
|
-
transport.flush();
|
|
32
|
-
|
|
33
|
-
return Buffer.concat(output as Uint8Array[]);
|
|
15
|
+
export function serializeThrift(obj: any): Uint8Array {
|
|
16
|
+
const protocol = new Uint8ArrayCompactProtocolWriter();
|
|
17
|
+
obj.write(protocol as any);
|
|
18
|
+
return protocol.getBytes();
|
|
34
19
|
}
|
|
35
20
|
|
|
36
|
-
export function decodeThrift(obj: any, buf:
|
|
21
|
+
export function decodeThrift(obj: any, buf: Uint8Array, offset?: number) {
|
|
37
22
|
if (!offset) {
|
|
38
23
|
// tslint:disable-next-line:no-parameter-reassignment
|
|
39
24
|
offset = 0;
|
|
40
25
|
}
|
|
41
26
|
|
|
42
|
-
const transport = new
|
|
27
|
+
const transport = new Uint8ArrayTransport(buf);
|
|
43
28
|
transport.readPos = offset;
|
|
44
|
-
const protocol = new
|
|
29
|
+
const protocol = new Uint8ArrayCompactProtocol(transport);
|
|
45
30
|
obj.read(protocol);
|
|
46
31
|
return transport.readPos - offset;
|
|
47
32
|
}
|
|
48
33
|
|
|
49
34
|
/**
|
|
50
|
-
*
|
|
35
|
+
* Returns the generated TypeScript enum member for a Thrift value.
|
|
36
|
+
* @param thriftEnum generated numeric enum object
|
|
37
|
+
* @param value serialized enum value
|
|
38
|
+
* @returns enum member name
|
|
51
39
|
*/
|
|
52
|
-
export function getThriftEnum(
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
40
|
+
export function getThriftEnum(thriftEnum: object, value: number | string): string {
|
|
41
|
+
const enumValues = thriftEnum as Record<string | number, number | string>;
|
|
42
|
+
if (typeof value === 'number') {
|
|
43
|
+
const enumName = enumValues[value];
|
|
44
|
+
if (typeof enumName === 'string') {
|
|
45
|
+
return enumName;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
for (const enumName in enumValues) {
|
|
50
|
+
if (enumValues[enumName] === value) {
|
|
51
|
+
return enumName;
|
|
56
52
|
}
|
|
57
53
|
}
|
|
58
54
|
throw new Error('Invalid ENUM value');
|
|
59
55
|
}
|
|
60
56
|
|
|
61
|
-
export function decodeFileMetadata(buf:
|
|
57
|
+
export function decodeFileMetadata(buf: Uint8Array, offset?: number) {
|
|
62
58
|
if (!offset) {
|
|
63
59
|
// tslint:disable-next-line:no-parameter-reassignment
|
|
64
60
|
offset = 0;
|
|
65
61
|
}
|
|
66
62
|
|
|
67
|
-
const transport = new
|
|
63
|
+
const transport = new Uint8ArrayTransport(buf);
|
|
68
64
|
transport.readPos = offset;
|
|
69
|
-
const protocol = new
|
|
70
|
-
const metadata = FileMetaData.read(protocol);
|
|
65
|
+
const protocol = new Uint8ArrayCompactProtocol(transport);
|
|
66
|
+
const metadata = FileMetaData.read(protocol as any);
|
|
71
67
|
return {length: transport.readPos - offset, metadata};
|
|
72
68
|
}
|
|
73
69
|
|
|
74
|
-
export function decodePageHeader(buf:
|
|
70
|
+
export function decodePageHeader(buf: Uint8Array, offset?: number) {
|
|
75
71
|
if (!offset) {
|
|
76
72
|
// tslint:disable-next-line:no-parameter-reassignment
|
|
77
73
|
offset = 0;
|
|
78
74
|
}
|
|
79
75
|
|
|
80
|
-
const transport = new
|
|
76
|
+
const transport = new Uint8ArrayTransport(buf);
|
|
81
77
|
transport.readPos = offset;
|
|
82
|
-
const protocol = new
|
|
83
|
-
const pageHeader = PageHeader.read(protocol);
|
|
78
|
+
const protocol = new Uint8ArrayCompactProtocol(transport);
|
|
79
|
+
const pageHeader = PageHeader.read(protocol as any);
|
|
84
80
|
return {length: transport.readPos - offset, pageHeader};
|
|
85
81
|
}
|
|
86
82
|
|
|
@@ -95,26 +91,31 @@ export function getBitWidth(val: number): number {
|
|
|
95
91
|
return Math.ceil(Math.log2(val + 1));
|
|
96
92
|
}
|
|
97
93
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
94
|
+
/**
|
|
95
|
+
* Finds the selected field path that contains a Parquet leaf path.
|
|
96
|
+
* A selected parent includes all descendant leaves. MQTT-style `+` and `#` path wildcards are
|
|
97
|
+
* retained for internal callers (`+` matches one segment and `#` matches all remaining segments).
|
|
98
|
+
*/
|
|
101
99
|
export function fieldIndexOf(arr: string[][], elem: string[]): number {
|
|
102
|
-
for (let
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
continue; // eslint-disable-line no-continue
|
|
100
|
+
for (let fieldIndex = 0; fieldIndex < arr.length; fieldIndex++) {
|
|
101
|
+
const selectedPath = arr[fieldIndex];
|
|
102
|
+
let matches = true;
|
|
103
|
+
for (let pathIndex = 0; pathIndex < selectedPath.length; pathIndex++) {
|
|
104
|
+
const selectedSegment = selectedPath[pathIndex];
|
|
105
|
+
if (selectedSegment === '#') {
|
|
106
|
+
return fieldIndex;
|
|
110
107
|
}
|
|
111
|
-
if (
|
|
112
|
-
|
|
108
|
+
if (
|
|
109
|
+
pathIndex >= elem.length ||
|
|
110
|
+
(selectedSegment !== '+' && selectedSegment !== elem[pathIndex])
|
|
111
|
+
) {
|
|
112
|
+
matches = false;
|
|
113
|
+
break;
|
|
113
114
|
}
|
|
114
|
-
m = false;
|
|
115
|
-
break;
|
|
116
115
|
}
|
|
117
|
-
if (
|
|
116
|
+
if (matches) {
|
|
117
|
+
return fieldIndex;
|
|
118
|
+
}
|
|
118
119
|
}
|
|
119
120
|
return -1;
|
|
120
121
|
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
5
|
+
/** Minimal Thrift runtime types needed by the generated Parquet metadata classes. */
|
|
6
|
+
export namespace Thrift {
|
|
7
|
+
/** Thrift wire types used by the Parquet compact protocol. */
|
|
8
|
+
export enum Type {
|
|
9
|
+
STOP = 0,
|
|
10
|
+
VOID = 1,
|
|
11
|
+
BOOL = 2,
|
|
12
|
+
BYTE = 3,
|
|
13
|
+
DOUBLE = 4,
|
|
14
|
+
I16 = 6,
|
|
15
|
+
I32 = 8,
|
|
16
|
+
I64 = 10,
|
|
17
|
+
STRING = 11,
|
|
18
|
+
STRUCT = 12,
|
|
19
|
+
MAP = 13,
|
|
20
|
+
SET = 14,
|
|
21
|
+
LIST = 15,
|
|
22
|
+
UTF8 = 16,
|
|
23
|
+
UTF16 = 17
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/** Protocol failure categories retained for generated-code compatibility. */
|
|
27
|
+
export enum TProtocolExceptionType {
|
|
28
|
+
UNKNOWN = 0,
|
|
29
|
+
INVALID_DATA = 1,
|
|
30
|
+
NEGATIVE_SIZE = 2,
|
|
31
|
+
SIZE_LIMIT = 3,
|
|
32
|
+
BAD_VERSION = 4,
|
|
33
|
+
NOT_IMPLEMENTED = 5,
|
|
34
|
+
DEPTH_LIMIT = 6
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/** Error raised when generated metadata cannot be encoded or decoded. */
|
|
38
|
+
export class TProtocolException extends Error {
|
|
39
|
+
/** Thrift protocol error category. */
|
|
40
|
+
readonly type: TProtocolExceptionType;
|
|
41
|
+
|
|
42
|
+
/** Creates a protocol exception without importing the Node-oriented thrift package. */
|
|
43
|
+
constructor(type: TProtocolExceptionType, message = 'Thrift protocol error') {
|
|
44
|
+
super(message);
|
|
45
|
+
this.name = 'TProtocolException';
|
|
46
|
+
this.type = type;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/** Thrift struct descriptor returned by compact-protocol readers. */
|
|
52
|
+
export type TStruct = {fname: string};
|
|
53
|
+
|
|
54
|
+
/** Thrift field descriptor returned by compact-protocol readers. */
|
|
55
|
+
export type TField = {fname: string; ftype: Thrift.Type; fid: number};
|
|
56
|
+
|
|
57
|
+
/** Thrift map descriptor returned by compact-protocol readers. */
|
|
58
|
+
export type TMap = {ktype: Thrift.Type; vtype: Thrift.Type; size: number};
|
|
59
|
+
|
|
60
|
+
/** Thrift list descriptor returned by compact-protocol readers. */
|
|
61
|
+
export type TList = {etype: Thrift.Type; size: number};
|
|
62
|
+
|
|
63
|
+
/** Thrift set descriptor returned by compact-protocol readers. */
|
|
64
|
+
export type TSet = TList;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Compact-protocol surface consumed by the generated Parquet metadata classes.
|
|
68
|
+
* Binary values use typed-array views and remain browser-native.
|
|
69
|
+
*/
|
|
70
|
+
export interface TProtocol {
|
|
71
|
+
writeStructBegin(name: string): void;
|
|
72
|
+
writeStructEnd(): void;
|
|
73
|
+
writeFieldBegin(name: string, fieldType: Thrift.Type, fieldId: number): void;
|
|
74
|
+
writeFieldEnd(): void;
|
|
75
|
+
writeFieldStop(): void;
|
|
76
|
+
writeMapBegin(keyType: Thrift.Type, valueType: Thrift.Type, size: number): void;
|
|
77
|
+
writeMapEnd(): void;
|
|
78
|
+
writeListBegin(elementType: Thrift.Type, size: number): void;
|
|
79
|
+
writeListEnd(): void;
|
|
80
|
+
writeSetBegin(elementType: Thrift.Type, size: number): void;
|
|
81
|
+
writeSetEnd(): void;
|
|
82
|
+
writeBool(value: boolean): void;
|
|
83
|
+
writeByte(value: number): void;
|
|
84
|
+
writeI16(value: number): void;
|
|
85
|
+
writeI32(value: number): void;
|
|
86
|
+
writeI64(value: unknown): void;
|
|
87
|
+
writeDouble(value: number): void;
|
|
88
|
+
writeString(value: string): void;
|
|
89
|
+
writeBinary(value: ArrayBuffer | ArrayBufferView): void;
|
|
90
|
+
readStructBegin(): TStruct;
|
|
91
|
+
readStructEnd(): void;
|
|
92
|
+
readFieldBegin(): TField;
|
|
93
|
+
readFieldEnd(): void;
|
|
94
|
+
readMapBegin(): TMap;
|
|
95
|
+
readMapEnd(): void;
|
|
96
|
+
readListBegin(): TList;
|
|
97
|
+
readListEnd(): void;
|
|
98
|
+
readSetBegin(): TSet;
|
|
99
|
+
readSetEnd(): void;
|
|
100
|
+
readBool(): boolean;
|
|
101
|
+
readByte(): number;
|
|
102
|
+
readI16(): number;
|
|
103
|
+
readI32(): number;
|
|
104
|
+
readI64(): any;
|
|
105
|
+
readDouble(): number;
|
|
106
|
+
readString(): string;
|
|
107
|
+
readBinary(): Uint8Array;
|
|
108
|
+
skip(type: Thrift.Type): void;
|
|
109
|
+
}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
5
|
+
import * as thrift from './thrift-runtime';
|
|
6
|
+
import {concatUint8Arrays, encodeUtf8, toUint8Array, writeDoubleLE} from './binary-utils';
|
|
7
|
+
|
|
8
|
+
const COMPACT_TYPE_STOP = 0x00;
|
|
9
|
+
const COMPACT_TYPE_BOOLEAN_TRUE = 0x01;
|
|
10
|
+
const COMPACT_TYPE_BOOLEAN_FALSE = 0x02;
|
|
11
|
+
const COMPACT_TYPE_BYTE = 0x03;
|
|
12
|
+
const COMPACT_TYPE_I16 = 0x04;
|
|
13
|
+
const COMPACT_TYPE_I32 = 0x05;
|
|
14
|
+
const COMPACT_TYPE_I64 = 0x06;
|
|
15
|
+
const COMPACT_TYPE_DOUBLE = 0x07;
|
|
16
|
+
const COMPACT_TYPE_BINARY = 0x08;
|
|
17
|
+
const COMPACT_TYPE_LIST = 0x09;
|
|
18
|
+
const COMPACT_TYPE_SET = 0x0a;
|
|
19
|
+
const COMPACT_TYPE_MAP = 0x0b;
|
|
20
|
+
const COMPACT_TYPE_STRUCT = 0x0c;
|
|
21
|
+
|
|
22
|
+
type Int64Like = number | bigint | {toString(radix?: number): string; valueOf?: () => number};
|
|
23
|
+
|
|
24
|
+
/** Write-only Thrift compact protocol that assembles exact Uint8Array output. */
|
|
25
|
+
export class Uint8ArrayCompactProtocolWriter {
|
|
26
|
+
/** Serialized byte chunks accumulated by thrift write calls. */
|
|
27
|
+
private readonly chunks: Uint8Array[] = [];
|
|
28
|
+
|
|
29
|
+
/** Field id at the current nesting depth, used to emit compact field-id deltas. */
|
|
30
|
+
private lastFieldId = 0;
|
|
31
|
+
|
|
32
|
+
/** Parent struct field ids restored when nested structs end. */
|
|
33
|
+
private readonly lastFieldIds: number[] = [];
|
|
34
|
+
|
|
35
|
+
/** Boolean field header waiting for the following boolean payload. */
|
|
36
|
+
private pendingBooleanField: {fid: number} | null = null;
|
|
37
|
+
|
|
38
|
+
/** Enter a struct and reset the delta-encoded field id state. */
|
|
39
|
+
writeStructBegin(_name: string): void {
|
|
40
|
+
this.lastFieldIds.push(this.lastFieldId);
|
|
41
|
+
this.lastFieldId = 0;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/** Exit a struct and restore the parent field id state. */
|
|
45
|
+
writeStructEnd(): void {
|
|
46
|
+
this.lastFieldId = this.lastFieldIds.pop() || 0;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/** Write a field header, deferring boolean fields until their value is known. */
|
|
50
|
+
writeFieldBegin(_name: string, fieldType: thrift.Thrift.Type, fid: number): void {
|
|
51
|
+
if (fieldType === thrift.Thrift.Type.BOOL) {
|
|
52
|
+
this.pendingBooleanField = {fid};
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
this.writeFieldHeader(this.getCompactType(fieldType), fid);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/** Complete the current field; compact protocol has no field-end bytes. */
|
|
60
|
+
writeFieldEnd(): void {}
|
|
61
|
+
|
|
62
|
+
/** Write the stop marker that terminates a thrift struct. */
|
|
63
|
+
writeFieldStop(): void {
|
|
64
|
+
this.writeByteDirect(COMPACT_TYPE_STOP);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/** Write a map header with compact key/value element types. */
|
|
68
|
+
writeMapBegin(keyType: thrift.Thrift.Type, valueType: thrift.Thrift.Type, size: number): void {
|
|
69
|
+
if (size === 0) {
|
|
70
|
+
this.writeByteDirect(0);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
this.writeVarint32(size);
|
|
75
|
+
this.writeByteDirect((this.getCompactType(keyType) << 4) | this.getCompactType(valueType));
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/** Complete the current map; compact protocol has no map-end bytes. */
|
|
79
|
+
writeMapEnd(): void {}
|
|
80
|
+
|
|
81
|
+
/** Write a list header with compact element type and element count. */
|
|
82
|
+
writeListBegin(elementType: thrift.Thrift.Type, size: number): void {
|
|
83
|
+
this.writeCollectionBegin(elementType, size);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/** Complete the current list; compact protocol has no list-end bytes. */
|
|
87
|
+
writeListEnd(): void {}
|
|
88
|
+
|
|
89
|
+
/** Write a set header with compact element type and element count. */
|
|
90
|
+
writeSetBegin(elementType: thrift.Thrift.Type, size: number): void {
|
|
91
|
+
this.writeCollectionBegin(elementType, size);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/** Complete the current set; compact protocol has no set-end bytes. */
|
|
95
|
+
writeSetEnd(): void {}
|
|
96
|
+
|
|
97
|
+
/** Write a boolean, either inline in its field header or as a value byte. */
|
|
98
|
+
writeBool(value: boolean): void {
|
|
99
|
+
const compactType = value ? COMPACT_TYPE_BOOLEAN_TRUE : COMPACT_TYPE_BOOLEAN_FALSE;
|
|
100
|
+
if (this.pendingBooleanField) {
|
|
101
|
+
this.writeFieldHeader(compactType, this.pendingBooleanField.fid);
|
|
102
|
+
this.pendingBooleanField = null;
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
this.writeByteDirect(compactType);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/** Write a signed byte. */
|
|
110
|
+
writeByte(value: number): void {
|
|
111
|
+
this.writeByteDirect(value);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/** Write a signed 16-bit integer as zig-zag varint. */
|
|
115
|
+
writeI16(value: number): void {
|
|
116
|
+
this.writeI32(value);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/** Write a signed 32-bit integer as zig-zag varint. */
|
|
120
|
+
writeI32(value: number): void {
|
|
121
|
+
this.writeVarint32(this.encodeZigZag32(value));
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/** Write a signed 64-bit-like value as zig-zag varint. */
|
|
125
|
+
writeI64(value: Int64Like): void {
|
|
126
|
+
this.writeVarint64(this.encodeZigZag64(this.toBigInt(value)));
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/** Write a little-endian 64-bit float. */
|
|
130
|
+
writeDouble(value: number): void {
|
|
131
|
+
const bytes = new Uint8Array(8);
|
|
132
|
+
writeDoubleLE(bytes, value, 0);
|
|
133
|
+
this.writeBytes(bytes);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/** Write a length-prefixed UTF-8 string. */
|
|
137
|
+
writeString(value: string): void {
|
|
138
|
+
this.writeBinary(encodeUtf8(value));
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/** Write a length-prefixed binary payload from any typed-array view. */
|
|
142
|
+
writeBinary(value: ArrayBuffer | ArrayBufferView): void {
|
|
143
|
+
const bytes = toUint8Array(value);
|
|
144
|
+
this.writeVarint32(bytes.length);
|
|
145
|
+
this.writeBytes(bytes);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/** Return all serialized chunks as one contiguous byte array. */
|
|
149
|
+
getBytes(): Uint8Array {
|
|
150
|
+
return concatUint8Arrays(this.chunks);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/** Write a compact collection header for list or set values. */
|
|
154
|
+
private writeCollectionBegin(elementType: thrift.Thrift.Type, size: number): void {
|
|
155
|
+
const compactType = this.getCompactType(elementType);
|
|
156
|
+
if (size <= 14) {
|
|
157
|
+
this.writeByteDirect((size << 4) | compactType);
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
this.writeByteDirect(0xf0 | compactType);
|
|
162
|
+
this.writeVarint32(size);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/** Write a compact field header using a field-id delta when possible. */
|
|
166
|
+
private writeFieldHeader(compactType: number, fid: number): void {
|
|
167
|
+
const fieldIdDelta = fid - this.lastFieldId;
|
|
168
|
+
if (fieldIdDelta > 0 && fieldIdDelta <= 15) {
|
|
169
|
+
this.writeByteDirect((fieldIdDelta << 4) | compactType);
|
|
170
|
+
} else {
|
|
171
|
+
this.writeByteDirect(compactType);
|
|
172
|
+
this.writeI16(fid);
|
|
173
|
+
}
|
|
174
|
+
this.lastFieldId = fid;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/** Append an already serialized byte range without copying. */
|
|
178
|
+
private writeBytes(bytes: Uint8Array): void {
|
|
179
|
+
this.chunks.push(bytes);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/** Append one byte to the serialized output. */
|
|
183
|
+
private writeByteDirect(value: number): void {
|
|
184
|
+
this.chunks.push(new Uint8Array([value & 0xff]));
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/** Write an unsigned 32-bit value as a compact varint. */
|
|
188
|
+
private writeVarint32(value: number): void {
|
|
189
|
+
this.writeVarint64(BigInt(value >>> 0));
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/** Write an unsigned 64-bit value as a compact varint. */
|
|
193
|
+
private writeVarint64(value: bigint): void {
|
|
194
|
+
let nextValue = value;
|
|
195
|
+
while (true) {
|
|
196
|
+
if ((nextValue & ~0x7fn) === 0n) {
|
|
197
|
+
this.writeByteDirect(Number(nextValue));
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
this.writeByteDirect(Number((nextValue & 0x7fn) | 0x80n));
|
|
202
|
+
nextValue >>= 7n;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/** Encode a signed 32-bit integer as an unsigned zig-zag value. */
|
|
207
|
+
private encodeZigZag32(value: number): number {
|
|
208
|
+
return ((value << 1) ^ (value >> 31)) >>> 0;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/** Encode a signed 64-bit integer as an unsigned zig-zag value. */
|
|
212
|
+
private encodeZigZag64(value: bigint): bigint {
|
|
213
|
+
return (value << 1n) ^ (value >> 63n);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/** Normalize thrift int64-like values to bigint before zig-zag encoding. */
|
|
217
|
+
private toBigInt(value: Int64Like): bigint {
|
|
218
|
+
return typeof value === 'bigint' || typeof value === 'number'
|
|
219
|
+
? BigInt(value)
|
|
220
|
+
: BigInt(value.toString());
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
/** Convert a generated-thrift type to a compact protocol wire type. */
|
|
224
|
+
private getCompactType(thriftType: thrift.Thrift.Type): number {
|
|
225
|
+
switch (thriftType) {
|
|
226
|
+
case thrift.Thrift.Type.STOP:
|
|
227
|
+
return COMPACT_TYPE_STOP;
|
|
228
|
+
case thrift.Thrift.Type.BOOL:
|
|
229
|
+
return COMPACT_TYPE_BOOLEAN_TRUE;
|
|
230
|
+
case thrift.Thrift.Type.BYTE:
|
|
231
|
+
return COMPACT_TYPE_BYTE;
|
|
232
|
+
case thrift.Thrift.Type.I16:
|
|
233
|
+
return COMPACT_TYPE_I16;
|
|
234
|
+
case thrift.Thrift.Type.I32:
|
|
235
|
+
return COMPACT_TYPE_I32;
|
|
236
|
+
case thrift.Thrift.Type.I64:
|
|
237
|
+
return COMPACT_TYPE_I64;
|
|
238
|
+
case thrift.Thrift.Type.DOUBLE:
|
|
239
|
+
return COMPACT_TYPE_DOUBLE;
|
|
240
|
+
case thrift.Thrift.Type.STRING:
|
|
241
|
+
return COMPACT_TYPE_BINARY;
|
|
242
|
+
case thrift.Thrift.Type.LIST:
|
|
243
|
+
return COMPACT_TYPE_LIST;
|
|
244
|
+
case thrift.Thrift.Type.SET:
|
|
245
|
+
return COMPACT_TYPE_SET;
|
|
246
|
+
case thrift.Thrift.Type.MAP:
|
|
247
|
+
return COMPACT_TYPE_MAP;
|
|
248
|
+
case thrift.Thrift.Type.STRUCT:
|
|
249
|
+
return COMPACT_TYPE_STRUCT;
|
|
250
|
+
default:
|
|
251
|
+
throw new Error(`Unsupported thrift type: ${thriftType}`);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|