@loaders.gl/parquet 3.4.0-alpha.3 → 3.4.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/dist/dist.min.js +13 -13
  2. package/dist/dist.min.js.map +3 -3
  3. package/dist/es5/lib/arrow/convert-schema-from-parquet.js.map +1 -1
  4. package/dist/es5/lib/geo/decode-geo-metadata.js.map +1 -1
  5. package/dist/es5/lib/parsers/parse-parquet-to-columns.js.map +1 -1
  6. package/dist/es5/lib/wasm/encode-parquet-wasm.js.map +1 -1
  7. package/dist/es5/lib/wasm/parse-parquet-wasm.js.map +1 -1
  8. package/dist/es5/parquet-loader.js +1 -1
  9. package/dist/es5/parquet-wasm-loader.js +1 -1
  10. package/dist/es5/parquet-wasm-writer.js +1 -1
  11. package/dist/es5/parquet-writer.js +1 -1
  12. package/dist/es5/parquetjs/codecs/dictionary.js.map +1 -1
  13. package/dist/es5/parquetjs/codecs/plain.js.map +1 -1
  14. package/dist/es5/parquetjs/codecs/rle.js.map +1 -1
  15. package/dist/es5/parquetjs/compression.js +1 -6
  16. package/dist/es5/parquetjs/compression.js.map +1 -1
  17. package/dist/es5/parquetjs/encoder/parquet-encoder.js.map +1 -1
  18. package/dist/es5/parquetjs/parquet-thrift/BsonType.js.map +1 -1
  19. package/dist/es5/parquetjs/parquet-thrift/ColumnChunk.js.map +1 -1
  20. package/dist/es5/parquetjs/parquet-thrift/ColumnIndex.js.map +1 -1
  21. package/dist/es5/parquetjs/parquet-thrift/ColumnMetaData.js.map +1 -1
  22. package/dist/es5/parquetjs/parquet-thrift/ColumnOrder.js.map +1 -1
  23. package/dist/es5/parquetjs/parquet-thrift/DataPageHeader.js.map +1 -1
  24. package/dist/es5/parquetjs/parquet-thrift/DataPageHeaderV2.js.map +1 -1
  25. package/dist/es5/parquetjs/parquet-thrift/DateType.js.map +1 -1
  26. package/dist/es5/parquetjs/parquet-thrift/DecimalType.js.map +1 -1
  27. package/dist/es5/parquetjs/parquet-thrift/DictionaryPageHeader.js.map +1 -1
  28. package/dist/es5/parquetjs/parquet-thrift/EnumType.js.map +1 -1
  29. package/dist/es5/parquetjs/parquet-thrift/FileMetaData.js.map +1 -1
  30. package/dist/es5/parquetjs/parquet-thrift/IndexPageHeader.js.map +1 -1
  31. package/dist/es5/parquetjs/parquet-thrift/IntType.js.map +1 -1
  32. package/dist/es5/parquetjs/parquet-thrift/JsonType.js.map +1 -1
  33. package/dist/es5/parquetjs/parquet-thrift/KeyValue.js.map +1 -1
  34. package/dist/es5/parquetjs/parquet-thrift/ListType.js.map +1 -1
  35. package/dist/es5/parquetjs/parquet-thrift/LogicalType.js.map +1 -1
  36. package/dist/es5/parquetjs/parquet-thrift/MapType.js.map +1 -1
  37. package/dist/es5/parquetjs/parquet-thrift/MicroSeconds.js.map +1 -1
  38. package/dist/es5/parquetjs/parquet-thrift/MilliSeconds.js.map +1 -1
  39. package/dist/es5/parquetjs/parquet-thrift/NullType.js.map +1 -1
  40. package/dist/es5/parquetjs/parquet-thrift/OffsetIndex.js.map +1 -1
  41. package/dist/es5/parquetjs/parquet-thrift/PageEncodingStats.js.map +1 -1
  42. package/dist/es5/parquetjs/parquet-thrift/PageHeader.js.map +1 -1
  43. package/dist/es5/parquetjs/parquet-thrift/PageLocation.js.map +1 -1
  44. package/dist/es5/parquetjs/parquet-thrift/RowGroup.js.map +1 -1
  45. package/dist/es5/parquetjs/parquet-thrift/SchemaElement.js.map +1 -1
  46. package/dist/es5/parquetjs/parquet-thrift/SortingColumn.js.map +1 -1
  47. package/dist/es5/parquetjs/parquet-thrift/Statistics.js.map +1 -1
  48. package/dist/es5/parquetjs/parquet-thrift/StringType.js.map +1 -1
  49. package/dist/es5/parquetjs/parquet-thrift/TimeType.js.map +1 -1
  50. package/dist/es5/parquetjs/parquet-thrift/TimeUnit.js.map +1 -1
  51. package/dist/es5/parquetjs/parquet-thrift/TimestampType.js.map +1 -1
  52. package/dist/es5/parquetjs/parquet-thrift/TypeDefinedOrder.js.map +1 -1
  53. package/dist/es5/parquetjs/parquet-thrift/UUIDType.js.map +1 -1
  54. package/dist/es5/parquetjs/parser/decoders.js.map +1 -1
  55. package/dist/es5/parquetjs/parser/parquet-reader.js.map +1 -1
  56. package/dist/es5/parquetjs/schema/schema.js.map +1 -1
  57. package/dist/es5/parquetjs/schema/shred.js.map +1 -1
  58. package/dist/es5/parquetjs/schema/types.js.map +1 -1
  59. package/dist/es5/parquetjs/utils/file-utils.js.map +1 -1
  60. package/dist/es5/parquetjs/utils/read-utils.js.map +1 -1
  61. package/dist/esm/lib/arrow/convert-schema-from-parquet.js.map +1 -1
  62. package/dist/esm/lib/geo/decode-geo-metadata.js.map +1 -1
  63. package/dist/esm/lib/parsers/parse-parquet-to-columns.js.map +1 -1
  64. package/dist/esm/lib/wasm/encode-parquet-wasm.js.map +1 -1
  65. package/dist/esm/lib/wasm/parse-parquet-wasm.js.map +1 -1
  66. package/dist/esm/parquet-loader.js +1 -1
  67. package/dist/esm/parquet-wasm-loader.js +1 -1
  68. package/dist/esm/parquet-wasm-writer.js +1 -1
  69. package/dist/esm/parquet-writer.js +1 -1
  70. package/dist/esm/parquetjs/codecs/plain.js.map +1 -1
  71. package/dist/esm/parquetjs/codecs/rle.js.map +1 -1
  72. package/dist/esm/parquetjs/compression.js +2 -7
  73. package/dist/esm/parquetjs/compression.js.map +1 -1
  74. package/dist/esm/parquetjs/encoder/parquet-encoder.js.map +1 -1
  75. package/dist/esm/parquetjs/parquet-thrift/BsonType.js.map +1 -1
  76. package/dist/esm/parquetjs/parquet-thrift/ColumnChunk.js.map +1 -1
  77. package/dist/esm/parquetjs/parquet-thrift/ColumnIndex.js.map +1 -1
  78. package/dist/esm/parquetjs/parquet-thrift/ColumnMetaData.js.map +1 -1
  79. package/dist/esm/parquetjs/parquet-thrift/ColumnOrder.js.map +1 -1
  80. package/dist/esm/parquetjs/parquet-thrift/DataPageHeader.js.map +1 -1
  81. package/dist/esm/parquetjs/parquet-thrift/DataPageHeaderV2.js.map +1 -1
  82. package/dist/esm/parquetjs/parquet-thrift/DateType.js.map +1 -1
  83. package/dist/esm/parquetjs/parquet-thrift/DecimalType.js.map +1 -1
  84. package/dist/esm/parquetjs/parquet-thrift/DictionaryPageHeader.js.map +1 -1
  85. package/dist/esm/parquetjs/parquet-thrift/EnumType.js.map +1 -1
  86. package/dist/esm/parquetjs/parquet-thrift/FileMetaData.js.map +1 -1
  87. package/dist/esm/parquetjs/parquet-thrift/IndexPageHeader.js.map +1 -1
  88. package/dist/esm/parquetjs/parquet-thrift/IntType.js.map +1 -1
  89. package/dist/esm/parquetjs/parquet-thrift/JsonType.js.map +1 -1
  90. package/dist/esm/parquetjs/parquet-thrift/KeyValue.js.map +1 -1
  91. package/dist/esm/parquetjs/parquet-thrift/ListType.js.map +1 -1
  92. package/dist/esm/parquetjs/parquet-thrift/LogicalType.js.map +1 -1
  93. package/dist/esm/parquetjs/parquet-thrift/MapType.js.map +1 -1
  94. package/dist/esm/parquetjs/parquet-thrift/MicroSeconds.js.map +1 -1
  95. package/dist/esm/parquetjs/parquet-thrift/MilliSeconds.js.map +1 -1
  96. package/dist/esm/parquetjs/parquet-thrift/NullType.js.map +1 -1
  97. package/dist/esm/parquetjs/parquet-thrift/OffsetIndex.js.map +1 -1
  98. package/dist/esm/parquetjs/parquet-thrift/PageEncodingStats.js.map +1 -1
  99. package/dist/esm/parquetjs/parquet-thrift/PageHeader.js.map +1 -1
  100. package/dist/esm/parquetjs/parquet-thrift/PageLocation.js.map +1 -1
  101. package/dist/esm/parquetjs/parquet-thrift/RowGroup.js.map +1 -1
  102. package/dist/esm/parquetjs/parquet-thrift/SchemaElement.js.map +1 -1
  103. package/dist/esm/parquetjs/parquet-thrift/SortingColumn.js.map +1 -1
  104. package/dist/esm/parquetjs/parquet-thrift/Statistics.js.map +1 -1
  105. package/dist/esm/parquetjs/parquet-thrift/StringType.js.map +1 -1
  106. package/dist/esm/parquetjs/parquet-thrift/TimeType.js.map +1 -1
  107. package/dist/esm/parquetjs/parquet-thrift/TimeUnit.js.map +1 -1
  108. package/dist/esm/parquetjs/parquet-thrift/TimestampType.js.map +1 -1
  109. package/dist/esm/parquetjs/parquet-thrift/TypeDefinedOrder.js.map +1 -1
  110. package/dist/esm/parquetjs/parquet-thrift/UUIDType.js.map +1 -1
  111. package/dist/esm/parquetjs/parser/decoders.js.map +1 -1
  112. package/dist/esm/parquetjs/parser/parquet-reader.js.map +1 -1
  113. package/dist/esm/parquetjs/schema/schema.js.map +1 -1
  114. package/dist/esm/parquetjs/schema/shred.js.map +1 -1
  115. package/dist/esm/parquetjs/schema/types.js.map +1 -1
  116. package/dist/esm/parquetjs/utils/file-utils.js.map +1 -1
  117. package/dist/esm/parquetjs/utils/read-utils.js.map +1 -1
  118. package/dist/parquet-worker.js +13 -13
  119. package/dist/parquet-worker.js.map +3 -3
  120. package/dist/parquetjs/compression.d.ts +3 -0
  121. package/dist/parquetjs/compression.d.ts.map +1 -1
  122. package/dist/parquetjs/compression.js +9 -5
  123. package/package.json +6 -8
  124. package/src/parquetjs/compression.ts +10 -6
@@ -1 +1 @@
1
- {"version":3,"file":"convert-schema-from-parquet.js","names":["_schema","require","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","PARQUET_TYPE_MAPPING","BOOLEAN","Bool","INT32","Int32","INT64","Float64","INT96","FLOAT","Float32","DOUBLE","BYTE_ARRAY","Binary","FIXED_LEN_BYTE_ARRAY","UTF8","Utf8","DATE","TIME_MILLIS","Int64","TIME_MICROS","TIMESTAMP_MILLIS","TIMESTAMP_MICROS","UINT_8","UINT_16","Uint16","UINT_32","Uint32","UINT_64","Uint64","INT_8","Int8","INT_16","Int16","INT_32","INT_64","JSON","BSON","INTERVAL","DECIMAL_INT32","DECIMAL_INT64","DECIMAL_BYTE_ARRAY","DECIMAL_FIXED_LEN_BYTE_ARRAY","exports","convertSchemaFromParquet","parquetSchema","parquetMetadata","fields","getFields","schema","metadata","getSchemaMetadata","Schema","field","childFields","nestedField","Field","Struct","optional","push","FieldType","type","getFieldMetadata","arrowField","Map","key","stringify","set","keyValueList","key_value_metadata","_iterator","_step","_step$value"],"sources":["../../../../src/lib/arrow/convert-schema-from-parquet.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {ParquetSchema} from '../../parquetjs/schema/schema';\nimport type {FieldDefinition, ParquetField, ParquetType} from '../../parquetjs/schema/declare';\nimport {FileMetaData} from '@loaders.gl/parquet/parquetjs/parquet-thrift';\n\nimport {\n Schema,\n Struct,\n Field,\n DataType,\n Bool,\n Float64,\n Int32,\n Float32,\n Binary,\n Utf8,\n Int64,\n Uint16,\n Uint32,\n Uint64,\n Int8,\n Int16\n} from '@loaders.gl/schema';\n\nexport const PARQUET_TYPE_MAPPING: {[type in ParquetType]: typeof DataType} = {\n BOOLEAN: Bool,\n INT32: Int32,\n INT64: Float64,\n INT96: Float64,\n FLOAT: Float32,\n DOUBLE: Float64,\n BYTE_ARRAY: Binary,\n FIXED_LEN_BYTE_ARRAY: Binary,\n UTF8: Utf8,\n DATE: Int32,\n TIME_MILLIS: Int64,\n TIME_MICROS: Int64,\n TIMESTAMP_MILLIS: Int64,\n TIMESTAMP_MICROS: Int64,\n UINT_8: Int32,\n UINT_16: Uint16,\n UINT_32: Uint32,\n UINT_64: Uint64,\n INT_8: Int8,\n INT_16: Int16,\n INT_32: Int32,\n INT_64: Int64,\n JSON: Binary,\n BSON: Binary,\n // TODO check interval type\n INTERVAL: Binary,\n DECIMAL_INT32: Float32,\n DECIMAL_INT64: Float64,\n DECIMAL_BYTE_ARRAY: Float64,\n DECIMAL_FIXED_LEN_BYTE_ARRAY: Float64\n};\n\nexport function convertSchemaFromParquet(\n parquetSchema: ParquetSchema,\n parquetMetadata?: FileMetaData\n): Schema {\n const fields = getFields(parquetSchema.schema);\n const metadata = parquetMetadata && getSchemaMetadata(parquetMetadata);\n return new Schema(fields, metadata);\n}\n\nfunction getFields(schema: FieldDefinition): Field[] {\n const fields: Field[] = [];\n\n for (const name in schema) {\n const field = schema[name];\n\n if (field.fields) {\n const childFields = getFields(field.fields);\n const nestedField = new Field(name, new Struct(childFields), field.optional);\n fields.push(nestedField);\n } else {\n const FieldType = PARQUET_TYPE_MAPPING[field.type];\n const metadata = getFieldMetadata(field);\n const arrowField = new Field(name, new FieldType(), field.optional, metadata);\n fields.push(arrowField);\n }\n }\n\n return fields;\n}\n\nfunction getFieldMetadata(field: ParquetField): Map<string, string> {\n const metadata = new Map();\n\n for (const key in field) {\n if (key !== 'name') {\n let value = field[key] || '';\n value = typeof field[key] !== 'string' ? JSON.stringify(field[key]) : field[key];\n metadata.set(key, value);\n }\n }\n\n return metadata;\n}\n\nfunction getSchemaMetadata(parquetMetadata: FileMetaData): Map<string, string> {\n const metadata = new Map();\n\n const keyValueList = parquetMetadata.key_value_metadata || [];\n for (const {key, value} of keyValueList) {\n if (typeof value === 'string') {\n metadata.set(key, value);\n }\n }\n\n return metadata;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"convert-schema-from-parquet.js","names":["_schema","require","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","PARQUET_TYPE_MAPPING","BOOLEAN","Bool","INT32","Int32","INT64","Float64","INT96","FLOAT","Float32","DOUBLE","BYTE_ARRAY","Binary","FIXED_LEN_BYTE_ARRAY","UTF8","Utf8","DATE","TIME_MILLIS","Int64","TIME_MICROS","TIMESTAMP_MILLIS","TIMESTAMP_MICROS","UINT_8","UINT_16","Uint16","UINT_32","Uint32","UINT_64","Uint64","INT_8","Int8","INT_16","Int16","INT_32","INT_64","JSON","BSON","INTERVAL","DECIMAL_INT32","DECIMAL_INT64","DECIMAL_BYTE_ARRAY","DECIMAL_FIXED_LEN_BYTE_ARRAY","exports","convertSchemaFromParquet","parquetSchema","parquetMetadata","fields","getFields","schema","metadata","getSchemaMetadata","Schema","field","childFields","nestedField","Field","Struct","optional","push","FieldType","type","getFieldMetadata","arrowField","Map","key","stringify","set","keyValueList","key_value_metadata","_iterator","_step","_step$value"],"sources":["../../../../src/lib/arrow/convert-schema-from-parquet.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {ParquetSchema} from '../../parquetjs/schema/schema';\nimport type {FieldDefinition, ParquetField, ParquetType} from '../../parquetjs/schema/declare';\nimport {FileMetaData} from '@loaders.gl/parquet/parquetjs/parquet-thrift';\n\nimport {\n Schema,\n Struct,\n Field,\n DataType,\n Bool,\n Float64,\n Int32,\n Float32,\n Binary,\n Utf8,\n Int64,\n Uint16,\n Uint32,\n Uint64,\n Int8,\n Int16\n} from '@loaders.gl/schema';\n\nexport const PARQUET_TYPE_MAPPING: {[type in ParquetType]: typeof DataType} = {\n BOOLEAN: Bool,\n INT32: Int32,\n INT64: Float64,\n INT96: Float64,\n FLOAT: Float32,\n DOUBLE: Float64,\n BYTE_ARRAY: Binary,\n FIXED_LEN_BYTE_ARRAY: Binary,\n UTF8: Utf8,\n DATE: Int32,\n TIME_MILLIS: Int64,\n TIME_MICROS: Int64,\n TIMESTAMP_MILLIS: Int64,\n TIMESTAMP_MICROS: Int64,\n UINT_8: Int32,\n UINT_16: Uint16,\n UINT_32: Uint32,\n UINT_64: Uint64,\n INT_8: Int8,\n INT_16: Int16,\n INT_32: Int32,\n INT_64: Int64,\n JSON: Binary,\n BSON: Binary,\n // TODO check interval type\n INTERVAL: Binary,\n DECIMAL_INT32: Float32,\n DECIMAL_INT64: Float64,\n DECIMAL_BYTE_ARRAY: Float64,\n DECIMAL_FIXED_LEN_BYTE_ARRAY: Float64\n};\n\nexport function convertSchemaFromParquet(\n parquetSchema: ParquetSchema,\n parquetMetadata?: FileMetaData\n): Schema {\n const fields = getFields(parquetSchema.schema);\n const metadata = parquetMetadata && getSchemaMetadata(parquetMetadata);\n return new Schema(fields, metadata);\n}\n\nfunction getFields(schema: FieldDefinition): Field[] {\n const fields: Field[] = [];\n\n for (const name in schema) {\n const field = schema[name];\n\n if (field.fields) {\n const childFields = getFields(field.fields);\n const nestedField = new Field(name, new Struct(childFields), field.optional);\n fields.push(nestedField);\n } else {\n const FieldType = PARQUET_TYPE_MAPPING[field.type];\n const metadata = getFieldMetadata(field);\n const arrowField = new Field(name, new FieldType(), field.optional, metadata);\n fields.push(arrowField);\n }\n }\n\n return fields;\n}\n\nfunction getFieldMetadata(field: ParquetField): Map<string, string> {\n const metadata = new Map();\n\n for (const key in field) {\n if (key !== 'name') {\n let value = field[key] || '';\n value = typeof field[key] !== 'string' ? JSON.stringify(field[key]) : field[key];\n metadata.set(key, value);\n }\n }\n\n return metadata;\n}\n\nfunction getSchemaMetadata(parquetMetadata: FileMetaData): Map<string, string> {\n const metadata = new Map();\n\n const keyValueList = parquetMetadata.key_value_metadata || [];\n for (const {key, value} of keyValueList) {\n if (typeof value === 'string') {\n metadata.set(key, value);\n }\n }\n\n return metadata;\n}\n"],"mappings":";;;;;;;AAMA,IAAAA,OAAA,GAAAC,OAAA;AAiB4B,SAAAC,2BAAAC,CAAA,EAAAC,cAAA,QAAAC,EAAA,UAAAC,MAAA,oBAAAH,CAAA,CAAAG,MAAA,CAAAC,QAAA,KAAAJ,CAAA,qBAAAE,EAAA,QAAAG,KAAA,CAAAC,OAAA,CAAAN,CAAA,MAAAE,EAAA,GAAAK,2BAAA,CAAAP,CAAA,MAAAC,cAAA,IAAAD,CAAA,WAAAA,CAAA,CAAAQ,MAAA,qBAAAN,EAAA,EAAAF,CAAA,GAAAE,EAAA,MAAAO,CAAA,UAAAC,CAAA,YAAAA,EAAA,eAAAC,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAA,EAAA,QAAAH,CAAA,IAAAT,CAAA,CAAAQ,MAAA,WAAAK,IAAA,mBAAAA,IAAA,SAAAC,KAAA,EAAAd,CAAA,CAAAS,CAAA,UAAAM,CAAA,WAAAA,EAAAC,EAAA,UAAAA,EAAA,KAAAC,CAAA,EAAAP,CAAA,gBAAAQ,SAAA,iJAAAC,gBAAA,SAAAC,MAAA,UAAAC,GAAA,WAAAV,CAAA,WAAAA,EAAA,IAAAT,EAAA,GAAAA,EAAA,CAAAoB,IAAA,CAAAtB,CAAA,MAAAY,CAAA,WAAAA,EAAA,QAAAW,IAAA,GAAArB,EAAA,CAAAsB,IAAA,IAAAL,gBAAA,GAAAI,IAAA,CAAAV,IAAA,SAAAU,IAAA,KAAAR,CAAA,WAAAA,EAAAU,GAAA,IAAAL,MAAA,SAAAC,GAAA,GAAAI,GAAA,KAAAR,CAAA,WAAAA,EAAA,eAAAE,gBAAA,IAAAjB,EAAA,CAAAwB,MAAA,UAAAxB,EAAA,CAAAwB,MAAA,oBAAAN,MAAA,QAAAC,GAAA;AAAA,SAAAd,4BAAAP,CAAA,EAAA2B,MAAA,SAAA3B,CAAA,qBAAAA,CAAA,sBAAA4B,iBAAA,CAAA5B,CAAA,EAAA2B,MAAA,OAAAf,CAAA,GAAAiB,MAAA,CAAAC,SAAA,CAAAC,QAAA,CAAAT,IAAA,CAAAtB,CAAA,EAAAgC,KAAA,aAAApB,CAAA,iBAAAZ,CAAA,CAAAiC,WAAA,EAAArB,CAAA,GAAAZ,CAAA,CAAAiC,WAAA,CAAAC,IAAA,MAAAtB,CAAA,cAAAA,CAAA,mBAAAP,KAAA,CAAA8B,IAAA,CAAAnC,CAAA,OAAAY,CAAA,+DAAAwB,IAAA,CAAAxB,CAAA,UAAAgB,iBAAA,CAAA5B,CAAA,EAAA2B,MAAA;AAAA,SAAAC,kBAAAS,GAAA,EAAAC,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAD,GAAA,CAAA7B,MAAA,EAAA8B,GAAA,GAAAD,GAAA,CAAA7B,MAAA,WAAAC,CAAA,MAAA8B,IAAA,OAAAlC,KAAA,CAAAiC,GAAA,GAAA7B,CAAA,GAAA6B,GAAA,EAAA7B,CAAA,IAAA8B,IAAA,CAAA9B,CAAA,IAAA4B,GAAA,CAAA5B,CAAA,UAAA8B,IAAA;AAErB,IAAMC,oBAA8D,GAAG;EAC5EC,OAAO,EAAEC,YAAI;EACbC,KAAK,EAAEC,aAAK;EACZC,KAAK,EAAEC,eAAO;EACdC,KAAK,EAAED,eAAO;EACdE,KAAK,EAAEC,eAAO;EACdC,MAAM,EAAEJ,eAAO;EACfK,UAAU,EAAEC,cAAM;EAClBC,oBAAoB,EAAED,cAAM;EAC5BE,IAAI,EAAEC,YAAI;EACVC,IAAI,EAAEZ,aAAK;EACXa,WAAW,EAAEC,aAAK;EAClBC,WAAW,EAAED,aAAK;EAClBE,gBAAgB,EAAEF,aAAK;EACvBG,gBAAgB,EAAEH,aAAK;EACvBI,MAAM,EAAElB,aAAK;EACbmB,OAAO,EAAEC,cAAM;EACfC,OAAO,EAAEC,cAAM;EACfC,OAAO,EAAEC,cAAM;EACfC,KAAK,EAAEC,YAAI;EACXC,MAAM,EAAEC,aAAK;EACbC,MAAM,EAAE7B,aAAK;EACb8B,MAAM,EAAEhB,aAAK;EACbiB,IAAI,EAAEvB,cAAM;EACZwB,IAAI,EAAExB,cAAM;EAEZyB,QAAQ,EAAEzB,cAAM;EAChB0B,aAAa,EAAE7B,eAAO;EACtB8B,aAAa,EAAEjC,eAAO;EACtBkC,kBAAkB,EAAElC,eAAO;EAC3BmC,4BAA4B,EAAEnC;AAChC,CAAC;AAACoC,OAAA,CAAA1C,oBAAA,GAAAA,oBAAA;AAEK,SAAS2C,wBAAwBA,CACtCC,aAA4B,EAC5BC,eAA8B,EACtB;EACR,IAAMC,MAAM,GAAGC,SAAS,CAACH,aAAa,CAACI,MAAM,CAAC;EAC9C,IAAMC,QAAQ,GAAGJ,eAAe,IAAIK,iBAAiB,CAACL,eAAe,CAAC;EACtE,OAAO,IAAIM,cAAM,CAACL,MAAM,EAAEG,QAAQ,CAAC;AACrC;AAEA,SAASF,SAASA,CAACC,MAAuB,EAAW;EACnD,IAAMF,MAAe,GAAG,EAAE;EAE1B,KAAK,IAAMpD,IAAI,IAAIsD,MAAM,EAAE;IACzB,IAAMI,KAAK,GAAGJ,MAAM,CAACtD,IAAI,CAAC;IAE1B,IAAI0D,KAAK,CAACN,MAAM,EAAE;MAChB,IAAMO,WAAW,GAAGN,SAAS,CAACK,KAAK,CAACN,MAAM,CAAC;MAC3C,IAAMQ,WAAW,GAAG,IAAIC,aAAK,CAAC7D,IAAI,EAAE,IAAI8D,cAAM,CAACH,WAAW,CAAC,EAAED,KAAK,CAACK,QAAQ,CAAC;MAC5EX,MAAM,CAACY,IAAI,CAACJ,WAAW,CAAC;IAC1B,CAAC,MAAM;MACL,IAAMK,SAAS,GAAG3D,oBAAoB,CAACoD,KAAK,CAACQ,IAAI,CAAC;MAClD,IAAMX,QAAQ,GAAGY,gBAAgB,CAACT,KAAK,CAAC;MACxC,IAAMU,UAAU,GAAG,IAAIP,aAAK,CAAC7D,IAAI,EAAE,IAAIiE,SAAS,CAAC,CAAC,EAAEP,KAAK,CAACK,QAAQ,EAAER,QAAQ,CAAC;MAC7EH,MAAM,CAACY,IAAI,CAACI,UAAU,CAAC;IACzB;EACF;EAEA,OAAOhB,MAAM;AACf;AAEA,SAASe,gBAAgBA,CAACT,KAAmB,EAAuB;EAClE,IAAMH,QAAQ,GAAG,IAAIc,GAAG,CAAC,CAAC;EAE1B,KAAK,IAAMC,GAAG,IAAIZ,KAAK,EAAE;IACvB,IAAIY,GAAG,KAAK,MAAM,EAAE;MAClB,IAAI1F,KAAK,GAAG8E,KAAK,CAACY,GAAG,CAAC,IAAI,EAAE;MAC5B1F,KAAK,GAAG,OAAO8E,KAAK,CAACY,GAAG,CAAC,KAAK,QAAQ,GAAG7B,IAAI,CAAC8B,SAAS,CAACb,KAAK,CAACY,GAAG,CAAC,CAAC,GAAGZ,KAAK,CAACY,GAAG,CAAC;MAChFf,QAAQ,CAACiB,GAAG,CAACF,GAAG,EAAE1F,KAAK,CAAC;IAC1B;EACF;EAEA,OAAO2E,QAAQ;AACjB;AAEA,SAASC,iBAAiBA,CAACL,eAA6B,EAAuB;EAC7E,IAAMI,QAAQ,GAAG,IAAIc,GAAG,CAAC,CAAC;EAE1B,IAAMI,YAAY,GAAGtB,eAAe,CAACuB,kBAAkB,IAAI,EAAE;EAAC,IAAAC,SAAA,GAAA9G,0BAAA,CACnC4G,YAAY;IAAAG,KAAA;EAAA;IAAvC,KAAAD,SAAA,CAAAlG,CAAA,MAAAmG,KAAA,GAAAD,SAAA,CAAAjG,CAAA,IAAAC,IAAA,GAAyC;MAAA,IAAAkG,WAAA,GAAAD,KAAA,CAAAhG,KAAA;QAA7B0F,GAAG,GAAAO,WAAA,CAAHP,GAAG;QAAE1F,KAAK,GAAAiG,WAAA,CAALjG,KAAK;MACpB,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;QAC7B2E,QAAQ,CAACiB,GAAG,CAACF,GAAG,EAAE1F,KAAK,CAAC;MAC1B;IACF;EAAC,SAAAO,GAAA;IAAAwF,SAAA,CAAA9F,CAAA,CAAAM,GAAA;EAAA;IAAAwF,SAAA,CAAA5F,CAAA;EAAA;EAED,OAAOwE,QAAQ;AACjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"decode-geo-metadata.js","names":["getGeoMetadata","schema","stringifiedGeoMetadata","metadata","get","geoMetadata","JSON","parse","_unused","setGeoMetadata","stringify","set","unpackGeoMetadata","version","primary_column","columns","Object","keys","join","_loop","_Object$entries$_i","_slicedToArray2","default","_Object$entries","_i","columnName","columnMetadata","field","fields","find","name","unpackGeoFieldMetadata","entries","length","_i2","_Object$entries2","_Object$entries2$_i","key","value","concat"],"sources":["../../../../src/lib/geo/decode-geo-metadata.ts"],"sourcesContent":["// loaders.gl, MIT license\nimport {Schema, Field} from '@loaders.gl/schema';\n\n/* eslint-disable camelcase */\n\n/** A geoarrow / geoparquet geo metadata object (stored in stringified form in the top level metadata 'geo' key) */\nexport type GeoMetadata = {\n version?: string;\n primary_column?: string;\n columns: Record<string, GeoColumnMetadata>;\n [key: string]: unknown;\n};\n\n/** A geoarrow / geoparquet geo metadata for one geometry column */\nexport type GeoColumnMetadata = {\n bounding_box?:\n | [number, number, number, number]\n | [number, number, number, number, number, number];\n crs?: string;\n geometry_type?: string[];\n edges?: string;\n [key: string]: unknown;\n};\n\n/**\n * Reads the GeoMetadata object from the metadata\n * @note geoarrow / parquet schema is stringified into a single key-value pair in the parquet metadata */\nexport function getGeoMetadata(schema: Schema): GeoMetadata | null {\n const stringifiedGeoMetadata = schema.metadata.get('geo');\n if (!stringifiedGeoMetadata) {\n return null;\n }\n\n try {\n const geoMetadata = JSON.parse(stringifiedGeoMetadata) as GeoMetadata;\n return geoMetadata;\n } catch {\n return null;\n }\n}\n\n/**\n * Stores a geoarrow / geoparquet geo metadata object in the schema\n * @note geoarrow / geoparquet geo metadata is a single stringified JSON field\n */\nexport function setGeoMetadata(schema: Schema, geoMetadata: GeoMetadata): void {\n const stringifiedGeoMetadata = JSON.stringify(geoMetadata);\n schema.metadata.set('geo', stringifiedGeoMetadata);\n}\n\n/**\n * Unpacks geo metadata into separate metadata fields (parses the long JSON string)\n * @note geoarrow / parquet schema is stringified into a single key-value pair in the parquet metadata\n */\nexport function unpackGeoMetadata(schema: Schema): void {\n const geoMetadata = getGeoMetadata(schema);\n if (!geoMetadata) {\n return;\n }\n\n // Store Parquet Schema Level Metadata\n\n const {version, primary_column, columns} = geoMetadata;\n if (version) {\n schema.metadata.set('geo.version', version);\n }\n\n if (primary_column) {\n schema.metadata.set('geo.primary_column', primary_column);\n }\n\n // store column names as comma separated list\n schema.metadata.set('geo.columns', Object.keys(columns || {}).join(''));\n\n for (const [columnName, columnMetadata] of Object.entries(columns || {})) {\n const field = schema.fields.find((field) => field.name === columnName);\n if (field) {\n if (field.name === primary_column) {\n field.metadata.set('geo.primary_field', 'true');\n }\n unpackGeoFieldMetadata(field, columnMetadata);\n }\n }\n}\n\nfunction unpackGeoFieldMetadata(field: Field, columnMetadata): void {\n for (const [key, value] of Object.entries(columnMetadata || {})) {\n switch (key) {\n case 'geometry_type':\n field.metadata.set(`geo.${key}`, (value as string[]).join(','));\n break;\n case 'bbox':\n case 'crs':\n case 'edges':\n default:\n field.metadata.set(`geo.${key}`, typeof value === 'string' ? value : JSON.stringify(value));\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"decode-geo-metadata.js","names":["getGeoMetadata","schema","stringifiedGeoMetadata","metadata","get","geoMetadata","JSON","parse","_unused","setGeoMetadata","stringify","set","unpackGeoMetadata","version","primary_column","columns","Object","keys","join","_loop","_Object$entries$_i","_slicedToArray2","default","_Object$entries","_i","columnName","columnMetadata","field","fields","find","name","unpackGeoFieldMetadata","entries","length","_i2","_Object$entries2","_Object$entries2$_i","key","value","concat"],"sources":["../../../../src/lib/geo/decode-geo-metadata.ts"],"sourcesContent":["// loaders.gl, MIT license\nimport {Schema, Field} from '@loaders.gl/schema';\n\n/* eslint-disable camelcase */\n\n/** A geoarrow / geoparquet geo metadata object (stored in stringified form in the top level metadata 'geo' key) */\nexport type GeoMetadata = {\n version?: string;\n primary_column?: string;\n columns: Record<string, GeoColumnMetadata>;\n [key: string]: unknown;\n};\n\n/** A geoarrow / geoparquet geo metadata for one geometry column */\nexport type GeoColumnMetadata = {\n bounding_box?:\n | [number, number, number, number]\n | [number, number, number, number, number, number];\n crs?: string;\n geometry_type?: string[];\n edges?: string;\n [key: string]: unknown;\n};\n\n/**\n * Reads the GeoMetadata object from the metadata\n * @note geoarrow / parquet schema is stringified into a single key-value pair in the parquet metadata */\nexport function getGeoMetadata(schema: Schema): GeoMetadata | null {\n const stringifiedGeoMetadata = schema.metadata.get('geo');\n if (!stringifiedGeoMetadata) {\n return null;\n }\n\n try {\n const geoMetadata = JSON.parse(stringifiedGeoMetadata) as GeoMetadata;\n return geoMetadata;\n } catch {\n return null;\n }\n}\n\n/**\n * Stores a geoarrow / geoparquet geo metadata object in the schema\n * @note geoarrow / geoparquet geo metadata is a single stringified JSON field\n */\nexport function setGeoMetadata(schema: Schema, geoMetadata: GeoMetadata): void {\n const stringifiedGeoMetadata = JSON.stringify(geoMetadata);\n schema.metadata.set('geo', stringifiedGeoMetadata);\n}\n\n/**\n * Unpacks geo metadata into separate metadata fields (parses the long JSON string)\n * @note geoarrow / parquet schema is stringified into a single key-value pair in the parquet metadata\n */\nexport function unpackGeoMetadata(schema: Schema): void {\n const geoMetadata = getGeoMetadata(schema);\n if (!geoMetadata) {\n return;\n }\n\n // Store Parquet Schema Level Metadata\n\n const {version, primary_column, columns} = geoMetadata;\n if (version) {\n schema.metadata.set('geo.version', version);\n }\n\n if (primary_column) {\n schema.metadata.set('geo.primary_column', primary_column);\n }\n\n // store column names as comma separated list\n schema.metadata.set('geo.columns', Object.keys(columns || {}).join(''));\n\n for (const [columnName, columnMetadata] of Object.entries(columns || {})) {\n const field = schema.fields.find((field) => field.name === columnName);\n if (field) {\n if (field.name === primary_column) {\n field.metadata.set('geo.primary_field', 'true');\n }\n unpackGeoFieldMetadata(field, columnMetadata);\n }\n }\n}\n\nfunction unpackGeoFieldMetadata(field: Field, columnMetadata): void {\n for (const [key, value] of Object.entries(columnMetadata || {})) {\n switch (key) {\n case 'geometry_type':\n field.metadata.set(`geo.${key}`, (value as string[]).join(','));\n break;\n case 'bbox':\n case 'crs':\n case 'edges':\n default:\n field.metadata.set(`geo.${key}`, typeof value === 'string' ? value : JSON.stringify(value));\n }\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-parquet-to-columns.js","names":["_loaderUtils","require","_parquetReader","_convertSchemaFromParquet","_convertRowGroupToColumns","_decodeGeoMetadata","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Object","Promise","reject","done","resolve","value","then","n","next","prototype","apply","arguments","return","_return","ret","throw","_throw","thr","parseParquetInColumns","_x3","_x4","_parseParquetInColumns","_asyncToGenerator2","default","_regenerator","mark","_callee2","arrayBuffer","options","blob","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","batch","wrap","_callee2$","_context2","prev","Blob","parseParquetFileInColumnarBatches","sent","abrupt","t0","finish","stop","_x","_x2","_parseParquetFileInColumnarBatches","_wrapAsyncGenerator2","_callee","file","reader","parquetSchema","parquetMetadata","schema","rowGroups","_iteratorAbruptCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","rowGroup","_callee$","_context","makeReadableFile","ParquetReader","_awaitAsyncGenerator2","getSchema","getFileMetadata","convertSchemaFromParquet","unpackGeoMetadata","rowGroupIterator","parquet","convertRowGroupToTableBatch","data","convertParquetRowGroupToColumns","shape","batchType","length","rowCount"],"sources":["../../../../src/lib/parsers/parse-parquet-to-columns.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n// import type {LoaderWithParser, Loader, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {ColumnarTableBatch, Schema} from '@loaders.gl/schema';\nimport {makeReadableFile} from '@loaders.gl/loader-utils';\nimport type {ParquetLoaderOptions} from '../../parquet-loader';\nimport {ParquetReader} from '../../parquetjs/parser/parquet-reader';\nimport {ParquetBuffer} from '../../parquetjs/schema/declare';\nimport {convertSchemaFromParquet} from '../arrow/convert-schema-from-parquet';\nimport {convertParquetRowGroupToColumns} from '../arrow/convert-row-group-to-columns';\nimport {unpackGeoMetadata} from '../geo/decode-geo-metadata';\n\nexport async function parseParquetInColumns(\n arrayBuffer: ArrayBuffer,\n options?: ParquetLoaderOptions\n) {\n const blob = new Blob([arrayBuffer]);\n for await (const batch of parseParquetFileInColumnarBatches(blob, options)) {\n return batch;\n }\n return null;\n}\n\nexport async function* parseParquetFileInColumnarBatches(\n blob: Blob,\n options?: ParquetLoaderOptions\n): AsyncIterable<ColumnarTableBatch> {\n const file = makeReadableFile(blob);\n const reader = new ParquetReader(file);\n const parquetSchema = await reader.getSchema();\n const parquetMetadata = await reader.getFileMetadata();\n const schema = convertSchemaFromParquet(parquetSchema, parquetMetadata);\n unpackGeoMetadata(schema);\n const rowGroups = reader.rowGroupIterator(options?.parquet);\n for await (const rowGroup of rowGroups) {\n yield convertRowGroupToTableBatch(schema, rowGroup);\n }\n}\n\nfunction convertRowGroupToTableBatch(schema: Schema, rowGroup: ParquetBuffer): ColumnarTableBatch {\n const data = convertParquetRowGroupToColumns(schema, rowGroup);\n return {\n shape: 'columnar-table',\n batchType: 'data',\n schema,\n data,\n length: rowGroup.rowCount\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"parse-parquet-to-columns.js","names":["_loaderUtils","require","_parquetReader","_convertSchemaFromParquet","_convertRowGroupToColumns","_decodeGeoMetadata","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Object","Promise","reject","done","resolve","value","then","n","next","prototype","apply","arguments","return","_return","ret","throw","_throw","thr","parseParquetInColumns","_x3","_x4","_parseParquetInColumns","_asyncToGenerator2","default","_regenerator","mark","_callee2","arrayBuffer","options","blob","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","batch","wrap","_callee2$","_context2","prev","Blob","parseParquetFileInColumnarBatches","sent","abrupt","t0","finish","stop","_x","_x2","_parseParquetFileInColumnarBatches","_wrapAsyncGenerator2","_callee","file","reader","parquetSchema","parquetMetadata","schema","rowGroups","_iteratorAbruptCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","rowGroup","_callee$","_context","makeReadableFile","ParquetReader","_awaitAsyncGenerator2","getSchema","getFileMetadata","convertSchemaFromParquet","unpackGeoMetadata","rowGroupIterator","parquet","convertRowGroupToTableBatch","data","convertParquetRowGroupToColumns","shape","batchType","length","rowCount"],"sources":["../../../../src/lib/parsers/parse-parquet-to-columns.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n// import type {LoaderWithParser, Loader, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {ColumnarTableBatch, Schema} from '@loaders.gl/schema';\nimport {makeReadableFile} from '@loaders.gl/loader-utils';\nimport type {ParquetLoaderOptions} from '../../parquet-loader';\nimport {ParquetReader} from '../../parquetjs/parser/parquet-reader';\nimport {ParquetBuffer} from '../../parquetjs/schema/declare';\nimport {convertSchemaFromParquet} from '../arrow/convert-schema-from-parquet';\nimport {convertParquetRowGroupToColumns} from '../arrow/convert-row-group-to-columns';\nimport {unpackGeoMetadata} from '../geo/decode-geo-metadata';\n\nexport async function parseParquetInColumns(\n arrayBuffer: ArrayBuffer,\n options?: ParquetLoaderOptions\n) {\n const blob = new Blob([arrayBuffer]);\n for await (const batch of parseParquetFileInColumnarBatches(blob, options)) {\n return batch;\n }\n return null;\n}\n\nexport async function* parseParquetFileInColumnarBatches(\n blob: Blob,\n options?: ParquetLoaderOptions\n): AsyncIterable<ColumnarTableBatch> {\n const file = makeReadableFile(blob);\n const reader = new ParquetReader(file);\n const parquetSchema = await reader.getSchema();\n const parquetMetadata = await reader.getFileMetadata();\n const schema = convertSchemaFromParquet(parquetSchema, parquetMetadata);\n unpackGeoMetadata(schema);\n const rowGroups = reader.rowGroupIterator(options?.parquet);\n for await (const rowGroup of rowGroups) {\n yield convertRowGroupToTableBatch(schema, rowGroup);\n }\n}\n\nfunction convertRowGroupToTableBatch(schema: Schema, rowGroup: ParquetBuffer): ColumnarTableBatch {\n const data = convertParquetRowGroupToColumns(schema, rowGroup);\n return {\n shape: 'columnar-table',\n batchType: 'data',\n schema,\n data,\n length: rowGroup.rowCount\n };\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"encode-parquet-wasm.js","names":["_apacheArrow","require","_loadWasm","encode","_x","_x2","_encode","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","table","options","_options$parquet","wasmUrl","wasm","arrowIPCBytes","writerProperties","parquetBytes","wrap","_callee$","_context","prev","next","parquet","loadWasm","sent","tableToIPC","WriterPropertiesBuilder","build","writeParquet","abrupt","buffer","slice","byteOffset","byteLength","stop","RecordBatchStreamWriter","writeAll","toUint8Array"],"sources":["../../../../src/lib/wasm/encode-parquet-wasm.ts"],"sourcesContent":["import type {Table} from 'apache-arrow';\nimport type {WriterOptions} from '@loaders.gl/loader-utils';\n\nimport {RecordBatchStreamWriter} from 'apache-arrow';\nimport {loadWasm} from './load-wasm';\n\nexport type ParquetWriterOptions = WriterOptions & {\n parquet?: {\n wasmUrl?: string;\n };\n};\n\n/**\n * Encode Arrow Table to Parquet buffer\n */\nexport async function encode(table: Table, options?: ParquetWriterOptions): Promise<ArrayBuffer> {\n const wasmUrl = options?.parquet?.wasmUrl;\n const wasm = await loadWasm(wasmUrl);\n\n const arrowIPCBytes = tableToIPC(table);\n // TODO: provide options for how to write table.\n const writerProperties = new wasm.WriterPropertiesBuilder().build();\n const parquetBytes = wasm.writeParquet(arrowIPCBytes, writerProperties);\n return parquetBytes.buffer.slice(\n parquetBytes.byteOffset,\n parquetBytes.byteLength + parquetBytes.byteOffset\n );\n}\n\n/**\n * Serialize a {@link Table} to the IPC format. This function is a convenience\n * wrapper for {@link RecordBatchStreamWriter} and {@link RecordBatchFileWriter}.\n * Opposite of {@link tableFromIPC}.\n *\n * @param table The Table to serialize.\n * @param type Whether to serialize the Table as a file or a stream.\n */\nexport function tableToIPC(table: Table): Uint8Array {\n return RecordBatchStreamWriter.writeAll(table).toUint8Array(true);\n}\n"],"mappings":";;;;;;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAAqC,SAWfE,MAAMA,CAAAC,EAAA,EAAAC,GAAA;EAAA,OAAAC,OAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,QAAA;EAAAA,OAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAArB,SAAAC,QAAsBC,KAAY,EAAEC,OAA8B;IAAA,IAAAC,gBAAA;IAAA,IAAAC,OAAA,EAAAC,IAAA,EAAAC,aAAA,EAAAC,gBAAA,EAAAC,YAAA;IAAA,OAAAV,YAAA,CAAAD,OAAA,CAAAY,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UACjET,OAAO,GAAGF,OAAO,aAAPA,OAAO,wBAAAC,gBAAA,GAAPD,OAAO,CAAEY,OAAO,cAAAX,gBAAA,uBAAhBA,gBAAA,CAAkBC,OAAO;UAAAO,QAAA,CAAAE,IAAA;UAAA,OACtB,IAAAE,kBAAQ,EAACX,OAAO,CAAC;QAAA;UAA9BC,IAAI,GAAAM,QAAA,CAAAK,IAAA;UAEJV,aAAa,GAAGW,UAAU,CAAChB,KAAK,CAAC;UAEjCM,gBAAgB,GAAG,IAAIF,IAAI,CAACa,uBAAuB,EAAE,CAACC,KAAK,EAAE;UAC7DX,YAAY,GAAGH,IAAI,CAACe,YAAY,CAACd,aAAa,EAAEC,gBAAgB,CAAC;UAAA,OAAAI,QAAA,CAAAU,MAAA,WAChEb,YAAY,CAACc,MAAM,CAACC,KAAK,CAC9Bf,YAAY,CAACgB,UAAU,EACvBhB,YAAY,CAACiB,UAAU,GAAGjB,YAAY,CAACgB,UAAU,CAClD;QAAA;QAAA;UAAA,OAAAb,QAAA,CAAAe,IAAA;MAAA;IAAA,GAAA1B,OAAA;EAAA,CACF;EAAA,OAAAP,OAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAUM,SAASsB,UAAUA,CAAChB,KAAY,EAAc;EACnD,OAAO0B,oCAAuB,CAACC,QAAQ,CAAC3B,KAAK,CAAC,CAAC4B,YAAY,CAAC,IAAI,CAAC;AACnE"}
1
+ {"version":3,"file":"encode-parquet-wasm.js","names":["_apacheArrow","require","_loadWasm","encode","_x","_x2","_encode","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","table","options","_options$parquet","wasmUrl","wasm","arrowIPCBytes","writerProperties","parquetBytes","wrap","_callee$","_context","prev","next","parquet","loadWasm","sent","tableToIPC","WriterPropertiesBuilder","build","writeParquet","abrupt","buffer","slice","byteOffset","byteLength","stop","RecordBatchStreamWriter","writeAll","toUint8Array"],"sources":["../../../../src/lib/wasm/encode-parquet-wasm.ts"],"sourcesContent":["import type {Table} from 'apache-arrow';\nimport type {WriterOptions} from '@loaders.gl/loader-utils';\n\nimport {RecordBatchStreamWriter} from 'apache-arrow';\nimport {loadWasm} from './load-wasm';\n\nexport type ParquetWriterOptions = WriterOptions & {\n parquet?: {\n wasmUrl?: string;\n };\n};\n\n/**\n * Encode Arrow Table to Parquet buffer\n */\nexport async function encode(table: Table, options?: ParquetWriterOptions): Promise<ArrayBuffer> {\n const wasmUrl = options?.parquet?.wasmUrl;\n const wasm = await loadWasm(wasmUrl);\n\n const arrowIPCBytes = tableToIPC(table);\n // TODO: provide options for how to write table.\n const writerProperties = new wasm.WriterPropertiesBuilder().build();\n const parquetBytes = wasm.writeParquet(arrowIPCBytes, writerProperties);\n return parquetBytes.buffer.slice(\n parquetBytes.byteOffset,\n parquetBytes.byteLength + parquetBytes.byteOffset\n );\n}\n\n/**\n * Serialize a {@link Table} to the IPC format. This function is a convenience\n * wrapper for {@link RecordBatchStreamWriter} and {@link RecordBatchFileWriter}.\n * Opposite of {@link tableFromIPC}.\n *\n * @param table The Table to serialize.\n * @param type Whether to serialize the Table as a file or a stream.\n */\nexport function tableToIPC(table: Table): Uint8Array {\n return RecordBatchStreamWriter.writeAll(table).toUint8Array(true);\n}\n"],"mappings":";;;;;;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAAqC,SAWfE,MAAMA,CAAAC,EAAA,EAAAC,GAAA;EAAA,OAAAC,OAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,QAAA;EAAAA,OAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAArB,SAAAC,QAAsBC,KAAY,EAAEC,OAA8B;IAAA,IAAAC,gBAAA;IAAA,IAAAC,OAAA,EAAAC,IAAA,EAAAC,aAAA,EAAAC,gBAAA,EAAAC,YAAA;IAAA,OAAAV,YAAA,CAAAD,OAAA,CAAAY,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UACjET,OAAO,GAAGF,OAAO,aAAPA,OAAO,wBAAAC,gBAAA,GAAPD,OAAO,CAAEY,OAAO,cAAAX,gBAAA,uBAAhBA,gBAAA,CAAkBC,OAAO;UAAAO,QAAA,CAAAE,IAAA;UAAA,OACtB,IAAAE,kBAAQ,EAACX,OAAO,CAAC;QAAA;UAA9BC,IAAI,GAAAM,QAAA,CAAAK,IAAA;UAEJV,aAAa,GAAGW,UAAU,CAAChB,KAAK,CAAC;UAEjCM,gBAAgB,GAAG,IAAIF,IAAI,CAACa,uBAAuB,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;UAC7DX,YAAY,GAAGH,IAAI,CAACe,YAAY,CAACd,aAAa,EAAEC,gBAAgB,CAAC;UAAA,OAAAI,QAAA,CAAAU,MAAA,WAChEb,YAAY,CAACc,MAAM,CAACC,KAAK,CAC9Bf,YAAY,CAACgB,UAAU,EACvBhB,YAAY,CAACiB,UAAU,GAAGjB,YAAY,CAACgB,UACzC,CAAC;QAAA;QAAA;UAAA,OAAAb,QAAA,CAAAe,IAAA;MAAA;IAAA,GAAA1B,OAAA;EAAA,CACF;EAAA,OAAAP,OAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAUM,SAASsB,UAAUA,CAAChB,KAAY,EAAc;EACnD,OAAO0B,oCAAuB,CAACC,QAAQ,CAAC3B,KAAK,CAAC,CAAC4B,YAAY,CAAC,IAAI,CAAC;AACnE"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-parquet-wasm.js","names":["_apacheArrow","require","_loadWasmNode","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","parseParquet","_x","_x2","_parseParquet","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","arrayBuffer","options","_options$parquet","wasmUrl","wasm","arrowIPCUint8Arr","arrowIPCBuffer","arrowTable","wrap","_callee$","_context","prev","parquet","loadWasm","sent","Uint8Array","readParquet","buffer","byteOffset","byteLength","tableFromIPC","abrupt","stop","input","reader","RecordBatchStreamReader","recordBatches","_iterator","_step","recordBatch","push","Table"],"sources":["../../../../src/lib/wasm/parse-parquet-wasm.ts"],"sourcesContent":["// eslint-disable\nimport type {RecordBatch} from 'apache-arrow';\nimport type {LoaderOptions} from '@loaders.gl/loader-utils';\nimport {Table, RecordBatchStreamReader} from 'apache-arrow';\nimport {loadWasm} from './load-wasm/load-wasm-node';\n\nexport type ParquetLoaderOptions = LoaderOptions & {\n parquet?: {\n type?: 'arrow-table';\n wasmUrl?: string;\n };\n};\n\nexport async function parseParquet(\n arrayBuffer: ArrayBuffer,\n options?: ParquetLoaderOptions\n): Promise<Table> {\n const wasmUrl = options?.parquet?.wasmUrl;\n const wasm = await loadWasm(wasmUrl);\n\n const arr = new Uint8Array(arrayBuffer);\n const arrowIPCUint8Arr = wasm.readParquet(arr);\n const arrowIPCBuffer = arrowIPCUint8Arr.buffer.slice(\n arrowIPCUint8Arr.byteOffset,\n arrowIPCUint8Arr.byteLength + arrowIPCUint8Arr.byteOffset\n );\n const arrowTable = tableFromIPC(arrowIPCBuffer);\n return arrowTable;\n}\n\n/**\n * Deserialize the IPC format into a {@link Table}. This function is a\n * convenience wrapper for {@link RecordBatchReader}. Opposite of {@link tableToIPC}.\n */\nfunction tableFromIPC(input: ArrayBuffer): Table {\n const reader = RecordBatchStreamReader.from(input);\n const recordBatches: RecordBatch[] = [];\n for (const recordBatch of reader) {\n recordBatches.push(recordBatch);\n }\n return new Table(recordBatches);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"parse-parquet-wasm.js","names":["_apacheArrow","require","_loadWasmNode","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","parseParquet","_x","_x2","_parseParquet","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","arrayBuffer","options","_options$parquet","wasmUrl","wasm","arrowIPCUint8Arr","arrowIPCBuffer","arrowTable","wrap","_callee$","_context","prev","parquet","loadWasm","sent","Uint8Array","readParquet","buffer","byteOffset","byteLength","tableFromIPC","abrupt","stop","input","reader","RecordBatchStreamReader","recordBatches","_iterator","_step","recordBatch","push","Table"],"sources":["../../../../src/lib/wasm/parse-parquet-wasm.ts"],"sourcesContent":["// eslint-disable\nimport type {RecordBatch} from 'apache-arrow';\nimport type {LoaderOptions} from '@loaders.gl/loader-utils';\nimport {Table, RecordBatchStreamReader} from 'apache-arrow';\nimport {loadWasm} from './load-wasm/load-wasm-node';\n\nexport type ParquetLoaderOptions = LoaderOptions & {\n parquet?: {\n type?: 'arrow-table';\n wasmUrl?: string;\n };\n};\n\nexport async function parseParquet(\n arrayBuffer: ArrayBuffer,\n options?: ParquetLoaderOptions\n): Promise<Table> {\n const wasmUrl = options?.parquet?.wasmUrl;\n const wasm = await loadWasm(wasmUrl);\n\n const arr = new Uint8Array(arrayBuffer);\n const arrowIPCUint8Arr = wasm.readParquet(arr);\n const arrowIPCBuffer = arrowIPCUint8Arr.buffer.slice(\n arrowIPCUint8Arr.byteOffset,\n arrowIPCUint8Arr.byteLength + arrowIPCUint8Arr.byteOffset\n );\n const arrowTable = tableFromIPC(arrowIPCBuffer);\n return arrowTable;\n}\n\n/**\n * Deserialize the IPC format into a {@link Table}. This function is a\n * convenience wrapper for {@link RecordBatchReader}. Opposite of {@link tableToIPC}.\n */\nfunction tableFromIPC(input: ArrayBuffer): Table {\n const reader = RecordBatchStreamReader.from(input);\n const recordBatches: RecordBatch[] = [];\n for (const recordBatch of reader) {\n recordBatches.push(recordBatch);\n }\n return new Table(recordBatches);\n}\n"],"mappings":";;;;;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAAoD,SAAAE,2BAAAC,CAAA,EAAAC,cAAA,QAAAC,EAAA,UAAAC,MAAA,oBAAAH,CAAA,CAAAG,MAAA,CAAAC,QAAA,KAAAJ,CAAA,qBAAAE,EAAA,QAAAG,KAAA,CAAAC,OAAA,CAAAN,CAAA,MAAAE,EAAA,GAAAK,2BAAA,CAAAP,CAAA,MAAAC,cAAA,IAAAD,CAAA,WAAAA,CAAA,CAAAQ,MAAA,qBAAAN,EAAA,EAAAF,CAAA,GAAAE,EAAA,MAAAO,CAAA,UAAAC,CAAA,YAAAA,EAAA,eAAAC,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAA,EAAA,QAAAH,CAAA,IAAAT,CAAA,CAAAQ,MAAA,WAAAK,IAAA,mBAAAA,IAAA,SAAAC,KAAA,EAAAd,CAAA,CAAAS,CAAA,UAAAM,CAAA,WAAAA,EAAAC,EAAA,UAAAA,EAAA,KAAAC,CAAA,EAAAP,CAAA,gBAAAQ,SAAA,iJAAAC,gBAAA,SAAAC,MAAA,UAAAC,GAAA,WAAAV,CAAA,WAAAA,EAAA,IAAAT,EAAA,GAAAA,EAAA,CAAAoB,IAAA,CAAAtB,CAAA,MAAAY,CAAA,WAAAA,EAAA,QAAAW,IAAA,GAAArB,EAAA,CAAAsB,IAAA,IAAAL,gBAAA,GAAAI,IAAA,CAAAV,IAAA,SAAAU,IAAA,KAAAR,CAAA,WAAAA,EAAAU,GAAA,IAAAL,MAAA,SAAAC,GAAA,GAAAI,GAAA,KAAAR,CAAA,WAAAA,EAAA,eAAAE,gBAAA,IAAAjB,EAAA,CAAAwB,MAAA,UAAAxB,EAAA,CAAAwB,MAAA,oBAAAN,MAAA,QAAAC,GAAA;AAAA,SAAAd,4BAAAP,CAAA,EAAA2B,MAAA,SAAA3B,CAAA,qBAAAA,CAAA,sBAAA4B,iBAAA,CAAA5B,CAAA,EAAA2B,MAAA,OAAAf,CAAA,GAAAiB,MAAA,CAAAC,SAAA,CAAAC,QAAA,CAAAT,IAAA,CAAAtB,CAAA,EAAAgC,KAAA,aAAApB,CAAA,iBAAAZ,CAAA,CAAAiC,WAAA,EAAArB,CAAA,GAAAZ,CAAA,CAAAiC,WAAA,CAAAC,IAAA,MAAAtB,CAAA,cAAAA,CAAA,mBAAAP,KAAA,CAAA8B,IAAA,CAAAnC,CAAA,OAAAY,CAAA,+DAAAwB,IAAA,CAAAxB,CAAA,UAAAgB,iBAAA,CAAA5B,CAAA,EAAA2B,MAAA;AAAA,SAAAC,kBAAAS,GAAA,EAAAC,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAD,GAAA,CAAA7B,MAAA,EAAA8B,GAAA,GAAAD,GAAA,CAAA7B,MAAA,WAAAC,CAAA,MAAA8B,IAAA,OAAAlC,KAAA,CAAAiC,GAAA,GAAA7B,CAAA,GAAA6B,GAAA,EAAA7B,CAAA,IAAA8B,IAAA,CAAA9B,CAAA,IAAA4B,GAAA,CAAA5B,CAAA,UAAA8B,IAAA;AAAA,SAS9BC,YAAYA,CAAAC,EAAA,EAAAC,GAAA;EAAA,OAAAC,aAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,cAAA;EAAAA,aAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAA3B,SAAAC,QACLC,WAAwB,EACxBC,OAA8B;IAAA,IAAAC,gBAAA;IAAA,IAAAC,OAAA,EAAAC,IAAA,EAAAlB,GAAA,EAAAmB,gBAAA,EAAAC,cAAA,EAAAC,UAAA;IAAA,OAAAV,YAAA,CAAAD,OAAA,CAAAY,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAArC,IAAA;QAAA;UAExB8B,OAAO,GAAGF,OAAO,aAAPA,OAAO,wBAAAC,gBAAA,GAAPD,OAAO,CAAEW,OAAO,cAAAV,gBAAA,uBAAhBA,gBAAA,CAAkBC,OAAO;UAAAO,QAAA,CAAArC,IAAA;UAAA,OACtB,IAAAwC,sBAAQ,EAACV,OAAO,CAAC;QAAA;UAA9BC,IAAI,GAAAM,QAAA,CAAAI,IAAA;UAEJ5B,GAAG,GAAG,IAAI6B,UAAU,CAACf,WAAW,CAAC;UACjCK,gBAAgB,GAAGD,IAAI,CAACY,WAAW,CAAC9B,GAAG,CAAC;UACxCoB,cAAc,GAAGD,gBAAgB,CAACY,MAAM,CAACpC,KAAK,CAClDwB,gBAAgB,CAACa,UAAU,EAC3Bb,gBAAgB,CAACc,UAAU,GAAGd,gBAAgB,CAACa,UACjD,CAAC;UACKX,UAAU,GAAGa,YAAY,CAACd,cAAc,CAAC;UAAA,OAAAI,QAAA,CAAAW,MAAA,WACxCd,UAAU;QAAA;QAAA;UAAA,OAAAG,QAAA,CAAAY,IAAA;MAAA;IAAA,GAAAvB,OAAA;EAAA,CAClB;EAAA,OAAAP,aAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAMD,SAAS0B,YAAYA,CAACG,KAAkB,EAAS;EAC/C,IAAMC,MAAM,GAAGC,oCAAuB,CAACzC,IAAI,CAACuC,KAAK,CAAC;EAClD,IAAMG,aAA4B,GAAG,EAAE;EAAC,IAAAC,SAAA,GAAA/E,0BAAA,CACd4E,MAAM;IAAAI,KAAA;EAAA;IAAhC,KAAAD,SAAA,CAAAnE,CAAA,MAAAoE,KAAA,GAAAD,SAAA,CAAAlE,CAAA,IAAAC,IAAA,GAAkC;MAAA,IAAvBmE,WAAW,GAAAD,KAAA,CAAAjE,KAAA;MACpB+D,aAAa,CAACI,IAAI,CAACD,WAAW,CAAC;IACjC;EAAC,SAAA3D,GAAA;IAAAyD,SAAA,CAAA/D,CAAA,CAAAM,GAAA;EAAA;IAAAyD,SAAA,CAAA7D,CAAA;EAAA;EACD,OAAO,IAAIiE,kBAAK,CAACL,aAAa,CAAC;AACjC"}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports._typecheckParquetLoader = exports.ParquetLoader = void 0;
7
- var VERSION = typeof "3.4.0-alpha.3" !== 'undefined' ? "3.4.0-alpha.3" : 'latest';
7
+ var VERSION = typeof "3.4.0-alpha.4" !== 'undefined' ? "3.4.0-alpha.4" : 'latest';
8
8
  var DEFAULT_PARQUET_LOADER_OPTIONS = {
9
9
  parquet: {
10
10
  type: 'object-row-table',
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports._typecheckParquetLoader = exports.ParquetWasmLoader = void 0;
7
- var VERSION = typeof "3.4.0-alpha.3" !== 'undefined' ? "3.4.0-alpha.3" : 'latest';
7
+ var VERSION = typeof "3.4.0-alpha.4" !== 'undefined' ? "3.4.0-alpha.4" : 'latest';
8
8
  var DEFAULT_PARQUET_LOADER_OPTIONS = {
9
9
  parquet: {
10
10
  type: 'arrow-table',
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.ParquetWasmWriter = void 0;
7
7
  var _encodeParquetWasm = require("./lib/wasm/encode-parquet-wasm");
8
- var VERSION = typeof "3.4.0-alpha.3" !== 'undefined' ? "3.4.0-alpha.3" : 'latest';
8
+ var VERSION = typeof "3.4.0-alpha.4" !== 'undefined' ? "3.4.0-alpha.4" : 'latest';
9
9
  var DEFAULT_PARQUET_WRITER_OPTIONS = {
10
10
  parquet: {
11
11
  wasmUrl: 'https://unpkg.com/parquet-wasm@0.3.1/esm2/arrow1_bg.wasm'
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.ParquetWriter = void 0;
7
- var VERSION = typeof "3.4.0-alpha.3" !== 'undefined' ? "3.4.0-alpha.3" : 'latest';
7
+ var VERSION = typeof "3.4.0-alpha.4" !== 'undefined' ? "3.4.0-alpha.4" : 'latest';
8
8
  var DEFAULT_PARQUET_LOADER_OPTIONS = {};
9
9
  var ParquetWriter = {
10
10
  name: 'Apache Parquet',
@@ -1 +1 @@
1
- {"version":3,"file":"dictionary.js","names":["_rle","require","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","decodeValues","type","cursor","count","opts","bitWidth","buffer","slice","offset","readInt8","decodeRleValues","disableEnvelope","encodeValues","Error"],"sources":["../../../../src/parquetjs/codecs/dictionary.ts"],"sourcesContent":["import {decodeValues as decodeRleValues} from './rle';\n\nexport function decodeValues(type, cursor, count, opts) {\n opts.bitWidth = cursor.buffer.slice(cursor.offset, cursor.offset + 1).readInt8(0);\n cursor.offset += 1;\n return decodeRleValues(type, cursor, count, {...opts, disableEnvelope: true});\n}\n\nexport function encodeValues(type, cursor, count, opts) {\n throw new Error('Encode dictionary functionality is not supported');\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,IAAA,GAAAC,OAAA;AAAsD,SAAAC,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,MAAA,CAAAD,IAAA,CAAAF,MAAA,OAAAG,MAAA,CAAAC,qBAAA,QAAAC,OAAA,GAAAF,MAAA,CAAAC,qBAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAJ,MAAA,CAAAK,wBAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAI,MAAA,CAAAc,MAAA,OAAAC,OAAA,WAAAC,GAAA,QAAAC,gBAAA,CAAAC,OAAA,EAAAR,MAAA,EAAAM,GAAA,EAAAF,MAAA,CAAAE,GAAA,SAAAhB,MAAA,CAAAmB,yBAAA,GAAAnB,MAAA,CAAAoB,gBAAA,CAAAV,MAAA,EAAAV,MAAA,CAAAmB,yBAAA,CAAAL,MAAA,KAAAlB,OAAA,CAAAI,MAAA,CAAAc,MAAA,GAAAC,OAAA,WAAAC,GAAA,IAAAhB,MAAA,CAAAqB,cAAA,CAAAX,MAAA,EAAAM,GAAA,EAAAhB,MAAA,CAAAK,wBAAA,CAAAS,MAAA,EAAAE,GAAA,iBAAAN,MAAA;AAE/C,SAASY,YAAYA,CAACC,IAAI,EAAEC,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAE;EACtDA,IAAI,CAACC,QAAQ,GAAGH,MAAM,CAACI,MAAM,CAACC,KAAK,CAACL,MAAM,CAACM,MAAM,EAAEN,MAAM,CAACM,MAAM,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,CAAC;EACjFP,MAAM,CAACM,MAAM,IAAI,CAAC;EAClB,OAAO,IAAAE,iBAAe,EAACT,IAAI,EAAEC,MAAM,EAAEC,KAAK,EAAAhB,aAAA,CAAAA,aAAA,KAAMiB,IAAI;IAAEO,eAAe,EAAE;EAAI,GAAE;AAC/E;AAEO,SAASC,YAAYA,CAACX,IAAI,EAAEC,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAE;EACtD,MAAM,IAAIS,KAAK,CAAC,kDAAkD,CAAC;AACrE"}
1
+ {"version":3,"file":"dictionary.js","names":["_rle","require","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","decodeValues","type","cursor","count","opts","bitWidth","buffer","slice","offset","readInt8","decodeRleValues","disableEnvelope","encodeValues","Error"],"sources":["../../../../src/parquetjs/codecs/dictionary.ts"],"sourcesContent":["import {decodeValues as decodeRleValues} from './rle';\n\nexport function decodeValues(type, cursor, count, opts) {\n opts.bitWidth = cursor.buffer.slice(cursor.offset, cursor.offset + 1).readInt8(0);\n cursor.offset += 1;\n return decodeRleValues(type, cursor, count, {...opts, disableEnvelope: true});\n}\n\nexport function encodeValues(type, cursor, count, opts) {\n throw new Error('Encode dictionary functionality is not supported');\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,IAAA,GAAAC,OAAA;AAAsD,SAAAC,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,MAAA,CAAAD,IAAA,CAAAF,MAAA,OAAAG,MAAA,CAAAC,qBAAA,QAAAC,OAAA,GAAAF,MAAA,CAAAC,qBAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAJ,MAAA,CAAAK,wBAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAI,MAAA,CAAAc,MAAA,OAAAC,OAAA,WAAAC,GAAA,QAAAC,gBAAA,CAAAC,OAAA,EAAAR,MAAA,EAAAM,GAAA,EAAAF,MAAA,CAAAE,GAAA,SAAAhB,MAAA,CAAAmB,yBAAA,GAAAnB,MAAA,CAAAoB,gBAAA,CAAAV,MAAA,EAAAV,MAAA,CAAAmB,yBAAA,CAAAL,MAAA,KAAAlB,OAAA,CAAAI,MAAA,CAAAc,MAAA,GAAAC,OAAA,WAAAC,GAAA,IAAAhB,MAAA,CAAAqB,cAAA,CAAAX,MAAA,EAAAM,GAAA,EAAAhB,MAAA,CAAAK,wBAAA,CAAAS,MAAA,EAAAE,GAAA,iBAAAN,MAAA;AAE/C,SAASY,YAAYA,CAACC,IAAI,EAAEC,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAE;EACtDA,IAAI,CAACC,QAAQ,GAAGH,MAAM,CAACI,MAAM,CAACC,KAAK,CAACL,MAAM,CAACM,MAAM,EAAEN,MAAM,CAACM,MAAM,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,CAAC;EACjFP,MAAM,CAACM,MAAM,IAAI,CAAC;EAClB,OAAO,IAAAE,iBAAe,EAACT,IAAI,EAAEC,MAAM,EAAEC,KAAK,EAAAhB,aAAA,CAAAA,aAAA,KAAMiB,IAAI;IAAEO,eAAe,EAAE;EAAI,EAAC,CAAC;AAC/E;AAEO,SAASC,YAAYA,CAACX,IAAI,EAAEC,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAE;EACtD,MAAM,IAAIS,KAAK,CAAC,kDAAkD,CAAC;AACrE"}
@@ -1 +1 @@
1
- {"version":3,"file":"plain.js","names":["_int","_interopRequireDefault","require","encodeValues","type","values","opts","encodeValues_BOOLEAN","encodeValues_INT32","encodeValues_INT64","encodeValues_INT96","encodeValues_FLOAT","encodeValues_DOUBLE","encodeValues_BYTE_ARRAY","encodeValues_FIXED_LEN_BYTE_ARRAY","Error","concat","decodeValues","cursor","count","decodeValues_BOOLEAN","decodeValues_INT32","decodeValues_INT64","decodeValues_INT96","decodeValues_FLOAT","decodeValues_DOUBLE","decodeValues_BYTE_ARRAY","decodeValues_FIXED_LEN_BYTE_ARRAY","buf","Buffer","alloc","Math","ceil","length","fill","i","floor","b","buffer","offset","push","writeInt32LE","readInt32LE","INT53","writeInt64LE","readInt64LE","writeUInt32LE","low","high","readUInt32LE","writeFloatLE","readFloatLE","writeDoubleLE","readDoubleLE","buf_len","from","buf_pos","copy","len","slice","typeLength"],"sources":["../../../../src/parquetjs/codecs/plain.ts"],"sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\n/* eslint-disable camelcase */\nimport type {PrimitiveType} from '../schema/declare';\nimport type {CursorBuffer, ParquetCodecOptions} from './declare';\nimport INT53 from 'int53';\n\nexport function encodeValues(\n type: PrimitiveType,\n values: any[],\n opts: ParquetCodecOptions\n): Buffer {\n switch (type) {\n case 'BOOLEAN':\n return encodeValues_BOOLEAN(values);\n case 'INT32':\n return encodeValues_INT32(values);\n case 'INT64':\n return encodeValues_INT64(values);\n case 'INT96':\n return encodeValues_INT96(values);\n case 'FLOAT':\n return encodeValues_FLOAT(values);\n case 'DOUBLE':\n return encodeValues_DOUBLE(values);\n case 'BYTE_ARRAY':\n return encodeValues_BYTE_ARRAY(values);\n case 'FIXED_LEN_BYTE_ARRAY':\n return encodeValues_FIXED_LEN_BYTE_ARRAY(values, opts);\n default:\n throw new Error(`unsupported type: ${type}`);\n }\n}\n\nexport function decodeValues(\n type: PrimitiveType,\n cursor: CursorBuffer,\n count: number,\n opts: ParquetCodecOptions\n): any[] {\n switch (type) {\n case 'BOOLEAN':\n return decodeValues_BOOLEAN(cursor, count);\n case 'INT32':\n return decodeValues_INT32(cursor, count);\n case 'INT64':\n return decodeValues_INT64(cursor, count);\n case 'INT96':\n return decodeValues_INT96(cursor, count);\n case 'FLOAT':\n return decodeValues_FLOAT(cursor, count);\n case 'DOUBLE':\n return decodeValues_DOUBLE(cursor, count);\n case 'BYTE_ARRAY':\n return decodeValues_BYTE_ARRAY(cursor, count);\n case 'FIXED_LEN_BYTE_ARRAY':\n return decodeValues_FIXED_LEN_BYTE_ARRAY(cursor, count, opts);\n default:\n throw new Error(`unsupported type: ${type}`);\n }\n}\n\nfunction encodeValues_BOOLEAN(values: boolean[]): Buffer {\n const buf = Buffer.alloc(Math.ceil(values.length / 8));\n buf.fill(0);\n for (let i = 0; i < values.length; i++) {\n if (values[i]) {\n buf[Math.floor(i / 8)] |= 1 << i % 8;\n }\n }\n return buf;\n}\n\nfunction decodeValues_BOOLEAN(cursor: CursorBuffer, count: number): boolean[] {\n const values: boolean[] = [];\n for (let i = 0; i < count; i++) {\n const b = cursor.buffer[cursor.offset + Math.floor(i / 8)];\n values.push((b & (1 << i % 8)) > 0);\n }\n cursor.offset += Math.ceil(count / 8);\n return values;\n}\n\nfunction encodeValues_INT32(values: number[]): Buffer {\n const buf = Buffer.alloc(4 * values.length);\n for (let i = 0; i < values.length; i++) {\n buf.writeInt32LE(values[i], i * 4);\n }\n return buf;\n}\n\nfunction decodeValues_INT32(cursor: CursorBuffer, count: number): number[] {\n const values: number[] = [];\n for (let i = 0; i < count; i++) {\n values.push(cursor.buffer.readInt32LE(cursor.offset));\n cursor.offset += 4;\n }\n return values;\n}\n\nfunction encodeValues_INT64(values: number[]): Buffer {\n const buf = Buffer.alloc(8 * values.length);\n for (let i = 0; i < values.length; i++) {\n INT53.writeInt64LE(values[i], buf, i * 8);\n }\n return buf;\n}\n\nfunction decodeValues_INT64(cursor: CursorBuffer, count: number): number[] {\n const values: number[] = [];\n for (let i = 0; i < count; i++) {\n values.push(INT53.readInt64LE(cursor.buffer, cursor.offset));\n cursor.offset += 8;\n }\n return values;\n}\n\nfunction encodeValues_INT96(values: number[]): Buffer {\n const buf = Buffer.alloc(12 * values.length);\n for (let i = 0; i < values.length; i++) {\n if (values[i] >= 0) {\n INT53.writeInt64LE(values[i], buf, i * 12);\n buf.writeUInt32LE(0, i * 12 + 8); // truncate to 64 actual precision\n } else {\n INT53.writeInt64LE(~-values[i] + 1, buf, i * 12);\n buf.writeUInt32LE(0xffffffff, i * 12 + 8); // truncate to 64 actual precision\n }\n }\n return buf;\n}\n\nfunction decodeValues_INT96(cursor: CursorBuffer, count: number): number[] {\n const values: number[] = [];\n for (let i = 0; i < count; i++) {\n const low = INT53.readInt64LE(cursor.buffer, cursor.offset);\n const high = cursor.buffer.readUInt32LE(cursor.offset + 8);\n if (high === 0xffffffff) {\n values.push(~-low + 1); // truncate to 64 actual precision\n } else {\n values.push(low); // truncate to 64 actual precision\n }\n cursor.offset += 12;\n }\n return values;\n}\n\nfunction encodeValues_FLOAT(values: number[]): Buffer {\n const buf = Buffer.alloc(4 * values.length);\n for (let i = 0; i < values.length; i++) {\n buf.writeFloatLE(values[i], i * 4);\n }\n return buf;\n}\n\nfunction decodeValues_FLOAT(cursor: CursorBuffer, count: number): number[] {\n const values: number[] = [];\n for (let i = 0; i < count; i++) {\n values.push(cursor.buffer.readFloatLE(cursor.offset));\n cursor.offset += 4;\n }\n return values;\n}\n\nfunction encodeValues_DOUBLE(values: number[]): Buffer {\n const buf = Buffer.alloc(8 * values.length);\n for (let i = 0; i < values.length; i++) {\n buf.writeDoubleLE(values[i], i * 8);\n }\n return buf;\n}\n\nfunction decodeValues_DOUBLE(cursor: CursorBuffer, count: number): number[] {\n const values: number[] = [];\n for (let i = 0; i < count; i++) {\n values.push(cursor.buffer.readDoubleLE(cursor.offset));\n cursor.offset += 8;\n }\n return values;\n}\n\nfunction encodeValues_BYTE_ARRAY(values: Buffer[]): Buffer {\n // tslint:disable-next-line:variable-name\n let buf_len = 0;\n for (let i = 0; i < values.length; i++) {\n values[i] = Buffer.from(values[i]);\n buf_len += 4 + values[i].length;\n }\n const buf = Buffer.alloc(buf_len);\n // tslint:disable-next-line:variable-name\n let buf_pos = 0;\n for (let i = 0; i < values.length; i++) {\n buf.writeUInt32LE(values[i].length, buf_pos);\n values[i].copy(buf, buf_pos + 4);\n buf_pos += 4 + values[i].length;\n }\n return buf;\n}\n\nfunction decodeValues_BYTE_ARRAY(cursor: CursorBuffer, count: number): Buffer[] {\n const values: Buffer[] = [];\n for (let i = 0; i < count; i++) {\n const len = cursor.buffer.readUInt32LE(cursor.offset);\n cursor.offset += 4;\n values.push(cursor.buffer.slice(cursor.offset, cursor.offset + len));\n cursor.offset += len;\n }\n return values;\n}\n\nfunction encodeValues_FIXED_LEN_BYTE_ARRAY(values: Buffer[], opts: ParquetCodecOptions): Buffer {\n if (!opts.typeLength) {\n throw new Error('missing option: typeLength (required for FIXED_LEN_BYTE_ARRAY)');\n }\n for (let i = 0; i < values.length; i++) {\n values[i] = Buffer.from(values[i]);\n if (values[i].length !== opts.typeLength) {\n throw new Error(`invalid value for FIXED_LEN_BYTE_ARRAY: ${values[i]}`);\n }\n }\n return Buffer.concat(values);\n}\n\nfunction decodeValues_FIXED_LEN_BYTE_ARRAY(\n cursor: CursorBuffer,\n count: number,\n opts: ParquetCodecOptions\n): Buffer[] {\n const values: Buffer[] = [];\n if (!opts.typeLength) {\n throw new Error('missing option: typeLength (required for FIXED_LEN_BYTE_ARRAY)');\n }\n for (let i = 0; i < count; i++) {\n values.push(cursor.buffer.slice(cursor.offset, cursor.offset + opts.typeLength));\n cursor.offset += opts.typeLength;\n }\n return values;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"plain.js","names":["_int","_interopRequireDefault","require","encodeValues","type","values","opts","encodeValues_BOOLEAN","encodeValues_INT32","encodeValues_INT64","encodeValues_INT96","encodeValues_FLOAT","encodeValues_DOUBLE","encodeValues_BYTE_ARRAY","encodeValues_FIXED_LEN_BYTE_ARRAY","Error","concat","decodeValues","cursor","count","decodeValues_BOOLEAN","decodeValues_INT32","decodeValues_INT64","decodeValues_INT96","decodeValues_FLOAT","decodeValues_DOUBLE","decodeValues_BYTE_ARRAY","decodeValues_FIXED_LEN_BYTE_ARRAY","buf","Buffer","alloc","Math","ceil","length","fill","i","floor","b","buffer","offset","push","writeInt32LE","readInt32LE","INT53","writeInt64LE","readInt64LE","writeUInt32LE","low","high","readUInt32LE","writeFloatLE","readFloatLE","writeDoubleLE","readDoubleLE","buf_len","from","buf_pos","copy","len","slice","typeLength"],"sources":["../../../../src/parquetjs/codecs/plain.ts"],"sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\n/* eslint-disable camelcase */\nimport type {PrimitiveType} from '../schema/declare';\nimport type {CursorBuffer, ParquetCodecOptions} from './declare';\nimport INT53 from 'int53';\n\nexport function encodeValues(\n type: PrimitiveType,\n values: any[],\n opts: ParquetCodecOptions\n): Buffer {\n switch (type) {\n case 'BOOLEAN':\n return encodeValues_BOOLEAN(values);\n case 'INT32':\n return encodeValues_INT32(values);\n case 'INT64':\n return encodeValues_INT64(values);\n case 'INT96':\n return encodeValues_INT96(values);\n case 'FLOAT':\n return encodeValues_FLOAT(values);\n case 'DOUBLE':\n return encodeValues_DOUBLE(values);\n case 'BYTE_ARRAY':\n return encodeValues_BYTE_ARRAY(values);\n case 'FIXED_LEN_BYTE_ARRAY':\n return encodeValues_FIXED_LEN_BYTE_ARRAY(values, opts);\n default:\n throw new Error(`unsupported type: ${type}`);\n }\n}\n\nexport function decodeValues(\n type: PrimitiveType,\n cursor: CursorBuffer,\n count: number,\n opts: ParquetCodecOptions\n): any[] {\n switch (type) {\n case 'BOOLEAN':\n return decodeValues_BOOLEAN(cursor, count);\n case 'INT32':\n return decodeValues_INT32(cursor, count);\n case 'INT64':\n return decodeValues_INT64(cursor, count);\n case 'INT96':\n return decodeValues_INT96(cursor, count);\n case 'FLOAT':\n return decodeValues_FLOAT(cursor, count);\n case 'DOUBLE':\n return decodeValues_DOUBLE(cursor, count);\n case 'BYTE_ARRAY':\n return decodeValues_BYTE_ARRAY(cursor, count);\n case 'FIXED_LEN_BYTE_ARRAY':\n return decodeValues_FIXED_LEN_BYTE_ARRAY(cursor, count, opts);\n default:\n throw new Error(`unsupported type: ${type}`);\n }\n}\n\nfunction encodeValues_BOOLEAN(values: boolean[]): Buffer {\n const buf = Buffer.alloc(Math.ceil(values.length / 8));\n buf.fill(0);\n for (let i = 0; i < values.length; i++) {\n if (values[i]) {\n buf[Math.floor(i / 8)] |= 1 << i % 8;\n }\n }\n return buf;\n}\n\nfunction decodeValues_BOOLEAN(cursor: CursorBuffer, count: number): boolean[] {\n const values: boolean[] = [];\n for (let i = 0; i < count; i++) {\n const b = cursor.buffer[cursor.offset + Math.floor(i / 8)];\n values.push((b & (1 << i % 8)) > 0);\n }\n cursor.offset += Math.ceil(count / 8);\n return values;\n}\n\nfunction encodeValues_INT32(values: number[]): Buffer {\n const buf = Buffer.alloc(4 * values.length);\n for (let i = 0; i < values.length; i++) {\n buf.writeInt32LE(values[i], i * 4);\n }\n return buf;\n}\n\nfunction decodeValues_INT32(cursor: CursorBuffer, count: number): number[] {\n const values: number[] = [];\n for (let i = 0; i < count; i++) {\n values.push(cursor.buffer.readInt32LE(cursor.offset));\n cursor.offset += 4;\n }\n return values;\n}\n\nfunction encodeValues_INT64(values: number[]): Buffer {\n const buf = Buffer.alloc(8 * values.length);\n for (let i = 0; i < values.length; i++) {\n INT53.writeInt64LE(values[i], buf, i * 8);\n }\n return buf;\n}\n\nfunction decodeValues_INT64(cursor: CursorBuffer, count: number): number[] {\n const values: number[] = [];\n for (let i = 0; i < count; i++) {\n values.push(INT53.readInt64LE(cursor.buffer, cursor.offset));\n cursor.offset += 8;\n }\n return values;\n}\n\nfunction encodeValues_INT96(values: number[]): Buffer {\n const buf = Buffer.alloc(12 * values.length);\n for (let i = 0; i < values.length; i++) {\n if (values[i] >= 0) {\n INT53.writeInt64LE(values[i], buf, i * 12);\n buf.writeUInt32LE(0, i * 12 + 8); // truncate to 64 actual precision\n } else {\n INT53.writeInt64LE(~-values[i] + 1, buf, i * 12);\n buf.writeUInt32LE(0xffffffff, i * 12 + 8); // truncate to 64 actual precision\n }\n }\n return buf;\n}\n\nfunction decodeValues_INT96(cursor: CursorBuffer, count: number): number[] {\n const values: number[] = [];\n for (let i = 0; i < count; i++) {\n const low = INT53.readInt64LE(cursor.buffer, cursor.offset);\n const high = cursor.buffer.readUInt32LE(cursor.offset + 8);\n if (high === 0xffffffff) {\n values.push(~-low + 1); // truncate to 64 actual precision\n } else {\n values.push(low); // truncate to 64 actual precision\n }\n cursor.offset += 12;\n }\n return values;\n}\n\nfunction encodeValues_FLOAT(values: number[]): Buffer {\n const buf = Buffer.alloc(4 * values.length);\n for (let i = 0; i < values.length; i++) {\n buf.writeFloatLE(values[i], i * 4);\n }\n return buf;\n}\n\nfunction decodeValues_FLOAT(cursor: CursorBuffer, count: number): number[] {\n const values: number[] = [];\n for (let i = 0; i < count; i++) {\n values.push(cursor.buffer.readFloatLE(cursor.offset));\n cursor.offset += 4;\n }\n return values;\n}\n\nfunction encodeValues_DOUBLE(values: number[]): Buffer {\n const buf = Buffer.alloc(8 * values.length);\n for (let i = 0; i < values.length; i++) {\n buf.writeDoubleLE(values[i], i * 8);\n }\n return buf;\n}\n\nfunction decodeValues_DOUBLE(cursor: CursorBuffer, count: number): number[] {\n const values: number[] = [];\n for (let i = 0; i < count; i++) {\n values.push(cursor.buffer.readDoubleLE(cursor.offset));\n cursor.offset += 8;\n }\n return values;\n}\n\nfunction encodeValues_BYTE_ARRAY(values: Buffer[]): Buffer {\n // tslint:disable-next-line:variable-name\n let buf_len = 0;\n for (let i = 0; i < values.length; i++) {\n values[i] = Buffer.from(values[i]);\n buf_len += 4 + values[i].length;\n }\n const buf = Buffer.alloc(buf_len);\n // tslint:disable-next-line:variable-name\n let buf_pos = 0;\n for (let i = 0; i < values.length; i++) {\n buf.writeUInt32LE(values[i].length, buf_pos);\n values[i].copy(buf, buf_pos + 4);\n buf_pos += 4 + values[i].length;\n }\n return buf;\n}\n\nfunction decodeValues_BYTE_ARRAY(cursor: CursorBuffer, count: number): Buffer[] {\n const values: Buffer[] = [];\n for (let i = 0; i < count; i++) {\n const len = cursor.buffer.readUInt32LE(cursor.offset);\n cursor.offset += 4;\n values.push(cursor.buffer.slice(cursor.offset, cursor.offset + len));\n cursor.offset += len;\n }\n return values;\n}\n\nfunction encodeValues_FIXED_LEN_BYTE_ARRAY(values: Buffer[], opts: ParquetCodecOptions): Buffer {\n if (!opts.typeLength) {\n throw new Error('missing option: typeLength (required for FIXED_LEN_BYTE_ARRAY)');\n }\n for (let i = 0; i < values.length; i++) {\n values[i] = Buffer.from(values[i]);\n if (values[i].length !== opts.typeLength) {\n throw new Error(`invalid value for FIXED_LEN_BYTE_ARRAY: ${values[i]}`);\n }\n }\n return Buffer.concat(values);\n}\n\nfunction decodeValues_FIXED_LEN_BYTE_ARRAY(\n cursor: CursorBuffer,\n count: number,\n opts: ParquetCodecOptions\n): Buffer[] {\n const values: Buffer[] = [];\n if (!opts.typeLength) {\n throw new Error('missing option: typeLength (required for FIXED_LEN_BYTE_ARRAY)');\n }\n for (let i = 0; i < count; i++) {\n values.push(cursor.buffer.slice(cursor.offset, cursor.offset + opts.typeLength));\n cursor.offset += opts.typeLength;\n }\n return values;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rle.js","names":["_varint","_interopRequireDefault","require","encodeValues","type","values","opts","Error","map","x","parseInt","concat","buf","Buffer","alloc","run","repeats","i","length","encodeRunBitpacked","encodeRunRepeated","push","disableEnvelope","envelope","writeUInt32LE","undefined","copy","decodeValues","cursor","count","offset","header","varint","decode","buffer","encodingLength","_values","apply","_toConsumableArray2","default","decodeRunBitpacked","_values2","decodeRunRepeated","slice","bitWidth","Array","fill","b","Math","floor","value","ceil","from","encode","writeUInt8"],"sources":["../../../../src/parquetjs/codecs/rle.ts"],"sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\n\nimport type {PrimitiveType} from '../schema/declare';\nimport type {CursorBuffer, ParquetCodecOptions} from './declare';\nimport varint from 'varint';\n\n// eslint-disable-next-line max-statements, complexity\nexport function encodeValues(\n type: PrimitiveType,\n values: any[],\n opts: ParquetCodecOptions\n): Buffer {\n if (!('bitWidth' in opts)) {\n throw new Error('bitWidth is required');\n }\n\n switch (type) {\n case 'BOOLEAN':\n case 'INT32':\n case 'INT64':\n // tslint:disable-next-line:no-parameter-reassignment\n values = values.map((x) => parseInt(x, 10));\n break;\n\n default:\n throw new Error(`unsupported type: ${type}`);\n }\n\n let buf = Buffer.alloc(0);\n let run: any[] = [];\n let repeats = 0;\n\n for (let i = 0; i < values.length; i++) {\n // If we are at the beginning of a run and the next value is same we start\n // collecting repeated values\n if (repeats === 0 && run.length % 8 === 0 && values[i] === values[i + 1]) {\n // If we have any data in runs we need to encode them\n if (run.length) {\n buf = Buffer.concat([buf, encodeRunBitpacked(run, opts)]);\n run = [];\n }\n repeats = 1;\n } else if (repeats > 0 && values[i] === values[i - 1]) {\n repeats += 1;\n } else {\n // If values changes we need to post any previous repeated values\n if (repeats) {\n buf = Buffer.concat([buf, encodeRunRepeated(values[i - 1], repeats, opts)]);\n repeats = 0;\n }\n run.push(values[i]);\n }\n }\n\n if (repeats) {\n buf = Buffer.concat([buf, encodeRunRepeated(values[values.length - 1], repeats, opts)]);\n } else if (run.length) {\n buf = Buffer.concat([buf, encodeRunBitpacked(run, opts)]);\n }\n\n if (opts.disableEnvelope) {\n return buf;\n }\n\n const envelope = Buffer.alloc(buf.length + 4);\n envelope.writeUInt32LE(buf.length, undefined);\n buf.copy(envelope, 4);\n\n return envelope;\n}\n\nexport function decodeValues(\n type: PrimitiveType,\n cursor: CursorBuffer,\n count: number,\n opts: ParquetCodecOptions\n): number[] {\n if (!('bitWidth' in opts)) {\n throw new Error('bitWidth is required');\n }\n\n if (!opts.disableEnvelope) {\n cursor.offset += 4;\n }\n\n let values: number[] = [];\n while (values.length < count) {\n const header = varint.decode(cursor.buffer, cursor.offset);\n cursor.offset += varint.encodingLength(header);\n if (header & 1) {\n const count = (header >> 1) * 8;\n values.push(...decodeRunBitpacked(cursor, count, opts));\n } else {\n const count = header >> 1;\n values.push(...decodeRunRepeated(cursor, count, opts));\n }\n }\n values = values.slice(0, count);\n\n if (values.length !== count) {\n throw new Error('invalid RLE encoding');\n }\n\n return values;\n}\n\nfunction decodeRunBitpacked(\n cursor: CursorBuffer,\n count: number,\n opts: ParquetCodecOptions\n): number[] {\n // @ts-ignore\n const bitWidth: number = opts.bitWidth;\n\n if (count % 8 !== 0) {\n throw new Error('must be a multiple of 8');\n }\n\n // tslint:disable-next-line:prefer-array-literal\n const values = new Array(count).fill(0);\n for (let b = 0; b < bitWidth * count; b++) {\n if (cursor.buffer[cursor.offset + Math.floor(b / 8)] & (1 << b % 8)) {\n values[Math.floor(b / bitWidth)] |= 1 << b % bitWidth;\n }\n }\n\n cursor.offset += bitWidth * (count / 8);\n return values;\n}\n\nfunction decodeRunRepeated(\n cursor: CursorBuffer,\n count: number,\n opts: ParquetCodecOptions\n): number[] {\n // @ts-ignore\n const bitWidth: number = opts.bitWidth;\n\n let value = 0;\n for (let i = 0; i < Math.ceil(bitWidth / 8); i++) {\n // eslint-disable-next-line\n value << 8; // TODO - this looks wrong\n value += cursor.buffer[cursor.offset];\n cursor.offset += 1;\n }\n\n // tslint:disable-next-line:prefer-array-literal\n return new Array(count).fill(value);\n}\n\nfunction encodeRunBitpacked(values: number[], opts: ParquetCodecOptions): Buffer {\n // @ts-ignore\n const bitWidth: number = opts.bitWidth;\n\n for (let i = 0; i < values.length % 8; i++) {\n values.push(0);\n }\n\n const buf = Buffer.alloc(Math.ceil(bitWidth * (values.length / 8)));\n for (let b = 0; b < bitWidth * values.length; b++) {\n if ((values[Math.floor(b / bitWidth)] & (1 << b % bitWidth)) > 0) {\n buf[Math.floor(b / 8)] |= 1 << b % 8;\n }\n }\n\n return Buffer.concat([Buffer.from(varint.encode(((values.length / 8) << 1) | 1)), buf]);\n}\n\nfunction encodeRunRepeated(value: number, count: number, opts: ParquetCodecOptions): Buffer {\n // @ts-ignore\n const bitWidth: number = opts.bitWidth;\n\n const buf = Buffer.alloc(Math.ceil(bitWidth / 8));\n\n for (let i = 0; i < buf.length; i++) {\n buf.writeUInt8(value & 0xff, i);\n // eslint-disable-next-line\n value >> 8; // TODO - this looks wrong\n }\n\n return Buffer.concat([Buffer.from(varint.encode(count << 1)), buf]);\n}\n"],"mappings":";;;;;;;;;AAIA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGO,SAASC,YAAYA,CAC1BC,IAAmB,EACnBC,MAAa,EACbC,IAAyB,EACjB;EACR,IAAI,EAAE,UAAU,IAAIA,IAAI,CAAC,EAAE;IACzB,MAAM,IAAIC,KAAK,CAAC,sBAAsB,CAAC;EACzC;EAEA,QAAQH,IAAI;IACV,KAAK,SAAS;IACd,KAAK,OAAO;IACZ,KAAK,OAAO;MAEVC,MAAM,GAAGA,MAAM,CAACG,GAAG,CAAC,UAACC,CAAC;QAAA,OAAKC,QAAQ,CAACD,CAAC,EAAE,EAAE,CAAC;MAAA,EAAC;MAC3C;IAEF;MACE,MAAM,IAAIF,KAAK,sBAAAI,MAAA,CAAsBP,IAAI,EAAG;EAAC;EAGjD,IAAIQ,GAAG,GAAGC,MAAM,CAACC,KAAK,CAAC,CAAC,CAAC;EACzB,IAAIC,GAAU,GAAG,EAAE;EACnB,IAAIC,OAAO,GAAG,CAAC;EAEf,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGZ,MAAM,CAACa,MAAM,EAAED,CAAC,EAAE,EAAE;IAGtC,IAAID,OAAO,KAAK,CAAC,IAAID,GAAG,CAACG,MAAM,GAAG,CAAC,KAAK,CAAC,IAAIb,MAAM,CAACY,CAAC,CAAC,KAAKZ,MAAM,CAACY,CAAC,GAAG,CAAC,CAAC,EAAE;MAExE,IAAIF,GAAG,CAACG,MAAM,EAAE;QACdN,GAAG,GAAGC,MAAM,CAACF,MAAM,CAAC,CAACC,GAAG,EAAEO,kBAAkB,CAACJ,GAAG,EAAET,IAAI,CAAC,CAAC,CAAC;QACzDS,GAAG,GAAG,EAAE;MACV;MACAC,OAAO,GAAG,CAAC;IACb,CAAC,MAAM,IAAIA,OAAO,GAAG,CAAC,IAAIX,MAAM,CAACY,CAAC,CAAC,KAAKZ,MAAM,CAACY,CAAC,GAAG,CAAC,CAAC,EAAE;MACrDD,OAAO,IAAI,CAAC;IACd,CAAC,MAAM;MAEL,IAAIA,OAAO,EAAE;QACXJ,GAAG,GAAGC,MAAM,CAACF,MAAM,CAAC,CAACC,GAAG,EAAEQ,iBAAiB,CAACf,MAAM,CAACY,CAAC,GAAG,CAAC,CAAC,EAAED,OAAO,EAAEV,IAAI,CAAC,CAAC,CAAC;QAC3EU,OAAO,GAAG,CAAC;MACb;MACAD,GAAG,CAACM,IAAI,CAAChB,MAAM,CAACY,CAAC,CAAC,CAAC;IACrB;EACF;EAEA,IAAID,OAAO,EAAE;IACXJ,GAAG,GAAGC,MAAM,CAACF,MAAM,CAAC,CAACC,GAAG,EAAEQ,iBAAiB,CAACf,MAAM,CAACA,MAAM,CAACa,MAAM,GAAG,CAAC,CAAC,EAAEF,OAAO,EAAEV,IAAI,CAAC,CAAC,CAAC;EACzF,CAAC,MAAM,IAAIS,GAAG,CAACG,MAAM,EAAE;IACrBN,GAAG,GAAGC,MAAM,CAACF,MAAM,CAAC,CAACC,GAAG,EAAEO,kBAAkB,CAACJ,GAAG,EAAET,IAAI,CAAC,CAAC,CAAC;EAC3D;EAEA,IAAIA,IAAI,CAACgB,eAAe,EAAE;IACxB,OAAOV,GAAG;EACZ;EAEA,IAAMW,QAAQ,GAAGV,MAAM,CAACC,KAAK,CAACF,GAAG,CAACM,MAAM,GAAG,CAAC,CAAC;EAC7CK,QAAQ,CAACC,aAAa,CAACZ,GAAG,CAACM,MAAM,EAAEO,SAAS,CAAC;EAC7Cb,GAAG,CAACc,IAAI,CAACH,QAAQ,EAAE,CAAC,CAAC;EAErB,OAAOA,QAAQ;AACjB;AAEO,SAASI,YAAYA,CAC1BvB,IAAmB,EACnBwB,MAAoB,EACpBC,KAAa,EACbvB,IAAyB,EACf;EACV,IAAI,EAAE,UAAU,IAAIA,IAAI,CAAC,EAAE;IACzB,MAAM,IAAIC,KAAK,CAAC,sBAAsB,CAAC;EACzC;EAEA,IAAI,CAACD,IAAI,CAACgB,eAAe,EAAE;IACzBM,MAAM,CAACE,MAAM,IAAI,CAAC;EACpB;EAEA,IAAIzB,MAAgB,GAAG,EAAE;EACzB,OAAOA,MAAM,CAACa,MAAM,GAAGW,KAAK,EAAE;IAC5B,IAAME,MAAM,GAAGC,eAAM,CAACC,MAAM,CAACL,MAAM,CAACM,MAAM,EAAEN,MAAM,CAACE,MAAM,CAAC;IAC1DF,MAAM,CAACE,MAAM,IAAIE,eAAM,CAACG,cAAc,CAACJ,MAAM,CAAC;IAC9C,IAAIA,MAAM,GAAG,CAAC,EAAE;MAAA,IAAAK,OAAA;MACd,IAAMP,MAAK,GAAG,CAACE,MAAM,IAAI,CAAC,IAAI,CAAC;MAC/B,CAAAK,OAAA,GAAA/B,MAAM,EAACgB,IAAI,CAAAgB,KAAA,CAAAD,OAAA,MAAAE,mBAAA,CAAAC,OAAA,EAAIC,kBAAkB,CAACZ,MAAM,EAAEC,MAAK,EAAEvB,IAAI,CAAC,EAAC;IACzD,CAAC,MAAM;MAAA,IAAAmC,QAAA;MACL,IAAMZ,OAAK,GAAGE,MAAM,IAAI,CAAC;MACzB,CAAAU,QAAA,GAAApC,MAAM,EAACgB,IAAI,CAAAgB,KAAA,CAAAI,QAAA,MAAAH,mBAAA,CAAAC,OAAA,EAAIG,iBAAiB,CAACd,MAAM,EAAEC,OAAK,EAAEvB,IAAI,CAAC,EAAC;IACxD;EACF;EACAD,MAAM,GAAGA,MAAM,CAACsC,KAAK,CAAC,CAAC,EAAEd,KAAK,CAAC;EAE/B,IAAIxB,MAAM,CAACa,MAAM,KAAKW,KAAK,EAAE;IAC3B,MAAM,IAAItB,KAAK,CAAC,sBAAsB,CAAC;EACzC;EAEA,OAAOF,MAAM;AACf;AAEA,SAASmC,kBAAkBA,CACzBZ,MAAoB,EACpBC,KAAa,EACbvB,IAAyB,EACf;EAEV,IAAMsC,QAAgB,GAAGtC,IAAI,CAACsC,QAAQ;EAEtC,IAAIf,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE;IACnB,MAAM,IAAItB,KAAK,CAAC,yBAAyB,CAAC;EAC5C;EAGA,IAAMF,MAAM,GAAG,IAAIwC,KAAK,CAAChB,KAAK,CAAC,CAACiB,IAAI,CAAC,CAAC,CAAC;EACvC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,QAAQ,GAAGf,KAAK,EAAEkB,CAAC,EAAE,EAAE;IACzC,IAAInB,MAAM,CAACM,MAAM,CAACN,MAAM,CAACE,MAAM,GAAGkB,IAAI,CAACC,KAAK,CAACF,CAAC,GAAG,CAAC,CAAC,CAAC,GAAI,CAAC,IAAIA,CAAC,GAAG,CAAE,EAAE;MACnE1C,MAAM,CAAC2C,IAAI,CAACC,KAAK,CAACF,CAAC,GAAGH,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAIG,CAAC,GAAGH,QAAQ;IACvD;EACF;EAEAhB,MAAM,CAACE,MAAM,IAAIc,QAAQ,IAAIf,KAAK,GAAG,CAAC,CAAC;EACvC,OAAOxB,MAAM;AACf;AAEA,SAASqC,iBAAiBA,CACxBd,MAAoB,EACpBC,KAAa,EACbvB,IAAyB,EACf;EAEV,IAAMsC,QAAgB,GAAGtC,IAAI,CAACsC,QAAQ;EAEtC,IAAIM,KAAK,GAAG,CAAC;EACb,KAAK,IAAIjC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG+B,IAAI,CAACG,IAAI,CAACP,QAAQ,GAAG,CAAC,CAAC,EAAE3B,CAAC,EAAE,EAAE;IAEhDiC,KAAK,IAAI,CAAC;IACVA,KAAK,IAAItB,MAAM,CAACM,MAAM,CAACN,MAAM,CAACE,MAAM,CAAC;IACrCF,MAAM,CAACE,MAAM,IAAI,CAAC;EACpB;EAGA,OAAO,IAAIe,KAAK,CAAChB,KAAK,CAAC,CAACiB,IAAI,CAACI,KAAK,CAAC;AACrC;AAEA,SAAS/B,kBAAkBA,CAACd,MAAgB,EAAEC,IAAyB,EAAU;EAE/E,IAAMsC,QAAgB,GAAGtC,IAAI,CAACsC,QAAQ;EAEtC,KAAK,IAAI3B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGZ,MAAM,CAACa,MAAM,GAAG,CAAC,EAAED,CAAC,EAAE,EAAE;IAC1CZ,MAAM,CAACgB,IAAI,CAAC,CAAC,CAAC;EAChB;EAEA,IAAMT,GAAG,GAAGC,MAAM,CAACC,KAAK,CAACkC,IAAI,CAACG,IAAI,CAACP,QAAQ,IAAIvC,MAAM,CAACa,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;EACnE,KAAK,IAAI6B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,QAAQ,GAAGvC,MAAM,CAACa,MAAM,EAAE6B,CAAC,EAAE,EAAE;IACjD,IAAI,CAAC1C,MAAM,CAAC2C,IAAI,CAACC,KAAK,CAACF,CAAC,GAAGH,QAAQ,CAAC,CAAC,GAAI,CAAC,IAAIG,CAAC,GAAGH,QAAS,IAAI,CAAC,EAAE;MAChEhC,GAAG,CAACoC,IAAI,CAACC,KAAK,CAACF,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAIA,CAAC,GAAG,CAAC;IACtC;EACF;EAEA,OAAOlC,MAAM,CAACF,MAAM,CAAC,CAACE,MAAM,CAACuC,IAAI,CAACpB,eAAM,CAACqB,MAAM,CAAGhD,MAAM,CAACa,MAAM,GAAG,CAAC,IAAK,CAAC,GAAI,CAAC,CAAC,CAAC,EAAEN,GAAG,CAAC,CAAC;AACzF;AAEA,SAASQ,iBAAiBA,CAAC8B,KAAa,EAAErB,KAAa,EAAEvB,IAAyB,EAAU;EAE1F,IAAMsC,QAAgB,GAAGtC,IAAI,CAACsC,QAAQ;EAEtC,IAAMhC,GAAG,GAAGC,MAAM,CAACC,KAAK,CAACkC,IAAI,CAACG,IAAI,CAACP,QAAQ,GAAG,CAAC,CAAC,CAAC;EAEjD,KAAK,IAAI3B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,GAAG,CAACM,MAAM,EAAED,CAAC,EAAE,EAAE;IACnCL,GAAG,CAAC0C,UAAU,CAACJ,KAAK,GAAG,IAAI,EAAEjC,CAAC,CAAC;IAE/BiC,KAAK,IAAI,CAAC;EACZ;EAEA,OAAOrC,MAAM,CAACF,MAAM,CAAC,CAACE,MAAM,CAACuC,IAAI,CAACpB,eAAM,CAACqB,MAAM,CAACxB,KAAK,IAAI,CAAC,CAAC,CAAC,EAAEjB,GAAG,CAAC,CAAC;AACrE"}
1
+ {"version":3,"file":"rle.js","names":["_varint","_interopRequireDefault","require","encodeValues","type","values","opts","Error","map","x","parseInt","concat","buf","Buffer","alloc","run","repeats","i","length","encodeRunBitpacked","encodeRunRepeated","push","disableEnvelope","envelope","writeUInt32LE","undefined","copy","decodeValues","cursor","count","offset","header","varint","decode","buffer","encodingLength","_values","apply","_toConsumableArray2","default","decodeRunBitpacked","_values2","decodeRunRepeated","slice","bitWidth","Array","fill","b","Math","floor","value","ceil","from","encode","writeUInt8"],"sources":["../../../../src/parquetjs/codecs/rle.ts"],"sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\n\nimport type {PrimitiveType} from '../schema/declare';\nimport type {CursorBuffer, ParquetCodecOptions} from './declare';\nimport varint from 'varint';\n\n// eslint-disable-next-line max-statements, complexity\nexport function encodeValues(\n type: PrimitiveType,\n values: any[],\n opts: ParquetCodecOptions\n): Buffer {\n if (!('bitWidth' in opts)) {\n throw new Error('bitWidth is required');\n }\n\n switch (type) {\n case 'BOOLEAN':\n case 'INT32':\n case 'INT64':\n // tslint:disable-next-line:no-parameter-reassignment\n values = values.map((x) => parseInt(x, 10));\n break;\n\n default:\n throw new Error(`unsupported type: ${type}`);\n }\n\n let buf = Buffer.alloc(0);\n let run: any[] = [];\n let repeats = 0;\n\n for (let i = 0; i < values.length; i++) {\n // If we are at the beginning of a run and the next value is same we start\n // collecting repeated values\n if (repeats === 0 && run.length % 8 === 0 && values[i] === values[i + 1]) {\n // If we have any data in runs we need to encode them\n if (run.length) {\n buf = Buffer.concat([buf, encodeRunBitpacked(run, opts)]);\n run = [];\n }\n repeats = 1;\n } else if (repeats > 0 && values[i] === values[i - 1]) {\n repeats += 1;\n } else {\n // If values changes we need to post any previous repeated values\n if (repeats) {\n buf = Buffer.concat([buf, encodeRunRepeated(values[i - 1], repeats, opts)]);\n repeats = 0;\n }\n run.push(values[i]);\n }\n }\n\n if (repeats) {\n buf = Buffer.concat([buf, encodeRunRepeated(values[values.length - 1], repeats, opts)]);\n } else if (run.length) {\n buf = Buffer.concat([buf, encodeRunBitpacked(run, opts)]);\n }\n\n if (opts.disableEnvelope) {\n return buf;\n }\n\n const envelope = Buffer.alloc(buf.length + 4);\n envelope.writeUInt32LE(buf.length, undefined);\n buf.copy(envelope, 4);\n\n return envelope;\n}\n\nexport function decodeValues(\n type: PrimitiveType,\n cursor: CursorBuffer,\n count: number,\n opts: ParquetCodecOptions\n): number[] {\n if (!('bitWidth' in opts)) {\n throw new Error('bitWidth is required');\n }\n\n if (!opts.disableEnvelope) {\n cursor.offset += 4;\n }\n\n let values: number[] = [];\n while (values.length < count) {\n const header = varint.decode(cursor.buffer, cursor.offset);\n cursor.offset += varint.encodingLength(header);\n if (header & 1) {\n const count = (header >> 1) * 8;\n values.push(...decodeRunBitpacked(cursor, count, opts));\n } else {\n const count = header >> 1;\n values.push(...decodeRunRepeated(cursor, count, opts));\n }\n }\n values = values.slice(0, count);\n\n if (values.length !== count) {\n throw new Error('invalid RLE encoding');\n }\n\n return values;\n}\n\nfunction decodeRunBitpacked(\n cursor: CursorBuffer,\n count: number,\n opts: ParquetCodecOptions\n): number[] {\n // @ts-ignore\n const bitWidth: number = opts.bitWidth;\n\n if (count % 8 !== 0) {\n throw new Error('must be a multiple of 8');\n }\n\n // tslint:disable-next-line:prefer-array-literal\n const values = new Array(count).fill(0);\n for (let b = 0; b < bitWidth * count; b++) {\n if (cursor.buffer[cursor.offset + Math.floor(b / 8)] & (1 << b % 8)) {\n values[Math.floor(b / bitWidth)] |= 1 << b % bitWidth;\n }\n }\n\n cursor.offset += bitWidth * (count / 8);\n return values;\n}\n\nfunction decodeRunRepeated(\n cursor: CursorBuffer,\n count: number,\n opts: ParquetCodecOptions\n): number[] {\n // @ts-ignore\n const bitWidth: number = opts.bitWidth;\n\n let value = 0;\n for (let i = 0; i < Math.ceil(bitWidth / 8); i++) {\n // eslint-disable-next-line\n value << 8; // TODO - this looks wrong\n value += cursor.buffer[cursor.offset];\n cursor.offset += 1;\n }\n\n // tslint:disable-next-line:prefer-array-literal\n return new Array(count).fill(value);\n}\n\nfunction encodeRunBitpacked(values: number[], opts: ParquetCodecOptions): Buffer {\n // @ts-ignore\n const bitWidth: number = opts.bitWidth;\n\n for (let i = 0; i < values.length % 8; i++) {\n values.push(0);\n }\n\n const buf = Buffer.alloc(Math.ceil(bitWidth * (values.length / 8)));\n for (let b = 0; b < bitWidth * values.length; b++) {\n if ((values[Math.floor(b / bitWidth)] & (1 << b % bitWidth)) > 0) {\n buf[Math.floor(b / 8)] |= 1 << b % 8;\n }\n }\n\n return Buffer.concat([Buffer.from(varint.encode(((values.length / 8) << 1) | 1)), buf]);\n}\n\nfunction encodeRunRepeated(value: number, count: number, opts: ParquetCodecOptions): Buffer {\n // @ts-ignore\n const bitWidth: number = opts.bitWidth;\n\n const buf = Buffer.alloc(Math.ceil(bitWidth / 8));\n\n for (let i = 0; i < buf.length; i++) {\n buf.writeUInt8(value & 0xff, i);\n // eslint-disable-next-line\n value >> 8; // TODO - this looks wrong\n }\n\n return Buffer.concat([Buffer.from(varint.encode(count << 1)), buf]);\n}\n"],"mappings":";;;;;;;;;AAIA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGO,SAASC,YAAYA,CAC1BC,IAAmB,EACnBC,MAAa,EACbC,IAAyB,EACjB;EACR,IAAI,EAAE,UAAU,IAAIA,IAAI,CAAC,EAAE;IACzB,MAAM,IAAIC,KAAK,CAAC,sBAAsB,CAAC;EACzC;EAEA,QAAQH,IAAI;IACV,KAAK,SAAS;IACd,KAAK,OAAO;IACZ,KAAK,OAAO;MAEVC,MAAM,GAAGA,MAAM,CAACG,GAAG,CAAC,UAACC,CAAC;QAAA,OAAKC,QAAQ,CAACD,CAAC,EAAE,EAAE,CAAC;MAAA,EAAC;MAC3C;IAEF;MACE,MAAM,IAAIF,KAAK,sBAAAI,MAAA,CAAsBP,IAAI,CAAE,CAAC;EAChD;EAEA,IAAIQ,GAAG,GAAGC,MAAM,CAACC,KAAK,CAAC,CAAC,CAAC;EACzB,IAAIC,GAAU,GAAG,EAAE;EACnB,IAAIC,OAAO,GAAG,CAAC;EAEf,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGZ,MAAM,CAACa,MAAM,EAAED,CAAC,EAAE,EAAE;IAGtC,IAAID,OAAO,KAAK,CAAC,IAAID,GAAG,CAACG,MAAM,GAAG,CAAC,KAAK,CAAC,IAAIb,MAAM,CAACY,CAAC,CAAC,KAAKZ,MAAM,CAACY,CAAC,GAAG,CAAC,CAAC,EAAE;MAExE,IAAIF,GAAG,CAACG,MAAM,EAAE;QACdN,GAAG,GAAGC,MAAM,CAACF,MAAM,CAAC,CAACC,GAAG,EAAEO,kBAAkB,CAACJ,GAAG,EAAET,IAAI,CAAC,CAAC,CAAC;QACzDS,GAAG,GAAG,EAAE;MACV;MACAC,OAAO,GAAG,CAAC;IACb,CAAC,MAAM,IAAIA,OAAO,GAAG,CAAC,IAAIX,MAAM,CAACY,CAAC,CAAC,KAAKZ,MAAM,CAACY,CAAC,GAAG,CAAC,CAAC,EAAE;MACrDD,OAAO,IAAI,CAAC;IACd,CAAC,MAAM;MAEL,IAAIA,OAAO,EAAE;QACXJ,GAAG,GAAGC,MAAM,CAACF,MAAM,CAAC,CAACC,GAAG,EAAEQ,iBAAiB,CAACf,MAAM,CAACY,CAAC,GAAG,CAAC,CAAC,EAAED,OAAO,EAAEV,IAAI,CAAC,CAAC,CAAC;QAC3EU,OAAO,GAAG,CAAC;MACb;MACAD,GAAG,CAACM,IAAI,CAAChB,MAAM,CAACY,CAAC,CAAC,CAAC;IACrB;EACF;EAEA,IAAID,OAAO,EAAE;IACXJ,GAAG,GAAGC,MAAM,CAACF,MAAM,CAAC,CAACC,GAAG,EAAEQ,iBAAiB,CAACf,MAAM,CAACA,MAAM,CAACa,MAAM,GAAG,CAAC,CAAC,EAAEF,OAAO,EAAEV,IAAI,CAAC,CAAC,CAAC;EACzF,CAAC,MAAM,IAAIS,GAAG,CAACG,MAAM,EAAE;IACrBN,GAAG,GAAGC,MAAM,CAACF,MAAM,CAAC,CAACC,GAAG,EAAEO,kBAAkB,CAACJ,GAAG,EAAET,IAAI,CAAC,CAAC,CAAC;EAC3D;EAEA,IAAIA,IAAI,CAACgB,eAAe,EAAE;IACxB,OAAOV,GAAG;EACZ;EAEA,IAAMW,QAAQ,GAAGV,MAAM,CAACC,KAAK,CAACF,GAAG,CAACM,MAAM,GAAG,CAAC,CAAC;EAC7CK,QAAQ,CAACC,aAAa,CAACZ,GAAG,CAACM,MAAM,EAAEO,SAAS,CAAC;EAC7Cb,GAAG,CAACc,IAAI,CAACH,QAAQ,EAAE,CAAC,CAAC;EAErB,OAAOA,QAAQ;AACjB;AAEO,SAASI,YAAYA,CAC1BvB,IAAmB,EACnBwB,MAAoB,EACpBC,KAAa,EACbvB,IAAyB,EACf;EACV,IAAI,EAAE,UAAU,IAAIA,IAAI,CAAC,EAAE;IACzB,MAAM,IAAIC,KAAK,CAAC,sBAAsB,CAAC;EACzC;EAEA,IAAI,CAACD,IAAI,CAACgB,eAAe,EAAE;IACzBM,MAAM,CAACE,MAAM,IAAI,CAAC;EACpB;EAEA,IAAIzB,MAAgB,GAAG,EAAE;EACzB,OAAOA,MAAM,CAACa,MAAM,GAAGW,KAAK,EAAE;IAC5B,IAAME,MAAM,GAAGC,eAAM,CAACC,MAAM,CAACL,MAAM,CAACM,MAAM,EAAEN,MAAM,CAACE,MAAM,CAAC;IAC1DF,MAAM,CAACE,MAAM,IAAIE,eAAM,CAACG,cAAc,CAACJ,MAAM,CAAC;IAC9C,IAAIA,MAAM,GAAG,CAAC,EAAE;MAAA,IAAAK,OAAA;MACd,IAAMP,MAAK,GAAG,CAACE,MAAM,IAAI,CAAC,IAAI,CAAC;MAC/B,CAAAK,OAAA,GAAA/B,MAAM,EAACgB,IAAI,CAAAgB,KAAA,CAAAD,OAAA,MAAAE,mBAAA,CAAAC,OAAA,EAAIC,kBAAkB,CAACZ,MAAM,EAAEC,MAAK,EAAEvB,IAAI,CAAC,EAAC;IACzD,CAAC,MAAM;MAAA,IAAAmC,QAAA;MACL,IAAMZ,OAAK,GAAGE,MAAM,IAAI,CAAC;MACzB,CAAAU,QAAA,GAAApC,MAAM,EAACgB,IAAI,CAAAgB,KAAA,CAAAI,QAAA,MAAAH,mBAAA,CAAAC,OAAA,EAAIG,iBAAiB,CAACd,MAAM,EAAEC,OAAK,EAAEvB,IAAI,CAAC,EAAC;IACxD;EACF;EACAD,MAAM,GAAGA,MAAM,CAACsC,KAAK,CAAC,CAAC,EAAEd,KAAK,CAAC;EAE/B,IAAIxB,MAAM,CAACa,MAAM,KAAKW,KAAK,EAAE;IAC3B,MAAM,IAAItB,KAAK,CAAC,sBAAsB,CAAC;EACzC;EAEA,OAAOF,MAAM;AACf;AAEA,SAASmC,kBAAkBA,CACzBZ,MAAoB,EACpBC,KAAa,EACbvB,IAAyB,EACf;EAEV,IAAMsC,QAAgB,GAAGtC,IAAI,CAACsC,QAAQ;EAEtC,IAAIf,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE;IACnB,MAAM,IAAItB,KAAK,CAAC,yBAAyB,CAAC;EAC5C;EAGA,IAAMF,MAAM,GAAG,IAAIwC,KAAK,CAAChB,KAAK,CAAC,CAACiB,IAAI,CAAC,CAAC,CAAC;EACvC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,QAAQ,GAAGf,KAAK,EAAEkB,CAAC,EAAE,EAAE;IACzC,IAAInB,MAAM,CAACM,MAAM,CAACN,MAAM,CAACE,MAAM,GAAGkB,IAAI,CAACC,KAAK,CAACF,CAAC,GAAG,CAAC,CAAC,CAAC,GAAI,CAAC,IAAIA,CAAC,GAAG,CAAE,EAAE;MACnE1C,MAAM,CAAC2C,IAAI,CAACC,KAAK,CAACF,CAAC,GAAGH,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAIG,CAAC,GAAGH,QAAQ;IACvD;EACF;EAEAhB,MAAM,CAACE,MAAM,IAAIc,QAAQ,IAAIf,KAAK,GAAG,CAAC,CAAC;EACvC,OAAOxB,MAAM;AACf;AAEA,SAASqC,iBAAiBA,CACxBd,MAAoB,EACpBC,KAAa,EACbvB,IAAyB,EACf;EAEV,IAAMsC,QAAgB,GAAGtC,IAAI,CAACsC,QAAQ;EAEtC,IAAIM,KAAK,GAAG,CAAC;EACb,KAAK,IAAIjC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG+B,IAAI,CAACG,IAAI,CAACP,QAAQ,GAAG,CAAC,CAAC,EAAE3B,CAAC,EAAE,EAAE;IAEhDiC,KAAK,IAAI,CAAC;IACVA,KAAK,IAAItB,MAAM,CAACM,MAAM,CAACN,MAAM,CAACE,MAAM,CAAC;IACrCF,MAAM,CAACE,MAAM,IAAI,CAAC;EACpB;EAGA,OAAO,IAAIe,KAAK,CAAChB,KAAK,CAAC,CAACiB,IAAI,CAACI,KAAK,CAAC;AACrC;AAEA,SAAS/B,kBAAkBA,CAACd,MAAgB,EAAEC,IAAyB,EAAU;EAE/E,IAAMsC,QAAgB,GAAGtC,IAAI,CAACsC,QAAQ;EAEtC,KAAK,IAAI3B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGZ,MAAM,CAACa,MAAM,GAAG,CAAC,EAAED,CAAC,EAAE,EAAE;IAC1CZ,MAAM,CAACgB,IAAI,CAAC,CAAC,CAAC;EAChB;EAEA,IAAMT,GAAG,GAAGC,MAAM,CAACC,KAAK,CAACkC,IAAI,CAACG,IAAI,CAACP,QAAQ,IAAIvC,MAAM,CAACa,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;EACnE,KAAK,IAAI6B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,QAAQ,GAAGvC,MAAM,CAACa,MAAM,EAAE6B,CAAC,EAAE,EAAE;IACjD,IAAI,CAAC1C,MAAM,CAAC2C,IAAI,CAACC,KAAK,CAACF,CAAC,GAAGH,QAAQ,CAAC,CAAC,GAAI,CAAC,IAAIG,CAAC,GAAGH,QAAS,IAAI,CAAC,EAAE;MAChEhC,GAAG,CAACoC,IAAI,CAACC,KAAK,CAACF,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAIA,CAAC,GAAG,CAAC;IACtC;EACF;EAEA,OAAOlC,MAAM,CAACF,MAAM,CAAC,CAACE,MAAM,CAACuC,IAAI,CAACpB,eAAM,CAACqB,MAAM,CAAGhD,MAAM,CAACa,MAAM,GAAG,CAAC,IAAK,CAAC,GAAI,CAAC,CAAC,CAAC,EAAEN,GAAG,CAAC,CAAC;AACzF;AAEA,SAASQ,iBAAiBA,CAAC8B,KAAa,EAAErB,KAAa,EAAEvB,IAAyB,EAAU;EAE1F,IAAMsC,QAAgB,GAAGtC,IAAI,CAACsC,QAAQ;EAEtC,IAAMhC,GAAG,GAAGC,MAAM,CAACC,KAAK,CAACkC,IAAI,CAACG,IAAI,CAACP,QAAQ,GAAG,CAAC,CAAC,CAAC;EAEjD,KAAK,IAAI3B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,GAAG,CAACM,MAAM,EAAED,CAAC,EAAE,EAAE;IACnCL,GAAG,CAAC0C,UAAU,CAACJ,KAAK,GAAG,IAAI,EAAEjC,CAAC,CAAC;IAE/BiC,KAAK,IAAI,CAAC;EACZ;EAEA,OAAOrC,MAAM,CAACF,MAAM,CAAC,CAACE,MAAM,CAACuC,IAAI,CAACpB,eAAM,CAACqB,MAAM,CAACxB,KAAK,IAAI,CAAC,CAAC,CAAC,EAAEjB,GAAG,CAAC,CAAC;AACrE"}
@@ -13,7 +13,6 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
13
13
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
14
14
  var _compression = require("@loaders.gl/compression");
15
15
  var _lz4js = _interopRequireDefault(require("lz4js"));
16
- var _lzo = _interopRequireDefault(require("lzo"));
17
16
  function toBuffer(arrayBuffer) {
18
17
  return Buffer.from(arrayBuffer);
19
18
  }
@@ -25,8 +24,7 @@ function toArrayBuffer(buffer) {
25
24
  return buffer;
26
25
  }
27
26
  var modules = {
28
- lz4js: _lz4js.default,
29
- lzo: _lzo.default
27
+ lz4js: _lz4js.default
30
28
  };
31
29
  var PARQUET_COMPRESSION_METHODS = {
32
30
  UNCOMPRESSED: new _compression.NoCompression(),
@@ -41,9 +39,6 @@ var PARQUET_COMPRESSION_METHODS = {
41
39
  LZ4_RAW: new _compression.LZ4Compression({
42
40
  modules: modules
43
41
  }),
44
- LZO: new _compression.LZOCompression({
45
- modules: modules
46
- }),
47
42
  ZSTD: new _compression.ZstdCompression({
48
43
  modules: modules
49
44
  })
@@ -1 +1 @@
1
- {"version":3,"file":"compression.js","names":["_compression","require","_lz4js","_interopRequireDefault","_lzo","toBuffer","arrayBuffer","Buffer","from","toArrayBuffer","buffer","isBuffer","typedArray","Uint8Array","byteOffset","length","slice","modules","lz4js","lzo","PARQUET_COMPRESSION_METHODS","UNCOMPRESSED","NoCompression","GZIP","GZipCompression","SNAPPY","SnappyCompression","BROTLI","BrotliCompression","LZ4","LZ4Compression","LZ4_RAW","LZO","LZOCompression","ZSTD","ZstdCompression","exports","preloadCompressions","_x","_preloadCompressions","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","options","compressions","wrap","_callee$","_context","prev","next","Object","values","Promise","all","map","compression","preload","abrupt","sent","stop","deflate","_x2","_x3","_deflate","_callee2","method","value","inputArrayBuffer","compressedArrayBuffer","_callee2$","_context2","Error","concat","compress","decompress","_x4","_x5","_x6","_decompress","_callee3","size","_callee3$","_context3","inflate"],"sources":["../../../src/parquetjs/compression.ts"],"sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\n/* eslint-disable camelcase */\n// Forked from https://github.com/ironSource/parquetjs under MIT license\n\nimport {\n Compression,\n NoCompression,\n GZipCompression,\n SnappyCompression,\n BrotliCompression,\n LZOCompression,\n LZ4Compression,\n ZstdCompression\n} from '@loaders.gl/compression';\n\nimport {ParquetCompression} from './schema/declare';\n\n/** We can't use loaders-util buffer handling since we are dependent on buffers even in the browser */\nfunction toBuffer(arrayBuffer: ArrayBuffer): Buffer {\n return Buffer.from(arrayBuffer);\n}\n\nfunction toArrayBuffer(buffer: Buffer): ArrayBuffer {\n // TODO - per docs we should just be able to call buffer.buffer, but there are issues\n if (Buffer.isBuffer(buffer)) {\n const typedArray = new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.length);\n return typedArray.slice().buffer;\n }\n return buffer;\n}\n\n// TODO switch to worker compression to avoid bundling...\n\n// import brotli from 'brotli'; - brotli has problems with decompress in browsers\n// import brotliDecompress from 'brotli/decompress';\nimport lz4js from 'lz4js';\nimport lzo from 'lzo';\n// import {ZstdCodec} from 'zstd-codec';\n\n// Inject large dependencies through Compression constructor options\nconst modules = {\n // brotli has problems with decompress in browsers\n // brotli: {\n // decompress: brotliDecompress,\n // compress: () => {\n // throw new Error('brotli compress');\n // }\n // },\n lz4js,\n lzo\n // 'zstd-codec': ZstdCodec\n};\n\n// See https://github.com/apache/parquet-format/blob/master/Compression.md\nexport const PARQUET_COMPRESSION_METHODS: Record<ParquetCompression, Compression> = {\n UNCOMPRESSED: new NoCompression(),\n GZIP: new GZipCompression(),\n SNAPPY: new SnappyCompression(),\n BROTLI: new BrotliCompression({modules}),\n // TODO: Understand difference between LZ4 and LZ4_RAW\n LZ4: new LZ4Compression({modules}),\n LZ4_RAW: new LZ4Compression({modules}),\n LZO: new LZOCompression({modules}),\n ZSTD: new ZstdCompression({modules})\n};\n\n/**\n * Register compressions that have big external libraries\n * @param options.modules External library dependencies\n */\nexport async function preloadCompressions(options?: {modules: {[key: string]: any}}) {\n const compressions = Object.values(PARQUET_COMPRESSION_METHODS);\n return await Promise.all(compressions.map((compression) => compression.preload()));\n}\n\n/**\n * Deflate a value using compression method `method`\n */\nexport async function deflate(method: ParquetCompression, value: Buffer): Promise<Buffer> {\n const compression = PARQUET_COMPRESSION_METHODS[method];\n if (!compression) {\n throw new Error(`parquet: invalid compression method: ${method}`);\n }\n const inputArrayBuffer = toArrayBuffer(value);\n const compressedArrayBuffer = await compression.compress(inputArrayBuffer);\n return toBuffer(compressedArrayBuffer);\n}\n\n/**\n * Inflate a value using compression method `method`\n */\nexport async function decompress(\n method: ParquetCompression,\n value: Buffer,\n size: number\n): Promise<Buffer> {\n const compression = PARQUET_COMPRESSION_METHODS[method];\n if (!compression) {\n throw new Error(`parquet: invalid compression method: ${method}`);\n }\n const inputArrayBuffer = toArrayBuffer(value);\n const compressedArrayBuffer = await compression.decompress(inputArrayBuffer, size);\n return toBuffer(compressedArrayBuffer);\n}\n\n/*\n * Inflate a value using compression method `method`\n */\nexport function inflate(method: ParquetCompression, value: Buffer, size: number): Buffer {\n if (!(method in PARQUET_COMPRESSION_METHODS)) {\n throw new Error(`invalid compression method: ${method}`);\n }\n // @ts-ignore\n return PARQUET_COMPRESSION_METHODS[method].inflate(value, size);\n}\n\n/*\nfunction deflate_identity(value: Buffer): Buffer {\n return value;\n}\n\nfunction deflate_gzip(value: Buffer): Buffer {\n return zlib.gzipSync(value);\n}\n\nfunction deflate_snappy(value: Buffer): Buffer {\n return snappyjs.compress(value);\n}\n\nfunction deflate_lzo(value: Buffer): Buffer {\n lzo = lzo || Util.load('lzo');\n return lzo.compress(value);\n}\n\nfunction deflate_brotli(value: Buffer): Buffer {\n brotli = brotli || Util.load('brotli');\n const result = brotli.compress(value, {\n mode: 0,\n quality: 8,\n lgwin: 22\n });\n return result ? Buffer.from(result) : Buffer.alloc(0);\n}\n\nfunction deflate_lz4(value: Buffer): Buffer {\n lz4js = lz4js || Util.load('lz4js');\n try {\n // let result = Buffer.alloc(lz4js.encodeBound(value.length));\n // const compressedSize = lz4.encodeBlock(value, result);\n // // remove unnecessary bytes\n // result = result.slice(0, compressedSize);\n // return result;\n return Buffer.from(lz4js.compress(value));\n } catch (err) {\n throw err;\n }\n}\nfunction inflate_identity(value: Buffer): Buffer {\n return value;\n}\n\nfunction inflate_gzip(value: Buffer): Buffer {\n return zlib.gunzipSync(value);\n}\n\nfunction inflate_snappy(value: Buffer): Buffer {\n return snappyjs.uncompress(value);\n}\n\nfunction inflate_lzo(value: Buffer, size: number): Buffer {\n lzo = lzo || Util.load('lzo');\n return lzo.decompress(value, size);\n}\n\nfunction inflate_lz4(value: Buffer, size: number): Buffer {\n lz4js = lz4js || Util.load('lz4js');\n try {\n // let result = Buffer.alloc(size);\n // const uncompressedSize = lz4js.decodeBlock(value, result);\n // // remove unnecessary bytes\n // result = result.slice(0, uncompressedSize);\n // return result;\n return Buffer.from(lz4js.decompress(value, size));\n } catch (err) {\n throw err;\n }\n}\n\nfunction inflate_brotli(value: Buffer): Buffer {\n brotli = brotli || Util.load('brotli');\n if (!value.length) {\n return Buffer.alloc(0);\n }\n return Buffer.from(brotli.decompress(value));\n}\n*/\n"],"mappings":";;;;;;;;;;;;;AAIA,IAAAA,YAAA,GAAAC,OAAA;AA+BA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,IAAA,GAAAD,sBAAA,CAAAF,OAAA;AAlBA,SAASI,QAAQA,CAACC,WAAwB,EAAU;EAClD,OAAOC,MAAM,CAACC,IAAI,CAACF,WAAW,CAAC;AACjC;AAEA,SAASG,aAAaA,CAACC,MAAc,EAAe;EAElD,IAAIH,MAAM,CAACI,QAAQ,CAACD,MAAM,CAAC,EAAE;IAC3B,IAAME,UAAU,GAAG,IAAIC,UAAU,CAACH,MAAM,CAACA,MAAM,EAAEA,MAAM,CAACI,UAAU,EAAEJ,MAAM,CAACK,MAAM,CAAC;IAClF,OAAOH,UAAU,CAACI,KAAK,EAAE,CAACN,MAAM;EAClC;EACA,OAAOA,MAAM;AACf;AAWA,IAAMO,OAAO,GAAG;EAQdC,KAAK,EAALA,cAAK;EACLC,GAAG,EAAHA;AAEF,CAAC;AAGM,IAAMC,2BAAoE,GAAG;EAClFC,YAAY,EAAE,IAAIC,0BAAa,EAAE;EACjCC,IAAI,EAAE,IAAIC,4BAAe,EAAE;EAC3BC,MAAM,EAAE,IAAIC,8BAAiB,EAAE;EAC/BC,MAAM,EAAE,IAAIC,8BAAiB,CAAC;IAACX,OAAO,EAAPA;EAAO,CAAC,CAAC;EAExCY,GAAG,EAAE,IAAIC,2BAAc,CAAC;IAACb,OAAO,EAAPA;EAAO,CAAC,CAAC;EAClCc,OAAO,EAAE,IAAID,2BAAc,CAAC;IAACb,OAAO,EAAPA;EAAO,CAAC,CAAC;EACtCe,GAAG,EAAE,IAAIC,2BAAc,CAAC;IAAChB,OAAO,EAAPA;EAAO,CAAC,CAAC;EAClCiB,IAAI,EAAE,IAAIC,4BAAe,CAAC;IAAClB,OAAO,EAAPA;EAAO,CAAC;AACrC,CAAC;AAACmB,OAAA,CAAAhB,2BAAA,GAAAA,2BAAA;AAAA,SAMoBiB,mBAAmBA,CAAAC,EAAA;EAAA,OAAAC,oBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,qBAAA;EAAAA,oBAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAlC,SAAAC,QAAmCC,OAAyC;IAAA,IAAAC,YAAA;IAAA,OAAAJ,YAAA,CAAAD,OAAA,CAAAM,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAC3EL,YAAY,GAAGM,MAAM,CAACC,MAAM,CAACnC,2BAA2B,CAAC;UAAA+B,QAAA,CAAAE,IAAA;UAAA,OAClDG,OAAO,CAACC,GAAG,CAACT,YAAY,CAACU,GAAG,CAAC,UAACC,WAAW;YAAA,OAAKA,WAAW,CAACC,OAAO,EAAE;UAAA,EAAC,CAAC;QAAA;UAAA,OAAAT,QAAA,CAAAU,MAAA,WAAAV,QAAA,CAAAW,IAAA;QAAA;QAAA;UAAA,OAAAX,QAAA,CAAAY,IAAA;MAAA;IAAA,GAAAjB,OAAA;EAAA,CACnF;EAAA,OAAAP,oBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAKqBuB,OAAOA,CAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,QAAA,CAAA3B,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAA0B,SAAA;EAAAA,QAAA,OAAAzB,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAtB,SAAAuB,SAAuBC,MAA0B,EAAEC,KAAa;IAAA,IAAAX,WAAA,EAAAY,gBAAA,EAAAC,qBAAA;IAAA,OAAA5B,YAAA,CAAAD,OAAA,CAAAM,IAAA,UAAAwB,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAtB,IAAA,GAAAsB,SAAA,CAAArB,IAAA;QAAA;UAC/DM,WAAW,GAAGvC,2BAA2B,CAACiD,MAAM,CAAC;UAAA,IAClDV,WAAW;YAAAe,SAAA,CAAArB,IAAA;YAAA;UAAA;UAAA,MACR,IAAIsB,KAAK,yCAAAC,MAAA,CAAyCP,MAAM,EAAG;QAAA;UAE7DE,gBAAgB,GAAG9D,aAAa,CAAC6D,KAAK,CAAC;UAAAI,SAAA,CAAArB,IAAA;UAAA,OACTM,WAAW,CAACkB,QAAQ,CAACN,gBAAgB,CAAC;QAAA;UAApEC,qBAAqB,GAAAE,SAAA,CAAAZ,IAAA;UAAA,OAAAY,SAAA,CAAAb,MAAA,WACpBxD,QAAQ,CAACmE,qBAAqB,CAAC;QAAA;QAAA;UAAA,OAAAE,SAAA,CAAAX,IAAA;MAAA;IAAA,GAAAK,QAAA;EAAA,CACvC;EAAA,OAAAD,QAAA,CAAA3B,KAAA,OAAAC,SAAA;AAAA;AAAA,SAKqBqC,UAAUA,CAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,WAAA,CAAA1C,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAyC,YAAA;EAAAA,WAAA,OAAAxC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAzB,SAAAsC,SACLd,MAA0B,EAC1BC,KAAa,EACbc,IAAY;IAAA,IAAAzB,WAAA,EAAAY,gBAAA,EAAAC,qBAAA;IAAA,OAAA5B,YAAA,CAAAD,OAAA,CAAAM,IAAA,UAAAoC,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAlC,IAAA,GAAAkC,SAAA,CAAAjC,IAAA;QAAA;UAENM,WAAW,GAAGvC,2BAA2B,CAACiD,MAAM,CAAC;UAAA,IAClDV,WAAW;YAAA2B,SAAA,CAAAjC,IAAA;YAAA;UAAA;UAAA,MACR,IAAIsB,KAAK,yCAAAC,MAAA,CAAyCP,MAAM,EAAG;QAAA;UAE7DE,gBAAgB,GAAG9D,aAAa,CAAC6D,KAAK,CAAC;UAAAgB,SAAA,CAAAjC,IAAA;UAAA,OACTM,WAAW,CAACmB,UAAU,CAACP,gBAAgB,EAAEa,IAAI,CAAC;QAAA;UAA5EZ,qBAAqB,GAAAc,SAAA,CAAAxB,IAAA;UAAA,OAAAwB,SAAA,CAAAzB,MAAA,WACpBxD,QAAQ,CAACmE,qBAAqB,CAAC;QAAA;QAAA;UAAA,OAAAc,SAAA,CAAAvB,IAAA;MAAA;IAAA,GAAAoB,QAAA;EAAA,CACvC;EAAA,OAAAD,WAAA,CAAA1C,KAAA,OAAAC,SAAA;AAAA;AAKM,SAAS8C,OAAOA,CAAClB,MAA0B,EAAEC,KAAa,EAAEc,IAAY,EAAU;EACvF,IAAI,EAAEf,MAAM,IAAIjD,2BAA2B,CAAC,EAAE;IAC5C,MAAM,IAAIuD,KAAK,gCAAAC,MAAA,CAAgCP,MAAM,EAAG;EAC1D;EAEA,OAAOjD,2BAA2B,CAACiD,MAAM,CAAC,CAACkB,OAAO,CAACjB,KAAK,EAAEc,IAAI,CAAC;AACjE"}
1
+ {"version":3,"file":"compression.js","names":["_compression","require","_lz4js","_interopRequireDefault","toBuffer","arrayBuffer","Buffer","from","toArrayBuffer","buffer","isBuffer","typedArray","Uint8Array","byteOffset","length","slice","modules","lz4js","PARQUET_COMPRESSION_METHODS","UNCOMPRESSED","NoCompression","GZIP","GZipCompression","SNAPPY","SnappyCompression","BROTLI","BrotliCompression","LZ4","LZ4Compression","LZ4_RAW","ZSTD","ZstdCompression","exports","preloadCompressions","_x","_preloadCompressions","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","options","compressions","wrap","_callee$","_context","prev","next","Object","values","Promise","all","map","compression","preload","abrupt","sent","stop","deflate","_x2","_x3","_deflate","_callee2","method","value","inputArrayBuffer","compressedArrayBuffer","_callee2$","_context2","Error","concat","compress","decompress","_x4","_x5","_x6","_decompress","_callee3","size","_callee3$","_context3","inflate"],"sources":["../../../src/parquetjs/compression.ts"],"sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\n/* eslint-disable camelcase */\n// Forked from https://github.com/ironSource/parquetjs under MIT license\n\nimport {\n Compression,\n NoCompression,\n GZipCompression,\n SnappyCompression,\n BrotliCompression,\n // LZOCompression,\n LZ4Compression,\n ZstdCompression\n} from '@loaders.gl/compression';\n\nimport {ParquetCompression} from './schema/declare';\n\n/** We can't use loaders-util buffer handling since we are dependent on buffers even in the browser */\nfunction toBuffer(arrayBuffer: ArrayBuffer): Buffer {\n return Buffer.from(arrayBuffer);\n}\n\nfunction toArrayBuffer(buffer: Buffer): ArrayBuffer {\n // TODO - per docs we should just be able to call buffer.buffer, but there are issues\n if (Buffer.isBuffer(buffer)) {\n const typedArray = new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.length);\n return typedArray.slice().buffer;\n }\n return buffer;\n}\n\n// TODO switch to worker compression to avoid bundling...\n\n// import brotli from 'brotli'; - brotli has problems with decompress in browsers\n// import brotliDecompress from 'brotli/decompress';\nimport lz4js from 'lz4js';\n// import lzo from 'lzo';\n// import {ZstdCodec} from 'zstd-codec';\n\n// Inject large dependencies through Compression constructor options\nconst modules = {\n // brotli has problems with decompress in browsers\n // brotli: {\n // decompress: brotliDecompress,\n // compress: () => {\n // throw new Error('brotli compress');\n // }\n // },\n lz4js\n // lzo\n // 'zstd-codec': ZstdCodec\n};\n\n/**\n * See https://github.com/apache/parquet-format/blob/master/Compression.md\n */\n// @ts-expect-error\nexport const PARQUET_COMPRESSION_METHODS: Record<ParquetCompression, Compression> = {\n UNCOMPRESSED: new NoCompression(),\n GZIP: new GZipCompression(),\n SNAPPY: new SnappyCompression(),\n BROTLI: new BrotliCompression({modules}),\n // TODO: Understand difference between LZ4 and LZ4_RAW\n LZ4: new LZ4Compression({modules}),\n LZ4_RAW: new LZ4Compression({modules}),\n //\n // LZO: new LZOCompression({modules}),\n ZSTD: new ZstdCompression({modules})\n};\n\n/**\n * Register compressions that have big external libraries\n * @param options.modules External library dependencies\n */\nexport async function preloadCompressions(options?: {modules: {[key: string]: any}}) {\n const compressions = Object.values(PARQUET_COMPRESSION_METHODS);\n return await Promise.all(compressions.map((compression) => compression.preload()));\n}\n\n/**\n * Deflate a value using compression method `method`\n */\nexport async function deflate(method: ParquetCompression, value: Buffer): Promise<Buffer> {\n const compression = PARQUET_COMPRESSION_METHODS[method];\n if (!compression) {\n throw new Error(`parquet: invalid compression method: ${method}`);\n }\n const inputArrayBuffer = toArrayBuffer(value);\n const compressedArrayBuffer = await compression.compress(inputArrayBuffer);\n return toBuffer(compressedArrayBuffer);\n}\n\n/**\n * Inflate a value using compression method `method`\n */\nexport async function decompress(\n method: ParquetCompression,\n value: Buffer,\n size: number\n): Promise<Buffer> {\n const compression = PARQUET_COMPRESSION_METHODS[method];\n if (!compression) {\n throw new Error(`parquet: invalid compression method: ${method}`);\n }\n const inputArrayBuffer = toArrayBuffer(value);\n const compressedArrayBuffer = await compression.decompress(inputArrayBuffer, size);\n return toBuffer(compressedArrayBuffer);\n}\n\n/*\n * Inflate a value using compression method `method`\n */\nexport function inflate(method: ParquetCompression, value: Buffer, size: number): Buffer {\n if (!(method in PARQUET_COMPRESSION_METHODS)) {\n throw new Error(`invalid compression method: ${method}`);\n }\n // @ts-ignore\n return PARQUET_COMPRESSION_METHODS[method].inflate(value, size);\n}\n\n/*\nfunction deflate_identity(value: Buffer): Buffer {\n return value;\n}\n\nfunction deflate_gzip(value: Buffer): Buffer {\n return zlib.gzipSync(value);\n}\n\nfunction deflate_snappy(value: Buffer): Buffer {\n return snappyjs.compress(value);\n}\n\nfunction deflate_lzo(value: Buffer): Buffer {\n lzo = lzo || Util.load('lzo');\n return lzo.compress(value);\n}\n\nfunction deflate_brotli(value: Buffer): Buffer {\n brotli = brotli || Util.load('brotli');\n const result = brotli.compress(value, {\n mode: 0,\n quality: 8,\n lgwin: 22\n });\n return result ? Buffer.from(result) : Buffer.alloc(0);\n}\n\nfunction deflate_lz4(value: Buffer): Buffer {\n lz4js = lz4js || Util.load('lz4js');\n try {\n // let result = Buffer.alloc(lz4js.encodeBound(value.length));\n // const compressedSize = lz4.encodeBlock(value, result);\n // // remove unnecessary bytes\n // result = result.slice(0, compressedSize);\n // return result;\n return Buffer.from(lz4js.compress(value));\n } catch (err) {\n throw err;\n }\n}\nfunction inflate_identity(value: Buffer): Buffer {\n return value;\n}\n\nfunction inflate_gzip(value: Buffer): Buffer {\n return zlib.gunzipSync(value);\n}\n\nfunction inflate_snappy(value: Buffer): Buffer {\n return snappyjs.uncompress(value);\n}\n\nfunction inflate_lzo(value: Buffer, size: number): Buffer {\n lzo = lzo || Util.load('lzo');\n return lzo.decompress(value, size);\n}\n\nfunction inflate_lz4(value: Buffer, size: number): Buffer {\n lz4js = lz4js || Util.load('lz4js');\n try {\n // let result = Buffer.alloc(size);\n // const uncompressedSize = lz4js.decodeBlock(value, result);\n // // remove unnecessary bytes\n // result = result.slice(0, uncompressedSize);\n // return result;\n return Buffer.from(lz4js.decompress(value, size));\n } catch (err) {\n throw err;\n }\n}\n\nfunction inflate_brotli(value: Buffer): Buffer {\n brotli = brotli || Util.load('brotli');\n if (!value.length) {\n return Buffer.alloc(0);\n }\n return Buffer.from(brotli.decompress(value));\n}\n*/\n"],"mappings":"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"}